From 3dd880e35166864390f230041821757bfcee8f99 Mon Sep 17 00:00:00 2001 From: PProfizi <100710998+PProfizi@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:39:55 +0000 Subject: [PATCH] update generated code --- doc/source/_static/dpf_operators.html | 58 ++- .../dpf/core/operators/utility/__init__.py | 2 + .../operators/utility/concatenate_fields.py | 390 +++++++++++++++++ .../utility/concatenate_fields_containers.py | 402 ++++++++++++++++++ src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll | Bin 14740992 -> 14740992 bytes src/ansys/dpf/gatebin/DPFClientAPI.dll | Bin 873472 -> 873472 bytes 6 files changed, 842 insertions(+), 10 deletions(-) create mode 100644 src/ansys/dpf/core/operators/utility/concatenate_fields.py create mode 100644 src/ansys/dpf/core/operators/utility/concatenate_fields_containers.py diff --git a/doc/source/_static/dpf_operators.html b/doc/source/_static/dpf_operators.html index 405c9485e75..dd68b7b6bd7 100644 --- a/doc/source/_static/dpf_operators.html +++ b/doc/source/_static/dpf_operators.html @@ -8369,9 +8369,7 @@

Configurating operators

Already merged fields containers support.

A vector of fields containers to merge or fields containers from pin 0 to ...

Weights to apply to each field from pin 1000 to ...

-

Outputs

Configurations

Scripting

Changelog

math: min/max over time

Description

Evaluates minimum/maximum over time/frequency.

-
Version 0.0.0

Inputs

Define min or max.

-

Outputs

Configurations

Scripting

Changelog

utility: merge fields containers

Description

Assembles a set of fields containers into a unique one.

+

Outputs

Configurations

Scripting

Changelog

utility: merge fields containers

Description

Assembles a set of fields containers into a unique one.

Version 0.0.0

Inputs

For some result files (such as RST), the scoping on names selection is duplicated through all the distributed files.If this pin is false, the merging process is skipped. If it is true, this scoping is merged. Default is true.

Default is false. If true, redundant quantities are summed instead of being ignored.

Already merged field support.

@@ -9306,7 +9304,7 @@

LaTeX

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.

Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True

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.

+
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

@@ -9954,7 +9952,7 @@

LaTeX

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: velocity

Description

Read/compute nodal velocities 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.

+
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

@@ -9991,7 +9989,7 @@

LaTeX

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

Outputs

Configurations

Scripting

Changelog

result: acceleration

Description

Read/compute nodal accelerations 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.

+
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

@@ -11090,7 +11088,7 @@

LaTeX

component priority table (vector of int)

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

Outputs

Configurations

Scripting

Changelog

result: nodal rotation

Description

Read/compute nodal rotation 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.

+
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

@@ -11157,7 +11155,7 @@

LaTeX

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.

+
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

@@ -14743,7 +14741,45 @@

LaTeX

Outputs

Configurations

Scripting

Changelog

utility: merge collections

Description

Merges a set of collections into a unique one.

Version 0.0.0

Inputs

a vector of collections to merge or collections from pin 0 to ...

Outputs

Configurations

Scripting

Changelog

min_max: min max by entity

Description

Compute the entity-wise minimum (out 0) and maximum (out 1) through all fields of a fields container.

-
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

result: von mises stresses as mechanical

Description

Computes the equivalent (Von Mises) stresses and averages it to the nodes (by default). For multibody simulations, averaging across bodies can either be activated or deactivated.

+
Version 0.0.0

Inputs

Outputs

Configurations

Scripting

Changelog

utility: concatenate fields

Description

Concatenates fields into a unique one by incrementing the number of components.

+

Example:

+
    +
  • Field1 components: { UX, UY, UZ }
  • +
  • Field2 components: { RX, RY, RZ }
  • +
  • Output field : { UX, UY, UZ, RX, RY, RZ }
  • +
+
Version 0.1.0

Inputs

Value used to fill the missing values when scopings are different. Default is 0.

+

Pin of the field of which to take the scoping for the output field. +If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1

+

Support of the output field.

+

A vector of fields to merge from pin 0 to ...

+

Outputs

Field which has as many components as the sum of all the input fields' numbers of components.

+

Configurations

Scripting

Changelog

utility: concatenate fields containers

Description

Concatenates fields containers into a unique one by concatenating each of their fields.

+

Example:

