Releases: ansys/pydpf-core
v0.6.0
v0.6.0 Release Notes
pydpf-core 0.6.0 release for Ansys 2023 R1
This release starts supporting the next ANSYS 2023 R1.
Some of the new functionalities may only be available for use with ANSYS 2023 R1.
What's Changed
Enhancements
- Correct the "Mecanic" typo in physics type to "Mechanical" (with ANSYS 2023 R1).
- Add operators to read VTU format (with ANSYS 2023 R1).
- Add the StringField class to describe string data (such as names) scoped on entities (with ANSYS 2023 R1).
- Add the Generic Support class as an implementation of the base class Support (with ANSYS 2023 R1). The Generic Support enables to support properties by Fields, PropertyFields and/or StringFields.
- Add common getters for all implementations of Support (TimeFreqSupport and GenericSupport) (with ANSYS 2023 R1).
- ResultInfo qualifiers (with ANSYS 2023 R1): available Results can come with qualifiers specifying available subparts of the Result (ie: specific phase, species...).
Documentation
- Add Example for distributed averaging (with ANSYS 2023 R1)
Bug fixes
CI/CD
- Remove restriction on protobuf by @PProfizi in #398
- Ci/dependabot configuration by @PProfizi in #407
- Add explicit testing of all supported Python versions by @PProfizi in #403
- Test on ubuntu-latest as 18.04 is deprecated. by @PProfizi in #419
- Add a Draft Release job and a releaser.yml workflow to the CI by @PProfizi in #434
Maintenance
- Bump ansys-sphinx-theme from 0.4.2 to 0.5.0 by @dependabot in #400
- Bump ansys-sphinx-theme from 0.5.0 to 0.5.1 in /requirements by @dependabot in #411
- Bump codespell from 2.1.0 to 2.2.1 in /requirements by @dependabot in #418
- Maint/get ansys version from pygate by @PProfizi in #420
- Bump sphinx-design from 0.2.0 to 0.3.0 in /requirements by @dependabot in #431
New Contributors
- @RobPasMue made their first contribution in #424
Full Changelog: v0.5.2...v0.6.0
v0.5.2
v0.5.2 Release Notes
pydpf-core 0.5.2 release for Ansys 2022 R2
What's Changed
Enhancements
-
Three server configurations are available. PyDPF can communicate either in Process or via gRPC with DPF C++ core server.
- InProcessServer: Loads DPF's binaries in Process and shares memory with DPF's data. Performance is greatly improved. Now the default configuration.
- GrpcServer: Uses gRPC communication through DPF gRPC CLayer Ans.Dpf.GrpcClient.
- LegacyGrpcServer: Uses gRPC communication through the Python module ansys.grpc.dpf.
-
Enhanced DPF capabilities by creating custom Python operators. See the Create Custom Operators documentation.
-
You can now use RuntimeClientConfig (commit) and RuntimeCoreConfig to parametrize DPF.
RuntimeClientConfig (commit) allows you to:- Set the streaming_buffer_size while streaming data through gRPC server configurations.
- Choose whether to stream float or double values while streaming Field data through gRPC server configurations.
- Choose whether to return numpy arrays by default (for scoping's IDs, field's data_pointer). The default is now True.
RuntimeCoreConfig allows you to set the number of threads used (on the server side) for operators that enable multi-threaded data computation.
-
Parallelized pre- and post-processing workflows with remote operators.
-
Added new operators in the ansys.dpf.core.operators module, such as logic.ascending_sort(), logic.ascending_sort_fc(), logic.descending_sort(), logic.descending_sort_fc(), serialization.data_tree_to_json(), serialization.json_to_data_tree(), mesh.meshes_provider(), and so on. See the PyDPF documentation related to operators to learn how to use them.
-
Warped mesh in plotter: Enable data visualization on a deformed mesh. Example here.
Continuous Integration
- ansys-dpf-gate is a new dependency of ansys-dpf-core.
- tqdm replaces progressbar2 as the third party module for progress bars.
- Backward compatibility workflow running on Ansys 2022 R1.
- Examples workflow running documentation examples for different server configurations.
- protobuf breaking change is not supported, supported versions are <=3.20.1.
- Added Dependabot to CI.
- Added dependency on packaging module.
Bug fixes
- Fixed circular references between DPF objects.
Documentation fixes
- Improved user guide. Added section on custom operators, usage of DPF XML file, documentation on main entities, and DPF concepts.
- New example: ASME Section VIII Division 2: pressure vessels, by @jviqueg
- Automatically generate Graphviz diagrams in documentation examples.
New Contributors
- @jviqueg made their first contribution in #265
- @dependabot made their first contribution in #287
- @jorgepiloto made their first contribution in #307
- @vsousacosta made their first contribution in #337
Full Changelog: 0.4.2...v0.5.2
0.5.2b1
v0.5.2b1 Release Notes
pydpf-core 0.5.2b1 pre-release (beta version) for Ansys 2022 R2
What's Changed
Enhancements
-
Three server configurations are available. PyDPF can communicate either in Process or via gRPC with DPF C++ core server.
- InProcessServer: Loads DPF's binaries in Process and shares memory with DPF's data. Performance is greatly improved.
- GrpcServer: Uses gRPC communication through DPF gRPC CLayer Ans.Dpf.GrpcClient.
- LegacyGrpcServer: Uses gRPC communication through the Python module ansys.grpc.dpf (the default configuration for the beta release).
-
Enhanced DPF capabilities by creating custom Python operators. See the Create Custom Operators documentation.
-
You can now use RuntimeClientConfig (commit) and RuntimeCoreConfig to parametrize DPF.
RuntimeClientConfig (commit) allows you to:- Set the streaming_buffer_size while streaming data through gRPC server configurations.
- Choose whether to stream float or double values while streaming FIeld data through gRPC server configurations.
- Choose whether to return numpy arrays by default (for scoping's ids, field's data_pointer), default is now True.
RuntimeCoreConfig allows you to set the number of threads used (on the server side) for operators that enable multi-threaded data computation.
-
Parallelized pre and post processing workflows with remote operators.
-
Added new operators in the ansys.dpf.core.operators module, such as logic.ascending_sort(), logic.ascending_sort_fc(), logic.descending_sort(), logic.descending_sort_fc(), serialization.data_tree_to_json(), serialization.json_to_data_tree(), mesh.meshes_provider(), and so on. See the PyDPF documentation related to operators to learn how to use them.
-
Warped mesh in plotter: Enable data visualization on a deformed mesh.
Continuous Integration
- ansys-dpf-gate is a new dependency of ansys-dpf-core.
- tqdm replaces progressbar2 as the third party module for progress bars.
- Backward compatibility workflow running on Ansys 2022 R1.
- Examples workflow running documentation examples for different server configurations.
- protobuf breaking change is not supported, supported versions are <=3.20.1.
- Added Dependabot to CI.
- Added dependency on packaging module
Bug fixes
- Fixed circular references between DPF objects.
Documentation fixes
- Improved user guide. Added section on custom operators, usage of DPF XML file, documentation on main entities, and DPF concepts.
- New example: ASME Section VIII Division 2: pressure vessels, by @jviqueg
- Automatically generate Graphviz in documentation examples.
Full Changelog: 0.4.2...0.5.2b1
What's Changed
- Example/asme 10 by @jviqueg in #265
- Temporary fix due to breaking change with protobuf >=4.* by @PProfizi in #271
- Rename ANSYS_PATH env as ANSYS_DPF_PATH by @PProfizi in #270
- Update extras require. by @akaszynski in #273
- Removing deprecated Docker files by @PProfizi in #267
- Add Dependabot to the repository by @PProfizi in #275
- Build and Test using pydpf-actions - generate wheelhouse by @PProfizi in #292
- Ignore dependabot automatic PRs for style check by @PProfizi in #290
- Dependabot ignores VTK by @PProfizi in #291
- Bump codespell from 2.0.0 to 2.1.0 by @dependabot in #287
- Feat/plot warped mesh by @PProfizi in #269
- Bump pyvista from 0.34.2 to 0.35.1 by @dependabot in #295
- Feat/new setters for nodes elements and meshedregion by @PProfizi in #294
- Bump actions/setup-python from 4.0.0 to 4.1.0 by @dependabot in #302
- Bump coverage from 6.4.1 to 6.4.2 by @dependabot in #306
- Bump sphinx-notfound-page from 0.8 to 0.8.3 by @dependabot in #308
- Collect dependencies under a requirements/ directory by @jorgepiloto in #307
- Merge/0.5.dev2 code fixes to remove warnings by @cbellot000 in #311
- Bump imageio from 2.19.3 to 2.19.5 by @dependabot in #312
- Add a retrocompatibility workflow by @PProfizi in #310
- Remove not existing compute_elastic_strain* operator files that does not correspond to any operator by @anslpa in #318
- Prepare pipelines for v222 and fix doctests by @PProfizi in #300
- Merge/doc 0.5.dev2 fix and improve doc by @cbellot000 in #319
- Update unit tests: test_launcher retrocompatibility, test_busy_port and test_list on Linux by @anslpa in #323
- License: update (2022) by @anslpa in #333
- Bump sphinx from 5.0.2 to 5.1.0 by @dependabot in #329
- Bump scooby from 0.5.12 to 0.6.0 by @dependabot in #328
- Merge/0.5.dev2 fix 2022R2 pipelines by @cbellot000 in #325
- Bump imageio from 2.19.5 to 2.20.0 by @dependabot in #338
- Merge/retro/refactor actions grpc by @cbellot000 in #339
- Bump pyvista from 0.35.1 to 0.35.2 by @dependabot in #313
- Fix a typo in the user guide by @PProfizi in #330
- Merge/retro/0.5.dev2 fix workflow by @cbellot000 in #344
- Release of pydpf-core for server's version Ansys 2022R2 (DPF Server's version 0.4) by @cbellot000 in #297
- Fix circular ref between mesh and nodes and elements by @cbellot000 in #350
- Bump sphinx-gallery from 0.10.1 to 0.11.0 by @dependabot in #348
- Add wheelhouse generation for CI by @PProfizi in #351
- Bump enum-tools[sphinx] from 0.9.0 to 0.9.0.post1 by @dependabot in #349
- add Pipeline running examples with/without gatebin by @cbellot000 in #342
- Doc/fix graphviz by @cbellot000 in #354
- Bug/add missing package by @cbellot000 in #358
New Contributors
- @jviqueg made their first contribution in #265
- @jorgepiloto made their first contribution in #307
Full Changelog: https://github.com/pyansys/pydpf-core/commits/0.5.2b1
0.4.2
What's Changed
Enhancements
- PyPIM has been integrated. In an environment configured for PIM, PyDPF-Core is now able to start a remote instance of a DPF server and connect to it.
- Scalar bars now show the unit of the data represented.
- Plotting methods now return the result of the pyvista.Plotter.show method.
- The ANSYS_PATH environment variable is now available to force the use of a specific ANSYS version and its installation folder.
- Added an example for plotting the stress gradient on a path normal to a selected surface node.
- Added a check to verify the presence of the server executable before trying to launch a server.
Continuous Integration
- Added coverage reports and merging criteria via CodeCov. A Pull request now cannot decrease the global coverage ratio.
- The badges in the Readme.md have been improved.
- Added a concurrency criterion to the test pipeline. The latest commit to a PR will now cancel the jobs for the previous commits before running one.
Bug fixes
- Fixed an error in the previously added feature for node labeling. The label now reports the correct data value for the node.
- Fixed plot behavior when using PyVista kwargs such as screenshot, off_screen, notebook, show_axes, stitle or scalar_bar_args.
Documentation fixes
- Fixed typo in example 02/04
- Fixed typo in example 06/03
- Fixed the support email address in Contributing.
- Improved the Compatibility section.
Pull requests
- Fix typo in example 02/04 by @jose-henriquezroa in #238
- Adding coverage by @PProfizi in #241
- PyPIM integration by @plule-ansys in #237
- Removing link to XML doc by @PProfizi in #243
- Update 03-distributed-msup_expansion_steps.py by @PProfizi in #239
- Fixed index issue when getting scalar field value for a node. by @PProfizi in #221
- Update badges in readme by @PProfizi in #236
- Fix plot behavior when using keywords screenshot and off_screen by @PProfizi in #194
- feat/return_result_of_plot_methods by @PProfizi in #253
- ANSYS_PATH environment variable for default installation by @PProfizi in #251
- Fix wrong support email in Contributing by @PProfizi in #247
- Improve Compatibility documentation by @PProfizi in #256
- Stress gradient path example by @ayush-kumar-423 in #179
- Add a file.exists() check for the server executable. by @PProfizi in #261
- Ci/add concurrency-add back feature template by @PProfizi in #262
- Fixes the use of notebook argument for plot commands by @PProfizi in #259
- Fix support for show_axes and scalar bar title for plot_contour by @PProfizi in #263
- Add field unit to scalar bar title by @PProfizi in #264
Full Changelog: 0.4.1...0.4.2
0.4.1
What's Changed
Enhancements
- Add nodal labels on plots.
- Improve the warning for server-client compatibility issues.
- Add one more try if first connection timed-out, with doubled waiting time.
- Path input support extended to all path-like objects.
Continuous Integration
- Fix documentation deployment at release.
- Update
git clone
build actions in accordance with changes in GitHub policy. - Pipelines now use action
pyansys/pydpf-actions/install-dpf-server@v1
for installing and testing a dpf server.
Bug fixes
- Fix
**kwargs
support for plotting.
Documentation fixes
- Correct wrong link for Scooby page in Pypi in Getting Started.
- Add an image and update the intro of the main page.
- Add a page on the XML files associated with DataProcessingCore and DPF plugins.
- Fix a typo in the data exchange example.
- Operator reference documentation now only shows code snippets for CPython.
- Add graphviz graphs and update the examples for post processing on distributed process.
- Fix the cloning command snippet in Contributing.
Pull requests
- fix release doc with environment variables PowerShell #173
- added min max label boolean #158
- Plotter: enable using **kwargs for DpfPlotter.show() method #144
- Ci/use pydpf action #183
- Doc: fix Contributing - cloning commands snippet #190
- Fix/issue#186 path like support #191
- Corrected wrong link for Scooby page in Pypi #184
- Ci/fix/issue195 build actions failing due to new GitHub policy #196
- Fix/timeout server 2tries #198
- Fix/timeout server 2tries #199
- Fix a typo in the data exchange example #205
- Added image and updated intro. #204
- Added DPF XML File content #207
- Improve ImportWarning in check_ansys_grpc_dpf_version #208
- Doc/operators reference only cpython #206
- Removed word based on comment from DPF-POST pull request #209
- Doc/update post processing examples #211
New Contributors
- @ayush-kumar-423 made their first contribution in #158
- @PProfizi made their first contribution in #190
- @jfthuong made their first contribution in #184
- @plule-ansys made their first contribution in #205
- @JennaPaikowsky made their first contribution in #204
- @jose-henriquezroa made their first contribution in #211
Full Changelog: 0.4.0...0.4.1
0.4.0
v0.4.0 Release Notes
pydpf-core 0.4.0 released for Ansys 2022 R1
What's Changed
Enhancements
- Verify ansys-grpc-dpf module's version on server start and connection and raise a helpful error message if the wrong version is used
- Add native remote workflows capability: Workflows and Operators instantiated on different servers can be connected together transparently to create distributed pre and post processing workflows. Workflows created on a given server can be moved to other servers.
- Print optional progress bar when Operators or Workflows are evaluated. This uses the new Session API through grpc.
- Evaluate Operators or Workflows asynchronously to fetch progress in the meanwhile
- Start automatically server on Docker Container with, either the environment variable DPF_DOCKER or either the parameter
docker_name
of the functionstart_local_server
set to the name of the docker. Unit tests can be run on Docker Container - Implement Integral Collection to connect and get output data as int, double or string arrays more efficiently from Operators and Workflows
- Create generic calls to get and set field properties from and to the MeshedRegion
- Identify DPF entities in grpc databases by their entity IDs and their DataBase IDs to allow for better communication between servers
- Add capability to generate operators python code client side
- Read the mesh by default when a displacement is requested (can be disabled with
model.mesh_by_default = False
) - Support new operators to average elemental centroids results
- Improve handling of MAPDL coupled analysis
- Create path_utilities to offer helpers on path depending on the server os
- Add capability to connect TimeFreqSupport to Operators or Workflows is added
Continuous Integration
- Move CI/CD pipelines to github actions (unit testing on windows and documentation build for Ansys 2022R1)
Bug fixes
- Fix automatic code generation for
model.results....
so that it works for results with scripting names having " ", "/", "", ".", ":", ";", ",", "(", ")" characters. - "Wrap" decorator
server_meet_version
so that call stacks when exception are raised are correct - Fetch named selections from the MeshedRegion only when it's specifically required to improve performances
- Properly release memory server side when time/frequencies are requested by the TimeFreqSupport
- Add more unary calls in ResultInfo service
Documentation fixes
- README.md references pydpf-core instead of DPF-Core
- Improve spelling
Pull requests
- Update ci for release 0.4.0 #168
- Create actions for release 0.4.0 #170
- Merge ansys-dpf-core 0.4.0 from private repository to GitHub #167
- Check ansys-grpc-dpf on server start and connection #171
- Connect time frequency support to operators and workflows #172
Full Changelog: 0.3.4...0.4.0
0.3.5
What's Changed
Enhancements
- Speed up python script exit with ansys-dpf-core module imported
- Enhance the time frequency scoping factory
- Improve links in documentation
Pull requests
- Server shutdown improvement #148
- doc/edits to some basic example files #149
- Scoping on all times #151
- Version/ansys grpc dpf 0.3.0 #169
Full Changelog: 0.3.4...0.3.5
0.3.4
What's Changed
Enhancements
- Add manipulable DpfPlotter object that allows multiple mesh/field plotting
- Enhance documentation
Pull requests
- Plotter: multiple mesh enhancement #130
- Documentation: add troubleshooting section related to the model #139
- Plotter: return_cpos (kwargs) updates with a field display #141
Full Changelog: 0.3.3...0.3.4
0.3.3
What's Changed
Enhancements
- Enhance documentation and examples
- Enhance CommonResults and Model
Pull requests
- static CommonResults should be returned when the available results couldn't be loaded #135
- custom title for mesh.plot(field) #131
- local data updates only when modified #133
- Make model more permissive #132
- safe print dpf entity #125
- fix typo CommonResults #129
- Add linux doc build #122
- add docstrings to settings module #124
- Doc/add troubleshooting #109
- add new examples to expose fields containers capabilities #123
Thank you @cbellot000, @jleonatti, @TheGoldfish01 for contributing !
Full Changelog: 0.3.2...0.3.3
0.3.2
What's Changed
Enhancements
- Implement cache: add @class_handling_cache decorator to reduce the number of server requests #107
- Improve performances for data to server upload and as_local_field usage. Allow disabling property evalution by jedi #108
Pull requests
- Remove operator name in result info print #119
- add capability to disable dynamic result property creation #115
- update plotting getting started in the documentation #118
- Improve performances #108
- add description in pypi #112
- Add link to logo #110
- Temporary fix: vtk version #111
- add automatic completion for model's results #99
- implement cache #107
- fix pyansys logo #106
- deep copy of field definition #92
Thank you @germa89 and @cbellot000 for contributing!
Full Changelog: 0.3.1...0.3.2