diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html index 694280e73b2..e51d925d78a 100644 --- a/doc/source/_static/dpf_operators.html +++ b/doc/source/_static/dpf_operators.html @@ -5312,7 +5312,7 @@

Configurating operators

Warning: There are multiple results named "current density".

This operator returns the elemental "Source current density", also named "JS" in MAPDL and Mechanical.

To retrieve the result named "current density" in Mechanical or "JC" in MAPDL, use the solver specific operator: mapdl::rth::JC.

-
Version 0.0.0

Supported file types

Inputs

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.

+
Version 0.0.0

Supported file types

Inputs

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.

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 already allocated modified inplace

result file container allowed to be kept open to cache data

@@ -5324,7 +5324,16 @@

Configurating operators

Configurations

Scripting

Changelog

math: multiply (complex fields)

Description

Computes multiplication between two field containers containing complex fields.

Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

utility: merge result infos

Description

Assembles a set of result information into a unique one.

Version 0.0.0

Inputs

A vector of result info containers to merge or result infos from pin 0 to ...

-

Outputs

Configurations

Scripting

Changelog

result: global total mass (LSDyna)

Description

Read Global Total Mass (LSDyna) by calling the readers defined by the datasources.

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotational acceleration Z

Description

Read/compute nodal rotational acceleration Z component of the vector (3rd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

result: global total mass (LSDyna)

Description

Read Global Total Mass (LSDyna) by calling the readers defined by the datasources.

Version 0.0.0

Supported file types

Inputs

result file container allowed to be kept open to cache data

result file path container, used if no streams are set

(LSDyna) Unit System ID (int), semicolon-separated list of base unit strings (str) or UnitSystem instance

@@ -5351,9 +5360,7 @@

Configurating operators

Outputs

Configurations

Scripting

Changelog

math: +

Description

Computes the sum of two fields. If one field's scoping has 'overall' location, then these field's values are applied on the entire other field. If one of the input field is empty, the remaining is forwarded to the output. When using a constant or 'work_by_index', it's possible to use 'inplace' to reuse one of the fields.

Version 0.0.0

Inputs

field or fields container with only one field is expected

field or fields container with only one field is expected

-

Outputs

Configurations

Scripting

Changelog

server: grpc shutdown server

Description

Shutdowns dpf's grpc server

-
Version 0.0.0

Inputs

dpf streams handling the server

-

Outputs

Configurations

Scripting

Changelog

result: magnetic scalar potential

Description

Read/compute Magnetic Scalar Potential by calling the readers defined by the datasources.

+

Outputs

Configurations

Scripting

Changelog

result: magnetic scalar potential

Description

Read/compute Magnetic Scalar Potential by calling the readers defined by the datasources.

Version 0.0.0

Supported file types

Inputs

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.

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 already allocated modified inplace

@@ -6177,16 +6184,7 @@

Configurating operators

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)

Outputs

Configurations

Scripting

Changelog

logic: component selector (fields container)

Description

Creates a scalar fields container based on the selected component for each field.

Version 0.0.0

Inputs

one or several component index that will be extracted from the initial field.

-

Outputs

Configurations

Scripting

Changelog

logic: component selector (field)

Description

Creates a scalar/vector field based on the selected component.

-
Version 0.0.0

Inputs

One or several component index that will be extracted from the initial field.

-

Set a default value for components that do not exist.

-

Outputs

Configurations

Scripting

Changelog

scoping: on property

Description

Provides a scoping at a given location based on a given property name and a property number.

-
Version 0.0.0

Inputs

Nodal or Elemental location are expected

-

ex "mapdl_element_type", "mapdl_element_type_id", "apdl_type_index", "mapdl_type_id", "material", "apdl_section_id", "apdl_real_id", "apdl_esys_id", "shell_axi", "volume_axi"...

-

property_id or vector of property ids

-

If element scoping is requested on a nodal named selection, if inclusive == 1 then all the elements/faces adjacent to the nodes/faces ids in input are added, if inclusive == 0, only the elements/faces which have all their nodes/faces in the scoping are included

-

Outputs

Scoping

-

Configurations

Scripting

Changelog

result: stress intensity

Description

Reads/computes element nodal component stresses, average it on nodes (by default) and computes its invariants. +

Outputs

Configurations

Scripting

Changelog

result: stress intensity

Description

Reads/computes element nodal component stresses, 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.

Version 1.0.0

Supported file types

Inputs

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.

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

@@ -6197,7 +6195,16 @@

Configurating operators

prevents from reading the mesh in the result files

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)

elemental nodal beam results are read if this pin is set to true (default is false)

-

Outputs

Configurations

Scripting

Changelog

logic: component transformer (field)

Description

Takes the input field and creates a field with overriden value on given components.

+

Outputs

Configurations

Scripting

Changelog

scoping: on property

Description

Provides a scoping at a given location based on a given property name and a property number.

+
Version 0.0.0

Inputs

Nodal or Elemental location are expected

+

ex "mapdl_element_type", "mapdl_element_type_id", "apdl_type_index", "mapdl_type_id", "material", "apdl_section_id", "apdl_real_id", "apdl_esys_id", "shell_axi", "volume_axi"...

+

property_id or vector of property ids

+

If element scoping is requested on a nodal named selection, if inclusive == 1 then all the elements/faces adjacent to the nodes/faces ids in input are added, if inclusive == 0, only the elements/faces which have all their nodes/faces in the scoping are included

+

Outputs

Scoping

+

Configurations

Scripting

Changelog

logic: component selector (field)

Description

Creates a scalar/vector field based on the selected component.

+
Version 0.0.0

Inputs

One or several component index that will be extracted from the initial field.

+

Set a default value for components that do not exist.

+

Outputs

Configurations

Scripting

Changelog

logic: component transformer (field)

Description

Takes the input field and creates a field with overriden value on given components.

Version 0.0.0

Inputs

One or several component index that will be modified from the initial field.

Set a default value for components selected.

Outputs

Configurations

Scripting

Changelog

logic: component transformer (fields container)

Description

Takes the input field and creates a field with overriden value on given components.

@@ -6946,9 +6953,18 @@

Configurating operators

prevents from reading the mesh in the result files

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)

elemental nodal beam results are read if this pin is set to true (default is false)

-

Outputs

Configurations

Scripting

Changelog

utility: default value

Description

Default return value from input pin 1 to output pin 0 if there is nothing on input pin 0.

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

averaging: elemental nodal to nodal elemental (fields container)

Description

Transforms Elemental Nodal fields to Nodal Elemental fields. The result is computed on a given node's scoping.

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: rms velocity

Description

Read RMS Velocity by calling the readers defined by the datasources.

+

Outputs

Configurations

Scripting

Changelog

averaging: elemental nodal to nodal elemental (fields container)

Description

Transforms Elemental Nodal fields to Nodal Elemental fields. The result is computed on a given node's scoping.

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: nodal rotational velocity Z

Description