+
    +
  • Fields Container 1:
      +
    • Field1 with components: { UX, UY, UZ }
    • +
    • Field2 with components: { VX, VY, VZ }
    • +
    +
  • +
  • Fields Container 2:
      +
    • Field1 with components: { RX, RY, RZ }
    • +
    • Field2 with components: { AX, AY, AZ }
    • +
    +
  • +
  • Output Fields Container:
      +
    • Field1 with components: { UX, UY, UZ, RX, RY, RZ }
    • +
    • Field2 with components: { VX, VY, VZ, AX, AY, AZ }
    • +
    +
  • +
+
Version 0.1.0

Inputs

Value used to fill the missing values when scopings are different. Default is 0.

+

Pin of the field of which to take the scoping for the output field. +If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1.

+

Support of the output fields container's fields. By default each field has the support of the corresponding field of the first fields container.

+

A vector of fields containers to merge from pin 0 to ...

+

Outputs

Fields containers with fields which have as many components as the sum of all the input fields' numbers of components of the same index.

+

Configurations

Scripting

Changelog

result: von mises stresses as mechanical

Description

Computes the equivalent (Von Mises) stresses and averages it to the nodes (by default). For multibody simulations, averaging across bodies can either be activated or deactivated.

Version 0.0.0

Inputs

