diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/changelog/changelog.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/changelog/changelog.md index 6c529042da..c1c295b02f 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/changelog/changelog.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/changelog/changelog.md @@ -1,6 +1,6 @@ # Changelog -Changes since the last released version for DPF 27.1.pre0 (as of 2026-06-25). +Changes since the last released version for DPF 27.1.pre0 (as of 2026-08-06). This changelog is organized by category, with sections for different types of updates (new features, bug fixes, changes, performance improvements). @@ -13,13 +13,14 @@ The following table shows which components have updates in each category. | averaging | |[1 item](#Fixes_averaging) | | build | |[1 item](#Fixes_build) | | c# | |[1 item](#Fixes_c#) | -| cff | [2 items](#Features_cff) |[5 items](#Fixes_cff) | +| cff | [2 items](#Features_cff) |[6 items](#Fixes_cff) | | cgns | [1 item](#Features_cgns) | | | changelog | [2 items](#Features_changelog) |[1 item](#Fixes_changelog) | | ci | [3 items](#Features_ci) |[3 items](#Fixes_ci) | -| compression | [4 items](#Features_compression) |[2 items](#Fixes_compression) | -| core | |[1 item](#Fixes_core) | +| compression | [7 items](#Features_compression) |[2 items](#Fixes_compression) | +| core | |[2 items](#Fixes_core) | | cs | [4 items](#Features_cs) |[1 item](#Fixes_cs) | +| csharp | [1 item](#Features_csharp) | | | cyclic | [1 item](#Features_cyclic) |[1 item](#Fixes_cyclic) | | doc | [2 items](#Features_doc) |[1 item](#Fixes_doc) | | documentation | [1 item](#Features_documentation) |[2 items](#Fixes_documentation) | @@ -27,35 +28,37 @@ The following table shows which components have updates in each category. | eng_mat | |[1 item](#Fixes_eng_mat) | | expansion | [1 item](#Features_expansion) | | | fbs | [2 items](#Features_fbs) | | -| femutils | [5 items](#Features_femutils) |[18 items](#Fixes_femutils) | +| femutils | [10 items](#Features_femutils) |[19 items](#Fixes_femutils) | | flatbuffers | |[1 item](#Fixes_flatbuffers) | -| framework | [4 items](#Features_framework) |[11 items](#Fixes_framework) | +| framework | [5 items](#Features_framework) |[13 items](#Fixes_framework) | | gate | |[1 item](#Fixes_gate) | -| grpc | [2 items](#Features_grpc) |[5 items](#Fixes_grpc) | +| grpc | [3 items](#Features_grpc) |[5 items](#Fixes_grpc) | | grpcclient | |[1 item](#Fixes_grpcclient) | -| h5dpf | [2 items](#Features_h5dpf) |[4 items](#Fixes_h5dpf) | -| hdf5 | [11 items](#Features_hdf5) |[5 items](#Fixes_hdf5) | -| hgp | [8 items](#Features_hgp) |[6 items](#Fixes_hgp) | +| h5dpf | [2 items](#Features_h5dpf) |[6 items](#Fixes_h5dpf) | +| hdf5 | [15 items](#Features_hdf5) |[10 items](#Fixes_hdf5) | +| hgp | [10 items](#Features_hgp) |[6 items](#Fixes_hgp) | | hgptests | |[1 item](#Fixes_hgptests) | -| kernel | [4 items](#Features_kernel) |[12 items](#Fixes_kernel) | -| lsdyna | [4 items](#Features_lsdyna) | | +| kernel | [5 items](#Features_kernel) |[13 items](#Fixes_kernel) | +| lsdyna | [5 items](#Features_lsdyna) | | | madl | |[1 item](#Fixes_madl) | | mapd | [1 item](#Features_mapd) | | -| mapdl | [26 items](#Features_mapdl) |[58 items](#Fixes_mapdl) | +| mapdl | [30 items](#Features_mapdl) |[63 items](#Fixes_mapdl) | | mapdlpluggin | |[1 item](#Fixes_mapdlpluggin) | | mapl | |[1 item](#Fixes_mapl) | -| math | [14 items](#Features_math) |[2 items](#Fixes_math) | +| math | [18 items](#Features_math) |[2 items](#Fixes_math) | | mechanical | [4 items](#Features_mechanical) |[5 items](#Fixes_mechanical) | -| mesh | [2 items](#Features_mesh) |[6 items](#Fixes_mesh) | +| mesh | [2 items](#Features_mesh) |[7 items](#Fixes_mesh) | | misc | [16 items](#Features_misc) |[23 items](#Fixes_misc) | | multiphysics | [2 items](#Features_multiphysics) | | | multiphysicsmapper | |[6 items](#Fixes_multiphysicsmapper) | | name | |[1 item](#Fixes_name) | -| native | [15 items](#Features_native) |[27 items](#Fixes_native) | +| native | [21 items](#Features_native) |[34 items](#Fixes_native) | | nuget | |[1 item](#Fixes_nuget) | | perf | [2 items](#Features_perf) |[1 item](#Fixes_perf) | +| plugins | [3 items](#Features_plugins) | | | prime | [4 items](#Features_prime) |[2 items](#Fixes_prime) | | pydpf | |[1 item](#Fixes_pydpf) | +| rbd | [1 item](#Features_rbd) | | | refactor | [1 item](#Features_refactor) | | | rotation | |[1 item](#Fixes_rotation) | | utilities | |[1 item](#Fixes_utilities) | @@ -135,6 +138,11 @@ The following table shows which components have updates in each category. ### Fixes +- Fixing issue with error messages: + > + > + > + - Enabling test and enabling pdbs in CMake: > > @@ -239,6 +247,25 @@ The following table shows which components have updates in each category. ## compression ### Features +- Creation of operators for delta compression: + > + > + > + +- Accept svd_operator's pin 1 as double: + > Added the possibility to give a double to pin 1 of _svd_operator_ + > + > + > + > + +- Add generic operators to compress fields and fields containers: + > Create operators to compress and decompress data of fields and fields containers. + > + > + > + > + - Complete usage of ScopingIterators and eliminate GetIds calls in Ans.Dpf.Compression: > > @@ -280,6 +307,13 @@ The following table shows which components have updates in each category. ### Fixes +- TestInput throws if upstream operator does not have output: + > testInput was throwing if two operators were connected and the output of op1 was not defined and plug as an input of op2. For this specific usecase, the method return false now. + > + > + > + > + - Avoid spawning too many threads: > > @@ -325,6 +359,16 @@ The following table shows which components have updates in each category. > > > +## csharp +### Features + +- Support uint64 type: + > Add framework and client support for uint64 and vector as data type. + > + > + > + > + ## cyclic ### Features @@ -479,6 +523,43 @@ The following table shows which components have updates in each category. ## femutils ### Features +- Support field and TFS for natural frequencies in modal_damping_ratio: + > Support field and time/freq support in pin 0 of modal_damping_ratio + > + > + > + > + +- Add total strain operator': + > + +- Add total strain operator: + > + > + > + +- Clarify centroid algorithm and measure support with validation and tests: + > + > + > + > + > This change improves the element centroid computation experience by clearly documenting supported input combinations, rejecting unsupported combinations with an explicit error, and expanding test coverage for centroid and measure outputs. + > + > It helps users understand which settings are valid and provides more predictable behavior when invalid combinations are requested. + > + > + > + > + +- Typed exceptions in mesh::by_scoping and mesh::from_scopings: + > + > + > `mesh::by_scoping` and `mesh::from_scopings` operators now throw structured, typed exceptions instead of generic errors. Each failure includes a human-readable description of what went wrong and an actionable suggestion to help users fix the issue. + > + > + > + > + - Use the definition from input stress field: > > @@ -504,6 +585,15 @@ The following table shows which components have updates in each category. ### Fixes +- Improve performance of solid_to_skin for Elemental and ElementalNodal fields: + > + > + > Improve performance of solid_to_skin for Elemental and ElementalNodal fields containers. + > + > + > + > + - Support line elements in solid_to_skin: > > @@ -662,6 +752,13 @@ The following table shows which components have updates in each category. ## framework ### Features +- Support uint64 type: + > Add framework and client support for uint64 and vector as data type. + > + > + > + > + - Add structured exception types to the kernel: > > @@ -700,6 +797,18 @@ The following table shows which components have updates in each category. ### Fixes +- Config passed to internal operators: + > Fix operator configuration not being correctly passed to operators instantiated by some "_fc" operators. + > + > + > + > + +- Fixing issues distorted elements in find_reduced_coordinates and mapping operators and numerical problems: + > Fixing issue with distorted elements in `find_reduced_coordinates` and `mapping` operators and numerical problems. + > + > + - Fix solid_to_skin: > Fixes intermittent crashes (access violations and heap corruption) that could occur when mapping solid results to skin meshes during parallel post-processing of multiple time steps or load cases. > @@ -809,6 +918,13 @@ The following table shows which components have updates in each category. ## grpc ### Features +- Support uint64 type: + > Add framework and client support for uint64 and vector as data type. + > + > + > + > + - Add StringField::dataPointer() via DpfVector-safe C-layer path: > > @@ -900,6 +1016,18 @@ The following table shows which components have updates in each category. ### Fixes +- Fix scoping_provider_by_prop for distributed h5 files: + > + > + > + +- Add ENL results to H5DPF and export without TFS if not available: + > Add mapdl ENL type of results to be available through H5DPF. + > + > + > + > + - Migrate to export NAR results: > Migrate to export NAR results by default > @@ -930,6 +1058,36 @@ The following table shows which components have updates in each category. ## hdf5 ### Features +- Write dpf stream helpers as attributes and add append tfs mode: + > **Old representation:** + > + > ![Screenshot 2026-07-29 121439.png](https://tfs.ansys.com:8443/tfs/ANSYS_Development/b301e85b-3c3f-4e72-a514-819567f03273/_apis/git/repositories/afc6e22d-7e53-494a-a3dc-bf5c96dcf45e/pullRequests/708491/attachments/Screenshot%202026-07-29%20121439.png) + > + > **New representation**: + > + > ![image.png](https://tfs.ansys.com:8443/tfs/ANSYS_Development/b301e85b-3c3f-4e72-a514-819567f03273/_apis/git/repositories/afc6e22d-7e53-494a-a3dc-bf5c96dcf45e/pullRequests/708491/attachments/image.png) + > + > + +- Add FilterMaterialsData operator for materials data processing and expose them in h5dpf: + > Expose materials data in H5DPF as a generic data container + > + > + > + > + +- Create links between DataTrees to enhance HDFView visualization: + > Improvement of the representation of DataTrees on H5DPF file. Deduplication of DataTrees when possible. + > + > + > + > + +- Expose coordinate systems data in hdf5: + > Make coordinate systems data available in hdf5 file, either from a migrate from rst file or a live analysis from mapdl. + > + > + - Reevaluating caching logic: > This change removes caching for result fields and mesh data structures. The following lightweight entities remain cached intentionally due to their low memory footprint and high reuse frequency: > @@ -999,6 +1157,43 @@ The following table shows which components have updates in each category. ### Fixes +- Fix non composites operators failing when connected with a distributed datasource: + > + > + > Fixed an error when connecting a distributed data source as input of non distributed H5DPF operators without going through a stream provider. + > + > + > + > + +- Fix appending to tfs after restart analysis from MAPDL ': + > Allowing restart analysis from MAPDL to use h5 file and append new results with matching TFS from original file. + > + > + +- Skip empty results: + > + > + > When migrating files to H5DPF, results providing an empty fields container are now skipped. + > + > + > + > + +- Fix appending to tfs after restart analysis from MAPDL: + > Allowing restart analysis from MAPDL to use h5 file and append new results with matching TFS from original file. + > + > + +- Surface structured errors with context in h5dpf custom and make_result_file operators: + > + > + > The `hdf5::h5dpf::custom` and `hdf5::h5dpf::make_result_file` operators now throw structured, typed exceptions when I/O errors, unknown format versions, invalid compression settings, or missing inputs occur. Each error includes a clear description of what went wrong, an actionable suggestion, and machine-readable attributes (identifier, compression level, threshold, etc.) for programmatic handling and localization. + > + > + > + > + - Fix missing fields during append operation: > fix missing fields on HdfView under references group when using append operation > @@ -1032,6 +1227,18 @@ The following table shows which components have updates in each category. ## hgp ### Features +- Support uint64 type: + > Add framework and client support for uint64 and vector as data type. + > + > + > + > + +- Exposure of Property Fields Container in HGP: + > Exposure of Property Fields Container in HGP. + > + > + - Add StringField::dataPointer() via DpfVector-safe C-layer path: > > @@ -1152,6 +1359,11 @@ The following table shows which components have updates in each category. ## kernel ### Features +- Cache the scoping hash so it can be reused: + > + > + > + - Switch the internals of the Scoping to use boost::unordered_fla...: > > @@ -1184,6 +1396,11 @@ The following table shows which components have updates in each category. ### Fixes +- Fix operators internal version: + > + > + > + - Fixing non thread-safe methods of the mesh: > Fixing non-thread-safe methods of the mesh by using atomic variables. > @@ -1267,6 +1484,9 @@ The following table shows which components have updates in each category. > > +- Redefine TimeFreqSupport for binout branches (#271): + > + - Support d3plot DEM results (#262): > @@ -1299,6 +1519,38 @@ The following table shows which components have updates in each category. ## mapdl ### Features +- Support Pipe Sections and PIPE288/289: + > - support reading of results from pipe288, pipe289 elements + > + > - support of pipe sections + > + > + > + > + +- Add misc reaction results: + > Addition of operators to read Radiation heat flow rate, convection heat flow rate and contact element heat flow + > + > + > + > + +- Add beta support of structural surface load elements SURF153 and SURF154: + > Addition of beta support for SURF153 & SURF154, these elements will now appear in the mesh and elemental results when applicable. + > + > + > + > + +- Replace generic throws with structured exceptions in split_on_facet_indices: + > + > + > Errors from the `mapdl::split_on_facet_indices` and `mapdl::split_to_acmo_facet_indices` operators now surface as structured, named exception types. Each error carries the operator name, the failing input pin name, and an actionable suggestion, making CGNS pressure-mapping failures distinguishable from upstream mesh errors. + > + > + > + > + - Read element results on adaptive meshes: > Allow reading of elementary results on adaptive meshes > @@ -1539,6 +1791,49 @@ The following table shows which components have updates in each category. ### Fixes +- Record ElementalMass for rth: + > Make ElementalMass a source operator + > + > Make MaterialPropertyOfElement a source operator + > + > + > + > + +- Mark mapdl_split_on_facet_indices as private: + > + > + > Mark `mapdl_split_on_facet_indices` as private. + > + > + > + > + +- Fix ElementalNodal data reordering in mapdl::split_on_facet_indices: + > + > + > Fix ElementalNodal data reordering in `mapdl::split_on_facet_indices`. This operators handled the facet id differences between DPF convention and MAPDL convention. However, for 2 given equivalent DPF and MAPDL element facets, the node ordering between the faces also differs, which affects ElementalNodal fields. This is now fixed. + > + > + > + > + +- Set the location to the scoping of nodal euler angle: + > + > + > Correctly set the location of the scoping of the output of the Nodal Euler Angle operator. + > + > + > + > + +- ARM started failing because of mechanical crash while evaluating MAC: + > For rst without any time step defined, we did not output euler angles (skip the process). The fix was just to set up properly the time step needed in the method regarding if the mesh is adaptive or if the rst has a timeStep defined in it (if not, set a default one). + > + > + > + > + - Fix corrupted ENF fields and wrong fsum in transient analysis with contact results: > > @@ -1993,6 +2288,30 @@ The following table shows which components have updates in each category. ## math ### Features +- Improve performance of optimizer through cache of cost: + > + > + > + +- Export optimization data at the end of each iteration in HDF5: + > + > + > + +- Add optimizeWorkflow operator: + > Add an optimization operator that supports minimizing or maximizing an objective function, as well as driving it toward a target value. The objective function can take input variables of type integer or double. + > + > + > + > + +- Update expansion::psd operator to compute response PSD: + > In addition to 1-sigma response, expansion::psd operator now allows to compute response PSD from mode shapes and modal PSD matrices or from harmonic analysis results and input PSD matrix + > + > + > + > + - Complete usage of ScopingIterators and eliminate GetIds calls in Ans.Dpf.Math: > > @@ -2158,6 +2477,15 @@ The following table shows which components have updates in each category. ### Fixes +- Add support for Surface3, Surface4, Surface6, and Surface8 eltypes in skin operator: + > + > + > Add support for Surface3, Surface4, Surface6, and Surface8 element types in several operators: `meshed_skin_sector`, `mesh_to_graphics_edges`, `elements_volume`, `element_nodal_contribution`, and `integrate_over_elements`. + > + > + > + > + - Support elements with dropped nodes in skin operator: > > @@ -2639,6 +2967,48 @@ The following table shows which components have updates in each category. ## native ### Features +- Add total strain operator: + > + > + > + +- Utility operators for the optimized SVD compression workflow: + > - Added operator _split_vector_elements_ which takes a vector and outputs each element in a separate pin. + > + > - Added operator _concatenate_objects_to_vector_ which creates a vector out of elements given in separate pins. + > + > - Added data attribute to _field::get_attribute_, _customtypefield::get_attribute_ and _propertyfield::get_attribute_ + > + > + > + > + +- Operator to connect pins of a workflow: + > + > + > + +- Update time_freq_interpolation to support integration in log-log scale: + > update time_freq_interpolation to support integration in log-log scale + > + > + > + > + +- Internal refactoring of the Rescope_fc operator: + > + > + > + +- Improve performance of Rescope operators: + > + > + > Performance improvements in the `Rescope`, `Rescope_pf`, `Rescope_ctf`, `rescope_fc` and `solid_to_skin_fc` operators. + > + > + > + > + - Memory improvements for distributed data sources cases for results: > Memory efficiency improved for reading results for large distributed cases. > @@ -2720,41 +3090,98 @@ The following table shows which components have updates in each category. > > - "generic_data_container::get_attribute": returns a given attribute of the generic data container in input > - > - "generic_data_container::set_attribute": creates a new generic data container or modifies the one in input + > - "generic_data_container::set_attribute": creates a new generic data container or modifies the one in input + > + > + > + > + +- Extract mesh to rescope property fields & mesh to be read on nodal results from RST.: + > Nodal result read from RST files now have an associated mesh support + > + > The mesh extraction operator now forward the input mesh property fields + > + > + > + > + +- Make generic support comparison operator private: + > + +- Supported GenericSupport in GetFieldsContainerAttribute and added GenericSupportAttribute API: + > - Added a new property_name, "generic_support", to "fieldscontainer::get_attribute" to extract Generic Support + > + > - Added a new API, "generic_support::get_attribute", to extract Field, Field Property or String Field associated with Generic Support + > + > + > + > + +- Option to extend to midside on nodal_to_elemental_nodal: + > Option to extend to midside on nodal_to_elemental_nodal + > + > + > + > + +### Fixes + +- Fix issue with result_provider: + > + > + > + +- Unique C# accessors for output pins with multiple list types: + > + > + > Fixes a failure when generating the C# wrapper for an operator whose output pin accepts several list (vector) types. Previously the generated code defined two identically named accessor methods and failed to compile. Each list type now gets a distinct, type-aware accessor (for example `get_as_list_int` and `get_as_list_double`), and the existing `get_as_list` accessor is preserved when a pin has a single list type. + > + > + > + > + +- Make split_vector_elements and concatenate_objects_to_vector operators private: + > + > + > Make `split_vector_elements` and `concatenate_objects_to_vector` operators private. > > > > -- Extract mesh to rescope property fields & mesh to be read on nodal results from RST.: - > Nodal result read from RST files now have an associated mesh support +- Fix CScopingProviderProperty for HDF5: + > > - > The mesh extraction operator now forward the input mesh property fields + > Support of HDF5 for CScopingProviderProperty for the properties **mapdl_element_type** and **material** > > > > -- Make generic support comparison operator private: +- Change default value of stream_type pin in serializer operator: > - -- Supported GenericSupport in GetFieldsContainerAttribute and added GenericSupportAttribute API: - > - Added a new property_name, "generic_support", to "fieldscontainer::get_attribute" to extract Generic Support > - > - Added a new API, "generic_support::get_attribute", to extract Field, Field Property or String Field associated with Generic Support + > The `stream_type` input pin of the `serializer` operator has changed its default type from 0 (ASCII) to 1 (binary). Binary files are faster to serialize and deserialize, which improves user experience. > > > + > In addition, the `stream_type` input pin of the `deserializer` operator is made optional. If not provided, the type is auto-detected from the input file. + > > - -- Option to extend to midside on nodal_to_elemental_nodal: - > Option to extend to midside on nodal_to_elemental_nodal > > + +- Handle time or frequency steps location correctly for the rescope operator: + > Handle time or frequency steps location correctly for the rescope operator. > > -### Fixes +- Keep the input scoping support unchanged: + > Avoid changing the input scoping support + > + > + > + > - Correct spec for result.material_property_of_element: > @@ -3031,6 +3458,34 @@ The following table shows which components have updates in each category. > > > +## plugins +### Features + +- Improve the EnhancedPOD workflow with optimization of its parameters: + > + > + > + +- New default append mode for solver to hdf5 workflow: + > solver to hdf5 workflow now use the new append to just tfs append mode. + > + > + +- Add workflows for FRF generation and PSD expansion: + > Add 4 new workflows to perform the following operations: + > + > - Compute modal coordinates for FRF generation + > + > - Perform expansion for FRF generation + > + > - Compute RPSD from FRFs + > + > - Compute 1-sigma response (RMS) from RPSD + > + > + > + > + ## prime ### Features @@ -3075,6 +3530,16 @@ The following table shows which components have updates in each category. > > > +## rbd +### Features + +- Apply wireframe and edge decimation when generating the dfmf: + > Reduced file size by decreasing the output nodes of the motion modal data file using the wire frame operator and edge decimation operator. + > + > + > + > + ## refactor ### Features @@ -3247,6 +3712,18 @@ The following table shows which components have updates in each category. > > To truncate a number to \\(n\\) decimal places, the threshold must be chosen as \\(10^{-n}\\). +- [zstd_compress](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/zstd_compress.md): + > Compresses the data of a field with ZSTD compression algorithm. + +- [zstd_compress_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/zstd_compress_fc.md): + > Compresses a fields container with ZSTD compression algorithm. + +- [zstd_decompress](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/zstd_decompress.md): + > Decompresses a field compressed with ZSTD compression algorithm. + +- [zstd_decompress_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/zstd_decompress_fc.md): + > Decompresses a fields container compressed with ZSTD compression algorithm. + #### info @@ -3390,6 +3867,24 @@ The following table shows which components have updates in each category. > If either input is empty, a dimensionless zero scalar field is returned. > +- [mechanical_min_max_over_time](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/mechanical_min_max_over_time.md): + > + > Dispatch operator that selects and runs a minimum/maximum operator over time or frequency, based on the integer selector on pin 5. + > + > Selector values on pin 5: + > + > - `0`: `min_max_by_time` - per-step, per-component minimum and maximum, aggregating every entity of each field (elemental-nodal values collapse into the reduction). + > - `1`: `max_over_time_by_entity` - per-entity, per-component maximum across all time or frequency steps. + > - `2`: `time_of_max_by_entity` - time or frequency at which each per-entity, per-component maximum occurs. + > - `7`: `min_over_time_by_entity` - per-entity, per-component minimum across all time or frequency steps. + > - `8`: `time_of_min_by_entity` - time or frequency at which each per-entity, per-component minimum occurs. + > + > Selectors 1, 2, 7 and 8 keep the entity axis: the underlying operator (`min_max_over_time_by_entity`) returns one value per entity, per component and per shell layer when available. Selector 0 (`min_max_by_time`) reduces across entities instead. + > + > Output pin 0 holds the primary result of the selected operator. + > Output pin 1 is optional and populated only when the selected operator produces two outputs (currently only selector `0`). + > + #### mesh @@ -3408,6 +3903,12 @@ The following table shows which components have updates in each category. - [average_velocity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/average_velocity.md): > Read/compute average velocity by calling the readers defined by the datasources. +- [contact_element_heat_flow](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/contact_element_heat_flow.md): + > Read/compute contact element heat flow by calling the readers defined by the datasources. + +- [convection_heat_flow_rate](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/convection_heat_flow_rate.md): + > Read/compute convection heat flow rate by calling the readers defined by the datasources. + - [creep_strain](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/creep_strain.md): > Read/compute element nodal component creep strains by calling the readers defined by the datasources. > - The 'requested_location' and 'mesh_scoping' inputs are processed to see if they need scoping transposition or result averaging. The resulting output fields have a 'Nodal', 'ElementalNodal' or 'Elemental' location. @@ -3702,6 +4203,9 @@ The following table shows which components have updates in each category. - [radiation_area](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/radiation_area.md): > Read/compute radiation area by calling the readers defined by the datasources. +- [radiation_heat_flow_rate](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/radiation_heat_flow_rate.md): + > Read/compute radiation heat flow rate by calling the readers defined by the datasources. + - [raw_acceleration](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/raw_acceleration.md): > Read/compute A vector from the finite element problem MA+CV+KU=F by calling the readers defined by the datasources. @@ -3732,6 +4236,80 @@ The following table shows which components have updates in each category. - [squared_l2norm_pressure](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/squared_l2norm_pressure.md): > Read/compute Square of the L2 norm of pressure over element volume by calling the readers defined by the datasources. +- [total_strain_X](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_X.md): + > Read/compute element nodal component total strains XX normal component (00 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_XY](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_XY.md): + > Read/compute element nodal component total strains XY shear component (01 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_XZ](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_XZ.md): + > Read/compute element nodal component total strains XZ shear component (02 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_Y](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_Y.md): + > Read/compute element nodal component total strains YY normal component (11 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_YZ](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_YZ.md): + > Read/compute element nodal component total strains YZ shear component (12 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_Z](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_Z.md): + > Read/compute element nodal component total strains ZZ normal component (22 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +- [total_strain_eqv](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_eqv.md): + > Read/compute element nodal equivalent total strain by calling the readers defined by the datasources. + > - The 'requested_location' and 'mesh_scoping' inputs are processed to see if they need scoping transposition or result averaging. The resulting output fields have a 'Nodal', 'ElementalNodal' or 'Elemental' location. + > - Once the need for averaging has been detected, the behavior of the combined connection of the 'split_shells' and 'shell_layer' pins is: + > + > | Averaging is needed | 'split_shells' | 'shell_layer' | Expected output | + > |---------------------|---------------------|---------------|-----------------| + > | No | Not connected/false | Not connected | Location as in the result file. Fields with all element shapes combined. All shell layers present. | + > | No | true | Not connected | Location as in the result file. Fields split according to element shapes. All shell layers present. | + > | No | true | Connected | Location as in the result file. Fields split according to element shapes. Only the requested shell layer present. | + > | No | Not connected/false | Connected | Location as in the result file. Fields with all element shapes combined. Only the requested shell layer present. | + > | Yes | Not connected/true | Not connected | Location as requested. Fields split according to element shapes. All shell layers present. | + > | Yes | false | Not connected | Location as requested. Fields with all element shapes combined. All shell layers present. | + > | Yes | false | Connected | Location as requested. Fields with all element shapes combined. Only the requested shell layer present. | + > | Yes | Not connected/true | Connected | Location as requested. Fields split according to element shapes. Only the requested shell layer present. | + > - The available 'elshape' values are: + > + > | elshape | Related elements | + > |---------|------------------| + > | 1 | Shell (generic) | + > | 2 | Solid | + > | 3 | Beam | + > | 4 | Skin | + > | 5 | Contact | + > | 6 | Load | + > | 7 | Point | + > | 8 | Shell with 1 result across thickness (membrane) | + > | 9 | Shell with 2 results across thickness (top/bottom) | + > | 10 | Shell with 3 results across thickness (top/bottom/mid) | + > | 11 | Gasket | + > | 12 | Multi-Point Constraint | + > | 13 | Pretension | + > + > + > Total strain is computed as the sum of the available strain contributions: elastic strain (`EPEL`), plastic strain (`EPPL`), creep strain (`EPCR`), thermal strain (`ETH`) + +- [total_strain_intensity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_intensity.md): + > Reads/computes element nodal component total strains, average it on nodes (by default) and computes its invariants. + > This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. + +- [total_strain_max_shear](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_max_shear.md): + > Reads/computes element nodal component total strains, average it on nodes (by default) and computes its invariants. + > This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. + +- [total_strain_principal_1](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_principal_1.md): + > Read/compute element nodal component total strains 1st principal component by calling the readers defined by the datasources and computing its eigen values. + > This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + +- [total_strain_principal_2](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_principal_2.md): + > Read/compute element nodal component total strains 2nd principal component by calling the readers defined by the datasources and computing its eigen values. + > This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + +- [total_strain_principal_3](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain_principal_3.md): + > Read/compute element nodal component total strains 3rd principal component by calling the readers defined by the datasources and computing its eigen values. + > This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + - [view_factor_sum](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/view_factor_sum.md): > Read/compute view factor sum by calling the readers defined by the datasources. @@ -3799,6 +4377,27 @@ The following table shows which components have updates in each category. - [propertyfield_get_attribute](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/utility/propertyfield_get_attribute.md): > Gets a property from an input field / fields container. A PropertyField in pin 0 and a property name (string) in pin 1 are expected as inputs. +- [transpose_fields_container](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/utility/transpose_fields_container.md): + > Transposes a fields container so that the fields' scoping becomes the container's scoping and a chosen label (default: time) becomes the fields' scoping. + > + > Input layout (example with time label, 2 body labels, 3 nodes): + > FC labels: [time, body] + > Field 0: {time:1, body:1} -> scoping {n1, n2, n3}, data [...] + > Field 1: {time:1, body:2} -> scoping {n4, n5}, data [...] + > Field 2: {time:2, body:1} -> scoping {n1, n2, n3}, data [...] + > Field 3: {time:2, body:2} -> scoping {n4, n5}, data [...] + > + > Output layout (transposed on time): + > FC labels: [Nodal, body] + > Field 0: {Nodal:n1, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + > Field 1: {Nodal:n2, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + > Field 1: {Nodal:n3, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + > Field 2: {Nodal:n4, body:2} -> scoping {t1, t2}, data [gathered from fields 1,3] + > Field 3: {Nodal:n5, body:2} -> scoping {t1, t2}, data [gathered from fields 1,3] + > ... + > + > Each output field gathers one entity's data across all values of the transposed label from the input fields that share the same non-transposed labels. All input fields sharing a labelspace where only the transposed label changes must have the same scoping and location. + ### Changed operators @@ -3990,6 +4589,11 @@ The following table shows which components have updates in each category. #### compression +- [apply_svd](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/apply_svd.md) + + > 0.1.0: The pin 1 can now be passed as a double. + + - [kmeans_clustering](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/compression/kmeans_clustering.md) > 0.0.1: Internal refactoring to use Scoping Iterators. @@ -4010,7 +4614,7 @@ The following table shows which components have updates in each category. - [field_band_pass_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_band_pass_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [field_high_pass](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_high_pass.md) @@ -4020,7 +4624,7 @@ The following table shows which components have updates in each category. - [field_high_pass_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_high_pass_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [field_low_pass](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_low_pass.md) @@ -4030,7 +4634,7 @@ The following table shows which components have updates in each category. - [field_low_pass_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_low_pass_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [field_signed_high_pass](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_signed_high_pass.md) @@ -4040,7 +4644,7 @@ The following table shows which components have updates in each category. - [field_signed_high_pass_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/field_signed_high_pass_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [scoping_band_pass](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/filter/scoping_band_pass.md) @@ -4113,13 +4717,15 @@ The following table shows which components have updates in each category. - [cartesian_to_spherical_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/cartesian_to_spherical_fc.md) - > 0.0.1: Fix exception type preservation during parallel execution. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [element_nodal_contribution](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/element_nodal_contribution.md) > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Add support for Surface3, Surface4, Surface6, and Surface8 element types. + - [elements_facets_surfaces_over_time](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/elements_facets_surfaces_over_time.md) @@ -4132,6 +4738,8 @@ The following table shows which components have updates in each category. > 0.0.2: Fix exception type preservation during parallel execution. + > 0.0.3: Add support for Surface3, Surface4, Surface6, and Surface8 element types. + - [elements_volumes_over_time](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/elements_volumes_over_time.md) @@ -4152,6 +4760,8 @@ The following table shows which components have updates in each category. > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Add support for Surface3, Surface4, Surface6, and Surface8 element types. + - [normals](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/normals.md) @@ -4193,7 +4803,7 @@ The following table shows which components have updates in each category. - [spherical_to_cartesian_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/spherical_to_cartesian_fc.md) - > 0.0.1: Fix exception type preservation during parallel execution. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [to_polar_coordinates](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/geo/to_polar_coordinates.md) @@ -4241,7 +4851,12 @@ The following table shows which components have updates in each category. - [ascending_sort_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/logic/ascending_sort_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. + + +- [component_transformer_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/logic/component_transformer_fc.md) + + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [descending_sort](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/logic/descending_sort.md) @@ -4251,7 +4866,7 @@ The following table shows which components have updates in each category. - [descending_sort_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/logic/descending_sort_fc.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [elementary_data_selector](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/logic/elementary_data_selector.md) @@ -4289,6 +4904,8 @@ The following table shows which components have updates in each category. > 0.1.2: Internal refactoring to use Scoping Iterators. + > 0.1.3: Fix tolerance problem with distorted elements. + - [on_coordinates](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mapping/on_coordinates.md) @@ -4300,6 +4917,8 @@ The following table shows which components have updates in each category. > 0.3.1: Update the operator and pin descriptions. + > 0.3.2: Fix tolerance problem with distorted elements. + - [on_reduced_coordinates](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mapping/on_reduced_coordinates.md) @@ -4348,6 +4967,8 @@ The following table shows which components have updates in each category. > 0.2.12: Add support for line elements. + > 0.2.13: Performance improvement for Elemental and ElementalNodal fields. + - [solid_to_skin_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mapping/solid_to_skin_fc.md) @@ -4373,6 +4994,8 @@ The following table shows which components have updates in each category. > 0.2.8: Fix const-safe access to the shared properties map under parallel execution (use at() instead of operator[]). + > 0.2.9: Performance improvement for Elemental and ElementalNodal fields containers. + #### math @@ -4384,7 +5007,7 @@ The following table shows which components have updates in each category. - [absolute_value_by_component_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/absolute_value_by_component_fc.md) - > 0.0.1: Improve operator description with formula and Wikipedia link. Improve output pin description. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [accumulate](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/accumulate.md) @@ -4394,7 +5017,7 @@ The following table shows which components have updates in each category. - [accumulate_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/accumulate_fc.md) - > 0.0.1: Improve operator description with weighted sum formula. Improve pin 2 and output pin descriptions. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [accumulate_level_over_label_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/accumulate_level_over_label_fc.md) @@ -4412,11 +5035,21 @@ The following table shows which components have updates in each category. > 0.0.1: Fixed issue with crash due to empty label. +- [accumulation_per_scoping](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/accumulation_per_scoping.md) + + > 0.0.1: Rewrite the operator description to clarify entity-wise summation per field and label-agnostic behaviour, document input pins 0, 3, 4 and 5, document the two output pins, and mark the streams and data sources pins as optional. + + - [add](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/add.md) > 0.0.1: Improve operator description to document formula, broadcast behaviour, unit handling, and inplace option. Improve output pin description. Add entity-wise addition synonym. +- [add_constant_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/add_constant_fc.md) + + > 0.0.1: If empty fields container is provided, returns the same empty fields container. + + - [add_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/add_fc.md) > 0.0.1: Improve operator description. Improve output pin description. Add entity-wise addition synonym. @@ -4457,6 +5090,11 @@ The following table shows which components have updates in each category. > 0.0.1: Improve operator description. Add output pin description. Add Wikipedia link. +- [component_wise_product_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/component_wise_product_fc.md) + + > 0.0.1: If empty fields container is provided, returns the same empty fields container. + + - [compute_residual_and_error](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/compute_residual_and_error.md) > 0.1.0: Support generic labels (not only time) in the input FieldsContainer @@ -4472,6 +5110,11 @@ Upgraded documentation > 0.0.1: Improve operator description with conjugate formula and Wikipedia link. Add input and output pin descriptions. +- [correlation](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/correlation.md) + + > 0.0.1: Rewrite description with LaTeX weighted inner product formula, mark pins 2 and 3 optional, correct the absoluteValue pin description. + + - [cos](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/cos.md) > 0.0.1: Improve operator description to document unit constraints and formula. Improve input and output pin descriptions. Add Wikipedia link. @@ -4479,13 +5122,15 @@ Upgraded documentation - [cos_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/cos_fc.md) - > 0.0.1: Improve operator description to document unit constraints and formula. Improve input and output pin descriptions. Add Wikipedia link. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [cplx_derive](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/cplx_derive.md) > 0.0.1: Improve operator description with frequency-domain derivation formula and Wikipedia link. Add input and output pin descriptions. + > 0.0.2: Improve operator performance through internal refactoring. + - [cplx_divide](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/cplx_divide.md) @@ -4504,17 +5149,17 @@ Upgraded documentation - [entity_extractor](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/entity_extractor.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: Correct description to clarify index-based (not ID-based) extraction, document all pins, and declare the previously undocumented output pin 1. - [exponential](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/exponential.md) - > 0.0.1: Improve operator description with formula and dimensionless constraint. Improve input and output pin descriptions. Add Wikipedia link. + > 0.1.0: Add permissive config option to bypass unit check. - [exponential_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/exponential_fc.md) - > 0.0.1: Improve operator description with formula and dimensionless constraint. Improve input and output pin descriptions. Add Wikipedia link. + > 0.1.0: Add input pin 1 which allows to apply the exponential to the time/freq support of the input FC. Also add permissive config option to bypass unit check. - [generalized_inner_product](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/generalized_inner_product.md) @@ -4532,6 +5177,11 @@ Upgraded documentation > 0.0.1: Improve operator description. Add input and output pin descriptions. +- [invert_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/invert_fc.md) + + > 0.0.1: If empty fields container is provided, returns the same empty fields container. + + - [kronecker_prod](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/kronecker_prod.md) > 0.0.1: Improve operator description with Kronecker product formula and Wikipedia link. Add output pin description. @@ -4546,20 +5196,22 @@ Upgraded documentation > 0.0.1: Improve operator description with formula and dimensionless constraint. Improve input and output pin descriptions. Add Wikipedia link. + > 0.1.0: Add permissive config option to bypass unit check. + - [ln_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/ln_fc.md) - > 0.0.1: Improve operator description with formula and dimensionless constraint. Improve input and output pin descriptions. Add Wikipedia link. + > 0.1.0: Add input pin 1 which allows to apply the natural log to the time/freq support of the input FC. Also add permissive config option to bypass unit check. - [mac](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/mac.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: Rewrite description with MAC formula and LaTeX notation, mark pin 2 optional, document all pins, and fix typo in original description. - [make_one_on_comp](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/make_one_on_comp.md) - > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.1: Rewrite description to clarify index-based (not ID-based) selection and standard-basis-vector semantics, document all pins. - [minus](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/minus.md) @@ -4572,6 +5224,13 @@ Upgraded documentation > 0.0.1: Improve operator description to document formula, broadcast behaviour, unit handling, and temperature-difference unit. Improve output pin description. Add entity-wise subtraction synonym. +- [modal_damping_ratio](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/modal_damping_ratio.md) + + > 0.0.1: Rewrite description to use LaTeX Rayleigh damping formula and identify each input coefficient. + + > 0.1.0: Input pin 0 now accepts a field or a time/freq support. + + - [modal_participation](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/modal_participation.md) > 0.0.1: Internal refactoring to use Scoping Iterators. @@ -4619,7 +5278,7 @@ Upgraded documentation - [pow_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/pow_fc.md) - > 0.1.0: Pin added to chose the value to set for division by zero for negative exponents + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [real_part](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/real_part.md) @@ -4654,7 +5313,7 @@ Upgraded documentation - [sin_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sin_fc.md) - > 0.0.1: Improve operator description to document unit constraints and formula. Add input and output pin descriptions. Add Wikipedia link. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [sqr](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sqr.md) @@ -4664,7 +5323,7 @@ Upgraded documentation - [sqr_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sqr_fc.md) - > 0.0.1: Improve operator description with formula and output unit. Improve output pin description. Add Wikipedia link. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [sqrt](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sqrt.md) @@ -4674,7 +5333,7 @@ Upgraded documentation - [sqrt_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sqrt_fc.md) - > 0.0.1: Improve operator description with formula, non-negativity constraint, and output unit. Improve input and output pin descriptions. Add Wikipedia link. + > 0.0.1: If empty fields container is provided, returns the same empty fields container. - [sweeping_phase](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/sweeping_phase.md) @@ -4691,6 +5350,8 @@ Upgraded documentation > 0.0.1: Internal refactoring to use Scoping Iterators. Improve operator description with interpolation formula and Wikipedia link. Add missing output pin 1 (TimeFreqSupport). Improve pin descriptions. + > 0.1.0: Add new input pin 5 which allows to interpolate in log-log scale + - [unit_convert](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/math/unit_convert.md) @@ -4705,6 +5366,11 @@ Upgraded documentation #### mesh +- [acmo_mesh_provider](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/acmo_mesh_provider.md) + + > 0.0.1: Improved error reporting: errors now include structured context and a remediation suggestion. + + - [change_cs](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/change_cs.md) > 0.0.1: Fix exception type preservation during parallel execution. @@ -4738,6 +5404,8 @@ Upgraded documentation > 0.3.1: Internal refactoring to use Scoping Iterators. + > 0.3.2: Improve error messages: operator now throws typed, structured exceptions with actionable suggestions and machine-readable attributes. + - [from_scopings](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/from_scopings.md) @@ -4747,6 +5415,8 @@ Upgraded documentation > 0.1.0: Improvement in the performance for cases with non shared scoping between property fields and mesh. + > 0.1.1: Improve error messages: operator now throws typed, structured exceptions with actionable suggestions and machine-readable attributes. + - [make_plane_levelset](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/make_plane_levelset.md) @@ -4783,6 +5453,8 @@ Upgraded documentation > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Added support for Surface3, Surface4, Surface6, and Surface8 elements. + - [mesh_to_pyvista](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/mesh_to_pyvista.md) @@ -4819,6 +5491,8 @@ Upgraded documentation > 1.0.0: Added support for elements with dropped nodes, as its faces may have been incorrectly added to the output skin mesh before. + > 1.0.1: Added support for Surface3, Surface4, Surface6, and Surface8 elements. + - [split_fields](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/mesh/split_fields.md) @@ -4868,6 +5542,11 @@ Upgraded documentation > 0.0.2: Allow to make integration even if the time freq support contains several steps (for example multiple RPM), only if the provided scoping correspond to frequencies of a unique RPM. +- [mesh_selection_manager_provider](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/metadata/mesh_selection_manager_provider.md) + + > 0.1.0: Support h5dpf files both for single and distributed datasources. + + - [streams_provider](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/metadata/streams_provider.md) > 0.1.0: Add the permissive configuration. @@ -4883,20 +5562,71 @@ Upgraded documentation #### min_max +- [max_over_time_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/max_over_time_by_entity.md) + + > 0.0.1: Rewrote operator and pin descriptions. Set scripting name explicitly. + + +- [min_max](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max.md) + + > 0.0.1: Rewrote operator and pin descriptions. + + +- [min_max_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_by_entity.md) + + > 0.0.1: Rewrote operator and pin descriptions. + + +- [min_max_by_time](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_by_time.md) + + > 0.0.1: Rewrote operator and pin descriptions. + + +- [min_max_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_fc.md) + + > 0.0.1: Ignore empty fields to calculate maximum & minimum values. A zero value will be output if the field is empty. + + - [min_max_fc_inc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_fc_inc.md) > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Rewrote operator and pin descriptions. + + +- [min_max_inc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_inc.md) + + > 0.0.1: Rewrote operator and pin descriptions. + - [min_max_over_label_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_over_label_fc.md) > 0.0.1: Input fields with no data are now excluded from the output instead of producing zero-valued entries. + > 0.0.2: Rewrote operator and pin descriptions. + - [min_max_over_time_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_max_over_time_by_entity.md) > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Rewrote operator and pin descriptions. + + +- [min_over_time_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/min_over_time_by_entity.md) + + > 0.0.1: Rewrote operator and pin descriptions. Set scripting name explicitly. + + +- [time_of_max_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/time_of_max_by_entity.md) + + > 0.0.1: Rewrote operator and pin descriptions. Set scripting name explicitly. + + +- [time_of_min_by_entity](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/min_max/time_of_min_by_entity.md) + + > 0.0.1: Rewrote operator and pin descriptions. Set scripting name explicitly. + #### result @@ -5096,11 +5826,6 @@ Upgraded documentation > 1.0.0: This operator had previously the bool_rotate_to_global pin exposed and set as True while rotations to global were not performed and results were output in the Solution Coordinate System. -- [elemental_mass](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/elemental_mass.md) - - > 1.0.0: This operator had previously the bool_rotate_to_global pin exposed and set as True while rotations to global were not performed and results were output in the Solution Coordinate System. - - - [elemental_volume](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/elemental_volume.md) > 1.0.0: This operator had previously the bool_rotate_to_global pin exposed and set as True while rotations to global were not performed and results were output in the Solution Coordinate System. @@ -5180,7 +5905,7 @@ Upgraded documentation - [material_property_of_element](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/material_property_of_element.md) - > 0.1.0: Added missing input pins: mesh_scoping (pin 1), property_name (pin 6), default_value (pin 7), filter_zero_values (pin 8). Corrected and expanded all pin and operator documentation. + > 0.1.0: Added operator documentation and explicit pin contracts. - [members_in_bending_not_certified](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/members_in_bending_not_certified.md) @@ -5198,10 +5923,17 @@ Upgraded documentation > 0.0.1: Internal refactoring to use Scoping Iterators. +- [migrate_to_h5dpf](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/migrate_to_h5dpf.md) + + > 0.1.0: Results that don't contain any field are now skipped from the export + + - [nmisc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/nmisc.md) > 1.0.0: num_components input pin is removed, please use the item_index pin with a vector of indexes. + > 2.0.0: averaging is blocked. + - [nodal_to_global](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/nodal_to_global.md) @@ -5289,11 +6021,15 @@ Upgraded documentation > 1.0.0: This operator had previously the bool_rotate_to_global pin exposed and set as True while rotations to global were only performed if the requested result was a 3D vector or a symmetrical 3x3 matrix. + > 1.0.1: Fix error for stress-like results. + - [smisc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/smisc.md) > 1.0.0: num_components input pin is removed, please use the item_index pin with a vector of indexes. + > 2.0.0: averaging is blocked. + - [state_variable](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/state_variable.md) @@ -5411,6 +6147,11 @@ Upgraded documentation > 1.0.1: Internal refactoring to use Scoping Iterators. +- [total_strain](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/total_strain.md) + + > 0.1.0: Add pin eExtendMidNodesPin to add/remove mid-nodes when averaging from ElementalNodal to Nodal. Default:True + + - [transient_rayleigh_integration](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/result/transient_rayleigh_integration.md) > 0.0.1: Internal refactoring to use Scoping Iterators. @@ -5425,11 +6166,22 @@ Upgraded documentation > 0.0.2: Fix issue when input FieldsContainer and ScopingsContainer don't share labels. + > 0.0.3: Add check on scoping of field to rescope and input scoping locations. + + > 0.0.4: Performance improvement. + + +- [compute_element_centroids](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/compute_element_centroids.md) + + > 0.1.0: Added arithmetic_average centroid algorithm and explicit pin-combination validation/documentation. + - [intersect](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/intersect.md) > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Performance improvement when scop1 is included in scop2. The operator will return scop1 without any transformation. + - [on_property](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/on_property.md) @@ -5437,6 +6189,8 @@ Upgraded documentation > 1.0.1: Internal refactoring to use Scoping Iterators. + > 1.0.2: Allow the operator use for h5dpf files. + - [reduce_sampling](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/reduce_sampling.md) @@ -5451,6 +6205,10 @@ Upgraded documentation > 0.1.2: Fix null pointer dereference before null check in extrapolation path. + > 0.1.3: Handle time or frequency steps location correctly. + + > 0.1.4: Performance improvement. + - [rescope_custom_type_field](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/rescope_custom_type_field.md) @@ -5460,6 +6218,10 @@ Upgraded documentation > 0.1.2: Fix null pointer dereference before null check in extrapolation path. + > 0.1.3: Handle time or frequency steps location correctly. + + > 0.1.4: Performance improvement. + - [rescope_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/rescope_fc.md) @@ -5469,6 +6231,12 @@ Upgraded documentation > 0.1.2: Fix null pointer dereference before null check in extrapolation path. + > 0.1.3: Handle time or frequency steps location correctly. + + > 0.1.4: Performance improvement. + + > 0.1.5: Enable parallelism. + - [rescope_property_field](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/rescope_property_field.md) @@ -5478,6 +6246,15 @@ Upgraded documentation > 0.1.2: Fix null pointer dereference before null check in extrapolation path. + > 0.1.3: Handle time or frequency steps location correctly. + + > 0.1.4: Performance improvement. + + +- [scoping_get_attribute](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/scoping_get_attribute.md) + + > 0.1.0: Add new supported property name 'maximum_id' returning an int. + - [transpose](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/scoping/transpose.md) @@ -5498,6 +6275,11 @@ Upgraded documentation > 1.0.0: Fixed issue while reading csv with multiple fields and common time id between fields. +- [deserializer](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/deserializer.md) + + > 1.0.0: The stream_type input is made optional. + + - [export_symbolic_workflow](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/export_symbolic_workflow.md) > 0.1.0: Changed the default name of input pin 1 to 'workflow_path', the previous name 'path' is kept as an alias. @@ -5512,6 +6294,8 @@ Upgraded documentation > 0.0.1: Internal refactoring to use Scoping Iterators. + > 0.0.2: Improve error messages: operator now throws typed, structured exceptions with actionable suggestions and machine-readable attributes. + - [hdf5dpf_generate_result_file](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/hdf5dpf_generate_result_file.md) @@ -5519,6 +6303,8 @@ Upgraded documentation > 0.0.2: Fix use of odd and even in pin description + > 0.0.3: Improve error messages: operator now throws typed, structured exceptions with actionable suggestions and machine-readable attributes. + - [import_symbolic_workflow](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/import_symbolic_workflow.md) @@ -5532,6 +6318,11 @@ Upgraded documentation > 0.0.1: Internal refactoring to use Scoping Iterators. +- [serializer](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/serializer.md) + + > 1.0.0: Changed default value of stream_type input pin from ASCII to binary. + + - [workflow_to_pydpf](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/serialization/workflow_to_pydpf.md) > 0.0.1: Internal refactoring to use Scoping Iterators. @@ -5583,6 +6374,8 @@ Upgraded documentation > 0.1.0: Add new supported property name 'datasize' that returns an integer. + > 0.2.0: Add new supported property name 'data' that returns a vector of the field's data's type (double for field, int for property field, string for string field, char for custom type field). + - [for_each](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/utility/for_each.md) @@ -5659,6 +6452,11 @@ Upgraded documentation > 0.1.0: Add new supported property names 'base_name' and 'field_names'. +- [strain_from_voigt_fc](https://ansys-a.devportal.io/docs/dpf-framework-2027-r1/operator-specifications/utility/strain_from_voigt_fc.md) + + > 0.0.1: If empty fields container is provided, returns the same empty fields container. + + ### Deleted operators @@ -5667,8 +6465,6 @@ Upgraded documentation #### add_rigid_body_motion_fc -#### cgns_result_provider - #### cms_dst_table_provider #### cms_matrices_provider @@ -5733,6 +6529,8 @@ Upgraded documentation #### elastic_strain_rotation_by_euler_nodes +#### elemental_mass + #### enf_rotation_by_euler_nodes #### expansion_psd @@ -5773,6 +6571,8 @@ Upgraded documentation #### matrix_inverse +#### mechanical::min_max_over_time + #### modal_superposition #### nodal_moment diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/core-concepts/field.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/core-concepts/field.md index 9930f95bc0..326c467b1d 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/core-concepts/field.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/core-concepts/field.md @@ -42,6 +42,94 @@ The size of elementary data depends on the field's location: - **Tensor**: 6 or 9 values per entity (e.g., stress: `[σx, σy, σz, τxy, τyz, τxz]`) - **ElementalNodal**: All nodal values for the element (e.g., 4-node element with 3 components: 12 values) +### ElementalNodal fields and element-type properties + +For `ElementalNodal` fields, the size of each elementary data block +depends on the **element type** of the entity it describes. Mixed-element meshes +therefore produce **variable-size** ElementalNodal fields: each element contributes +`n_nodes_per_element × n_components × n_layers` consecutive values, with no padding +between elements. + +To locate each entity's data block in the flat array without recomputing per-element +sizes, every field exposes a **`data_pointer`** array: `data_pointer[i]` is the +index in the flat `data` array where entity *i*'s elementary data begins. For +fields where every entity has the same number of components (typical `Nodal`, +`Elemental`, scalar or 3D-vector cases) the `data_pointer` is **empty** - the +simple stride `index × elementary_data_size` is sufficient. For variable-size +fields (mixed-element ElementalNodal, connectivity property fields) it is +populated and is the canonical way to slice the `data` array per entity without +walking element types upfront. + +The number of rows per element (`n_nodes_per_element` for ElementalNodal, `1` for +Elemental) is derivable from the element type alone, independently of any specific +field. This information lives on the [`meshed_region`](./dpf-types.md#meshed-region), +not on the field. Two element-type properties are central to interpreting the data +layout: + +- **Shape** (`0D`, `1D`, `2D`, `3D` -> point, beam, shell, solid), exposed on the + meshed region as the `elshape` property. It governs the geometric role of the + element and which nodes carry physically meaningful results. (Note that + `dimensionality` in DPF is a distinct, field-level concept - scalar, vector, + tensor - and does not describe element geometry.) +- **Order**. Second-order (quadratic) element types have **mid-side nodes** in + addition to their corner nodes. This is a topology fact of the element type + itself. + +Shape and order are properties of the **element type**; they are not field-level +concepts. The field's `location` only states *where* the data sits (`Nodal`, +`Elemental`, `ElementalNodal`); it does not encode the element shape, order, or +node count. + +Whether an ElementalNodal field defined on a mesh with second-order elements +actually contains rows for those mid-side nodes is a separate, **field-level** +property. It is recorded as a boolean flag on the [field definition](#field-definition) +(`has_midnode_data` in the C++ API). Two ElementalNodal fields can share the same +support and still differ in how much data they store per second-order element: one +may carry only corner-node rows, another the full corner + mid-node layout. See +[Mid-node values and `extend_to_mid_nodes`](#mid-node-values-and-extend_to_mid_nodes) +below for how to move between the two. + +#### Entity ID uniqueness across element types + +Element IDs used in the `scoping` of an `Elemental` or `ElementalNodal` field are +**globally unique within the `MeshedRegion`**, across all element types. A given +integer ID identifies exactly one element regardless of whether it is a tetrahedron, +hexahedron, shell, beam, or point. The same uniqueness guarantee applies to node +IDs in `Nodal` scopings. The scoping's ID list is therefore sufficient on its own to +locate each entity in the mesh - no element-type lookup is needed to disambiguate +IDs. + +#### Mid-node values and `extend_to_mid_nodes` + +When an ElementalNodal field is read from a solver file that produced results at +both corner and mid-side nodes, the field already contains one row per node per +element - corner and mid-node rows interleaved per element in the order declared by +the element's connectivity. + +Solver files that only store corner-node values for second-order elements produce +an ElementalNodal field with corner-node rows only. To obtain a field that also +carries mid-node rows for downstream consumers that expect them, use the +[`extend_to_mid_nodes`](../operator-specifications/averaging/extend_to_mid_nodes.md) +operator (or [`extend_to_mid_nodes_fc`](../operator-specifications/averaging/extend_to_mid_nodes_fc.md) +for a fields container). It interpolates corner-node values onto the mid-side nodes, +producing a field whose elementary data sizes match the full corner + mid-node +layout. + +#### Homogeneous sub-fields per element type + +When downstream code needs to process the data array as a regular block - for +example reshaping it as `(n_entities, rows_per_entity * components)` - the +variable-size layout of a mixed-element ElementalNodal field becomes an obstacle. +The recommended strategy is to **split by element type**: use the +[`split_on_property_type`](../operator-specifications/scoping/split_on_property_type.md) +operator with the `eltype` property to produce one scoping per element type +(triangles, quads, tets, hexes, ...). Re-evaluating (or rescoping) the result for +each scoping yields homogeneous-size sub-fields, one per element type, that can +each be processed as a regular block without per-element bookkeeping. Splitting +on the coarser `elshape` property (solid, shell, beam, point) is not sufficient +on its own: a single shape class can still mix element types with different node +counts (for example `tet4` and `hex8` are both solids). + ### Unit The **unit** defines the measurement system for all values in the field. All data in a field shares the same unit. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/index.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/index.md index a66e5138b9..5c3820a171 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/index.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/index.md @@ -17,15 +17,15 @@ The Ansys Data Processing Framework (DPF) provides numerical simulation users an With DPF, you can perform complex preprocessing or postprocessing of large amounts of simulation data within a simulation workflow. DPF is an independent, physics-agnostic tool that you can plug into many apps for both data input and data output, including visualization and result plots. -The following table shows an exhaustive list of solver apps supported by DPF and their related formats: +The following table shows an exhaustive list of solver apps, also called result file types, supported by DPF and their related result file extensions: -| **Solver** | **File format** | **DPF version required** | -|--------------------|---------------------------------|-------------------------------------| -| MAPDL | .rst, .mode, .rth, .rfrq, .rdsp | **1.0** (*2021 R1*) and later | -| MAPDL | .psd, .prs | **10.0** (*2025 R2 pre0*) and later | -| LS DYNA | .d3plot, .binout | **4.0** (*2022 R2*) and later | -| FLUENT | .cas/dat.h5, .flprj | **7.0** (*2024 R1 pre0*) and later | -| CFX | .res, .flprj | **7.0** (*2024 R1 pre0*) and later | +| **Result file type (Solver)** | **Result file extension** | **DPF version required** | +| ----------------------------- | ------------------------- | ------------------------ | +| MAPDL | `.rst`, `.mode`, `.rth`, `.rfrq`, `.rdsp` | **1.0** (*2021 R1*) and later | +| MAPDL | `.psd`, `.prs` | **10.0** (*2025 R2 pre0*) and later | +| LS-DYNA | `.d3plot`, `.binout` | **4.0** (*2022 R2*) and later | +| Fluent | `.cas.h5`, `.dat.h5`, `.flprj` | **7.0** (*2024 R1 pre0*) and later | +| CFX | `.res`, `.flprj` | **7.0** (*2024 R1 pre0*) and later | Using the many DPF operators that are available, you can manipulate and transform this data. You can also chain operators together to create simple or complex data-processing workflows that you can reuse for repeated or future evaluations. @@ -45,7 +45,7 @@ Thanks to continued development, new capabilities are frequently added. **Generic interface** -DPF is physics-agnostic, which means that its use is not limited to a particular field, physics solution, or file format. +DPF is physics-agnostic, which means that its use is not limited to a particular field, physics solution, or result file type. **Extensibility and customization** @@ -54,7 +54,7 @@ DPF is developed around two core entities: - Data represented as a **field** - An **operator** to act upon this data -Each DPF capability is developed through operators that allow for componentization of the framework. Because DPF is plugin-based, new features or formats can be easily added. +Each DPF capability is developed through operators that allow for componentization of the framework. Because DPF is plugin-based, new features or result file types can be easily added. ## Install DPF diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/compression_category.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/compression_category.md index 2df026316f..746af83161 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/compression_category.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/compression_category.md @@ -6,3 +6,7 @@ - [quantization](quantization.md) - [quantization fc](quantization_fc.md) - [zfp decompress](zfp_decompress.md) +- [zstd compress](zstd_compress.md) +- [zstd compress fc](zstd_compress_fc.md) +- [zstd decompress](zstd_decompress.md) +- [zstd decompress fc](zstd_decompress_fc.md) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress.md new file mode 100644 index 0000000000..814f6b57c0 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress.md @@ -0,0 +1,171 @@ +--- +category: compression +plugin: N/A +license: None +--- + +# compression:zstd compress (field) + +**Version: 0.0.0** + +## Description + +Compresses the data of a field with ZSTD compression algorithm. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [input_field](#input_0) | Required|[`field`](../../core-concepts/dpf-types.md#field), [`custom_type_field`](../../core-concepts/dpf-types.md#custom-type-field) | +| 2 | [zstd_level](#input_2) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 3 | [num_threads](#input_3) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | + + + +### input_field (Pin 0) + +- **Required:** Yes +- **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field), [`custom_type_field`](../../core-concepts/dpf-types.md#custom-type-field) + +Field or custom type field of type "double" to compress. + + +### zstd_level (Pin 2) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Compression level : from 0 to 20. Default = 3. + High compression level increase computation time. + + +### num_threads (Pin 3) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Number of threads for parallelization : from 0 to 20. Default = 4. + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [compressed_output](#output_0) |[`generic_data_container`](../../core-concepts/dpf-types.md#generic-data-container) | +| **1**| [output_bytes_size](#output_1) |[`uint64`](../../core-concepts/dpf-types.md#standard-types) | + + + +### compressed_output (Pin 0) + +- **Expected type(s):** [`generic_data_container`](../../core-concepts/dpf-types.md#generic-data-container) + +Generic data container containing the following elements needed for decompression : +- Uncompressed metadata (header, support, field definition) +- Compressed data +- Compressed scoping and its location +- Compressed data pointer if it exists +- Input field type (field or custom type field) + + + +### output_bytes_size (Pin 1) + +- **Expected type(s):** [`uint64`](../../core-concepts/dpf-types.md#standard-types) + +Total size of compressed data in bytes. + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: compression + + **Plugin**: N/A + + **Scripting name**: zstd_compress + + **Full name**: compression.zstd_compress + + **Internal name**: zstd_compress + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("zstd_compress"); // operator instantiation +op.connect(0, my_input_field); +op.connect(2, my_zstd_level); +op.connect(3, my_num_threads); +ansys::dpf::GenericDataContainer my_compressed_output = op.getOutput(0); +uint64_t my_output_bytes_size = op.getOutput(1); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.compression.zstd_compress() # operator instantiation +op.inputs.input_field.connect(my_input_field) +op.inputs.zstd_level.connect(my_zstd_level) +op.inputs.num_threads.connect(my_num_threads) +my_compressed_output = op.outputs.compressed_output() +my_output_bytes_size = op.outputs.output_bytes_size() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.compression.zstd_compress() # operator instantiation +op.inputs.input_field.Connect(my_input_field) +op.inputs.zstd_level.Connect(my_zstd_level) +op.inputs.num_threads.Connect(my_num_threads) +my_compressed_output = op.outputs.compressed_output.GetData() +my_output_bytes_size = op.outputs.output_bytes_size.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress_fc.md new file mode 100644 index 0000000000..90ce025207 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_compress_fc.md @@ -0,0 +1,171 @@ +--- +category: compression +plugin: N/A +license: None +--- + +# compression:zstd compress (fields container) + +**Version: 0.0.0** + +## Description + +Compresses a fields container with ZSTD compression algorithm. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [input_fc](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container), [`custom_type_fields_container`](../../core-concepts/dpf-types.md#custom-type-fields-container) | +| 2 | [zstd_level](#input_2) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 3 | [num_threads](#input_3) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | + + + +### input_fc (Pin 0) + +- **Required:** Yes +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container), [`custom_type_fields_container`](../../core-concepts/dpf-types.md#custom-type-fields-container) + +Fields container or custom type fields container of type "double" to compress. + + +### zstd_level (Pin 2) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Compression level : from 0 to 20. Default = 3. + High compression level increase computation time. + + +### num_threads (Pin 3) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Number of threads for parallelization : from 0 to 20. Default = 4. + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [compressed_fc](#output_0) |[`any_collection`](../../core-concepts/dpf-types.md#any-collection) | +| **1**| [output_bytes_size](#output_1) |[`uint64`](../../core-concepts/dpf-types.md#standard-types) | + + + +### compressed_fc (Pin 0) + +- **Expected type(s):** [`any_collection`](../../core-concepts/dpf-types.md#any-collection) + +Collection of generic data containers containing the following elements needed for the decompression of each field : +- Uncompressed metadata (header, support, field definition) +- Compressed data +- Compressed scoping and its location +- Compressed data pointer if it exists +- Input field type (field or custom type field) + + + +### output_bytes_size (Pin 1) + +- **Expected type(s):** [`uint64`](../../core-concepts/dpf-types.md#standard-types) + +Total size of the compressed data in bytes (sum of the sizes in the vector of output pin 1). + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: compression + + **Plugin**: N/A + + **Scripting name**: zstd_compress_fc + + **Full name**: compression.zstd_compress_fc + + **Internal name**: zstd_compress_fc + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("zstd_compress_fc"); // operator instantiation +op.connect(0, my_input_fc); +op.connect(2, my_zstd_level); +op.connect(3, my_num_threads); +ansys::dpf::AnyCollection my_compressed_fc = op.getOutput(0); +uint64_t my_output_bytes_size = op.getOutput(1); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.compression.zstd_compress_fc() # operator instantiation +op.inputs.input_fc.connect(my_input_fc) +op.inputs.zstd_level.connect(my_zstd_level) +op.inputs.num_threads.connect(my_num_threads) +my_compressed_fc = op.outputs.compressed_fc() +my_output_bytes_size = op.outputs.output_bytes_size() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.compression.zstd_compress_fc() # operator instantiation +op.inputs.input_fc.Connect(my_input_fc) +op.inputs.zstd_level.Connect(my_zstd_level) +op.inputs.num_threads.Connect(my_num_threads) +my_compressed_fc = op.outputs.compressed_fc.GetData() +my_output_bytes_size = op.outputs.output_bytes_size.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress.md new file mode 100644 index 0000000000..23efe86b46 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress.md @@ -0,0 +1,135 @@ +--- +category: compression +plugin: N/A +license: None +--- + +# compression:zstd decompress (field) + +**Version: 0.0.0** + +## Description + +Decompresses a field compressed with ZSTD compression algorithm. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [compressed_input](#input_0) | Required|[`generic_data_container`](../../core-concepts/dpf-types.md#generic-data-container) | + + + +### compressed_input (Pin 0) + +- **Required:** Yes +- **Expected type(s):** [`generic_data_container`](../../core-concepts/dpf-types.md#generic-data-container) + +Generic data container containing the following elements needed for decompression : +- Uncompressed metadata (header, support, field definition) +- Compressed data +- Compressed scoping and its location +- Compressed data pointer if it exists +- Output field type (field or custom type field) + + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [decompressed_field](#output_0) |[`field`](../../core-concepts/dpf-types.md#field), [`custom_type_field`](../../core-concepts/dpf-types.md#custom-type-field) | + + + +### decompressed_field (Pin 0) + +- **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field), [`custom_type_field`](../../core-concepts/dpf-types.md#custom-type-field) + +Decompressed field or custom type field. + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: compression + + **Plugin**: N/A + + **Scripting name**: zstd_decompress + + **Full name**: compression.zstd_decompress + + **Internal name**: zstd_decompress + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("zstd_decompress"); // operator instantiation +op.connect(0, my_compressed_input); +ansys::dpf::Field my_decompressed_field = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.compression.zstd_decompress() # operator instantiation +op.inputs.compressed_input.connect(my_compressed_input) +my_decompressed_field_as_field = op.outputs.decompressed_field_as_field() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.compression.zstd_decompress() # operator instantiation +op.inputs.compressed_input.Connect(my_compressed_input) +my_decompressed_field = op.outputs.decompressed_field.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress_fc.md new file mode 100644 index 0000000000..23d377b9dc --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/compression/zstd_decompress_fc.md @@ -0,0 +1,135 @@ +--- +category: compression +plugin: N/A +license: None +--- + +# compression:zstd decompress (fields container) + +**Version: 0.0.0** + +## Description + +Decompresses a fields container compressed with ZSTD compression algorithm. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [compressed_input](#input_0) | Required|[`any_collection`](../../core-concepts/dpf-types.md#any-collection) | + + + +### compressed_input (Pin 0) + +- **Required:** Yes +- **Expected type(s):** [`any_collection`](../../core-concepts/dpf-types.md#any-collection) + +Collection of generic data containers containing the following elements needed for the decompression of each field : +- Uncompressed metadata (header, support, field definition) +- Compressed data +- Compressed scoping and its location +- Compressed data pointer if it exists +- Input field type (field or custom type field) + + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [decompressed_fc](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container), [`custom_type_fields_container`](../../core-concepts/dpf-types.md#custom-type-fields-container) | + + + +### decompressed_fc (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container), [`custom_type_fields_container`](../../core-concepts/dpf-types.md#custom-type-fields-container) + +Decompressed fields container or custom type fields container. + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: compression + + **Plugin**: N/A + + **Scripting name**: zstd_decompress_fc + + **Full name**: compression.zstd_decompress_fc + + **Internal name**: zstd_decompress_fc + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("zstd_decompress_fc"); // operator instantiation +op.connect(0, my_compressed_input); +ansys::dpf::FieldsContainer my_decompressed_fc = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.compression.zstd_decompress_fc() # operator instantiation +op.inputs.compressed_input.connect(my_compressed_input) +my_decompressed_fc_as_fields_container = op.outputs.decompressed_fc_as_fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.compression.zstd_decompress_fc() # operator instantiation +op.inputs.compressed_input.Connect(my_compressed_input) +my_decompressed_fc = op.outputs.decompressed_fc.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/accumulation_per_scoping.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/accumulation_per_scoping.md index 1bbfc0c5c0..6c549e3e6a 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/accumulation_per_scoping.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/accumulation_per_scoping.md @@ -10,7 +10,21 @@ license: any_dpf_supported_increments ## Description -This operator calculates the sum and the percentage of total sum of the input fields container for each scoping of the scopings container. + +For each scoping in the input scopings container, computes the entity-wise sum of the input fields container values over that scoping, and the percentage of that sum relative to a master sum. +The sum is computed independently for each field in the container; the output contains one output field per input field, regardless of the container label (time, complex, or other). + +The master sum is computed by summing all entity values of the input fields container restricted to the master scoping when provided, or of the full input fields container otherwise. + +For cyclic and multistage models, the master scoping and the input scopings container are first expanded to the full mesh. +When a master scoping is provided, each scoping in the input scopings container is intersected with it before accumulation. + +Each output field contains one entity per scoping plus one master entity: +- entity id $0$ holds the master sum (or $100\%$ for the percentage output). +- entity ids $1$ to $N$ hold the sum (or percentage of the master sum) for the $N$ scopings of the input scopings container, in the same order. + +The percentage is set to $0$ when the master sum is below machine epsilon. + ## Inputs @@ -22,8 +36,8 @@ Each parameter is detailed in the sections that follow the table. |------------|------|--------|------------------| | 0 | [fields_container](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | | 1 | [mesh_scoping](#input_1) | |[`scoping`](../../core-concepts/dpf-types.md#scoping) | -| 3 | [streams_container](#input_3) | Required|[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | -| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | |[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | | 5 | [scopings_container](#input_5) | Required|[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) | @@ -33,7 +47,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container containing the values to accumulate per scoping. ### mesh_scoping (Pin 1) @@ -41,23 +55,23 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) -Master scoping. All scopings in the Scopings Container will be intersected with this scoping. +Master scoping. When provided, each scoping in the input scopings container is intersected with it, and the master sum is computed over this scoping. When omitted, the master sum is computed over the full input fields container and no intersection is performed. ### streams_container (Pin 3) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) - +Streams describing the source result file. Required when no data sources is provided. Used to detect cyclic and multistage models and expand the scopings accordingly. Takes precedence over the data sources when both are provided. ### data_sources (Pin 4) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) - +Data sources describing the source result file. Required when no streams is provided. Used to detect cyclic and multistage models and expand the scopings accordingly. ### scopings_container (Pin 5) @@ -65,7 +79,7 @@ Master scoping. All scopings in the Scopings Container will be intersected with - **Required:** Yes - **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) -The intersection between the of the first will be used. +Scopings container. The sum of the input fields container is computed over each scoping it contains. Must contain at least one scoping. ## Outputs @@ -85,14 +99,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container with one field per input field. Each field holds the master sum at entity id $0$ and the per-scoping sums at entity ids $1$ to $N$, following the order of the input scopings container. ### accumulation_per_scoping_percentage (Pin 1) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container with the same layout as the accumulation output. Entity id $0$ is $100$, entity ids $1$ to $N$ contain the per-scoping sum expressed as a percentage of the master sum, or $0$ when the master sum is below machine epsilon. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/correlation.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/correlation.md index 3c1351b3f1..e262083793 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/correlation.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/correlation.md @@ -10,7 +10,17 @@ license: any_dpf_supported_increments ## Description -Takes two fields and a weighting and computes their correlation: aMb/(||aMa||.||bMb||). If several b fields are provided (via a fields container), correlation is computed for each of them. + +Computes the [correlation coefficient](https://en.wikipedia.org/wiki/Pearson_correlation_coefficient) +$\rho(a,b)$ between two fields using an optional [weighting field $M$](https://en.wikipedia.org/wiki/Pearson_correlation_coefficient#Weighted_correlation_coefficient): + +$$\rho(a,b) = \frac{\sum_i a_i\,M_i\,b_i}{\sqrt{\sum_i a_i^2\,M_i}\cdot\sqrt{\sum_i b_i^2\,M_i}}$$ + +The sums run over the intersection of the scopings of $a$, $b$, and $M$. +When no weighting field $M$ is provided, the standard (unweighted) $L^2$ dot product is used. +If a fields container is provided at pin 1, the correlation coefficient is computed independently +for each field in the container against the reference field $a$. + ## Inputs @@ -22,8 +32,8 @@ Each parameter is detailed in the sections that follow the table. |------------|------|--------|------------------| | 0 | [fieldA](#input_0) | Required|[`field`](../../core-concepts/dpf-types.md#field), [`double`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) | | 1 | [fieldB](#input_1) | Required|[`field`](../../core-concepts/dpf-types.md#field), [`fields_container`](../../core-concepts/dpf-types.md#fields-container) | -| 2 | [weights](#input_2) | Required|[`field`](../../core-concepts/dpf-types.md#field), [`fields_container`](../../core-concepts/dpf-types.md#fields-container) | -| 3 | [absoluteValue](#input_3) | Required|[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 2 | [weights](#input_2) | |[`field`](../../core-concepts/dpf-types.md#field), [`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [absoluteValue](#input_3) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -32,7 +42,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field), [`double`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) -Field a. The reference field. +Reference field $a$. ### fieldB (Pin 1) @@ -40,23 +50,23 @@ Field a. The reference field. - **Required:** Yes - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field), [`fields_container`](../../core-concepts/dpf-types.md#fields-container) -Field b. If a fields container is provided, correlation is computed for each field. +Field $b$, or a fields container. When a fields container is provided, the correlation is computed independently for each field against the reference field $a$. ### weights (Pin 2) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field), [`fields_container`](../../core-concepts/dpf-types.md#fields-container) -Field M, optional weighting for correlation computation. +Optional weighting field $M$. When omitted, the standard unweighted $L^2$ inner product is used. ### absoluteValue (Pin 3) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -If true, correlation factor is ||aMb||/(||aMa||.||bMb||) +When true, returns $|\rho|$ instead of $\rho$. ## Outputs @@ -76,14 +86,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) -Correlation factor for each input field b. +Correlation coefficient for each input field $b$. The output field contains one entity per input field, labelled from $1$ to $N$. ### index (Pin 1) - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) -If several b are provided, this output contains the index of the highest correlation factor. +Zero-based index of the field in the input fields container that produced the highest correlation coefficient. Only meaningful when pin 1 receives a fields container. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/entity_extractor.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/entity_extractor.md index 2e654cfcb5..0a3a6df9ea 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/entity_extractor.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/entity_extractor.md @@ -10,7 +10,13 @@ license: None ## Description -Extracts an entity from a field, based on its ID. + +Extracts a single scalar value from a field by its zero-based scoping index $k$ (pin 1). +The output field contains one entity: the entity whose scoping index is $k$, +with its entity ID resolved from the input scoping and its first data component copied. +Only the first component is extracted regardless of the input field's dimensionality. +Note: $k$ is the index within the field's scoping, not the entity ID. + ## Inputs @@ -30,7 +36,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Input field from which the entity is extracted. ### scalar_int (Pin 1) @@ -38,7 +44,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) - +Zero-based scoping index $k$ of the entity to extract. ## Outputs @@ -50,6 +56,7 @@ Each output is detailed in the sections that follow the table. | Pin number | Name | Expected type(s) | |-------|------|------------------| | **0**| [field](#output_0) |[`field`](../../core-concepts/dpf-types.md#field) | +| **1**| [int32](#output_1) |[`int32`](../../core-concepts/dpf-types.md#standard-types) | @@ -57,7 +64,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) +Single-entity scalar field holding the first component of the extracted entity. The entity ID is the ID of the $k$-th entity in the input scoping. Always scalar regardless of the input field's dimensionality. + + +### int32 (Pin 1) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +Echo of the input index $k$ (pin 1). ## Configurations @@ -105,6 +119,7 @@ ansys::dpf::Operator op("entity_extractor"); // operator instantiation op.connect(0, my_fieldA); op.connect(1, my_scalar_int); ansys::dpf::Field my_field = op.getOutput(0); +int my_int32 = op.getOutput(1); ``` @@ -118,6 +133,7 @@ op = dpf.operators.math.None() # operator instantiation op.inputs.fieldA.connect(my_fieldA) op.inputs.scalar_int.connect(my_scalar_int) my_field = op.outputs.field() +my_int32 = op.outputs.int32() ``` @@ -132,6 +148,7 @@ op = dpf.operators.math.None() # operator instantiation op.inputs.fieldA.Connect(my_fieldA) op.inputs.scalar_int.Connect(my_scalar_int) my_field = op.outputs.field.GetData() +my_int32 = op.outputs.int32.GetData() ```
diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential.md index 36320391cc..0bac48f8c9 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential.md @@ -68,6 +68,13 @@ This operator supports [configuration options](../../core-concepts/operator-conf If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. +### [permissive](../../core-concepts/operator-configurations.md#permissive) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, warning checks (like unit or data sizes) won't be done. + ## Scripting diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential_fc.md index c19f6147a7..f38edb9948 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential_fc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/exponential_fc.md @@ -26,6 +26,7 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| | 0 | [fields_container](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 1 | [apply_to_time_freq_support](#input_1) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -36,6 +37,14 @@ Each parameter is detailed in the sections that follow the table. Dimensionless field, fields container, or numeric data. + +### apply_to_time_freq_support (Pin 1) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +Boolean value indicating if the exponential must be applied to the time/frequency values of the time/frequency support attached to the fields container (if present). Default to false. + ## Outputs @@ -68,6 +77,13 @@ This operator supports [configuration options](../../core-concepts/operator-conf If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. +### [permissive](../../core-concepts/operator-configurations.md#permissive) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, warning checks (like unit or data sizes) won't be done. + ## Scripting @@ -99,6 +115,7 @@ Each example shows how to instantiate the operator, connect the required inputs, ansys::dpf::Operator op("exponential_fc"); // operator instantiation op.connect(0, my_fields_container); +op.connect(1, my_apply_to_time_freq_support); ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); ``` @@ -111,6 +128,7 @@ import ansys.dpf.core as dpf op = dpf.operators.math.None() # operator instantiation op.inputs.fields_container.connect(my_fields_container) +op.inputs.apply_to_time_freq_support.connect(my_apply_to_time_freq_support) my_fields_container = op.outputs.fields_container() ``` @@ -124,6 +142,7 @@ import Ans.DataProcessing as dpf op = dpf.operators.math.None() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) +op.inputs.apply_to_time_freq_support.Connect(my_apply_to_time_freq_support) my_fields_container = op.outputs.fields_container.GetData() ``` diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln.md index e2f1b5dc70..922a17791a 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln.md @@ -68,6 +68,13 @@ This operator supports [configuration options](../../core-concepts/operator-conf If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. +### [permissive](../../core-concepts/operator-configurations.md#permissive) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, warning checks (like unit or data sizes) won't be done. + ## Scripting diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln_fc.md index 6899f3cc48..e2260d8ea9 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln_fc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/ln_fc.md @@ -26,6 +26,7 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| | 0 | [fields_container](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 1 | [apply_to_time_freq_support](#input_1) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -36,6 +37,14 @@ Each parameter is detailed in the sections that follow the table. Dimensionless field, fields container, or numeric data. + +### apply_to_time_freq_support (Pin 1) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +Boolean value indicating if the natural logarithm must be applied to the time/frequency values of the time/frequency support attached to the fields container (if present). Default to false. + ## Outputs @@ -68,6 +77,13 @@ This operator supports [configuration options](../../core-concepts/operator-conf If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. +### [permissive](../../core-concepts/operator-configurations.md#permissive) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, warning checks (like unit or data sizes) won't be done. + ## Scripting @@ -99,6 +115,7 @@ Each example shows how to instantiate the operator, connect the required inputs, ansys::dpf::Operator op("ln_fc"); // operator instantiation op.connect(0, my_fields_container); +op.connect(1, my_apply_to_time_freq_support); ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); ``` @@ -111,6 +128,7 @@ import ansys.dpf.core as dpf op = dpf.operators.math.None() # operator instantiation op.inputs.fields_container.connect(my_fields_container) +op.inputs.apply_to_time_freq_support.connect(my_apply_to_time_freq_support) my_fields_container = op.outputs.fields_container() ``` @@ -124,6 +142,7 @@ import Ans.DataProcessing as dpf op = dpf.operators.math.None() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) +op.inputs.apply_to_time_freq_support.Connect(my_apply_to_time_freq_support) my_fields_container = op.outputs.fields_container.GetData() ``` diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mac.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mac.md index 8249c8d461..53e664a920 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mac.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mac.md @@ -10,7 +10,19 @@ license: any_dpf_supported_increments ## Description -Computes MAC Matrix between two fields container, both for real and complex cases. For mixed cases (real-complex and complex) only the real part is considered. Providing inputs with the same component scoping is an user responsability. + +Computes the [Modal Assurance Criterion (MAC)](https://ansyshelp.ansys.com/public/account/secured?returnurl=/Views/Secured/corp/v261/en/ans_thry/thy_post16.html) +matrix between two sets of mode shapes. +For each pair of modes $\phi_i$ (from container A) and $\phi_j$ (from container B): + +$$MAC_{ij} = \frac{|\phi_i^{\,*T} M \phi_j|^2}{(\phi_i^{\,*T} M \phi_i)(\phi_j^{\,*T} M \phi_j)}$$ + +where $^{*T}$ denotes the conjugate transpose and $M$ is the optional mass weighting matrix. +When $M$ is omitted, the standard (unweighted) inner product is used. + +For mixed real-complex input (one container real, one complex), only the real parts are used. +Both containers must share the same number of components; this is not verified by the operator. + ## Inputs @@ -22,7 +34,7 @@ Each parameter is detailed in the sections that follow the table. |------------|------|--------|------------------| | 0 | [fields_containerA](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | | 1 | [fields_containerB](#input_1) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | -| 2 | [weights](#input_2) | Required|[`field`](../../core-concepts/dpf-types.md#field) | +| 2 | [weights](#input_2) | |[`field`](../../core-concepts/dpf-types.md#field) | @@ -31,7 +43,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) -Fields Container A. +Fields container $A$. Must have a time label and contain one field per mode shape. ### fields_containerB (Pin 1) @@ -39,15 +51,15 @@ Fields Container A. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) -Fields Container B. +Fields container $B$. Must have a time label and contain one field per mode shape. ### weights (Pin 2) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) -Field M, optional weighting for MAC Matrix computation. +Optional mass weighting field $M$. When omitted, the standard unweighted inner product is used. ## Outputs @@ -66,7 +78,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) -MAC Matrix for all the combinations between mode fields of Field Container A and Field Container B. Results listed row by row. +MAC matrix of size $N_A \times N_B$, where $N_A$ and $N_B$ are the number of mode shapes in containers A and B respectively. Entries are stored row by row: entry at position $(i,j)$ is $MAC_{ij}$. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/make_one_on_comp.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/make_one_on_comp.md index b2a654102b..d3bfbe8500 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/make_one_on_comp.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/make_one_on_comp.md @@ -10,7 +10,13 @@ license: None ## Description -Takes the input field's scoping and creates a field full of zeros, except for the indexes from pin 1 that will hold 1.0. + +Returns a scalar field with the same scoping as the input field. +All values are set to $0.0$, except for entity at index $k$ in the scoping (pin 1) where the value is set to $1.0$. +This produces the standard basis vector $e_k$ over the input scoping. +The output is always scalar (one component per entity), regardless of the input field's dimensionality. +Note: $k$ is the zero-based iteration index within the field's scoping, not the entity ID. + ## Inputs @@ -30,7 +36,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Input field. Its scoping is used as the scoping of the output field. ### scalar_int (Pin 1) @@ -38,7 +44,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) - +Zero-based iteration index $k$ of the entity to set to $1.0$. ## Outputs @@ -57,7 +63,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Scalar output field (one component per entity) with the same scoping as the input. All values are $0.0$ except the entity at iteration index $k$ which holds $1.0$. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mechanical_min_max_over_time.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mechanical_min_max_over_time.md index d4208ce90b..e3d62cb0a2 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mechanical_min_max_over_time.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/mechanical_min_max_over_time.md @@ -10,7 +10,22 @@ license: None ## Description -Evaluates minimum/maximum over time/frequency. + +Dispatch operator that selects and runs a minimum/maximum operator over time or frequency, based on the integer selector on pin 5. + +Selector values on pin 5: + +- `0`: `min_max_by_time` - per-step, per-component minimum and maximum, aggregating every entity of each field (elemental-nodal values collapse into the reduction). +- `1`: `max_over_time_by_entity` - per-entity, per-component maximum across all time or frequency steps. +- `2`: `time_of_max_by_entity` - time or frequency at which each per-entity, per-component maximum occurs. +- `7`: `min_over_time_by_entity` - per-entity, per-component minimum across all time or frequency steps. +- `8`: `time_of_min_by_entity` - time or frequency at which each per-entity, per-component minimum occurs. + +Selectors 1, 2, 7 and 8 keep the entity axis: the underlying operator (`min_max_over_time_by_entity`) returns one value per entity, per component and per shell layer when available. Selector 0 (`min_max_by_time`) reduces across entities instead. + +Output pin 0 holds the primary result of the selected operator. +Output pin 1 is optional and populated only when the selected operator produces two outputs (currently only selector `0`). + ## Inputs @@ -30,7 +45,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Input fields container passed through to the selected underlying operator. ### int32 (Pin 5) @@ -38,7 +53,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) -Define min or max. +Selector integer that chooses the underlying operator. Supported values: `0` (min_max_by_time), `1` (max_over_time_by_entity), `2` (time_of_max_by_entity), `7` (min_over_time_by_entity), `8` (time_of_min_by_entity). ## Outputs @@ -58,14 +73,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Primary result forwarded from the selected underlying operator. ### field_container_2 (Pin 1) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Secondary result forwarded from the selected underlying operator. Populated only when the underlying operator produces two outputs (currently only selector `0` populates this pin). ## Configurations @@ -90,9 +105,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: mechanical_min_max_over_time - **Full name**: None + **Full name**: math.mechanical_min_max_over_time **Internal name**: mechanical::min_max_over_time @@ -123,7 +138,7 @@ ansys::dpf::FieldsContainer my_field_container_2 = op.getOutput0 | [natural_freq](#input_0) | Required|[`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 0 | [natural_freq](#input_0) | Required|[`vector`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support) | | 1 | [const_ratio](#input_1) | |[`double`](../../core-concepts/dpf-types.md#standard-types) | | 2 | [ratio_by_modes](#input_2) | |[`vector`](../../core-concepts/dpf-types.md#standard-types) | | 3 | [m_coefficient](#input_3) | Required|[`double`](../../core-concepts/dpf-types.md#standard-types) | @@ -31,7 +42,7 @@ Each parameter is detailed in the sections that follow the table. ### natural_freq (Pin 0) - **Required:** Yes -- **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types) +- **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support) input vector expects natural frequencies. @@ -84,7 +95,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) -field of modal damping ratio. +Field of modal damping ratios $\xi_i$, one value per mode, in the same order as the input natural frequencies. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/modal_participation.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/modal_participation.md index 98e6d8786c..fffcbba77d 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/modal_participation.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/modal_participation.md @@ -1,7 +1,7 @@ --- category: math plugin: core -license: any_dpf_supported_increments +license: None --- # math:modal participation @@ -115,7 +115,7 @@ This operator can be accessed through scripting interfaces using these identifie **Internal name**: harmonic::modal_participation - **License**: any_dpf_supported_increments + **License**: None ## Examples diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/time_freq_interpolation.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/time_freq_interpolation.md index 7ef72b29bb..0fa8bce0bb 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/time_freq_interpolation.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/math/time_freq_interpolation.md @@ -33,6 +33,7 @@ Each parameter is detailed in the sections that follow the table. | 2 | [step](#input_2) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | | 3 | [interpolation_type](#input_3) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | | 4 | [force_new_time_freq_support](#input_4) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 5 | [interpolation_scale](#input_5) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | | 8 | [time_freq_support](#input_8) | |[`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support) | @@ -76,6 +77,14 @@ if a Field is set as input, the step ids should be its scoping. If set to true, the output fields container will always have a new time freq support rescoped to the output time_freq_values (default is false). If set to false, the time freq support is only recreated when time or frequency values are between existing ones. + +### interpolation_scale (Pin 5) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Integer indicating the scale in which interpolation is performed: 0 (linear scale - default), 1 (log-log scale). + ### time_freq_support (Pin 8) @@ -166,6 +175,7 @@ op.connect(1, my_time_freq_values); op.connect(2, my_step); op.connect(3, my_interpolation_type); op.connect(4, my_force_new_time_freq_support); +op.connect(5, my_interpolation_scale); op.connect(8, my_time_freq_support); ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); ansys::dpf::TimeFreqSupport my_time_freq_support = op.getOutput(1); @@ -184,6 +194,7 @@ op.inputs.time_freq_values.connect(my_time_freq_values) op.inputs.step.connect(my_step) op.inputs.interpolation_type.connect(my_interpolation_type) op.inputs.force_new_time_freq_support.connect(my_force_new_time_freq_support) +op.inputs.interpolation_scale.connect(my_interpolation_scale) op.inputs.time_freq_support.connect(my_time_freq_support) my_fields_container = op.outputs.fields_container() my_time_freq_support = op.outputs.time_freq_support() @@ -203,6 +214,7 @@ op.inputs.time_freq_values.Connect(my_time_freq_values) op.inputs.step.Connect(my_step) op.inputs.interpolation_type.Connect(my_interpolation_type) op.inputs.force_new_time_freq_support.Connect(my_force_new_time_freq_support) +op.inputs.interpolation_scale.Connect(my_interpolation_scale) op.inputs.time_freq_support.Connect(my_time_freq_support) my_fields_container = op.outputs.fields_container.GetData() my_time_freq_support = op.outputs.time_freq_support.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/mesh_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/mesh_provider.md index d3c3b00878..18817d2be1 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/mesh_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/mesh_provider.md @@ -2,6 +2,11 @@ category: mesh plugin: core license: None +namespaces: + cff: [cas, flprj] + cgns: [cgns] + hdf5: [h5dpf] + vtk: [vtk] --- # mesh:mesh provider @@ -16,6 +21,15 @@ The operator attempts to read mesh data from the provided data sources. When the `permissive` configuration is enabled, the operator silently skips result files that cannot be opened or have unsupported namespaces. If `permissive` is disabled (default), errors are thrown for invalid files. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- cff: cas, flprj +- cgns: cgns +- hdf5: h5dpf +- vtk: vtk + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/meshes_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/meshes_provider.md index d0001463a7..edee3b14e3 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/meshes_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/mesh/meshes_provider.md @@ -3,6 +3,8 @@ category: mesh plugin: core license: None namespaces: + cff: [cas, flprj] + cgns: [cgns] hdf5: [h5dpf] --- @@ -18,8 +20,10 @@ The operator attempts to read mesh data from the provided data sources. When the ## Supported file types -This operator supports the following keys ([file formats](../../index.md#overview-of-dpf)) for each listed namespace (plugin/solver): +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: +- cff: cas, flprj +- cgns: cgns - hdf5: h5dpf ## Inputs diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/element_types_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/element_types_provider.md index ae36728c66..0007e0c2ab 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/element_types_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/element_types_provider.md @@ -2,6 +2,8 @@ category: metadata plugin: core license: None +namespaces: + hdf5: [h5dpf] --- # metadata:element types provider @@ -21,6 +23,12 @@ Reads element types data from the result files contained in the streams or data - new_gen_element: Element of new generation. - If the output is a PropertyField, it contains the 200 possible ElementTypesProperties for each solver element type id. These properties are in the order documented in ansys/customize/include/echprm.inc and have the meaning documented in ansys/customize/include/elccmt.inc. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- hdf5: h5dpf + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/is_cyclic.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/is_cyclic.md index 84206c7ac3..14d56c4d88 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/is_cyclic.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/is_cyclic.md @@ -16,7 +16,7 @@ Reads if the model is cyclic from the result file. ## Supported file types -This operator supports the following keys ([file formats](../../index.md#overview-of-dpf)) for each listed namespace (plugin/solver): +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: - hdf5: h5dpf diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_info_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_info_provider.md index 1d58338ba4..42eb5a9500 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_info_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_info_provider.md @@ -2,6 +2,9 @@ category: metadata plugin: core license: None +namespaces: + cff: [cas, flprj] + cgns: [cgns] --- # metadata:mesh info provider @@ -12,6 +15,13 @@ license: None Reads the mesh information, such as number of elements (common property), number of faces (Cff plugins) or scoping of parts (LSDYNA plugins) on files contained in the streams or data sources. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- cff: cas, flprj +- cgns: cgns + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_property_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_property_provider.md index 541fb84e82..4ebe3d8cfd 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_property_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/mesh_property_provider.md @@ -3,6 +3,8 @@ category: metadata plugin: core license: None namespaces: + cff: [cas, flprj] + cgns: [cgns] hdf5: [h5dpf] --- @@ -16,8 +18,10 @@ Reads a property related to the mesh, defined by its name, by calling the reader ## Supported file types -This operator supports the following keys ([file formats](../../index.md#overview-of-dpf)) for each listed namespace (plugin/solver): +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: +- cff: cas, flprj +- cgns: cgns - hdf5: h5dpf ## Inputs diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/result_info_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/result_info_provider.md index 604dc87218..ec4e124bb1 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/result_info_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/metadata/result_info_provider.md @@ -2,6 +2,11 @@ category: metadata plugin: core license: None +namespaces: + cff: [cas, flprj] + cgns: [cgns] + hdf5: [h5dpf] + vtk: [vtk] --- # metadata:result info provider @@ -12,6 +17,15 @@ license: None Reads the result information, such as available results or unit systems from the results files contained in the streams or data sources. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- cff: cas, flprj +- cgns: cgns +- hdf5: h5dpf +- vtk: vtk + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/max_over_time_by_entity.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/max_over_time_by_entity.md index 7d0dc077ba..3ff32a1fbd 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/max_over_time_by_entity.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/max_over_time_by_entity.md @@ -10,7 +10,14 @@ license: None ## Description -Evaluates maximum over time/frequency. + +Thin wrapper around `min_max_over_time_by_entity` that exposes only the per-entity, per-component maximum across all time or frequency steps. + +The result forwarded on output pin 0 is pin 1 of `min_max_over_time_by_entity` (the `max` fields container), with the same shape: one value per entity, per component and per shell layer when available. + +**When to use:** you only need the per-entity maximum over time. +Prefer `min_max_over_time_by_entity` directly when you also need the minimum, the time of extremum, or the incremental behaviour on multiple output pins. + ## Inputs @@ -31,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container aggregated per entity across all time or frequency steps. Must expose the `time` label; otherwise the input is forwarded unchanged by the underlying operator. ### abs_value (Pin 3) @@ -39,7 +46,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Should use absolute value. +When `true`, absolute values of the field entries are used before the max is computed. Default: `false`. ### compute_amplitude (Pin 4) @@ -47,7 +54,7 @@ Should use absolute value. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Do calculate amplitude. +When `true` and the input fields container has the `complex` label, the amplitude of the complex values is used before the max is computed. Ignored otherwise. Default: `false`. ## Outputs @@ -66,7 +73,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-entity, per-component maximum across all time or frequency steps. Same shape as pin 1 of `min_max_over_time_by_entity`. ## Configurations @@ -98,9 +105,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: max_over_time_by_entity - **Full name**: None + **Full name**: min_max.max_over_time_by_entity **Internal name**: max_over_time_by_entity @@ -131,7 +138,7 @@ ansys::dpf::FieldsContainer my_fields_container = op.getOutput ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Scalar field of per-component maximum values. Its scoping ids point to the input entity that holds each maximum. ## Configurations @@ -81,9 +96,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max - **Full name**: None + **Full name**: min_max.min_max **Internal name**: min_max @@ -113,7 +128,7 @@ ansys::dpf::Field my_field_max = op.getOutput(1); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max() # operator instantiation op.inputs.field.connect(my_field) my_field_min = op.outputs.field_min() my_field_max = op.outputs.field_max() @@ -127,7 +142,7 @@ my_field_max = op.outputs.field_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max() # operator instantiation op.inputs.field.Connect(my_field) my_field_min = op.outputs.field_min.GetData() my_field_max = op.outputs.field_max.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_entity.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_entity.md index 3974b9a72d..92b46a7bab 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_entity.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_entity.md @@ -10,7 +10,22 @@ license: None ## Description -Compute the entity-wise minimum (out 0) and maximum (out 1) through all fields of a fields container. + +Computes, for each entity and each component, the minimum and the maximum across all fields of the input fields container. + +Entity ids are matched across fields. +A field is skipped for a given entity if that entity id is not present in its scoping; +if the entity id has not been seen in any prior field, it is added to the output with the current field data. +Fields with no data are skipped entirely. + +The outputs share the same scoping as the first non-empty input field, augmented with any entity ids first seen in later fields. + +Within each input field, all elementary values contribute to the per-entity reduction: elemental-nodal expansions and shell-layer values (when present) are folded into the same per-component min/max. + +**When to use:** you want to keep the entity axis while reducing over the fields axis. +Example: envelope of nodal stress across load cases, giving one min/max value per node and per component. +Use `min_max_fc` to get one summary per field instead, or `min_max_over_time_by_entity` when the fields are indexed by a `time` label. + ## Inputs @@ -29,7 +44,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container whose fields are aggregated per entity and per component. ## Outputs @@ -49,14 +64,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-entity, per-component minima across all input fields. ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-entity, per-component maxima across all input fields. ## Configurations @@ -81,9 +96,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_by_entity - **Full name**: None + **Full name**: min_max.min_max_by_entity **Internal name**: min_max_by_entity @@ -113,7 +128,7 @@ ansys::dpf::Field my_field_max = op.getOutput(1); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_by_entity() # operator instantiation op.inputs.fields_container.connect(my_fields_container) my_field_min = op.outputs.field_min() my_field_max = op.outputs.field_max() @@ -127,7 +142,7 @@ my_field_max = op.outputs.field_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_by_entity() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) my_field_min = op.outputs.field_min.GetData() my_field_max = op.outputs.field_max.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_time.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_time.md index 8b3f6eb2fd..a6dbfd0eb9 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_time.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_by_time.md @@ -10,7 +10,20 @@ license: None ## Description -Evaluates minimum, maximum by time or frequency over all the entities of each field + +For each time or frequency step of the input fields container, computes the per-component minimum and maximum across all entities of the field at that step. + +Results exposed by component, collapsed by time, shell layers (when available). + +The result is grouped by all labels of the input fields container except `time`. +For every remaining label combination, the output minimum (pin 0) and maximum (pin 1) each contain one field whose entity ids are the time or frequency step ids and whose values are the per-component minima and maxima at that step. + +If the input does not contain the `time` label, the input fields container is forwarded unchanged. + +**When to use:** you want to keep the time or frequency axis but reduce across entities, giving one per-component min/max value per step. +Example: peak displacement across the mesh at every time step of a transient analysis. +Use `min_max_over_time_by_entity` for the dual reduction (keep entities, collapse time), or `min_max_fc_inc` for the incremental variant. + ## Inputs @@ -30,7 +43,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container aggregated per time or frequency step. Must expose the `time` label to trigger the aggregation; otherwise the input is forwarded unchanged. ### compute_absolute_value (Pin 2) @@ -38,7 +51,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Calculate the absolute value of field entities before computing the min/max. +When set to `true`, absolute values of the field entries are used before the min and max are computed. Default: `false`. ## Outputs @@ -58,14 +71,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-component minima grouped by all input labels except `time`. Within each output field, entity ids are the time or frequency step ids. ### max (Pin 1) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-component maxima grouped by all input labels except `time`. Within each output field, entity ids are the time or frequency step ids. ## Configurations @@ -97,9 +110,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_by_time - **Full name**: None + **Full name**: min_max.min_max_by_time **Internal name**: min_max_by_time @@ -130,7 +143,7 @@ ansys::dpf::FieldsContainer my_max = op.getOutput(1 ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_by_time() # operator instantiation op.inputs.fields_container.connect(my_fields_container) op.inputs.compute_absolute_value.connect(my_compute_absolute_value) my_min = op.outputs.min() @@ -145,7 +158,7 @@ my_max = op.outputs.max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_by_time() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) op.inputs.compute_absolute_value.Connect(my_compute_absolute_value) my_min = op.outputs.min.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc.md index c6fcbff8e6..fdae3cc2c1 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc.md @@ -10,7 +10,21 @@ license: None ## Description -Compute the component-wise minimum (out 0) and maximum (out 1) over a fields container. + +Computes, for each field of the input fields container and for each component, the minimum and the maximum across all entities of that field. + +Also known as component-wise min/max over a fields container. + +The output minimum (pin 0) and maximum (pin 1) are fields with one entity per input field. +Each entity holds, for each component, the min or max value found in the corresponding input field. +The entity ids in the output scoping are the input field indices in the fields container. + +Within each input field, all elementary values contribute to the reduction: elemental-nodal expansions and shell-layer values (when present) are folded into the same per-component min/max. + +**When to use:** you want one per-component summary per field of the container, without reducing across fields. +Example: peak of each stress component per body when the container groups fields by body id. +Use `min_max` for a single field, `min_max_by_entity` to keep per-entity resolution across fields, or `min_max_over_label_fc` to group fields by label before reducing. + ## Inputs @@ -29,7 +43,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container over which per-field, per-component minima and maxima are computed. ## Outputs @@ -49,14 +63,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-field, per-component minima. One entity per input field. ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-field, per-component maxima. One entity per input field. ## Configurations @@ -81,9 +95,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_fc - **Full name**: None + **Full name**: min_max.min_max_fc **Internal name**: min_max_fc @@ -113,7 +127,7 @@ ansys::dpf::Field my_field_max = op.getOutput(1); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_fc() # operator instantiation op.inputs.fields_container.connect(my_fields_container) my_field_min = op.outputs.field_min() my_field_max = op.outputs.field_max() @@ -127,7 +141,7 @@ my_field_max = op.outputs.field_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_fc() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) my_field_min = op.outputs.field_min.GetData() my_field_max = op.outputs.field_max.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc_inc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc_inc.md index 047e608ad7..96c35e9623 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc_inc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_fc_inc.md @@ -10,7 +10,16 @@ license: any_dpf_supported_increments ## Description -Compute the component-wise minimum (out 0) and maximum (out 1) over a fields container. + +Incremental variant that computes, for each time or frequency step of the input fields container, the per-component minimum and maximum across all successive calls of the operator. + +At each call, results are merged with the previously-cached extrema. +The output minimum (pin 0) and maximum (pin 1) are fields with one entity per time or frequency step of the input. + +**When to use:** the full set of fields does not fit in memory and results must be aggregated over successive server calls, one fields container at a time. +Example: peak of each stress component per time step accumulated over a long transient analysis processed one chunk of time steps at a time. +Use `min_max_by_time` for the non-incremental variant, or `min_max_inc` when input arrives one field at a time instead of one fields container at a time. + ## Inputs @@ -29,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container for the current increment. Must expose a time-frequency support so that output entries can be indexed by time or frequency step. ## Outputs @@ -49,14 +58,14 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-step, per-component minima aggregated across all calls of the operator so far. ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-step, per-component maxima aggregated across all calls of the operator so far. ## Configurations @@ -88,9 +97,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_fc_inc - **Full name**: None + **Full name**: min_max.min_max_fc_inc **Internal name**: min_max_fc_inc @@ -120,7 +129,7 @@ ansys::dpf::Field my_field_max = op.getOutput(1); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_fc_inc() # operator instantiation op.inputs.fields_container.connect(my_fields_container) my_field_min = op.outputs.field_min() my_field_max = op.outputs.field_max() @@ -134,7 +143,7 @@ my_field_max = op.outputs.field_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_fc_inc() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) my_field_min = op.outputs.field_min.GetData() my_field_max = op.outputs.field_max.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_inc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_inc.md index 4f163725d8..fa19cb50c4 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_inc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_inc.md @@ -10,7 +10,17 @@ license: any_dpf_supported_increments ## Description -Compute the component-wise minimum (out 0) and maximum (out 1) over coming fields. + +Incremental variant that computes, for each component, the minimum and the maximum of successive input fields across all calls of the operator. + +At each call, the per-component minimum and maximum are updated by comparing the current input field with the previously-cached extrema. + +When the optional `domain_id` pin is connected, outputs 2 and 3 return, for each component, the domain id of the call that produced the minimum and maximum, respectively. + +**When to use:** successive fields arrive one at a time (typically streamed from a solver) and the full history does not fit in memory. +Example: running envelope of nodal stress updated at each iteration of a transient run. +Use `min_max` for the non-incremental variant, or `min_max_fc_inc` when input arrives one fields container at a time. + ## Inputs @@ -30,7 +40,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Input field for the current increment. Combined with the previously-cached extrema. ### domain_id (Pin 17) @@ -38,7 +48,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) - +Optional identifier for the current call. When set, outputs 2 and 3 track the domain id that produced each per-component minimum and maximum. ## Outputs @@ -60,28 +70,28 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Per-component minimum aggregated across all calls of the operator so far. ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Per-component maximum aggregated across all calls of the operator so far. ### domain_ids_min (Pin 2) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each component of the output minimum, the id of the call (as passed on the `domain_id` input pin) that produced the current minimum. Populated only when the `domain_id` input pin is connected. ### domain_ids_max (Pin 3) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each component of the output maximum, the id of the call (as passed on the `domain_id` input pin) that produced the current maximum. Populated only when the `domain_id` input pin is connected. ## Configurations @@ -106,9 +116,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_inc - **Full name**: None + **Full name**: min_max.min_max_inc **Internal name**: min_max_inc @@ -141,7 +151,7 @@ ansys::dpf::Scoping my_domain_ids_max = op.getOutput(3); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_inc() # operator instantiation op.inputs.field.connect(my_field) op.inputs.domain_id.connect(my_domain_id) my_field_min = op.outputs.field_min() @@ -158,7 +168,7 @@ my_domain_ids_max = op.outputs.domain_ids_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_inc() # operator instantiation op.inputs.field.Connect(my_field) op.inputs.domain_id.Connect(my_domain_id) my_field_min = op.outputs.field_min.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_label_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_label_fc.md index 64ae81ed87..3683077b55 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_label_fc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_label_fc.md @@ -10,7 +10,26 @@ license: None ## Description -Create two fields (0 min 1 max) by looping over the fields container in input and taking the min/max value by component through all the fields having the same id for the label set in input (in pin 1). If no label is specified or if the specified label doesn't exist, the operation is done over all the fields. The fields out are located on the label set in input, so their scoping are the labels ids.For each min max value, the label id for one other fields container labels is kept and returned in a scoping in pin 2 (min) and 3 (max).The field's scoping ids of the value kept in min max are also returned in the scopings in pin 4 (min) and 5 (max). + +Groups the fields of the input fields container by the given label and, within each group, computes the per-component minimum and maximum across all fields of the group. + +If the label is not set or does not exist in the fields container, the operation runs over all fields as a single group. + +Outputs: + +- Pins 0 and 1: fields of per-group, per-component minima and maxima. Their scoping is the set of label ids (or a single entity when no label applies). +- Pins 2 and 3 (optional): for each output entry, the id of one remaining label of the input fields container corresponding to the field that provided the minimum and maximum, respectively. +- Pins 4 and 5: for each output entry, the input scoping id of the entity within the source field that provided the minimum and maximum. + +Input fields with no data are excluded from the output. + +Within each input field, all elementary values contribute to the per-group reduction: elemental-nodal expansions and shell-layer values (when present) are folded into the same per-component min/max. + +**When to use:** fields in the container are indexed by one or more labels (for example `body`, `zone`) and you want one per-component extremum per label id, collapsing every entity of each group into a single output entry. +Example: peak of each stress component per body when the container is labelled by body id. +Without a label, all entities of all fields collapse into a single output entity, equivalent to `min_max(min_max_fc(...))`. +Use `min_max_by_entity` to keep entity resolution instead, or `min_max_fc` to keep per-field resolution. + ## Inputs @@ -30,7 +49,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container whose fields are grouped by the label passed on pin 1. ### label (Pin 1) @@ -38,7 +57,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) -label name from the fields container +Name of the label used to group the fields of the input fields container. If not set or not present, all fields are used as a single group. ## Outputs @@ -62,42 +81,42 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-group, per-component minima. Scoped on the label ids used for grouping. ### field_max (Pin 1) - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) - +Field of per-group, per-component maxima. Scoped on the label ids used for grouping. ### domain_ids_min (Pin 2) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each entry of the output minimum field, the id of one remaining label of the input fields container from the field that provided the minimum. Populated only when the input fields container has more than one label. ### domain_ids_max (Pin 3) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each entry of the output maximum field, the id of one remaining label of the input fields container from the field that provided the maximum. Populated only when the input fields container has more than one label. ### scoping_ids_min (Pin 4) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each entry of the output minimum field, the input scoping id of the entity within the source field that provided the minimum. ### scoping_ids_max (Pin 5) - **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping) - +For each entry of the output maximum field, the input scoping id of the entity within the source field that provided the maximum. ## Configurations @@ -122,9 +141,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_over_label_fc - **Full name**: None + **Full name**: min_max.min_max_over_label_fc **Internal name**: min_max_over_label_fc @@ -159,7 +178,7 @@ ansys::dpf::Scoping my_scoping_ids_max = op.getOutput(5); ```python import ansys.dpf.core as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_over_label_fc() # operator instantiation op.inputs.fields_container.connect(my_fields_container) op.inputs.label.connect(my_label) my_field_min = op.outputs.field_min() @@ -178,7 +197,7 @@ my_scoping_ids_max = op.outputs.scoping_ids_max() import mech_dpf import Ans.DataProcessing as dpf -op = dpf.operators.min_max.None() # operator instantiation +op = dpf.operators.min_max.min_max_over_label_fc() # operator instantiation op.inputs.fields_container.Connect(my_fields_container) op.inputs.label.Connect(my_label) my_field_min = op.outputs.field_min.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_time_by_entity.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_time_by_entity.md index 540b58881d..6aa2749573 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_time_by_entity.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/min_max/min_max_over_time_by_entity.md @@ -10,9 +10,20 @@ license: None ## Description -For each entity and component, evaluates minimum and maximum over time/frequency. -Input pin 4 `compute_amplitude` is only effective when given `fields_container` contains the `complex` label. -if given input `fields_container` has a `time_freq_support`, output pins 2 and 3 `fields_container` contains time/freq indices of the minimum and maximum values. + +For each entity, each component and each shell layer (when available), computes the minimum and maximum across all time or frequency steps of the input fields container. + +Elemental-nodal values are folded into the per-entity reduction; shell-layer values are preserved when the input exposes them. + +The input `compute_amplitude` pin has effect only when the input fields container carries the `complex` label: when `true`, the amplitude of the complex values is used before the extremum is computed. + +When the input has a time-frequency support, output pins 2 and 3 return fields containers holding the time or frequency value at which each per-entity, per-component minimum and maximum occurred. + +When `compute_absolute_value` is `true`, extrema are computed on the absolute values of the field entries. + +**When to use:** you want to keep the entity axis but reduce across time or frequency, giving one per-component min/max per entity across the whole history. +Example: peak stress ever reached at each node over an entire transient analysis, along with the time at which each peak occurred (pins 2 and 3). +Use `min_max_by_time` for the dual reduction (keep time, collapse entities), or `min_max_by_entity` when the fields are not indexed by time. ## Inputs @@ -34,7 +45,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Fields container aggregated per entity across all time or frequency steps. Must expose the `time` label; otherwise the input is forwarded unchanged. ### compute_absolute_value (Pin 3) @@ -42,7 +53,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Calculate the absolute value of field entities before computing the min/max. +When `true`, absolute values of the field entries are used before the min and max are computed. Default: `false`. ### compute_amplitude (Pin 4) @@ -50,7 +61,7 @@ Calculate the absolute value of field entities before computing the min/max. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Do calculate amplitude. +When `true` and the input fields container has the `complex` label, the amplitude of the complex values is used before the extremum is computed. Ignored otherwise. Default: `false`. ## Outputs @@ -72,28 +83,28 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-entity, per-component minima aggregated across all time or frequency steps. Grouped by all input labels except `time` (and `complex` when `compute_amplitude` is active). ### max (Pin 1) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-entity, per-component maxima aggregated across all time or frequency steps. Grouped by all input labels except `time` (and `complex` when `compute_amplitude` is active). ### time_freq_of_min (Pin 2) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +For each entry of the output minimum, the time or frequency value at which it occurred. Populated only when the input carries a time-frequency support. ### time_freq_of_max (Pin 3) - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +For each entry of the output maximum, the time or frequency value at which it occurred. Populated only when the input carries a time-frequency support. ## Configurations @@ -125,9 +136,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_max_over_time_by_entity - **Full name**: None + **Full name**: min_max.min_max_over_time_by_entity **Internal name**: min_max_over_time_by_entity @@ -161,7 +172,7 @@ ansys::dpf::FieldsContainer my_time_freq_of_max = op.getOutput ### abs_value (Pin 3) @@ -39,7 +46,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Should use absolute value. +When `true`, absolute values of the field entries are used before the min is computed. Default: `false`. ### compute_amplitude (Pin 4) @@ -47,7 +54,7 @@ Should use absolute value. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Do calculate amplitude. +When `true` and the input fields container has the `complex` label, the amplitude of the complex values is used before the min is computed. Ignored otherwise. Default: `false`. ## Outputs @@ -66,7 +73,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Per-entity, per-component minimum across all time or frequency steps. Same shape as pin 0 of `min_max_over_time_by_entity`. ## Configurations @@ -98,9 +105,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: min_over_time_by_entity - **Full name**: None + **Full name**: min_max.min_over_time_by_entity **Internal name**: min_over_time_by_entity @@ -131,7 +138,7 @@ ansys::dpf::FieldsContainer my_fields_container = op.getOutput ### abs_value (Pin 3) @@ -39,7 +46,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Should use absolute value. +When `true`, absolute values of the field entries are used before the max is computed. Default: `false`. ### compute_amplitude (Pin 4) @@ -47,7 +54,7 @@ Should use absolute value. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Do calculate amplitude. +When `true` and the input fields container has the `complex` label, the amplitude of the complex values is used before the max is computed. Ignored otherwise. Default: `false`. ## Outputs @@ -66,7 +73,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Time or frequency at which each per-entity, per-component maximum occurred. Populated only when the input carries a time-frequency support. Same shape as pin 3 of `min_max_over_time_by_entity`. ## Configurations @@ -98,9 +105,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: time_of_max_by_entity - **Full name**: None + **Full name**: min_max.time_of_max_by_entity **Internal name**: time_of_max_by_entity @@ -131,7 +138,7 @@ ansys::dpf::FieldsContainer my_fields_container = op.getOutput ### abs_value (Pin 3) @@ -39,7 +46,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Should use absolute value. +When `true`, absolute values of the field entries are used before the min is computed. Default: `false`. ### compute_amplitude (Pin 4) @@ -47,7 +54,7 @@ Should use absolute value. - **Required:** No - **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) -Do calculate amplitude. +When `true` and the input fields container has the `complex` label, the amplitude of the complex values is used before the min is computed. Ignored otherwise. Default: `false`. ## Outputs @@ -66,7 +73,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) - +Time or frequency at which each per-entity, per-component minimum occurred. Populated only when the input carries a time-frequency support. Same shape as pin 2 of `min_max_over_time_by_entity`. ## Configurations @@ -91,9 +98,9 @@ This operator can be accessed through scripting interfaces using these identifie **Plugin**: core - **Scripting name**: None + **Scripting name**: time_of_min_by_entity - **Full name**: None + **Full name**: min_max.time_of_min_by_entity **Internal name**: time_of_min_by_entity @@ -124,7 +131,7 @@ ansys::dpf::FieldsContainer my_fields_container = op.getOutput0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +Fields container already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: contact_element_heat_flow + + **Full name**: result.contact_element_heat_flow + + **Internal name**: ContactElementHeatFlow + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ContactElementHeatFlow"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(7, my_mesh); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.contact_element_heat_flow() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.mesh.connect(my_mesh) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.contact_element_heat_flow() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.mesh.Connect(my_mesh) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/convection_heat_flow_rate.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/convection_heat_flow_rate.md new file mode 100644 index 0000000000..9a5cf19d1a --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/convection_heat_flow_rate.md @@ -0,0 +1,210 @@ +--- +category: result +plugin: core +license: None +--- + +# result:convection heat flow rate + +**Version: 0.0.0** + +## Description + +Read/compute convection heat flow rate by calling the readers defined by the datasources. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +Fields container already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: convection_heat_flow_rate + + **Full name**: result.convection_heat_flow_rate + + **Internal name**: ConvectionHeatFlowRate + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ConvectionHeatFlowRate"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(7, my_mesh); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.convection_heat_flow_rate() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.mesh.connect(my_mesh) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.convection_heat_flow_rate() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.mesh.Connect(my_mesh) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/creep_strain.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/creep_strain.md index 924e627518..942c1414f8 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/creep_strain.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/creep_strain.md @@ -59,6 +59,10 @@ Each parameter is detailed in the sections that follow the table. | 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | | 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | | 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 15 | [expanded_meshed_region](#input_15) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 18 | [sectors_to_expand](#input_18) | |[`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) | +| 19 | [phi](#input_19) | |[`double`](../../core-concepts/dpf-types.md#standard-types) | | 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | | 26 | [split_shells](#input_26) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | | 27 | [shell_layer](#input_27) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | @@ -119,7 +123,7 @@ Rotate the result to the global coordinate system if rotations are available (de - **Required:** No - **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) -prevents from reading the mesh in the result files +mesh. If cylic expansion is to be done, mesh of the base sector ### requested_location (Pin 9) @@ -129,6 +133,38 @@ prevents from reading the mesh in the result files requested location Nodal, Elemental or ElementalNodal + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### expanded_meshed_region (Pin 15) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +mesh expanded, use if cyclic expansion is to be done. + + +### sectors_to_expand (Pin 18) + +- **Required:** No +- **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) + +sectors to expand (start at 0), for multistage: use scopings container with 'stage' label, use if cyclic expansion is to be done. + + +### phi (Pin 19) + +- **Required:** No +- **Expected type(s):** [`double`](../../core-concepts/dpf-types.md#standard-types) + +angle phi in degrees (default value 0.0), use if cyclic expansion is to be done. + ### read_beams (Pin 22) @@ -252,6 +288,10 @@ op.connect(4, my_data_sources); op.connect(5, my_bool_rotate_to_global); op.connect(7, my_mesh); op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(15, my_expanded_meshed_region); +op.connect(18, my_sectors_to_expand); +op.connect(19, my_phi); op.connect(22, my_read_beams); op.connect(26, my_split_shells); op.connect(27, my_shell_layer); @@ -275,6 +315,10 @@ op.inputs.data_sources.connect(my_data_sources) op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) op.inputs.mesh.connect(my_mesh) op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.connect(my_sectors_to_expand) +op.inputs.phi.connect(my_phi) op.inputs.read_beams.connect(my_read_beams) op.inputs.split_shells.connect(my_split_shells) op.inputs.shell_layer.connect(my_shell_layer) @@ -299,6 +343,10 @@ op.inputs.data_sources.Connect(my_data_sources) op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) op.inputs.mesh.Connect(my_mesh) op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.expanded_meshed_region.Connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.Connect(my_sectors_to_expand) +op.inputs.phi.Connect(my_phi) op.inputs.read_beams.Connect(my_read_beams) op.inputs.split_shells.Connect(my_split_shells) op.inputs.shell_layer.Connect(my_shell_layer) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/material_property_of_element.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/material_property_of_element.md index 80dc78b828..08ac8f1c78 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/material_property_of_element.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/material_property_of_element.md @@ -11,11 +11,10 @@ license: None ## Description -Reads a named scalar material property (pin 6) for each element from result files. -The property value is taken from the linear (constant) material data assigned to each element's material. +Reads a material property for each element from result files. +The operator first retrieves each element's material ID from the mesh property "mat", +then maps the requested property name to the corresponding material value. The output is a scalar field at elemental location. -If a default value is provided via pin 7, all elements receive that value unless the property exists for their material, in which case the material value takes precedence. -If no default value is provided and filter_zero_values (pin 8) is true, elements whose property value is exactly zero are excluded from the output. ## Inputs @@ -27,11 +26,9 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| | 1 | [mesh_scoping](#input_1) | |[`scoping`](../../core-concepts/dpf-types.md#scoping) | -| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | -| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 3 | [streams](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | |[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | | 6 | [property_name](#input_6) | Required|[`string`](../../core-concepts/dpf-types.md#standard-types) | -| 7 | [default_value](#input_7) | |[`double`](../../core-concepts/dpf-types.md#standard-types) | -| 8 | [filter_zero_values](#input_8) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -43,20 +40,20 @@ Each parameter is detailed in the sections that follow the table. Element scoping that restricts which elements are processed. If not provided, all elements in the result file are used. -### streams_container (Pin 3) +### streams (Pin 3) - **Required:** No - **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) -Streams containing the result file. If provided, data_sources is ignored. +result file container allowed to be kept open to cache data ### data_sources (Pin 4) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) -Data sources used to open the result file when streams_container is not provided. +result file path container, used if no streams are set ### property_name (Pin 6) @@ -66,22 +63,6 @@ Data sources used to open the result file when streams_container is not provided Name of the linear scalar material property to extract, for example "EX" for Young's modulus or "DENS" for density. - -### default_value (Pin 7) - -- **Required:** No -- **Expected type(s):** [`double`](../../core-concepts/dpf-types.md#standard-types) - -Scalar value assigned to elements whose material does not define the requested property. If not set, those elements are excluded from the output. - - -### filter_zero_values (Pin 8) - -- **Required:** No -- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) - -When true and no default_value is set, elements whose property value is exactly zero are excluded from the output. Defaults to false. - ## Outputs @@ -114,6 +95,20 @@ This operator supports [configuration options](../../core-concepts/operator-conf If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + ## Scripting @@ -145,11 +140,9 @@ Each example shows how to instantiate the operator, connect the required inputs, ansys::dpf::Operator op("MaterialPropertyOfElement"); // operator instantiation op.connect(1, my_mesh_scoping); -op.connect(3, my_streams_container); +op.connect(3, my_streams); op.connect(4, my_data_sources); op.connect(6, my_property_name); -op.connect(7, my_default_value); -op.connect(8, my_filter_zero_values); ansys::dpf::Field my_material_properties = op.getOutput(0); ``` @@ -162,11 +155,9 @@ import ansys.dpf.core as dpf op = dpf.operators.result.material_property_of_element() # operator instantiation op.inputs.mesh_scoping.connect(my_mesh_scoping) -op.inputs.streams_container.connect(my_streams_container) +op.inputs.streams.connect(my_streams) op.inputs.data_sources.connect(my_data_sources) op.inputs.property_name.connect(my_property_name) -op.inputs.default_value.connect(my_default_value) -op.inputs.filter_zero_values.connect(my_filter_zero_values) my_material_properties = op.outputs.material_properties() ``` @@ -180,11 +171,9 @@ import Ans.DataProcessing as dpf op = dpf.operators.result.material_property_of_element() # operator instantiation op.inputs.mesh_scoping.Connect(my_mesh_scoping) -op.inputs.streams_container.Connect(my_streams_container) +op.inputs.streams.Connect(my_streams) op.inputs.data_sources.Connect(my_data_sources) op.inputs.property_name.Connect(my_property_name) -op.inputs.default_value.Connect(my_default_value) -op.inputs.filter_zero_values.Connect(my_filter_zero_values) my_material_properties = op.outputs.material_properties.GetData() ``` diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/radiation_heat_flow_rate.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/radiation_heat_flow_rate.md new file mode 100644 index 0000000000..da8d5f5630 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/radiation_heat_flow_rate.md @@ -0,0 +1,210 @@ +--- +category: result +plugin: core +license: None +--- + +# result:radiation heat flow rate + +**Version: 0.0.0** + +## Description + +Read/compute radiation heat flow rate by calling the readers defined by the datasources. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +Fields container already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: radiation_heat_flow_rate + + **Full name**: result.radiation_heat_flow_rate + + **Internal name**: RadiationHeatFlowRate + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("RadiationHeatFlowRate"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(7, my_mesh); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.radiation_heat_flow_rate() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.mesh.connect(my_mesh) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.radiation_heat_flow_rate() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.mesh.Connect(my_mesh) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_category.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_category.md index 32d0f7cdfa..68d860ee00 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_category.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_category.md @@ -50,6 +50,7 @@ - [compute total strain Y](compute_total_strain_Y.md) - [compute total strain YZ](compute_total_strain_YZ.md) - [compute total strain Z](compute_total_strain_Z.md) +- [contact element heat flow](contact_element_heat_flow.md) - [contact fluid penetration pressure](contact_fluid_penetration_pressure.md) - [contact friction stress](contact_friction_stress.md) - [contact gap distance](contact_gap_distance.md) @@ -59,6 +60,7 @@ - [contact status](contact_status.md) - [contact surface heat flux](contact_surface_heat_flux.md) - [contact total stress](contact_total_stress.md) +- [convection heat flow rate](convection_heat_flow_rate.md) - [coordinates](coordinates.md) - [coordinate system](coordinate_system.md) - [co energy](co_energy.md) @@ -291,6 +293,7 @@ - [pressure](pressure.md) - [pretension](pretension.md) - [radiation area](radiation_area.md) +- [radiation heat flow rate](radiation_heat_flow_rate.md) - [raw acceleration](raw_acceleration.md) - [raw displacement](raw_displacement.md) - [raw reaction force](raw_reaction_force.md) @@ -375,6 +378,18 @@ - [total mass](total_mass.md) - [total pressure](total_pressure.md) - [total strain](total_strain.md) +- [total strain eqv](total_strain_eqv.md) +- [total strain intensity](total_strain_intensity.md) +- [total strain max shear](total_strain_max_shear.md) +- [total strain principal 1](total_strain_principal_1.md) +- [total strain principal 2](total_strain_principal_2.md) +- [total strain principal 3](total_strain_principal_3.md) +- [total strain X](total_strain_X.md) +- [total strain XY](total_strain_XY.md) +- [total strain XZ](total_strain_XZ.md) +- [total strain Y](total_strain_Y.md) +- [total strain YZ](total_strain_YZ.md) +- [total strain Z](total_strain_Z.md) - [total temperature](total_temperature.md) - [transform invariant terms rbd](transform_invariant_terms_rbd.md) - [transient rayleigh integration](transient_rayleigh_integration.md) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_provider.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_provider.md index dce94b72c2..5c2c0610f8 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_provider.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/result_provider.md @@ -2,6 +2,8 @@ category: result plugin: core license: None +namespaces: + cgns: [cgns] --- # result:result provider @@ -12,6 +14,12 @@ license: None Read/compute user defined result by calling the readers defined by the datasources. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- cgns: cgns + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/thickness.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/thickness.md index 8186e95918..3d9a5b0e97 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/thickness.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/thickness.md @@ -2,6 +2,8 @@ category: result plugin: core license: None +namespaces: + hdf5: [h5dpf] --- # result:thickness @@ -12,6 +14,12 @@ license: None Read/compute thickness by calling the readers defined by the datasources. +## Supported file types + +This operator supports the following [result file types](../../index.md#overview-of-dpf) and associated file extensions: + +- hdf5: h5dpf + ## Inputs This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain.md index 84fe937879..c885dae811 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain.md @@ -4,13 +4,46 @@ plugin: core license: None --- -# result:total strain (LSDyna) +# result:total strain **Version: 0.0.0** ## Description -Read/compute Total strain (LSDyna) by calling the readers defined by the datasources. +Read/compute element nodal component total strains by calling the readers defined by the datasources. +- The 'requested_location' and 'mesh_scoping' inputs are processed to see if they need scoping transposition or result averaging. The resulting output fields have a 'Nodal', 'ElementalNodal' or 'Elemental' location. +- Once the need for averaging has been detected, the behavior of the combined connection of the 'split_shells' and 'shell_layer' pins is: + +| Averaging is needed | 'split_shells' | 'shell_layer' | Expected output | +|---------------------|---------------------|---------------|-----------------| +| No | Not connected/false | Not connected | Location as in the result file. Fields with all element shapes combined. All shell layers present. | +| No | true | Not connected | Location as in the result file. Fields split according to element shapes. All shell layers present. | +| No | true | Connected | Location as in the result file. Fields split according to element shapes. Only the requested shell layer present. | +| No | Not connected/false | Connected | Location as in the result file. Fields with all element shapes combined. Only the requested shell layer present. | +| Yes | Not connected/true | Not connected | Location as requested. Fields split according to element shapes. All shell layers present. | +| Yes | false | Not connected | Location as requested. Fields with all element shapes combined. All shell layers present. | +| Yes | false | Connected | Location as requested. Fields with all element shapes combined. Only the requested shell layer present. | +| Yes | Not connected/true | Connected | Location as requested. Fields split according to element shapes. Only the requested shell layer present. | +- The available 'elshape' values are: + +| elshape | Related elements | +|---------|------------------| +| 1 | Shell (generic) | +| 2 | Solid | +| 3 | Beam | +| 4 | Skin | +| 5 | Contact | +| 6 | Load | +| 7 | Point | +| 8 | Shell with 1 result across thickness (membrane) | +| 9 | Shell with 2 results across thickness (top/bottom) | +| 10 | Shell with 3 results across thickness (top/bottom/mid) | +| 11 | Gasket | +| 12 | Multi-Point Constraint | +| 13 | Pretension | + + +Total strain is computed as the sum of the available strain contributions: elastic strain (`EPEL`), plastic strain (`EPPL`), creep strain (`EPCR`), thermal strain (`ETH`) ## Inputs @@ -27,6 +60,15 @@ Each parameter is detailed in the sections that follow the table. | 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | | 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | | 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 15 | [expanded_meshed_region](#input_15) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 18 | [sectors_to_expand](#input_18) | |[`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) | +| 19 | [phi](#input_19) | |[`double`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 26 | [split_shells](#input_26) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 27 | [shell_layer](#input_27) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 28 | [extend_to_mid_nodes](#input_28) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -83,7 +125,79 @@ Rotate the result to the global coordinate system if rotations are available (de - **Required:** No - **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) -prevents from reading the mesh in the result files +mesh. If cylic expansion is to be done, mesh of the base sector + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location Nodal, Elemental or ElementalNodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### expanded_meshed_region (Pin 15) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +mesh expanded, use if cyclic expansion is to be done. + + +### sectors_to_expand (Pin 18) + +- **Required:** No +- **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) + +sectors to expand (start at 0), for multistage: use scopings container with 'stage' label, use if cyclic expansion is to be done. + + +### phi (Pin 19) + +- **Required:** No +- **Expected type(s):** [`double`](../../core-concepts/dpf-types.md#standard-types) + +angle phi in degrees (default value 0.0), use if cyclic expansion is to be done. + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +### split_shells (Pin 26) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required. + + +### shell_layer (Pin 27) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid. + + +### extend_to_mid_nodes (Pin 28) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True ## Outputs @@ -175,6 +289,15 @@ op.connect(3, my_streams_container); op.connect(4, my_data_sources); op.connect(5, my_bool_rotate_to_global); op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(15, my_expanded_meshed_region); +op.connect(18, my_sectors_to_expand); +op.connect(19, my_phi); +op.connect(22, my_read_beams); +op.connect(26, my_split_shells); +op.connect(27, my_shell_layer); +op.connect(28, my_extend_to_mid_nodes); ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); ``` @@ -193,6 +316,15 @@ op.inputs.streams_container.connect(my_streams_container) op.inputs.data_sources.connect(my_data_sources) op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.connect(my_sectors_to_expand) +op.inputs.phi.connect(my_phi) +op.inputs.read_beams.connect(my_read_beams) +op.inputs.split_shells.connect(my_split_shells) +op.inputs.shell_layer.connect(my_shell_layer) +op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes) my_fields_container = op.outputs.fields_container() ``` @@ -212,6 +344,15 @@ op.inputs.streams_container.Connect(my_streams_container) op.inputs.data_sources.Connect(my_data_sources) op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.expanded_meshed_region.Connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.Connect(my_sectors_to_expand) +op.inputs.phi.Connect(my_phi) +op.inputs.read_beams.Connect(my_read_beams) +op.inputs.split_shells.Connect(my_split_shells) +op.inputs.shell_layer.Connect(my_shell_layer) +op.inputs.extend_to_mid_nodes.Connect(my_extend_to_mid_nodes) my_fields_container = op.outputs.fields_container.GetData() ``` diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_X.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_X.md new file mode 100644 index 0000000000..19737b2b01 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_X.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain X + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains XX normal component (00 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_X + + **Full name**: result.total_strain_X + + **Internal name**: ELX + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELX"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_X() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_X() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XY.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XY.md new file mode 100644 index 0000000000..08486bc4a7 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XY.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain XY + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains XY shear component (01 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_XY + + **Full name**: result.total_strain_XY + + **Internal name**: ELXY + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELXY"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_XY() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_XY() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XZ.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XZ.md new file mode 100644 index 0000000000..f3010c8b91 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_XZ.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain XZ + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains XZ shear component (02 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_XZ + + **Full name**: result.total_strain_XZ + + **Internal name**: ELXZ + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELXZ"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_XZ() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_XZ() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Y.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Y.md new file mode 100644 index 0000000000..ba90287099 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Y.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain Y + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains YY normal component (11 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_Y + + **Full name**: result.total_strain_Y + + **Internal name**: ELY + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELY"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_Y() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_Y() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_YZ.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_YZ.md new file mode 100644 index 0000000000..a6e191b140 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_YZ.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain YZ + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains YZ shear component (12 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_YZ + + **Full name**: result.total_strain_YZ + + **Internal name**: ELYZ + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELYZ"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_YZ() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_YZ() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Z.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Z.md new file mode 100644 index 0000000000..7a9ff607cd --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_Z.md @@ -0,0 +1,251 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain Z + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains ZZ normal component (22 component) by calling the readers defined by the datasources. Regarding the requested location and the input mesh scoping, the result location can be Nodal/ElementalNodal/Elemental. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +if true the field is rotated to global coordinate system (default true) + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location, default is Nodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_Z + + **Full name**: result.total_strain_Z + + **Internal name**: ELZ + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("ELZ"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_Z() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_Z() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_eqv.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_eqv.md new file mode 100644 index 0000000000..e7b7d56316 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_eqv.md @@ -0,0 +1,351 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain eqv + +**Version: 0.0.0** + +## Description + +Read/compute element nodal equivalent total strain by calling the readers defined by the datasources. +- The 'requested_location' and 'mesh_scoping' inputs are processed to see if they need scoping transposition or result averaging. The resulting output fields have a 'Nodal', 'ElementalNodal' or 'Elemental' location. +- Once the need for averaging has been detected, the behavior of the combined connection of the 'split_shells' and 'shell_layer' pins is: + +| Averaging is needed | 'split_shells' | 'shell_layer' | Expected output | +|---------------------|---------------------|---------------|-----------------| +| No | Not connected/false | Not connected | Location as in the result file. Fields with all element shapes combined. All shell layers present. | +| No | true | Not connected | Location as in the result file. Fields split according to element shapes. All shell layers present. | +| No | true | Connected | Location as in the result file. Fields split according to element shapes. Only the requested shell layer present. | +| No | Not connected/false | Connected | Location as in the result file. Fields with all element shapes combined. Only the requested shell layer present. | +| Yes | Not connected/true | Not connected | Location as requested. Fields split according to element shapes. All shell layers present. | +| Yes | false | Not connected | Location as requested. Fields with all element shapes combined. All shell layers present. | +| Yes | false | Connected | Location as requested. Fields with all element shapes combined. Only the requested shell layer present. | +| Yes | Not connected/true | Connected | Location as requested. Fields split according to element shapes. Only the requested shell layer present. | +- The available 'elshape' values are: + +| elshape | Related elements | +|---------|------------------| +| 1 | Shell (generic) | +| 2 | Solid | +| 3 | Beam | +| 4 | Skin | +| 5 | Contact | +| 6 | Load | +| 7 | Point | +| 8 | Shell with 1 result across thickness (membrane) | +| 9 | Shell with 2 results across thickness (top/bottom) | +| 10 | Shell with 3 results across thickness (top/bottom/mid) | +| 11 | Gasket | +| 12 | Multi-Point Constraint | +| 13 | Pretension | + + +Total strain is computed as the sum of the available strain contributions: elastic strain (`EPEL`), plastic strain (`EPPL`), creep strain (`EPCR`), thermal strain (`ETH`) + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 15 | [expanded_meshed_region](#input_15) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 18 | [sectors_to_expand](#input_18) | |[`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) | +| 19 | [phi](#input_19) | |[`double`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 26 | [split_shells](#input_26) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 27 | [shell_layer](#input_27) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 28 | [extend_to_mid_nodes](#input_28) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +Fields container already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +mesh. If cylic expansion is to be done, mesh of the base sector + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +requested location Nodal, Elemental or ElementalNodal + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### expanded_meshed_region (Pin 15) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +mesh expanded, use if cyclic expansion is to be done. + + +### sectors_to_expand (Pin 18) + +- **Required:** No +- **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container) + +sectors to expand (start at 0), for multistage: use scopings container with 'stage' label, use if cyclic expansion is to be done. + + +### phi (Pin 19) + +- **Required:** No +- **Expected type(s):** [`double`](../../core-concepts/dpf-types.md#standard-types) + +angle phi in degrees (default value 0.0), use if cyclic expansion is to be done. + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +### split_shells (Pin 26) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required. + + +### shell_layer (Pin 27) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid. + + +### extend_to_mid_nodes (Pin 28) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_eqv + + **Full name**: result.total_strain_eqv + + **Internal name**: EL_EQV + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL_EQV"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(15, my_expanded_meshed_region); +op.connect(18, my_sectors_to_expand); +op.connect(19, my_phi); +op.connect(22, my_read_beams); +op.connect(26, my_split_shells); +op.connect(27, my_shell_layer); +op.connect(28, my_extend_to_mid_nodes); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_eqv() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.expanded_meshed_region.connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.connect(my_sectors_to_expand) +op.inputs.phi.connect(my_phi) +op.inputs.read_beams.connect(my_read_beams) +op.inputs.split_shells.connect(my_split_shells) +op.inputs.shell_layer.connect(my_shell_layer) +op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_eqv() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.expanded_meshed_region.Connect(my_expanded_meshed_region) +op.inputs.sectors_to_expand.Connect(my_sectors_to_expand) +op.inputs.phi.Connect(my_phi) +op.inputs.read_beams.Connect(my_read_beams) +op.inputs.split_shells.Connect(my_split_shells) +op.inputs.shell_layer.Connect(my_shell_layer) +op.inputs.extend_to_mid_nodes.Connect(my_extend_to_mid_nodes) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_intensity.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_intensity.md new file mode 100644 index 0000000000..8539733f59 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_intensity.md @@ -0,0 +1,259 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain intensity + +**Version: 0.0.0** + +## Description + +Reads/computes element nodal component total strains, average it on nodes (by default) and computes its invariants. +This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +This pin is removed for versions >25.2. An error is raised if connected. + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + + + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_intensity + + **Full name**: result.total_strain_intensity + + **Internal name**: EL_intensity + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL_intensity"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_intensity() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_intensity() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_max_shear.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_max_shear.md new file mode 100644 index 0000000000..e1563b1889 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_max_shear.md @@ -0,0 +1,259 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain max_shear + +**Version: 0.0.0** + +## Description + +Reads/computes element nodal component total strains, average it on nodes (by default) and computes its invariants. +This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +This pin is removed for versions >25.2. An error is raised if connected. + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + + + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_max_shear + + **Full name**: result.total_strain_max_shear + + **Internal name**: EL_max_shear + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL_max_shear"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_max_shear() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_max_shear() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_1.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_1.md new file mode 100644 index 0000000000..0991863468 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_1.md @@ -0,0 +1,259 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain principal 1 + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains 1st principal component by calling the readers defined by the datasources and computing its eigen values. +This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +This pin is removed for versions >25.2. An error is raised if connected. + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + + + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_principal_1 + + **Full name**: result.total_strain_principal_1 + + **Internal name**: EL1 + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL1"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_principal_1() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_principal_1() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_2.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_2.md new file mode 100644 index 0000000000..9f1d6b4b29 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_2.md @@ -0,0 +1,259 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain principal 2 + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains 2nd principal component by calling the readers defined by the datasources and computing its eigen values. +This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +This pin is removed for versions >25.2. An error is raised if connected. + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + + + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_principal_2 + + **Full name**: result.total_strain_principal_2 + + **Internal name**: EL2 + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL2"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_principal_2() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_principal_2() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_3.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_3.md new file mode 100644 index 0000000000..af25464703 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/result/total_strain_principal_3.md @@ -0,0 +1,259 @@ +--- +category: result +plugin: core +license: None +--- + +# result:total strain principal 3 + +**Version: 0.0.0** + +## Description + +Read/compute element nodal component total strains 3rd principal component by calling the readers defined by the datasources and computing its eigen values. +This operation is independent of the coordinate system unless averaging across elements is requested, in which case a rotation to the global coordinate system is performed. The off-diagonal strains are first converted from Voigt notation to the standard strain values. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [time_scoping](#input_0) | |[`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) | +| 1 | [mesh_scoping](#input_1) | |[`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [fields_container](#input_2) | |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 3 | [streams_container](#input_3) | |[`streams_container`](../../core-concepts/dpf-types.md#streams-container) | +| 4 | [data_sources](#input_4) | Required|[`data_sources`](../../core-concepts/dpf-types.md#data-sources) | +| 5 | [bool_rotate_to_global](#input_5) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| 7 | [mesh](#input_7) | |[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) | +| 9 | [requested_location](#input_9) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | +| 14 | [read_cyclic](#input_14) | |`enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 22 | [read_beams](#input_22) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | + + + +### time_scoping (Pin 0) + +- **Required:** No +- **Expected type(s):** [`scoping`](../../core-concepts/dpf-types.md#scoping), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`double`](../../core-concepts/dpf-types.md#standard-types), [`field`](../../core-concepts/dpf-types.md#field), [`vector`](../../core-concepts/dpf-types.md#standard-types) + +time/freq values (use doubles or field), time/freq set ids (use ints or scoping) or time/freq step ids (use scoping with TimeFreq_steps location) required in output. To specify time/freq values at specific load steps, put a Field (and not a list) in input with a scoping located on "TimeFreq_steps". Linear time freq intrapolation is performed if the values are not in the result files and the data at the max time or freq is taken when time/freqs are higher than available time/freqs in result files. To get all data for all time/freq sets, connect an int with value -1. + + +### mesh_scoping (Pin 1) + +- **Required:** No +- **Expected type(s):** [`scopings_container`](../../core-concepts/dpf-types.md#scopings-container), [`scoping`](../../core-concepts/dpf-types.md#scoping) + +nodes or elements scoping required in output. The output fields will be scoped on these node or element IDs. To figure out the ordering of the fields data, look at their scoping IDs as they might not be ordered as the input scoping was. The scoping's location indicates whether nodes or elements are asked for. Using scopings container allows you to split the result fields container into domains + + +### fields_container (Pin 2) + +- **Required:** No +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +FieldsContainer already allocated modified inplace + + +### streams_container (Pin 3) + +- **Required:** No +- **Expected type(s):** [`streams_container`](../../core-concepts/dpf-types.md#streams-container) + +result file container allowed to be kept open to cache data + + +### data_sources (Pin 4) + +- **Required:** Yes +- **Expected type(s):** [`data_sources`](../../core-concepts/dpf-types.md#data-sources) + +result file path container, used if no streams are set + + +### bool_rotate_to_global (Pin 5) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +This pin is removed for versions >25.2. An error is raised if connected. + + +### mesh (Pin 7) + +- **Required:** No +- **Expected type(s):** [`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region), [`meshes_container`](../../core-concepts/dpf-types.md#meshes-container) + +prevents from reading the mesh in the result files + + +### requested_location (Pin 9) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + + + + +### read_cyclic (Pin 14) + +- **Required:** No +- **Expected type(s):** `enum dataProcessing::ECyclicReading`, [`int32`](../../core-concepts/dpf-types.md#standard-types) + +if 0 cyclic symmetry is ignored, if 1 cyclic sector is read, if 2 cyclic expansion is done, if 3 cyclic expansion is done and stages are merged (default is 1) + + +### read_beams (Pin 22) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +elemental nodal beam results are read if this pin is set to true (default is false) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [allow_ansys_element_library_computation](../../core-concepts/operator-configurations.md#allow_ansys_element_library_computation) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +BETA: User authorizes DPF to compute elemental results through the Ansys Element Library.Material and geometric nonlinearities are not allowed. Only linear analysis are supported.0: Not Authorized (default), 1: Only if result is not present, 2: Always use AEL. + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + +### [num_threads](../../core-concepts/operator-configurations.md#num_threads) + +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** 0 + +Number of threads to use to run in parallel + +### [run_in_parallel](../../core-concepts/operator-configurations.md#run_in_parallel) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** true + +Loops are allowed to run in parallel if the value of this config is set to true. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: result + + **Plugin**: core + + **Scripting name**: total_strain_principal_3 + + **Full name**: result.total_strain_principal_3 + + **Internal name**: EL3 + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("EL3"); // operator instantiation +op.connect(0, my_time_scoping); +op.connect(1, my_mesh_scoping); +op.connect(2, my_fields_container); +op.connect(3, my_streams_container); +op.connect(4, my_data_sources); +op.connect(5, my_bool_rotate_to_global); +op.connect(7, my_mesh); +op.connect(9, my_requested_location); +op.connect(14, my_read_cyclic); +op.connect(22, my_read_beams); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.result.total_strain_principal_3() # operator instantiation +op.inputs.time_scoping.connect(my_time_scoping) +op.inputs.mesh_scoping.connect(my_mesh_scoping) +op.inputs.fields_container.connect(my_fields_container) +op.inputs.streams_container.connect(my_streams_container) +op.inputs.data_sources.connect(my_data_sources) +op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) +op.inputs.mesh.connect(my_mesh) +op.inputs.requested_location.connect(my_requested_location) +op.inputs.read_cyclic.connect(my_read_cyclic) +op.inputs.read_beams.connect(my_read_beams) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.result.total_strain_principal_3() # operator instantiation +op.inputs.time_scoping.Connect(my_time_scoping) +op.inputs.mesh_scoping.Connect(my_mesh_scoping) +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.streams_container.Connect(my_streams_container) +op.inputs.data_sources.Connect(my_data_sources) +op.inputs.bool_rotate_to_global.Connect(my_bool_rotate_to_global) +op.inputs.mesh.Connect(my_mesh) +op.inputs.requested_location.Connect(my_requested_location) +op.inputs.read_cyclic.Connect(my_read_cyclic) +op.inputs.read_beams.Connect(my_read_beams) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/compute_element_centroids.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/compute_element_centroids.md index 928a790019..da9fd9114f 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/compute_element_centroids.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/compute_element_centroids.md @@ -10,7 +10,7 @@ license: None ## Description -Computes the element centroids of the mesh. It also outputs the element measure. +Computes the element centroids of the mesh and optionally the element measure. ## Inputs @@ -21,6 +21,8 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| | 1 | [element_scoping](#input_1) | |[`scoping`](../../core-concepts/dpf-types.md#scoping) | +| 2 | [algorithm](#input_2) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| 3 | [compute_measure](#input_3) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | | 7 | [mesh](#input_7) | Required|[`abstract_meshed_region`](../../core-concepts/dpf-types.md#meshed-region) | @@ -32,6 +34,22 @@ Each parameter is detailed in the sections that follow the table. If provided, only the centroids of the elements in the scoping are computed. + +### algorithm (Pin 2) + +- **Required:** No +- **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) + +Centroid algorithm: weighted_average = 1 (default), arithmetic_average = 2. Note: arithmetic_average only supports compute_measure = false. + + +### compute_measure (Pin 3) + +- **Required:** No +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) + +If true (default), computes and returns measure on pin 1. If false, only centroids are returned. Note: compute_measure = true is only supported with weighted_average algorithm. + ### mesh (Pin 7) @@ -65,7 +83,7 @@ element centroids. - **Expected type(s):** [`field`](../../core-concepts/dpf-types.md#field) -element measure (length, surface or volume depending on the dimension of the element). +element measure (length, surface or volume depending on the dimension of the element), returned only when compute_measure is true. ## Configurations @@ -118,6 +136,8 @@ Each example shows how to instantiate the operator, connect the required inputs, ansys::dpf::Operator op("compute_element_centroids"); // operator instantiation op.connect(1, my_element_scoping); +op.connect(2, my_algorithm); +op.connect(3, my_compute_measure); op.connect(7, my_mesh); ansys::dpf::Field my_centroids = op.getOutput(0); ansys::dpf::Field my_measure = op.getOutput(1); @@ -132,6 +152,8 @@ import ansys.dpf.core as dpf op = dpf.operators.scoping.compute_element_centroids() # operator instantiation op.inputs.element_scoping.connect(my_element_scoping) +op.inputs.algorithm.connect(my_algorithm) +op.inputs.compute_measure.connect(my_compute_measure) op.inputs.mesh.connect(my_mesh) my_centroids = op.outputs.centroids() my_measure = op.outputs.measure() @@ -147,6 +169,8 @@ import Ans.DataProcessing as dpf op = dpf.operators.scoping.compute_element_centroids() # operator instantiation op.inputs.element_scoping.Connect(my_element_scoping) +op.inputs.algorithm.Connect(my_algorithm) +op.inputs.compute_measure.Connect(my_compute_measure) op.inputs.mesh.Connect(my_mesh) my_centroids = op.outputs.centroids.GetData() my_measure = op.outputs.measure.GetData() diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/rescope_fc.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/rescope_fc.md index 3183528d25..83edaa40dd 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/rescope_fc.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/rescope_fc.md @@ -10,7 +10,7 @@ license: None ## Description -Rescopes a field on the given scoping. If an ID does not exist in the original field, the default value (in 2) is used when defined. +Rescopes a fields container on the given scoping. If an ID does not exist in the original fields container, the default value (in 2) is used when defined. ## Inputs diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/scoping_get_attribute.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/scoping_get_attribute.md index 9208a71f68..10a432352d 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/scoping_get_attribute.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/scoping/scoping_get_attribute.md @@ -38,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) -Supported property names are: "ids", "location". +Supported property names are: "ids", "maximum_id", and "location". ## Outputs @@ -57,7 +57,7 @@ Each output is detailed in the sections that follow the table. - **Expected type(s):** [`vector`](../../core-concepts/dpf-types.md#standard-types), [`string`](../../core-concepts/dpf-types.md#standard-types) -Returns a vector of int for property: "ids" and a string for property: "location". +Returns a vector of int for property: "ids" an int for "maximum_id" and a string for property: "location". ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/deserializer.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/deserializer.md index 0eb2bbae2a..db20ddbb22 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/deserializer.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/deserializer.md @@ -20,17 +20,17 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| -| -1 | [stream_type](#input_-1) | Required|[`int32`](../../core-concepts/dpf-types.md#standard-types) | +| -1 | [stream_type](#input_-1) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | | 0 | [file_path](#input_0) | Required|[`string`](../../core-concepts/dpf-types.md#standard-types) | ### stream_type (Pin -1) -- **Required:** Yes +- **Required:** No - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) -0 for ASCII (default), and 1 for binary +0 for ASCII (default), and 1 for binary. If not provided, the type is auto-detected from the file. ### file_path (Pin 0) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/hdf5dpf_generate_result_file.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/hdf5dpf_generate_result_file.md index fcb5843a62..c2d564cd5b 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/hdf5dpf_generate_result_file.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/hdf5dpf_generate_result_file.md @@ -21,7 +21,7 @@ Each parameter is detailed in the sections that follow the table. | Pin number | Name | Status | Expected type(s) | |------------|------|--------|------------------| | -7 | [h5_chunk_size](#input_-7) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | -| -6 | [append_mode](#input_-6) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | +| -6 | [append_mode](#input_-6) | |[`bool`](../../core-concepts/dpf-types.md#standard-types), [`int32`](../../core-concepts/dpf-types.md#standard-types) | | -5 | [dataset_size_compression_threshold](#input_-5) | |[`int32`](../../core-concepts/dpf-types.md#standard-types) | | -2 | [h5_native_compression](#input_-2) | |[`int32`](../../core-concepts/dpf-types.md#standard-types), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) | | -1 | [export_floats](#input_-1) | |[`bool`](../../core-concepts/dpf-types.md#standard-types) | @@ -44,9 +44,9 @@ Size of each HDF5 chunk in kilobytes (KB). Default: 1 MB when compression is ena ### append_mode (Pin -6) - **Required:** No -- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types), [`int32`](../../core-concepts/dpf-types.md#standard-types) -Experimental: Allow appending chunked data to the file. This disables fields container content deduplication. +Experimental: Allow appending chunked data to the file. This disables fields container content deduplication.0 (false) is default for not appending, 1 (true) for appending, 2 for appending just the time freq support(used in live mapdl export) ### dataset_size_compression_threshold (Pin -5) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/serializer.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/serializer.md index 9f1b7c0610..3db6f6f719 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/serializer.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/serialization/serializer.md @@ -31,7 +31,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`int32`](../../core-concepts/dpf-types.md#standard-types) -0 for ASCII (default), and 1 for binary +0 for ASCII, and 1 for binary (default) ### file_path (Pin 0) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/customtypefield_get_attribute.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/customtypefield_get_attribute.md index f6c3cf615d..1a93432d1c 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/customtypefield_get_attribute.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/customtypefield_get_attribute.md @@ -38,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) -Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header' and 'datasize'. +Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header', 'datasize' and 'data'. ## Outputs @@ -49,15 +49,15 @@ Each output is detailed in the sections that follow the table. | Pin number | Name | Expected type(s) | |-------|------|------------------| -| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) | +| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) | ### property (Pin 0) -- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) -Property value that is returned. Accepted Outputs are: Field, PropertyField, CustomTypeField or their containers. +Property value that is returned. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/field_get_attribute.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/field_get_attribute.md index 163b96afdf..e942549bc6 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/field_get_attribute.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/field_get_attribute.md @@ -38,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) -Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header' and 'datasize'. +Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header', 'datasize' and 'data'. ## Outputs @@ -49,15 +49,15 @@ Each output is detailed in the sections that follow the table. | Pin number | Name | Expected type(s) | |-------|------|------------------| -| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) | +| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) | ### property (Pin 0) -- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) -Property value that is returned. Accepted Outputs are: Field, PropertyField, CustomTypeField or their containers. +Property value that is returned. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/propertyfield_get_attribute.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/propertyfield_get_attribute.md index 2e27c4279e..d29c9247e5 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/propertyfield_get_attribute.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/propertyfield_get_attribute.md @@ -38,7 +38,7 @@ Each parameter is detailed in the sections that follow the table. - **Required:** Yes - **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) -Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header' and 'datasize'. +Property to get. Accepted inputs are specific strings namely: 'unit, 'name','time_freq_support', 'scoping', 'header', 'datasize' and 'data'. ## Outputs @@ -49,15 +49,15 @@ Each output is detailed in the sections that follow the table. | Pin number | Name | Expected type(s) | |-------|------|------------------| -| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) | +| **0**| [property](#output_0) |[`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) | ### property (Pin 0) -- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree) +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types), [`time_freq_support`](../../core-concepts/dpf-types.md#time-freq-support), [`scoping`](../../core-concepts/dpf-types.md#scoping), [`abstract_data_tree`](../../core-concepts/dpf-types.md#data-tree), [`int32`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types), [`vector`](../../core-concepts/dpf-types.md#standard-types) -Property value that is returned. Accepted Outputs are: Field, PropertyField, CustomTypeField or their containers. +Property value that is returned. ## Configurations diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/transpose_fields_container.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/transpose_fields_container.md new file mode 100644 index 0000000000..a8408f06e3 --- /dev/null +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/transpose_fields_container.md @@ -0,0 +1,159 @@ +--- +category: utility +plugin: core +license: None +--- + +# utility:transpose fields container + +**Version: 0.0.0** + +## Description + +Transposes a fields container so that the fields' scoping becomes the container's scoping and a chosen label (default: time) becomes the fields' scoping. + +Input layout (example with time label, 2 body labels, 3 nodes): + FC labels: [time, body] + Field 0: {time:1, body:1} -> scoping {n1, n2, n3}, data [...] + Field 1: {time:1, body:2} -> scoping {n4, n5}, data [...] + Field 2: {time:2, body:1} -> scoping {n1, n2, n3}, data [...] + Field 3: {time:2, body:2} -> scoping {n4, n5}, data [...] + +Output layout (transposed on time): + FC labels: [Nodal, body] + Field 0: {Nodal:n1, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + Field 1: {Nodal:n2, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + Field 1: {Nodal:n3, body:1} -> scoping {t1, t2}, data [gathered from fields 0,2] + Field 2: {Nodal:n4, body:2} -> scoping {t1, t2}, data [gathered from fields 1,3] + Field 3: {Nodal:n5, body:2} -> scoping {t1, t2}, data [gathered from fields 1,3] + ... + +Each output field gathers one entity's data across all values of the transposed label from the input fields that share the same non-transposed labels. All input fields sharing a labelspace where only the transposed label changes must have the same scoping and location. + +## Inputs + +This table lists the input pins for this operator. Input pins define the data that the operator requires to perform its operation. +Some inputs are required, while others are optional and provide additional configuration. +Each parameter is detailed in the sections that follow the table. + +| Pin number | Name | Status | Expected type(s) | +|------------|------|--------|------------------| +| 0 | [fields_container](#input_0) | Required|[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | +| 1 | [label](#input_1) | |[`string`](../../core-concepts/dpf-types.md#standard-types) | + + + +### fields_container (Pin 0) + +- **Required:** Yes +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + +It is assumed that the fields container consists of fields having the same scoping. + + +### label (Pin 1) + +- **Required:** No +- **Expected type(s):** [`string`](../../core-concepts/dpf-types.md#standard-types) + +fields container label to use as fields label (default is time) + + +## Outputs + +This table lists the output pins for this operator. +Output pins provide the results of the operator's computation and can be connected to inputs of other operators or retrieved for further processing. +Each output is detailed in the sections that follow the table. + +| Pin number | Name | Expected type(s) | +|-------|------|------------------| +| **0**| [fields_container](#output_0) |[`fields_container`](../../core-concepts/dpf-types.md#fields-container) | + + + +### fields_container (Pin 0) + +- **Expected type(s):** [`fields_container`](../../core-concepts/dpf-types.md#fields-container) + + + + +## Configurations + +This operator supports [configuration options](../../core-concepts/operator-configurations.md) that modify its behavior. + + +### [mutex](../../core-concepts/operator-configurations.md#mutex) + +- **Expected type(s):** [`bool`](../../core-concepts/dpf-types.md#standard-types) +- **Default value:** false + +If this option is set to true, the shared memory is prevented from being simultaneously accessed by multiple threads. + + + +## Scripting + +This operator can be accessed through scripting interfaces using these identifiers. + + **Category**: utility + + **Plugin**: core + + **Scripting name**: None + + **Full name**: None + + **Internal name**: transpose_fields_container + + **License**: None + +## Examples + +These examples demonstrate how to use this operator in different programming environments. +Each example shows how to instantiate the operator, connect the required inputs, and retrieve the output. + +
+C++ + +```cpp +#include "dpf_api.h" + +ansys::dpf::Operator op("transpose_fields_container"); // operator instantiation +op.connect(0, my_fields_container); +op.connect(1, my_label); +ansys::dpf::FieldsContainer my_fields_container = op.getOutput(0); +``` +
+ +
+CPython + +```python +import ansys.dpf.core as dpf + +op = dpf.operators.utility.None() # operator instantiation +op.inputs.fields_container.connect(my_fields_container) +op.inputs.label.connect(my_label) +my_fields_container = op.outputs.fields_container() +``` +
+ +
+IPython + +```python +import mech_dpf +import Ans.DataProcessing as dpf + +op = dpf.operators.utility.None() # operator instantiation +op.inputs.fields_container.Connect(my_fields_container) +op.inputs.label.Connect(my_label) +my_fields_container = op.outputs.fields_container.GetData() +``` +
+
+ +## Changelog + +- Version 0.0.0: Initial release. \ No newline at end of file diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/utility_category.md b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/utility_category.md index 223def1f4b..75599910a7 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/utility_category.md +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/operator-specifications/utility/utility_category.md @@ -88,6 +88,7 @@ - [split in for each range](split_in_for_each_range.md) - [strain from voigt](strain_from_voigt.md) - [strain from voigt fc](strain_from_voigt_fc.md) +- [transpose fields container](transpose_fields_container.md) - [txt file to dpf](txt_file_to_dpf.md) - [unitary field](unitary_field.md) - [weighted merge fields by label](weighted_merge_fields_by_label.md) diff --git a/docs/dpf/dpf-framework/versions/2027.R1.SP00/toc.yml b/docs/dpf/dpf-framework/versions/2027.R1.SP00/toc.yml index 91a164695c..5c1812aa9f 100644 --- a/docs/dpf/dpf-framework/versions/2027.R1.SP00/toc.yml +++ b/docs/dpf/dpf-framework/versions/2027.R1.SP00/toc.yml @@ -110,6 +110,14 @@ href: operator-specifications/compression/quantization_fc.md - name: zfp decompress href: operator-specifications/compression/zfp_decompress.md + - name: zstd compress + href: operator-specifications/compression/zstd_compress.md + - name: zstd compress fc + href: operator-specifications/compression/zstd_compress_fc.md + - name: zstd decompress + href: operator-specifications/compression/zstd_decompress.md + - name: zstd decompress fc + href: operator-specifications/compression/zstd_decompress_fc.md - name: filter href: operator-specifications/filter/filter_category.md items: @@ -821,6 +829,8 @@ href: operator-specifications/result/compute_total_strain_YZ.md - name: compute total strain Z href: operator-specifications/result/compute_total_strain_Z.md + - name: contact element heat flow + href: operator-specifications/result/contact_element_heat_flow.md - name: contact fluid penetration pressure href: operator-specifications/result/contact_fluid_penetration_pressure.md - name: contact friction stress @@ -839,6 +849,8 @@ href: operator-specifications/result/contact_surface_heat_flux.md - name: contact total stress href: operator-specifications/result/contact_total_stress.md + - name: convection heat flow rate + href: operator-specifications/result/convection_heat_flow_rate.md - name: coordinates href: operator-specifications/result/coordinates.md - name: coordinate system @@ -1303,6 +1315,8 @@ href: operator-specifications/result/pretension.md - name: radiation area href: operator-specifications/result/radiation_area.md + - name: radiation heat flow rate + href: operator-specifications/result/radiation_heat_flow_rate.md - name: raw acceleration href: operator-specifications/result/raw_acceleration.md - name: raw displacement @@ -1471,6 +1485,30 @@ href: operator-specifications/result/total_pressure.md - name: total strain href: operator-specifications/result/total_strain.md + - name: total strain eqv + href: operator-specifications/result/total_strain_eqv.md + - name: total strain intensity + href: operator-specifications/result/total_strain_intensity.md + - name: total strain max shear + href: operator-specifications/result/total_strain_max_shear.md + - name: total strain principal 1 + href: operator-specifications/result/total_strain_principal_1.md + - name: total strain principal 2 + href: operator-specifications/result/total_strain_principal_2.md + - name: total strain principal 3 + href: operator-specifications/result/total_strain_principal_3.md + - name: total strain X + href: operator-specifications/result/total_strain_X.md + - name: total strain XY + href: operator-specifications/result/total_strain_XY.md + - name: total strain XZ + href: operator-specifications/result/total_strain_XZ.md + - name: total strain Y + href: operator-specifications/result/total_strain_Y.md + - name: total strain YZ + href: operator-specifications/result/total_strain_YZ.md + - name: total strain Z + href: operator-specifications/result/total_strain_Z.md - name: total temperature href: operator-specifications/result/total_temperature.md - name: transform invariant terms rbd @@ -1785,6 +1823,8 @@ href: operator-specifications/utility/strain_from_voigt.md - name: strain from voigt fc href: operator-specifications/utility/strain_from_voigt_fc.md + - name: transpose fields container + href: operator-specifications/utility/transpose_fields_container.md - name: txt file to dpf href: operator-specifications/utility/txt_file_to_dpf.md - name: unitary field