Read/compute nodal rotational velocity Z component of the vector (3rd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

utility: default value

Description

Default return value from input pin 1 to output pin 0 if there is nothing on input pin 0.

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: rms velocity

Description

Read RMS Velocity by calling the readers defined by the datasources.

Version 0.0.0

Supported file types

Inputs

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.

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

result file container allowed to be kept open to cache data

@@ -6956,7 +6972,10 @@

Configurating operators

prevents from reading the mesh in the result files

region id (integer) or vector of region ids (vector) or region scoping (scoping) of the model (region corresponds to zone for Fluid results or part for LSDyna results).

(for Fluid results only) LabelSpace with combination of zone, phases or species ids

-

Outputs

Configurations

Scripting

Changelog

result: acceleration X

Description

Read/compute nodal accelerations X component of the vector (1st component) by calling the readers defined by the datasources.

+

Outputs

Configurations

Scripting

Changelog

result: poynting vector

Description

Compute the Poynting Vector

+
Version 0.0.0

Inputs

the mesh region in this pin have to be boundary or skin mesh

+

load step number, if it's specified, the Poynting Vector is computed only on the substeps of this step

+

Outputs

Configurations

Scripting

Changelog

result: acceleration X

Description

Read/compute nodal accelerations X component of the vector (1st component) by calling the readers defined by the datasources.

Version 0.0.0

Supported file types

Inputs

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.

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

FieldsContainer already allocated modified inplace

@@ -6965,10 +6984,7 @@

Configurating operators

if true the field is rotated to global coordinate system (default true)

prevents from reading the mesh in the result files

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)

-

Outputs

Configurations

Scripting

Changelog

result: poynting vector

Description

Compute the Poynting Vector

-
Version 0.0.0

Inputs

the mesh region in this pin have to be boundary or skin mesh

-

load step number, if it's specified, the Poynting Vector is computed only on the substeps of this step

-

Outputs

Configurations

Scripting

Changelog

utility: extract sub fields container

Description

Creates a new fields container with all the fields corresponding to the label space in input 1. If pin 1 is not defined, pin 0 input will be copied to the output.

+

Outputs

Configurations

Scripting

Changelog

utility: extract sub fields container

Description

Creates a new fields container with all the fields corresponding to the label space in input 1. If pin 1 is not defined, pin 0 input will be copied to the output.

Version 0.0.0

Inputs

fields_container

Label space, or scoping defining the label space (scoping location), values to keep (scoping IDs)

If set to true (default) the input label space (scoping location) is suppressed from the output fields container, otherwise, label space is kept.

@@ -7982,7 +7998,7 @@

Configurating operators

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)

elemental nodal beam results are read if this pin is set to true (default is false)

Outputs

Configurations

Scripting

Changelog

mesh: mesh provider

Description

Reads a mesh from result files.

-
Version 0.0.0

Supported file types

Inputs

Optional time/frequency set ID of the mesh, supported for adaptative meshes.

+
Version 0.0.0

Supported file types

Inputs

Optional time/frequency set ID of the mesh, supported for adaptative meshes.

result file container allowed to be kept open to cache data

result file path container, used if no streams are set

If 1, cyclic symmetry is ignored. If 2, cyclic expansion is done (default is 1).

@@ -8173,7 +8189,16 @@

Configurating operators

This field contains offset type of beams.

This field contains offset y of beams.

This field contains offset z of beams.

-

Configurations

Scripting

Changelog

result: gasket inelastic closure XZ

Description

Read/compute elemental gasket inelastic closure 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.

+

Configurations

Scripting

Changelog

result: nodal rotational velocity X

Description

Read/compute nodal rotational velocity X component of the vector (1st component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

result: gasket inelastic closure XZ

Description

Read/compute elemental gasket inelastic closure 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.

Version 0.0.0

Supported file types

Inputs

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.

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

FieldsContainer already allocated modified inplace

@@ -9032,14 +9057,15 @@

Configurating operators

elemental nodal beam results are read if this pin is set to true (default is false)

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.

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.

-

Outputs

Configurations

Scripting

Changelog

result: compute stress von mises

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computationGet the Von Mises equivalent stress.

-
Version 0.0.0

Inputs

The element scoping on which the result is computed.

-

Needed to get mesh and material ids. Optional if a data_sources have been connected.

-

Needed to get mesh and material ids. Optional if a streams_container have been connected.

-

Average the Elemental Nodal result to the requested location.

-

Field/or fields container containing only the elastic strain field (element nodal).

-

Outputs

The computed result fields container (elemental nodal).

-

Configurations

Scripting

Changelog

filter: low pass (scoping)

Description

The low pass filter returns all the values below (but not equal to) the threshold value in input.

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotational acceleration

Description

Read/compute nodal rotational acceleration by calling the readers defined by the datasources.

+
Version 0.0.0

Supported file types

Inputs

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.

+

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 already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.

+

prevents from reading the mesh in the result files

+

Outputs

Configurations

Scripting

Changelog

filter: low pass (scoping)

Description

The low pass filter returns all the values below (but not equal to) the threshold value in input.

Version 0.0.0

Inputs

field or fields container with only one field is expected

a threshold scalar or a field containing one value is expected

The default is false. If set to true, the complement of the filtered fields container is returned on output pin 1.

@@ -10749,7 +10775,101 @@

Configurating operators

requested location, default is Nodal

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)

elemental nodal beam results are read if this pin is set to true (default is false)

-

Outputs

Configurations

Scripting

Changelog

result: element nodal forces

Description

Read/compute element nodal forces by calling the readers defined by the datasources.

+

Outputs

Configurations

Scripting

Changelog

logic: descending sort (fields container)

Description

Sort a field (in 0) in descending order, with an optional component priority table or a boolean to enable sort by scoping (in 1). This operator doesn't support multiple elementary data per entity.

+
Version 0.0.0

Inputs

field or fields container with only one field is expected

+

component priority table (vector of int)

+

if true, uses scoping to sort the field (default is false)

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotations

Description

Read/compute nodal rotations by calling the readers defined by the datasources.

+
Version 0.0.0

Supported file types

Inputs

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.

+

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 already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.

+

prevents from reading the mesh in the result files

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotations X

Description