time/freq (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.

nodes or elements scoping required in output.

result file container allowed to be kept open to cache data.

@@ -15501,7 +15537,9 @@

LaTeX

Average the Elemental Nodal result to the requested location.

Field/or fields container containing only the displacement field (nodal). If none specified, read displacements from result file using the data_sources.

Outputs

The computed result fields container (elemental nodal).

-

Configurations

Scripting

Changelog

result: compute stress 2

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computation Get the 2nd principal component.

+

Configurations

Scripting

Changelog

math: min/max over time

Description

Evaluates minimum/maximum over time/frequency.

+
Version 0.0.0

Inputs

Define min or max.

+

Outputs

Configurations

Scripting

Changelog

result: compute stress 2

Description

Computes the stress from an elastic strain field. compute_total_strain limitations are applicable for stress computation Get the 2nd principal 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.

diff --git a/src/ansys/dpf/core/operators/utility/__init__.py b/src/ansys/dpf/core/operators/utility/__init__.py index fca46ab9b2c..77f008f850d 100644 --- a/src/ansys/dpf/core/operators/utility/__init__.py +++ b/src/ansys/dpf/core/operators/utility/__init__.py @@ -7,6 +7,8 @@ from .change_location import change_location from .change_shell_layers import change_shell_layers from .compute_time_scoping import compute_time_scoping +from .concatenate_fields import concatenate_fields +from .concatenate_fields_containers import concatenate_fields_containers from .customtypefield_get_attribute import customtypefield_get_attribute from .cyclic_support_get_attribute import cyclic_support_get_attribute from .default_value import default_value diff --git a/src/ansys/dpf/core/operators/utility/concatenate_fields.py b/src/ansys/dpf/core/operators/utility/concatenate_fields.py new file mode 100644 index 00000000000..1ff46f6513c --- /dev/null +++ b/src/ansys/dpf/core/operators/utility/concatenate_fields.py @@ -0,0 +1,390 @@ +""" +concatenate_fields + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations +from typing import TYPE_CHECKING + +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 + +if TYPE_CHECKING: + from ansys.dpf.core.field import Field + + +class concatenate_fields(Operator): + r"""Concatenates fields into a unique one by incrementing the number of + components. + + Example: - Field1 components: { UX, UY, UZ } - Field2 components: { RX, + RY, RZ } - Output field : { UX, UY, UZ, RX, RY, RZ } + + + Inputs + ------ + rescoping_value: float, optional + Value used to fill the missing values when scopings are different. Default is 0. + reference_scoping_index: int, optional + Pin of the field of which to take the scoping for the output field. + If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1 + field_support: AbstractFieldSupport, optional + Support of the output field. + fields1: + A vector of fields to merge from pin 0 to ... + fields2: + A vector of fields to merge from pin 0 to ... + + Outputs + ------- + merged_fields: Field + Field which has as many components as the sum of all the input fields' numbers of components. + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.utility.concatenate_fields() + + >>> # Make input connections + >>> my_rescoping_value = float() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> my_reference_scoping_index = int() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> my_field_support = dpf.AbstractFieldSupport() + >>> op.inputs.field_support.connect(my_field_support) + >>> my_fields1 = dpf.() + >>> op.inputs.fields1.connect(my_fields1) + >>> my_fields2 = dpf.() + >>> op.inputs.fields2.connect(my_fields2) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.utility.concatenate_fields( + ... rescoping_value=my_rescoping_value, + ... reference_scoping_index=my_reference_scoping_index, + ... field_support=my_field_support, + ... fields1=my_fields1, + ... fields2=my_fields2, + ... ) + + >>> # Get output data + >>> result_merged_fields = op.outputs.merged_fields() + """ + + def __init__( + self, + rescoping_value=None, + reference_scoping_index=None, + field_support=None, + fields1=None, + fields2=None, + config=None, + server=None, + ): + super().__init__( + name="merge::concatenate_fields", + config=config, + server=server, + inputs_type=InputsConcatenateFields, + outputs_type=OutputsConcatenateFields, + ) + if rescoping_value is not None: + self.inputs.rescoping_value.connect(rescoping_value) + if reference_scoping_index is not None: + self.inputs.reference_scoping_index.connect(reference_scoping_index) + if field_support is not None: + self.inputs.field_support.connect(field_support) + if fields1 is not None: + self.inputs.fields1.connect(fields1) + if fields2 is not None: + self.inputs.fields2.connect(fields2) + + @staticmethod + def _spec() -> Specification: + description = r"""Concatenates fields into a unique one by incrementing the number of +components. + +Example: - Field1 components: { UX, UY, UZ } - Field2 components: { RX, +RY, RZ } - Output field : { UX, UY, UZ, RX, RY, RZ } +""" + spec = Specification( + description=description, + map_input_pin_spec={ + -3: PinSpecification( + name="rescoping_value", + type_names=["double"], + optional=True, + document=r"""Value used to fill the missing values when scopings are different. Default is 0.""", + ), + -2: PinSpecification( + name="reference_scoping_index", + type_names=["int32"], + optional=True, + document=r"""Pin of the field of which to take the scoping for the output field. +If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1""", + ), + -1: PinSpecification( + name="field_support", + type_names=["abstract_field_support"], + optional=True, + document=r"""Support of the output field.""", + ), + 0: PinSpecification( + name="fields", + type_names=["any"], + optional=False, + document=r"""A vector of fields to merge from pin 0 to ...""", + ), + 1: PinSpecification( + name="fields", + type_names=["any"], + optional=False, + document=r"""A vector of fields to merge from pin 0 to ...""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="merged_fields", + type_names=["field"], + optional=False, + document=r"""Field which has as many components as the sum of all the input fields' numbers of components.""", + ), + }, + ) + 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="merge::concatenate_fields", server=server) + + @property + def inputs(self) -> InputsConcatenateFields: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsConcatenateFields. + """ + return self._inputs + + @property + def outputs(self) -> OutputsConcatenateFields: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsConcatenateFields. + """ + return self._outputs + + +class InputsConcatenateFields(_Inputs): + """Intermediate class used to connect user inputs to + concatenate_fields operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> my_rescoping_value = float() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> my_reference_scoping_index = int() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> my_field_support = dpf.AbstractFieldSupport() + >>> op.inputs.field_support.connect(my_field_support) + >>> my_fields1 = dpf.() + >>> op.inputs.fields1.connect(my_fields1) + >>> my_fields2 = dpf.() + >>> op.inputs.fields2.connect(my_fields2) + """ + + def __init__(self, op: Operator): + super().__init__(concatenate_fields._spec().inputs, op) + self._rescoping_value: Input[float] = Input( + concatenate_fields._spec().input_pin(-3), -3, op, -1 + ) + self._inputs.append(self._rescoping_value) + self._reference_scoping_index: Input[int] = Input( + concatenate_fields._spec().input_pin(-2), -2, op, -1 + ) + self._inputs.append(self._reference_scoping_index) + self._field_support: Input = Input( + concatenate_fields._spec().input_pin(-1), -1, op, -1 + ) + self._inputs.append(self._field_support) + self._fields1: Input = Input(concatenate_fields._spec().input_pin(0), 0, op, 0) + self._inputs.append(self._fields1) + self._fields2: Input = Input(concatenate_fields._spec().input_pin(1), 1, op, 1) + self._inputs.append(self._fields2) + + @property + def rescoping_value(self) -> Input[float]: + r"""Allows to connect rescoping_value input to the operator. + + Value used to fill the missing values when scopings are different. Default is 0. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> # or + >>> op.inputs.rescoping_value(my_rescoping_value) + """ + return self._rescoping_value + + @property + def reference_scoping_index(self) -> Input[int]: + r"""Allows to connect reference_scoping_index input to the operator. + + Pin of the field of which to take the scoping for the output field. + If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1 + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> # or + >>> op.inputs.reference_scoping_index(my_reference_scoping_index) + """ + return self._reference_scoping_index + + @property + def field_support(self) -> Input: + r"""Allows to connect field_support input to the operator. + + Support of the output field. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> op.inputs.field_support.connect(my_field_support) + >>> # or + >>> op.inputs.field_support(my_field_support) + """ + return self._field_support + + @property + def fields1(self) -> Input: + r"""Allows to connect fields1 input to the operator. + + A vector of fields to merge from pin 0 to ... + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> op.inputs.fields1.connect(my_fields1) + >>> # or + >>> op.inputs.fields1(my_fields1) + """ + return self._fields1 + + @property + def fields2(self) -> Input: + r"""Allows to connect fields2 input to the operator. + + A vector of fields to merge from pin 0 to ... + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> op.inputs.fields2.connect(my_fields2) + >>> # or + >>> op.inputs.fields2(my_fields2) + """ + return self._fields2 + + +class OutputsConcatenateFields(_Outputs): + """Intermediate class used to get outputs from + concatenate_fields operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> # Connect inputs : op.inputs. ... + >>> result_merged_fields = op.outputs.merged_fields() + """ + + def __init__(self, op: Operator): + super().__init__(concatenate_fields._spec().outputs, op) + self._merged_fields: Output[Field] = Output( + concatenate_fields._spec().output_pin(0), 0, op + ) + self._outputs.append(self._merged_fields) + + @property + def merged_fields(self) -> Output[Field]: + r"""Allows to get merged_fields output of the operator + + Field which has as many components as the sum of all the input fields' numbers of components. + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields() + >>> # Get the output from op.outputs. ... + >>> result_merged_fields = op.outputs.merged_fields() + """ + return self._merged_fields diff --git a/src/ansys/dpf/core/operators/utility/concatenate_fields_containers.py b/src/ansys/dpf/core/operators/utility/concatenate_fields_containers.py new file mode 100644 index 00000000000..5de27141239 --- /dev/null +++ b/src/ansys/dpf/core/operators/utility/concatenate_fields_containers.py @@ -0,0 +1,402 @@ +""" +concatenate_fields_containers + +Autogenerated DPF operator classes. +""" + +from __future__ import annotations +from typing import TYPE_CHECKING + +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 + +if TYPE_CHECKING: + from ansys.dpf.core.fields_container import FieldsContainer + + +class concatenate_fields_containers(Operator): + r"""Concatenates fields containers into a unique one by concatenating each + of their fields. + + Example: - Fields Container 1: - Field1 with components: { UX, UY, UZ } + - Field2 with components: { VX, VY, VZ } - Fields Container 2: - Field1 + with components: { RX, RY, RZ } - Field2 with components: { AX, AY, AZ } + - Output Fields Container: - Field1 with components: { UX, UY, UZ, RX, + RY, RZ } - Field2 with components: { VX, VY, VZ, AX, AY, AZ } + + + Inputs + ------ + rescoping_value: float, optional + Value used to fill the missing values when scopings are different. Default is 0. + reference_scoping_index: int, optional + Pin of the field of which to take the scoping for the output field. + If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1. + field_support: AbstractFieldSupport, optional + Support of the output fields container's fields. By default each field has the support of the corresponding field of the first fields container. + fields_containers1: + A vector of fields containers to merge from pin 0 to ... + fields_containers2: + A vector of fields containers to merge from pin 0 to ... + + Outputs + ------- + merged_collections: FieldsContainer + Fields containers with fields which have as many components as the sum of all the input fields' numbers of components of the same index. + + Examples + -------- + >>> from ansys.dpf import core as dpf + + >>> # Instantiate operator + >>> op = dpf.operators.utility.concatenate_fields_containers() + + >>> # Make input connections + >>> my_rescoping_value = float() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> my_reference_scoping_index = int() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> my_field_support = dpf.AbstractFieldSupport() + >>> op.inputs.field_support.connect(my_field_support) + >>> my_fields_containers1 = dpf.() + >>> op.inputs.fields_containers1.connect(my_fields_containers1) + >>> my_fields_containers2 = dpf.() + >>> op.inputs.fields_containers2.connect(my_fields_containers2) + + >>> # Instantiate operator and connect inputs in one line + >>> op = dpf.operators.utility.concatenate_fields_containers( + ... rescoping_value=my_rescoping_value, + ... reference_scoping_index=my_reference_scoping_index, + ... field_support=my_field_support, + ... fields_containers1=my_fields_containers1, + ... fields_containers2=my_fields_containers2, + ... ) + + >>> # Get output data + >>> result_merged_collections = op.outputs.merged_collections() + """ + + def __init__( + self, + rescoping_value=None, + reference_scoping_index=None, + field_support=None, + fields_containers1=None, + fields_containers2=None, + config=None, + server=None, + ): + super().__init__( + name="merge::concatenate_fields_containers", + config=config, + server=server, + inputs_type=InputsConcatenateFieldsContainers, + outputs_type=OutputsConcatenateFieldsContainers, + ) + if rescoping_value is not None: + self.inputs.rescoping_value.connect(rescoping_value) + if reference_scoping_index is not None: + self.inputs.reference_scoping_index.connect(reference_scoping_index) + if field_support is not None: + self.inputs.field_support.connect(field_support) + if fields_containers1 is not None: + self.inputs.fields_containers1.connect(fields_containers1) + if fields_containers2 is not None: + self.inputs.fields_containers2.connect(fields_containers2) + + @staticmethod + def _spec() -> Specification: + description = r"""Concatenates fields containers into a unique one by concatenating each +of their fields. + +Example: - Fields Container 1: - Field1 with components: { UX, UY, UZ } +- Field2 with components: { VX, VY, VZ } - Fields Container 2: - Field1 +with components: { RX, RY, RZ } - Field2 with components: { AX, AY, AZ } +- Output Fields Container: - Field1 with components: { UX, UY, UZ, RX, +RY, RZ } - Field2 with components: { VX, VY, VZ, AX, AY, AZ } +""" + spec = Specification( + description=description, + map_input_pin_spec={ + -3: PinSpecification( + name="rescoping_value", + type_names=["double"], + optional=True, + document=r"""Value used to fill the missing values when scopings are different. Default is 0.""", + ), + -2: PinSpecification( + name="reference_scoping_index", + type_names=["int32"], + optional=True, + document=r"""Pin of the field of which to take the scoping for the output field. +If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1.""", + ), + -1: PinSpecification( + name="field_support", + type_names=["abstract_field_support"], + optional=True, + document=r"""Support of the output fields container's fields. By default each field has the support of the corresponding field of the first fields container.""", + ), + 0: PinSpecification( + name="fields_containers", + type_names=["any"], + optional=False, + document=r"""A vector of fields containers to merge from pin 0 to ...""", + ), + 1: PinSpecification( + name="fields_containers", + type_names=["any"], + optional=False, + document=r"""A vector of fields containers to merge from pin 0 to ...""", + ), + }, + map_output_pin_spec={ + 0: PinSpecification( + name="merged_collections", + type_names=["fields_container"], + optional=False, + document=r"""Fields containers with fields which have as many components as the sum of all the input fields' numbers of components of the same index.""", + ), + }, + ) + 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="merge::concatenate_fields_containers", server=server + ) + + @property + def inputs(self) -> InputsConcatenateFieldsContainers: + """Enables to connect inputs to the operator + + Returns + -------- + inputs: + An instance of InputsConcatenateFieldsContainers. + """ + return self._inputs + + @property + def outputs(self) -> OutputsConcatenateFieldsContainers: + """Enables to get outputs of the operator by evaluating it + + Returns + -------- + outputs: + An instance of OutputsConcatenateFieldsContainers. + """ + return self._outputs + + +class InputsConcatenateFieldsContainers(_Inputs): + """Intermediate class used to connect user inputs to + concatenate_fields_containers operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> my_rescoping_value = float() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> my_reference_scoping_index = int() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> my_field_support = dpf.AbstractFieldSupport() + >>> op.inputs.field_support.connect(my_field_support) + >>> my_fields_containers1 = dpf.() + >>> op.inputs.fields_containers1.connect(my_fields_containers1) + >>> my_fields_containers2 = dpf.() + >>> op.inputs.fields_containers2.connect(my_fields_containers2) + """ + + def __init__(self, op: Operator): + super().__init__(concatenate_fields_containers._spec().inputs, op) + self._rescoping_value: Input[float] = Input( + concatenate_fields_containers._spec().input_pin(-3), -3, op, -1 + ) + self._inputs.append(self._rescoping_value) + self._reference_scoping_index: Input[int] = Input( + concatenate_fields_containers._spec().input_pin(-2), -2, op, -1 + ) + self._inputs.append(self._reference_scoping_index) + self._field_support: Input = Input( + concatenate_fields_containers._spec().input_pin(-1), -1, op, -1 + ) + self._inputs.append(self._field_support) + self._fields_containers1: Input = Input( + concatenate_fields_containers._spec().input_pin(0), 0, op, 0 + ) + self._inputs.append(self._fields_containers1) + self._fields_containers2: Input = Input( + concatenate_fields_containers._spec().input_pin(1), 1, op, 1 + ) + self._inputs.append(self._fields_containers2) + + @property + def rescoping_value(self) -> Input[float]: + r"""Allows to connect rescoping_value input to the operator. + + Value used to fill the missing values when scopings are different. Default is 0. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> op.inputs.rescoping_value.connect(my_rescoping_value) + >>> # or + >>> op.inputs.rescoping_value(my_rescoping_value) + """ + return self._rescoping_value + + @property + def reference_scoping_index(self) -> Input[int]: + r"""Allows to connect reference_scoping_index input to the operator. + + Pin of the field of which to take the scoping for the output field. + If -1 all scopings will be merged, if -2 all scopings will be intersected. Default is -1. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> op.inputs.reference_scoping_index.connect(my_reference_scoping_index) + >>> # or + >>> op.inputs.reference_scoping_index(my_reference_scoping_index) + """ + return self._reference_scoping_index + + @property + def field_support(self) -> Input: + r"""Allows to connect field_support input to the operator. + + Support of the output fields container's fields. By default each field has the support of the corresponding field of the first fields container. + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> op.inputs.field_support.connect(my_field_support) + >>> # or + >>> op.inputs.field_support(my_field_support) + """ + return self._field_support + + @property + def fields_containers1(self) -> Input: + r"""Allows to connect fields_containers1 input to the operator. + + A vector of fields containers to merge from pin 0 to ... + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> op.inputs.fields_containers1.connect(my_fields_containers1) + >>> # or + >>> op.inputs.fields_containers1(my_fields_containers1) + """ + return self._fields_containers1 + + @property + def fields_containers2(self) -> Input: + r"""Allows to connect fields_containers2 input to the operator. + + A vector of fields containers to merge from pin 0 to ... + + Returns + ------- + input: + An Input instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> op.inputs.fields_containers2.connect(my_fields_containers2) + >>> # or + >>> op.inputs.fields_containers2(my_fields_containers2) + """ + return self._fields_containers2 + + +class OutputsConcatenateFieldsContainers(_Outputs): + """Intermediate class used to get outputs from + concatenate_fields_containers operator. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> # Connect inputs : op.inputs. ... + >>> result_merged_collections = op.outputs.merged_collections() + """ + + def __init__(self, op: Operator): + super().__init__(concatenate_fields_containers._spec().outputs, op) + self._merged_collections: Output[FieldsContainer] = Output( + concatenate_fields_containers._spec().output_pin(0), 0, op + ) + self._outputs.append(self._merged_collections) + + @property + def merged_collections(self) -> Output[FieldsContainer]: + r"""Allows to get merged_collections output of the operator + + Fields containers with fields which have as many components as the sum of all the input fields' numbers of components of the same index. + + Returns + ------- + output: + An Output instance for this pin. + + Examples + -------- + >>> from ansys.dpf import core as dpf + >>> op = dpf.operators.utility.concatenate_fields_containers() + >>> # Get the output from op.outputs. ... + >>> result_merged_collections = op.outputs.merged_collections() + """ + return self._merged_collections diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll index 18bfa03d51a0a967b9fbd18d1b9ea47720e04aae..545647d729e53d687b852ef4f6c300c9f362a5a8 100644 GIT binary patch delta 97252 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 delta 167 zcmZozVcM|5bOQ$?bJQEFW^TrIZblGh0%B$$W&vVWAZ7z%b|B^eVoo6D+Rn|$U0H4o z)Rf5p1WZ7j4#YEhxfy0Oa)X2zU~)V_wg^a|4=COQm)pL-g8MFqXhx!Z+m%mKyk}%o f_J8*Jc9;>QbNa?cZfQo-_Op%L+s`)g7+(Sa1Dq;D