Read/compute nodal rotations X component of the vector (1st component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

utility: custom type field get attribute

Description

A CustomTypeField in pin 0 and a property name (string) in pin 1 are expected in input.

+
Version 0.0.0

Inputs

Accepted inputs are: 'time_freq_support', 'scoping' and 'header'.

+

Outputs

Property value.

+

Configurations

Scripting

Changelog

utility: merge property fields

Description

Assembles a set of property fields into a unique one.

+
Version 0.0.0

Inputs

If true, merge the input property fields assuming that there is no repetition in their scoping ids. Default is false.

+

Either a property fields container, a vector of property fields to merge or property fields from pin 0 to ...

+

Outputs

Configurations

Scripting

Changelog

metadata: cyclic analysis?

Description

Reads if the model is cyclic from the result file.

+
Version 0.0.0

Supported file types

Inputs

streams (result file container) (optional)

+

If the stream is null, retrieves the file path from the data sources.

+

Outputs

returns 'single_stage' or 'multi_stage' or an empty string for non cyclic model

+

Configurations

Scripting

Changelog

result: nodal rotations Y

Description

Read/compute nodal rotations Y component of the vector (2nd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

serialization: data tree to txt

Description

Writes a txt file or string from a DataTree

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: nodal rotations Z

Description

Read/compute nodal rotations Z component of the vector (3rd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

mesh: meshes provider

Description

Reads meshes from result files. Meshes can be spatially or temporally varying.

+
Version 0.0.0

Supported file types

Inputs

Time/frequency set IDs required in output.

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if 1, cyclic symmetry is ignored. If 2, cyclic expansion is done (default is 1).

+

region id (integer) or vector of region ids (vector) or region scoping (scoping) of the model (region corresponds to zone for Fluid results or part for LSDyna results).

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotational velocity

Description

Read/compute nodal rotational velocity by calling the readers defined by the datasources.

+
Version 0.0.0

Supported file types

Inputs

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.

+

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 already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.

+

prevents from reading the mesh in the result files

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotational velocity Y

Description

Read/compute nodal rotational velocity Y component of the vector (2nd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

averaging: to elemental nodal (fields container)

Description

Transforms fields into Elemental Nodal fields using an averaging process. The result is computed on a given element's scoping.

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: nodal rotational acceleration X

Description

Read/compute nodal rotational acceleration X component of the vector (1st component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

result: nodal rotational acceleration Y

Description

Read/compute nodal rotational acceleration Y component of the vector (2nd component) by calling the readers defined by the datasources.

+
Version 0.0.0

Inputs

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.

+

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

+

FieldsContainer already allocated modified inplace

+

result file container allowed to be kept open to cache data

+

result file path container, used if no streams are set

+

if true the field is rotated to global coordinate system (default true)

+

prevents from reading the mesh in the result files

+

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)

+

Outputs

Configurations

Scripting

Changelog

metadata: boundary condition provider

Description

Reads boundary conditions from the results files contained in the streams or data sources.

+
Version 0.0.0

Supported file types

Inputs

Outputs

results info

+

Configurations

Scripting

Changelog

result: element nodal forces

Description

Read/compute element nodal forces 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:
  • @@ -11758,7 +11878,7 @@

    Configurating operators

    -
Version 0.0.0

Supported file types

Inputs

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.

+
Version 0.0.0

Supported file types

Inputs

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.

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 already allocated modified inplace

result file container allowed to be kept open to cache data

@@ -12192,7 +12312,7 @@

Configurating operators

-
Version 0.0.0

Supported file types

Inputs

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.

+
Version 0.0.0

Supported file types

Inputs

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.

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 already allocated modified inplace

result file container allowed to be kept open to cache data

@@ -12627,7 +12747,7 @@

Configurating operators

-
Version 0.0.0

Supported file types

Inputs

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.

+
Version 0.0.0

Supported file types

Inputs

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.

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 already allocated modified inplace

result file container allowed to be kept open to cache data

@@ -14038,38 +14158,15 @@

Configurating operators

Key to look for. Must be set for 'file_path' and 'domain_file_path' properties.

Result key to look for. Can be used for 'file_path', 'result_file_name', 'domain_file_path' and 'domain_result_file_name'.

Outputs

Property value.

-

Configurations

Scripting

Changelog

mesh: meshes provider

Description

Reads meshes from result files. Meshes can be spatially or temporally varying.

-
Version 0.0.0

Supported file types

Inputs

Time/frequency set IDs required in output.

-

result file container allowed to be kept open to cache data

-

result file path container, used if no streams are set

-

if 1, cyclic symmetry is ignored. If 2, cyclic expansion is done (default is 1).

-

region id (integer) or vector of region ids (vector) or region scoping (scoping) of the model (region corresponds to zone for Fluid results or part for LSDyna results).

-

Outputs

Configurations

Scripting

Changelog

metadata: mesh selection manager provider

Description

Reads mesh properties from the results files contained in the streams or data sources, and makes those properties available through a mesh selection manager in output.

+

Configurations

Scripting

Changelog

metadata: mesh selection manager provider

Description

Reads mesh properties from the results files contained in the streams or data sources, and makes those properties available through a mesh selection manager in output.

Version 0.0.0

Supported file types

Inputs

streams (result file container) (optional)

If the stream is null, retrieves the file path from the data sources.

Outputs

Configurations

Scripting

Changelog

utility: for each

Description

Allows to write a loop over a chunk of operators.

Version 0.0.0

Inputs

Either the result of the make_iterable_info operator, or the operator that must be incremented.

-

Outputs

Configurations

Scripting

Changelog

metadata: boundary condition provider

Description

Reads boundary conditions from the results files contained in the streams or data sources.

-
Version 0.0.0

Supported file types

Inputs

Outputs

results info

-

Configurations

Scripting

Changelog

utility: custom type field get attribute

Description

A CustomTypeField in pin 0 and a property name (string) in pin 1 are expected in input.

-
Version 0.0.0

Inputs

Accepted inputs are: 'time_freq_support', 'scoping' and 'header'.

-

Outputs

Property value.

-

Configurations

Scripting

Changelog

utility: merge property fields

Description

Assembles a set of property fields into a unique one.

-
Version 0.0.0

Inputs

If true, merge the input property fields assuming that there is no repetition in their scoping ids. Default is false.

-

Either a property fields container, a vector of property fields to merge or property fields from pin 0 to ...

-

Outputs

Configurations

Scripting

Changelog

metadata: cyclic analysis?

Description

Reads if the model is cyclic from the result file.

-
Version 0.0.0

Supported file types

Inputs

streams (result file container) (optional)

-

If the stream is null, retrieves the file path from the data sources.

-

Outputs

returns 'single_stage' or 'multi_stage' or an empty string for non cyclic model

-

Configurations

Scripting

Changelog

metadata: material support provider

Description

Reads the material support.

+

Outputs

Configurations

Scripting

Changelog

metadata: material support provider

Description

Reads the material support.

Version 0.0.0

Supported file types

Inputs

Streams result file container (optional).

if the stream is null, get the file path from the data sources.

-

Outputs

Configurations

Scripting

Changelog

scoping: reduce sampling scoping

Description

Take a scoping and remove half of it's content.

-
Version 0.0.0

Inputs

Set the number of time the scoping is reduced (default is 2). Must be integer value above 1.

-

Outputs

Configurations

Scripting

Changelog

scoping: on named selection

Description

provides a scoping at a given location based on a given named selection

-
Version 0.0.0

Inputs

the string is expected to be in upper case

-

If element scoping is requested on a nodal named selection, if Inclusive == 1 then add all the elements adjacent to the nodes.If Inclusive == 0, only the elements which have all their nodes in the named selection are included

-

Outputs

Configurations

Scripting

Changelog

math: accumulation per scoping

Description

This operator calculates the sum and the percentage of total sum of the input fields container for each scoping of the scopings container.

+

Outputs

Configurations

Scripting

Changelog

math: accumulation per scoping

Description

This operator calculates the sum and the percentage of total sum of the input fields container for each scoping of the scopings container.

Version 0.0.0

Inputs

Master scoping. All scopings in the Scopings Container will be intersected with this scoping.

The intersection between the of the first will be used.

Outputs

Configurations

Scripting

Changelog

metadata: real constants provider

Description

Reads real constants from the result files contained in the streams or data sources.

@@ -14098,24 +14195,16 @@

Configurating operators

Version 0.0.0

Inputs

Vector or tensor field that must be rotated, expressed in nodal coordinate system.

Nodal euler angles defined from a result file. Those must be the rotations from Nodal to Global.

Outputs

Rotated field

-

Configurations

Scripting

Changelog

result: global_to_nodal

Description

Rotate results from global coordinate system to local coordinate system.

-
Version 0.0.0

Inputs

Vector or tensor field that must be rotated, expressed in global coordinate system.

-

Nodal euler angles defined from a result file. Those must be the rotations from Nodal to Global.

-

Outputs

Rotated field

-

Configurations

Scripting

Changelog

min_max: min max by entity over time

Description

For each entity and component, evaluates minimum and maximum over time/frequency.
+

Configurations

Scripting

Changelog

min_max: min max by entity over time

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.

Version 0.0.0

Inputs

Calculate the absolute value of field entities before computing the min/max.

Do calculate amplitude.

-

Outputs

Configurations

Scripting

Changelog

scoping: connectivity ids

Description

Returns the ordered node ids corresponding to the element ids scoping in input. For each element the node ids are its connectivity.

-
Version 0.0.0

Inputs

Elemental scoping

-

the support of the scoping is expected if there is no mesh in input

-

default is true

-

Outputs

same as the input scoping but with ids duplicated to have the same size as nodal output scoping

-

Configurations

Scripting

Changelog

min_max: max over time

Description

Evaluates maximum over time/frequency.

-
Version 0.0.0

Inputs

Should use absolute value.

-

Do calculate amplitude.

-

Outputs

Configurations

Scripting

Changelog

utility: split in for each range

Description

Split a scoping into several pieces so you can iterate it with a for_each loop.

+

Outputs

Configurations

Scripting

Changelog

result: global_to_nodal

Description

Rotate results from global coordinate system to local coordinate system.

+
Version 0.0.0

Inputs

Vector or tensor field that must be rotated, expressed in global coordinate system.

+

Nodal euler angles defined from a result file. Those must be the rotations from Nodal to Global.

+

Outputs

Rotated field

+

Configurations

Scripting

Changelog

utility: split in for each range

Description

Split a scoping into several pieces so you can iterate it with a for_each loop.

Version 0.0.0

Inputs

Iterable that can be combined with the one currently generated.

Operator that must be reconnected with the range values.

Outputs

Configurations

Scripting

Changelog

metadata: cyclic support provider

Description

Read the cyclic support (DPF entity containing necessary information for expansions) and expands the mesh.

@@ -14202,7 +14291,12 @@

Configurating operators

1: error as a field or a field container depending on the entry's type.

2: factor used for residual normalization

3: factor used for error norm normalization

-

Configurations

Scripting

Changelog

min_max: incremental over fields container

Description

Compute the component-wise minimum (out 0) and maximum (out 1) over a fields container.

+

Configurations

Scripting

Changelog

scoping: reduce sampling scoping

Description

Take a scoping and remove half of it's content.

+
Version 0.0.0

Inputs

Set the number of time the scoping is reduced (default is 2). Must be integer value above 1.

+

Outputs

Configurations

Scripting

Changelog

scoping: on named selection

Description

provides a scoping at a given location based on a given named selection

+
Version 0.0.0

Inputs

the string is expected to be in upper case

+

If element scoping is requested on a nodal named selection, if Inclusive == 1 then add all the elements adjacent to the nodes.If Inclusive == 0, only the elements which have all their nodes in the named selection are included

+

Outputs

Configurations

Scripting

Changelog

min_max: incremental over fields container

Description

Compute the component-wise minimum (out 0) and maximum (out 1) over a fields container.

Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

scoping: split on property type

Description

Splits a given scoping or the mesh scoping (nodal or elemental) on given properties (elshape and/or material, since 2025R1 it supports any scalar property field name contained in the mesh property fields) and returns a scopings container with those split scopings.

Version 0.0.0

Inputs

Scoping

mesh region

@@ -14210,7 +14304,15 @@

Configurating operators

set to 0: to have skin elements in their own group, 1: merge skin and solid elements, 2: merge skin and shell elements (default)

properties to apply the filtering 'mat' and/or 'elshape' (since 2025R1 it supports any property name contained in the mesh property fields) (default is 'elshape')

Outputs

Scoping

-

Configurations

Scripting

Changelog

scoping: transpose

Description

Transposes the input scoping or scopings container (Elemental/Faces --> Nodal, or Nodal ---> Elemental/Faces), based on the input mesh region.

+

Configurations

Scripting

Changelog

scoping: connectivity ids

Description

Returns the ordered node ids corresponding to the element ids scoping in input. For each element the node ids are its connectivity.

+
Version 0.0.0

Inputs

Elemental scoping

+

the support of the scoping is expected if there is no mesh in input

+

default is true

+

Outputs

same as the input scoping but with ids duplicated to have the same size as nodal output scoping

+

Configurations

Scripting

Changelog

min_max: max over time

Description

Evaluates maximum over time/frequency.

+
Version 0.0.0

Inputs

Should use absolute value.

+

Do calculate amplitude.

+

Outputs

Configurations

Scripting

Changelog

scoping: transpose

Description

Transposes the input scoping or scopings container (Elemental/Faces --> Nodal, or Nodal ---> Elemental/Faces), based on the input mesh region.

Version 0.0.0

Inputs

Scoping or scopings container (the input type is the output type)

if inclusive == 1 then all the elements/faces adjacent to the nodes/faces ids in input are added, if inclusive == 0, only the elements/faces which have all their nodes/faces in the scoping are included

Output scoping location for meshes with nodes, faces and elements. By default, elemental and faces scopings transpose to nodal, and nodal scopings transpose to elemental.

@@ -14460,8 +14562,7 @@

Configurating operators

Version 0.0.0

Inputs

field or fields container with only one field is expected

3-3 rotation matrix

Outputs

Configurations

Scripting

Changelog

serialization: data tree to json

Description

Writes a json file or string from a DataTree

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

serialization: data tree to txt

Description

Writes a txt file or string from a DataTree

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

averaging: nodal difference (fields container)

Description

Transforms Elemental Nodal fields into Nodal fields. Each nodal value is the maximum difference between the unaveraged computed result for all elements that share this particular node. The result is computed on a given node scoping. If the input fields are mixed shell/solid, then the fields are split by element shape and the output fields container has an elshape label.

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

averaging: nodal difference (fields container)

Description

Transforms Elemental Nodal fields into Nodal fields. Each nodal value is the maximum difference between the unaveraged computed result for all elements that share this particular node. The result is computed on a given node scoping. If the input fields are mixed shell/solid, then the fields are split by element shape and the output fields container has an elshape label.

Version 0.0.0

Inputs

The mesh region in this pin is used to perform the averaging. It is used if there is no fields support.

Average only on these nodes. If it is a scoping container, the label must correspond to the one of the fields containers.

Outputs

Configurations

Scripting

Changelog

serialization: json to data tree

Description

Reads a json file or string to a DataTree

@@ -14473,11 +14574,7 @@

Configurating operators

Version 0.0.0

Inputs

field or fields container with only one field is expected

component priority table (vector of int)

if true, uses scoping to sort the field (default is false)

-

Outputs

Configurations

Scripting

Changelog

logic: descending sort (fields container)

Description

Sort a field (in 0) in descending order, with an optional component priority table or a boolean to enable sort by scoping (in 1). This operator doesn't support multiple elementary data per entity.

-
Version 0.0.0

Inputs

field or fields container with only one field is expected

-

component priority table (vector of int)

-

if true, uses scoping to sort the field (default is false)

-

Outputs

Configurations

Scripting

Changelog

serialization: import symbolic workflow

Description

Reads a file or string holding a Symbolic Workflow and instantiate a WorkFlow with its data.

+

Outputs

Configurations

Scripting

Changelog

serialization: import symbolic workflow

Description

Reads a file or string holding a Symbolic Workflow and instantiate a WorkFlow with its data.

Version 0.0.0

Inputs

-1 is auto-detection, 0 is ASCII format, 1 is binary, 2 is json, default is -1 (auto-detection).

Outputs

Configurations

Scripting

Changelog

filter: filtering max over time workflow

Description

Creates a filtering workflow that will filter results based on a threshold of a selected invariant.

Version 0.0.0

Inputs

Name of the invariant operator to be used to calculate filter (available: eqv_fc, invariants_deriv_fc, invariants_fc).

@@ -14504,15 +14601,7 @@

Configurating operators

Number of desired outputs.

Outputs

Actual number of outputs.

Data sources outputs.

-

Configurations

Scripting

Changelog

averaging: to elemental nodal (fields container)

Description

Transforms fields into Elemental Nodal fields using an averaging process. The result is computed on a given element's scoping.

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: compute stress XY

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computation Get the XY shear component (01 component).

-
Version 0.0.0

Inputs

The element scoping on which the result is computed.

-

Needed to get mesh and material ids. Optional if a data_sources have been connected.

-

Needed to get mesh and material ids. Optional if a streams_container have been connected.

-

Average the Elemental Nodal result to the requested location.

-

Field/or fields container containing only the elastic strain field (element nodal).

-

Outputs

The computed result fields container (elemental nodal).

-

Configurations

Scripting

Changelog

server: grpc start server

Description

Starts a dpf's grpc server (if local) or connect to one and keep it waiting for requests in a streams.

+

Configurations

Scripting

Changelog

server: grpc start server

Description

Starts a dpf's grpc server (if local) or connect to one and keep it waiting for requests in a streams.

Version 0.0.0

Inputs

If no ip address is put, the local ip address is taken

If no port is put, port 50052 is taken

default is 1 that starts server in new thread. With 0, this thread will be waiting for grpc calls and will not be usable for anything else. With 2, it the server will be started in a new process.

@@ -14520,7 +14609,14 @@

Configurating operators

A data source with result key 'grpc' and file path 'port:ip' can be used instead of the input port and IP.

This pin is associated with pin(2) = 2 (server started in a new process). User can enter the integer associated with a DPF context (1: Standalone Context - DpfCoreStandalone.xml, 3: Custom - DpfCustomDefined.xml) or a string with the path of the XML specifying the context.

Outputs

dpf streams handling the server, if the server is started in this thread, then nothing is added in output

-

Configurations

Scripting

Changelog

utility: operator id

Description

Return the id of an Operator.

+

Configurations

Scripting

Changelog

result: compute stress XY

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computation Get the XY shear component (01 component).

+
Version 0.0.0

Inputs

The element scoping on which the result is computed.

+

Needed to get mesh and material ids. Optional if a data_sources have been connected.

+

Needed to get mesh and material ids. Optional if a streams_container have been connected.

+

Average the Elemental Nodal result to the requested location.

+

Field/or fields container containing only the elastic strain field (element nodal).

+

Outputs

The computed result fields container (elemental nodal).

+

Configurations

Scripting

Changelog

utility: operator id

Description

Return the id of an Operator.

Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

averaging: elemental nodal to nodal (field)

Description

Transforms an Elemental Nodal field into a Nodal field using an averaging process. The result is computed on a given node's scoping.

Version 0.0.0

Inputs

field or fields container with only one field is expected

average only on these entities

@@ -15224,7 +15320,16 @@

Configurating operators

Average the Elemental Nodal result to the requested location.

Field/or fields container containing only the elastic strain field (element nodal).

Outputs

The computed result fields container (elemental nodal).

-

Configurations

Scripting

Changelog

serialization: migrate to vtu

Description

Extract all results from a datasources and exports them into vtu format. All the connected inputs are forwarded to the result providers operators.

+

Configurations

Scripting

Changelog

result: compute stress von mises

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computationGet the Von Mises equivalent stress.

+
Version 0.0.0

Inputs

The element scoping on which the result is computed.

+

Needed to get mesh and material ids. Optional if a data_sources have been connected.

+

Needed to get mesh and material ids. Optional if a streams_container have been connected.

+

Average the Elemental Nodal result to the requested location.

+

Field/or fields container containing only the elastic strain field (element nodal).

+

Outputs

The computed result fields container (elemental nodal).

+

Configurations

Scripting

Changelog

server: grpc shutdown server

Description

Shutdowns dpf's grpc server

+
Version 0.0.0

Inputs

dpf streams handling the server

+

Outputs

Configurations

Scripting

Changelog

serialization: migrate to vtu

Description

Extract all results from a datasources and exports them into vtu format. All the connected inputs are forwarded to the result providers operators.

Version 0.0.0

Inputs

time sets to export, default is all

result file container allowed to be kept open to cache data

result file path container, used if no streams are set

diff --git a/src/ansys/dpf/core/operators/result/__init__.py b/src/ansys/dpf/core/operators/result/__init__.py index 0c78f968687..f5fb0468fe6 100644 --- a/src/ansys/dpf/core/operators/result/__init__.py +++ b/src/ansys/dpf/core/operators/result/__init__.py @@ -214,6 +214,18 @@ from .nmisc import nmisc from .nodal_force import nodal_force from .nodal_moment import nodal_moment +from .nodal_rotational_acceleration import nodal_rotational_acceleration +from .nodal_rotational_acceleration_X import nodal_rotational_acceleration_X +from .nodal_rotational_acceleration_Y import nodal_rotational_acceleration_Y +from .nodal_rotational_acceleration_Z import nodal_rotational_acceleration_Z +from .nodal_rotational_velocity import nodal_rotational_velocity +from .nodal_rotational_velocity_X import nodal_rotational_velocity_X +from .nodal_rotational_velocity_Y import nodal_rotational_velocity_Y +from .nodal_rotational_velocity_Z import nodal_rotational_velocity_Z +from .nodal_rotations import nodal_rotations +from .nodal_rotations_X import nodal_rotations_X +from .nodal_rotations_Y import nodal_rotations_Y +from .nodal_rotations_Z import nodal_rotations_Z from .nodal_to_global import nodal_to_global from .normal_contact_force import normal_contact_force from .normal_contact_moment import normal_contact_moment diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration.py b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration.py new file mode 100644 index 00000000000..344ba7de7c6 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration.py @@ -0,0 +1,463 @@ +""" +nodal_rotational_acceleration + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_acceleration(Operator): + r"""Read/compute nodal rotational acceleration by calling the readers + defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + Fields container already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_acceleration() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_acceleration( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + config=None, + server=None, + ): + super().__init__(name="DMG", config=config, server=server) + self._inputs = InputsNodalRotationalAcceleration(self) + self._outputs = OutputsNodalRotationalAcceleration(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational acceleration by calling the readers +defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""Fields container already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="DMG", server=server) + + @property + def inputs(self) -> InputsNodalRotationalAcceleration: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalAcceleration. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalAcceleration: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalAcceleration. + """ + return super().outputs + + +class InputsNodalRotationalAcceleration(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_acceleration operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_acceleration._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_acceleration._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_acceleration._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_acceleration._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_acceleration._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_acceleration._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input( + nodal_rotational_acceleration._spec().input_pin(7), 7, op, -1 + ) + self._inputs.append(self._mesh) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + Fields container already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + +class OutputsNodalRotationalAcceleration(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_acceleration operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_acceleration._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_X.py b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_X.py new file mode 100644 index 00000000000..19902c751da --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_X.py @@ -0,0 +1,504 @@ +""" +nodal_rotational_acceleration_X + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_acceleration_X(Operator): + r"""Read/compute nodal rotational acceleration X component of the vector + (1st component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_acceleration_X( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="DMGX", config=config, server=server) + self._inputs = InputsNodalRotationalAccelerationX(self) + self._outputs = OutputsNodalRotationalAccelerationX(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational acceleration X component of the vector +(1st component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="DMGX", server=server) + + @property + def inputs(self) -> InputsNodalRotationalAccelerationX: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalAccelerationX. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalAccelerationX: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalAccelerationX. + """ + return super().outputs + + +class InputsNodalRotationalAccelerationX(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_acceleration_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_X._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_acceleration_X._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_acceleration_X._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_acceleration_X._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_acceleration_X._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_acceleration_X._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_acceleration_X._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input( + nodal_rotational_acceleration_X._spec().input_pin(7), 7, op, -1 + ) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_acceleration_X._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalAccelerationX(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_acceleration_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_X._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_acceleration_X._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_X() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Y.py b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Y.py new file mode 100644 index 00000000000..24ca35d131f --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Y.py @@ -0,0 +1,504 @@ +""" +nodal_rotational_acceleration_Y + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_acceleration_Y(Operator): + r"""Read/compute nodal rotational acceleration Y component of the vector + (2nd component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="DMGY", config=config, server=server) + self._inputs = InputsNodalRotationalAccelerationY(self) + self._outputs = OutputsNodalRotationalAccelerationY(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational acceleration Y component of the vector +(2nd component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="DMGY", server=server) + + @property + def inputs(self) -> InputsNodalRotationalAccelerationY: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalAccelerationY. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalAccelerationY: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalAccelerationY. + """ + return super().outputs + + +class InputsNodalRotationalAccelerationY(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_acceleration_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_Y._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_acceleration_Y._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_acceleration_Y._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_acceleration_Y._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_acceleration_Y._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_acceleration_Y._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_acceleration_Y._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input( + nodal_rotational_acceleration_Y._spec().input_pin(7), 7, op, -1 + ) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_acceleration_Y._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalAccelerationY(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_acceleration_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_Y._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_acceleration_Y._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Y() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Z.py b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Z.py new file mode 100644 index 00000000000..c550092a042 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_acceleration_Z.py @@ -0,0 +1,504 @@ +""" +nodal_rotational_acceleration_Z + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_acceleration_Z(Operator): + r"""Read/compute nodal rotational acceleration Z component of the vector + (3rd component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="DMGZ", config=config, server=server) + self._inputs = InputsNodalRotationalAccelerationZ(self) + self._outputs = OutputsNodalRotationalAccelerationZ(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational acceleration Z component of the vector +(3rd component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="DMGZ", server=server) + + @property + def inputs(self) -> InputsNodalRotationalAccelerationZ: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalAccelerationZ. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalAccelerationZ: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalAccelerationZ. + """ + return super().outputs + + +class InputsNodalRotationalAccelerationZ(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_acceleration_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_Z._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_acceleration_Z._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_acceleration_Z._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_acceleration_Z._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_acceleration_Z._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_acceleration_Z._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_acceleration_Z._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input( + nodal_rotational_acceleration_Z._spec().input_pin(7), 7, op, -1 + ) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_acceleration_Z._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalAccelerationZ(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_acceleration_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_acceleration_Z._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_acceleration_Z._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_acceleration_Z() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_velocity.py b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity.py new file mode 100644 index 00000000000..b9ee330473c --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity.py @@ -0,0 +1,461 @@ +""" +nodal_rotational_velocity + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_velocity(Operator): + r"""Read/compute nodal rotational velocity by calling the readers defined by + the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + Fields container already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_velocity() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_velocity( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + config=None, + server=None, + ): + super().__init__(name="OMG", config=config, server=server) + self._inputs = InputsNodalRotationalVelocity(self) + self._outputs = OutputsNodalRotationalVelocity(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational velocity by calling the readers defined by +the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""Fields container already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="OMG", server=server) + + @property + def inputs(self) -> InputsNodalRotationalVelocity: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalVelocity. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalVelocity: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalVelocity. + """ + return super().outputs + + +class InputsNodalRotationalVelocity(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_velocity operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_velocity._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_velocity._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_velocity._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_velocity._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_velocity._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_velocity._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotational_velocity._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + Fields container already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + +class OutputsNodalRotationalVelocity(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_velocity operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_velocity._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_X.py b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_X.py new file mode 100644 index 00000000000..b701ec80de8 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_X.py @@ -0,0 +1,502 @@ +""" +nodal_rotational_velocity_X + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_velocity_X(Operator): + r"""Read/compute nodal rotational velocity X component of the vector (1st + component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_velocity_X( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="OMGX", config=config, server=server) + self._inputs = InputsNodalRotationalVelocityX(self) + self._outputs = OutputsNodalRotationalVelocityX(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational velocity X component of the vector (1st +component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="OMGX", server=server) + + @property + def inputs(self) -> InputsNodalRotationalVelocityX: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalVelocityX. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalVelocityX: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalVelocityX. + """ + return super().outputs + + +class InputsNodalRotationalVelocityX(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_velocity_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_X._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_velocity_X._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_velocity_X._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_velocity_X._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_velocity_X._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_velocity_X._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_velocity_X._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotational_velocity_X._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_velocity_X._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalVelocityX(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_velocity_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_X._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_velocity_X._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_X() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Y.py b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Y.py new file mode 100644 index 00000000000..ba172d5cc03 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Y.py @@ -0,0 +1,502 @@ +""" +nodal_rotational_velocity_Y + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_velocity_Y(Operator): + r"""Read/compute nodal rotational velocity Y component of the vector (2nd + component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_velocity_Y( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="OMGY", config=config, server=server) + self._inputs = InputsNodalRotationalVelocityY(self) + self._outputs = OutputsNodalRotationalVelocityY(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational velocity Y component of the vector (2nd +component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="OMGY", server=server) + + @property + def inputs(self) -> InputsNodalRotationalVelocityY: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalVelocityY. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalVelocityY: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalVelocityY. + """ + return super().outputs + + +class InputsNodalRotationalVelocityY(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_velocity_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_Y._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_velocity_Y._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_velocity_Y._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_velocity_Y._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_velocity_Y._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_velocity_Y._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_velocity_Y._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotational_velocity_Y._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_velocity_Y._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalVelocityY(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_velocity_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_Y._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_velocity_Y._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Y() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Z.py b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Z.py new file mode 100644 index 00000000000..b663774b909 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotational_velocity_Z.py @@ -0,0 +1,502 @@ +""" +nodal_rotational_velocity_Z + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotational_velocity_Z(Operator): + r"""Read/compute nodal rotational velocity Z component of the vector (3rd + component) by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotational_velocity_Z( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="OMGZ", config=config, server=server) + self._inputs = InputsNodalRotationalVelocityZ(self) + self._outputs = OutputsNodalRotationalVelocityZ(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotational velocity Z component of the vector (3rd +component) by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="OMGZ", server=server) + + @property + def inputs(self) -> InputsNodalRotationalVelocityZ: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationalVelocityZ. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationalVelocityZ: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationalVelocityZ. + """ + return super().outputs + + +class InputsNodalRotationalVelocityZ(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotational_velocity_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_Z._spec().inputs, op) + self._time_scoping = Input( + nodal_rotational_velocity_Z._spec().input_pin(0), 0, op, -1 + ) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input( + nodal_rotational_velocity_Z._spec().input_pin(1), 1, op, -1 + ) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotational_velocity_Z._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotational_velocity_Z._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input( + nodal_rotational_velocity_Z._spec().input_pin(4), 4, op, -1 + ) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotational_velocity_Z._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotational_velocity_Z._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input( + nodal_rotational_velocity_Z._spec().input_pin(14), 14, op, -1 + ) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationalVelocityZ(_Outputs): + """Intermediate class used to get outputs from + nodal_rotational_velocity_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotational_velocity_Z._spec().outputs, op) + self._fields_container = Output( + nodal_rotational_velocity_Z._spec().output_pin(0), 0, op + ) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotational_velocity_Z() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotations.py b/src/ansys/dpf/core/operators/result/nodal_rotations.py new file mode 100644 index 00000000000..3b65c398c9f --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotations.py @@ -0,0 +1,449 @@ +""" +nodal_rotations + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotations(Operator): + r"""Read/compute nodal rotations by calling the readers defined by the + datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + Fields container already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotations() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotations( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + config=None, + server=None, + ): + super().__init__(name="ROT", config=config, server=server) + self._inputs = InputsNodalRotations(self) + self._outputs = OutputsNodalRotations(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotations by calling the readers defined by the +datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""Fields container already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect.""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="ROT", server=server) + + @property + def inputs(self) -> InputsNodalRotations: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotations. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotations: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotations. + """ + return super().outputs + + +class InputsNodalRotations(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotations operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations._spec().inputs, op) + self._time_scoping = Input(nodal_rotations._spec().input_pin(0), 0, op, -1) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input(nodal_rotations._spec().input_pin(1), 1, op, -1) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input(nodal_rotations._spec().input_pin(2), 2, op, -1) + self._inputs.append(self._fields_container) + self._streams_container = Input(nodal_rotations._spec().input_pin(3), 3, op, -1) + self._inputs.append(self._streams_container) + self._data_sources = Input(nodal_rotations._spec().input_pin(4), 4, op, -1) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotations._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotations._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + Fields container already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true). Please check your results carefully if 'false' is used for Elemental or ElementalNodal results averaged to the Nodes when adjacent elements do not share the same coordinate system, as results may be incorrect. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + +class OutputsNodalRotations(_Outputs): + """Intermediate class used to get outputs from + nodal_rotations operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations._spec().outputs, op) + self._fields_container = Output(nodal_rotations._spec().output_pin(0), 0, op) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotations_X.py b/src/ansys/dpf/core/operators/result/nodal_rotations_X.py new file mode 100644 index 00000000000..a921d5d798d --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotations_X.py @@ -0,0 +1,492 @@ +""" +nodal_rotations_X + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotations_X(Operator): + r"""Read/compute nodal rotations X component of the vector (1st component) + by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotations_X() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotations_X( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="ROTX", config=config, server=server) + self._inputs = InputsNodalRotationsX(self) + self._outputs = OutputsNodalRotationsX(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotations X component of the vector (1st component) +by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="ROTX", server=server) + + @property + def inputs(self) -> InputsNodalRotationsX: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationsX. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationsX: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationsX. + """ + return super().outputs + + +class InputsNodalRotationsX(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotations_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_X._spec().inputs, op) + self._time_scoping = Input(nodal_rotations_X._spec().input_pin(0), 0, op, -1) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input(nodal_rotations_X._spec().input_pin(1), 1, op, -1) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotations_X._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotations_X._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input(nodal_rotations_X._spec().input_pin(4), 4, op, -1) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotations_X._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotations_X._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input(nodal_rotations_X._spec().input_pin(14), 14, op, -1) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationsX(_Outputs): + """Intermediate class used to get outputs from + nodal_rotations_X operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_X._spec().outputs, op) + self._fields_container = Output(nodal_rotations_X._spec().output_pin(0), 0, op) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_X() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotations_Y.py b/src/ansys/dpf/core/operators/result/nodal_rotations_Y.py new file mode 100644 index 00000000000..c6fe9464356 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotations_Y.py @@ -0,0 +1,492 @@ +""" +nodal_rotations_Y + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotations_Y(Operator): + r"""Read/compute nodal rotations Y component of the vector (2nd component) + by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotations_Y() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotations_Y( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="ROTY", config=config, server=server) + self._inputs = InputsNodalRotationsY(self) + self._outputs = OutputsNodalRotationsY(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotations Y component of the vector (2nd component) +by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="ROTY", server=server) + + @property + def inputs(self) -> InputsNodalRotationsY: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationsY. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationsY: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationsY. + """ + return super().outputs + + +class InputsNodalRotationsY(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotations_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_Y._spec().inputs, op) + self._time_scoping = Input(nodal_rotations_Y._spec().input_pin(0), 0, op, -1) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input(nodal_rotations_Y._spec().input_pin(1), 1, op, -1) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotations_Y._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotations_Y._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input(nodal_rotations_Y._spec().input_pin(4), 4, op, -1) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotations_Y._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotations_Y._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input(nodal_rotations_Y._spec().input_pin(14), 14, op, -1) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationsY(_Outputs): + """Intermediate class used to get outputs from + nodal_rotations_Y operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_Y._spec().outputs, op) + self._fields_container = Output(nodal_rotations_Y._spec().output_pin(0), 0, op) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Y() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/core/operators/result/nodal_rotations_Z.py b/src/ansys/dpf/core/operators/result/nodal_rotations_Z.py new file mode 100644 index 00000000000..92f1a395640 --- /dev/null +++ b/src/ansys/dpf/core/operators/result/nodal_rotations_Z.py @@ -0,0 +1,492 @@ +""" +nodal_rotations_Z + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations + +from warnings import warn +from ansys.dpf.core.dpf_operator import Operator +from ansys.dpf.core.inputs import Input, _Inputs +from ansys.dpf.core.outputs import Output, _Outputs +from ansys.dpf.core.operators.specification import PinSpecification, Specification +from ansys.dpf.core.config import Config +from ansys.dpf.core.server_types import AnyServerType + + +class nodal_rotations_Z(Operator): + r"""Read/compute nodal rotations Z component of the vector (3rd component) + by calling the readers defined by the datasources. + + + Parameters + ---------- + time_scoping: Scoping or int or float or Field, optional + 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: ScopingsContainer or Scoping, optional + 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: FieldsContainer, optional + FieldsContainer already allocated modified inplace + streams_container: StreamsContainer, optional + result file container allowed to be kept open to cache data + data_sources: DataSources + result file path container, used if no streams are set + bool_rotate_to_global: bool, optional + if true the field is rotated to global coordinate system (default true) + mesh: MeshedRegion or MeshesContainer, optional + prevents from reading the mesh in the result files + read_cyclic: int, optional + 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) + + Returns + ------- + fields_container: FieldsContainer + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.result.nodal_rotations_Z() + + >>> # Make input connections + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.result.nodal_rotations_Z( + ... time_scoping=my_time_scoping, + ... mesh_scoping=my_mesh_scoping, + ... fields_container=my_fields_container, + ... streams_container=my_streams_container, + ... data_sources=my_data_sources, + ... bool_rotate_to_global=my_bool_rotate_to_global, + ... mesh=my_mesh, + ... read_cyclic=my_read_cyclic, + ... ) + + >>> # Get output data + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__( + self, + time_scoping=None, + mesh_scoping=None, + fields_container=None, + streams_container=None, + data_sources=None, + bool_rotate_to_global=None, + mesh=None, + read_cyclic=None, + config=None, + server=None, + ): + super().__init__(name="ROTZ", config=config, server=server) + self._inputs = InputsNodalRotationsZ(self) + self._outputs = OutputsNodalRotationsZ(self) + if time_scoping is not None: + self.inputs.time_scoping.connect(time_scoping) + if mesh_scoping is not None: + self.inputs.mesh_scoping.connect(mesh_scoping) + if fields_container is not None: + self.inputs.fields_container.connect(fields_container) + if streams_container is not None: + self.inputs.streams_container.connect(streams_container) + if data_sources is not None: + self.inputs.data_sources.connect(data_sources) + if bool_rotate_to_global is not None: + self.inputs.bool_rotate_to_global.connect(bool_rotate_to_global) + if mesh is not None: + self.inputs.mesh.connect(mesh) + if read_cyclic is not None: + self.inputs.read_cyclic.connect(read_cyclic) + + @staticmethod + def _spec() -> Specification: + description = r"""Read/compute nodal rotations Z component of the vector (3rd component) +by calling the readers defined by the datasources. +""" + spec = Specification( + description=description, + map_input_pin_spec={ + 0: PinSpecification( + name="time_scoping", + type_names=[ + "scoping", + "int32", + "vector", + "double", + "field", + "vector", + ], + optional=True, + document=r"""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.""", + ), + 1: PinSpecification( + name="mesh_scoping", + type_names=["scopings_container", "scoping"], + optional=True, + document=r"""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""", + ), + 2: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=True, + document=r"""FieldsContainer already allocated modified inplace""", + ), + 3: PinSpecification( + name="streams_container", + type_names=["streams_container"], + optional=True, + document=r"""result file container allowed to be kept open to cache data""", + ), + 4: PinSpecification( + name="data_sources", + type_names=["data_sources"], + optional=False, + document=r"""result file path container, used if no streams are set""", + ), + 5: PinSpecification( + name="bool_rotate_to_global", + type_names=["bool"], + optional=True, + document=r"""if true the field is rotated to global coordinate system (default true)""", + ), + 7: PinSpecification( + name="mesh", + type_names=["abstract_meshed_region", "meshes_container"], + optional=True, + document=r"""prevents from reading the mesh in the result files""", + ), + 14: PinSpecification( + name="read_cyclic", + type_names=["enum dataProcessing::ECyclicReading", "int32"], + optional=True, + document=r"""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)""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="fields_container", + type_names=["fields_container"], + optional=False, + document=r"""""", + ), + }, + ) + return spec + + @staticmethod + def default_config(server: AnyServerType = None) -> Config: + """Returns the default config of the operator. + + This config can then be changed to the user needs and be used to + instantiate the operator. The Configuration allows to customize + how the operation will be processed by the operator. + + Parameters + ---------- + server: + Server with channel connected to the remote or local instance. When + ``None``, attempts to use the global server. + + Returns + ------- + config: + A new Config instance equivalent to the default config for this operator. + """ + return Operator.default_config(name="ROTZ", server=server) + + @property + def inputs(self) -> InputsNodalRotationsZ: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsNodalRotationsZ. + """ + return super().inputs + + @property + def outputs(self) -> OutputsNodalRotationsZ: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsNodalRotationsZ. + """ + return super().outputs + + +class InputsNodalRotationsZ(_Inputs): + """Intermediate class used to connect user inputs to + nodal_rotations_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> my_time_scoping = dpf.Scoping() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> my_mesh_scoping = dpf.ScopingsContainer() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> my_fields_container = dpf.FieldsContainer() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> my_streams_container = dpf.StreamsContainer() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> my_data_sources = dpf.DataSources() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> my_bool_rotate_to_global = bool() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> my_mesh = dpf.MeshedRegion() + >>> op.inputs.mesh.connect(my_mesh) + >>> my_read_cyclic = int() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_Z._spec().inputs, op) + self._time_scoping = Input(nodal_rotations_Z._spec().input_pin(0), 0, op, -1) + self._inputs.append(self._time_scoping) + self._mesh_scoping = Input(nodal_rotations_Z._spec().input_pin(1), 1, op, -1) + self._inputs.append(self._mesh_scoping) + self._fields_container = Input( + nodal_rotations_Z._spec().input_pin(2), 2, op, -1 + ) + self._inputs.append(self._fields_container) + self._streams_container = Input( + nodal_rotations_Z._spec().input_pin(3), 3, op, -1 + ) + self._inputs.append(self._streams_container) + self._data_sources = Input(nodal_rotations_Z._spec().input_pin(4), 4, op, -1) + self._inputs.append(self._data_sources) + self._bool_rotate_to_global = Input( + nodal_rotations_Z._spec().input_pin(5), 5, op, -1 + ) + self._inputs.append(self._bool_rotate_to_global) + self._mesh = Input(nodal_rotations_Z._spec().input_pin(7), 7, op, -1) + self._inputs.append(self._mesh) + self._read_cyclic = Input(nodal_rotations_Z._spec().input_pin(14), 14, op, -1) + self._inputs.append(self._read_cyclic) + + @property + def time_scoping(self) -> Input: + r"""Allows to connect time_scoping input to the operator. + + 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. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.time_scoping.connect(my_time_scoping) + >>> # or + >>> op.inputs.time_scoping(my_time_scoping) + """ + return self._time_scoping + + @property + def mesh_scoping(self) -> Input: + r"""Allows to connect mesh_scoping input to the operator. + + 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 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.mesh_scoping.connect(my_mesh_scoping) + >>> # or + >>> op.inputs.mesh_scoping(my_mesh_scoping) + """ + return self._mesh_scoping + + @property + def fields_container(self) -> Input: + r"""Allows to connect fields_container input to the operator. + + FieldsContainer already allocated modified inplace + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.fields_container.connect(my_fields_container) + >>> # or + >>> op.inputs.fields_container(my_fields_container) + """ + return self._fields_container + + @property + def streams_container(self) -> Input: + r"""Allows to connect streams_container input to the operator. + + result file container allowed to be kept open to cache data + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.streams_container.connect(my_streams_container) + >>> # or + >>> op.inputs.streams_container(my_streams_container) + """ + return self._streams_container + + @property + def data_sources(self) -> Input: + r"""Allows to connect data_sources input to the operator. + + result file path container, used if no streams are set + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.data_sources.connect(my_data_sources) + >>> # or + >>> op.inputs.data_sources(my_data_sources) + """ + return self._data_sources + + @property + def bool_rotate_to_global(self) -> Input: + r"""Allows to connect bool_rotate_to_global input to the operator. + + if true the field is rotated to global coordinate system (default true) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.bool_rotate_to_global.connect(my_bool_rotate_to_global) + >>> # or + >>> op.inputs.bool_rotate_to_global(my_bool_rotate_to_global) + """ + return self._bool_rotate_to_global + + @property + def mesh(self) -> Input: + r"""Allows to connect mesh input to the operator. + + prevents from reading the mesh in the result files + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.mesh.connect(my_mesh) + >>> # or + >>> op.inputs.mesh(my_mesh) + """ + return self._mesh + + @property + def read_cyclic(self) -> Input: + r"""Allows to connect read_cyclic input to the operator. + + 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) + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> op.inputs.read_cyclic.connect(my_read_cyclic) + >>> # or + >>> op.inputs.read_cyclic(my_read_cyclic) + """ + return self._read_cyclic + + +class OutputsNodalRotationsZ(_Outputs): + """Intermediate class used to get outputs from + nodal_rotations_Z operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> # Connect inputs : op.inputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + + def __init__(self, op: Operator): + super().__init__(nodal_rotations_Z._spec().outputs, op) + self._fields_container = Output(nodal_rotations_Z._spec().output_pin(0), 0, op) + self._outputs.append(self._fields_container) + + @property + def fields_container(self) -> Output: + r"""Allows to get fields_container output of the operator + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.result.nodal_rotations_Z() + >>> # Get the output from op.outputs. ... + >>> result_fields_container = op.outputs.fields_container() + """ + return self._fields_container diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll index 6b6353dcd7e..8b46757133c 100644 Binary files a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll and b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll differ diff --git a/src/ansys/dpf/gatebin/DPFClientAPI.dll b/src/ansys/dpf/gatebin/DPFClientAPI.dll index 6ad7bf44713..371e673537a 100644 Binary files a/src/ansys/dpf/gatebin/DPFClientAPI.dll and b/src/ansys/dpf/gatebin/DPFClientAPI.dll differ diff --git a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so index cbb50d1bf74..65d749ce0c0 100644 Binary files a/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so and b/src/ansys/dpf/gatebin/libAns.Dpf.GrpcClient.so differ diff --git a/src/ansys/dpf/gatebin/libDPFClientAPI.so b/src/ansys/dpf/gatebin/libDPFClientAPI.so index 5131f92c0b3..1960cfd5f6e 100644 Binary files a/src/ansys/dpf/gatebin/libDPFClientAPI.so and b/src/ansys/dpf/gatebin/libDPFClientAPI.so differ