Fields container already allocated modified inplace
diff --git a/src/ansys/dpf/core/operators/result/accu_eqv_creep_strain.py b/src/ansys/dpf/core/operators/result/accu_eqv_creep_strain.py
index 5c149930a9a..a586ee53d9f 100644
--- a/src/ansys/dpf/core/operators/result/accu_eqv_creep_strain.py
+++ b/src/ansys/dpf/core/operators/result/accu_eqv_creep_strain.py
@@ -156,6 +156,8 @@ class accu_eqv_creep_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class accu_eqv_creep_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.accu_eqv_creep_strain(
@@ -205,6 +209,7 @@ class accu_eqv_creep_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsAccuEqvCreepStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
accu_eqv_creep_strain._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ accu_eqv_creep_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.accu_eqv_creep_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsAccuEqvCreepStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/accu_eqv_plastic_strain.py b/src/ansys/dpf/core/operators/result/accu_eqv_plastic_strain.py
index fd47ac6fbb6..a46d516a5e0 100644
--- a/src/ansys/dpf/core/operators/result/accu_eqv_plastic_strain.py
+++ b/src/ansys/dpf/core/operators/result/accu_eqv_plastic_strain.py
@@ -156,6 +156,8 @@ class accu_eqv_plastic_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class accu_eqv_plastic_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.accu_eqv_plastic_strain(
@@ -205,6 +209,7 @@ class accu_eqv_plastic_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsAccuEqvPlasticStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
accu_eqv_plastic_strain._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ accu_eqv_plastic_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.accu_eqv_plastic_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsAccuEqvPlasticStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_fluid_penetration_pressure.py b/src/ansys/dpf/core/operators/result/contact_fluid_penetration_pressure.py
index 41bdf9854da..ff181d39fb9 100644
--- a/src/ansys/dpf/core/operators/result/contact_fluid_penetration_pressure.py
+++ b/src/ansys/dpf/core/operators/result/contact_fluid_penetration_pressure.py
@@ -164,6 +164,8 @@ class contact_fluid_penetration_pressure(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_fluid_penetration_pressure(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_fluid_penetration_pressure(
@@ -225,6 +229,7 @@ class contact_fluid_penetration_pressure(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactFluidPenetrationPressure(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -660,6 +676,10 @@ def __init__(self, op: Operator):
contact_fluid_penetration_pressure._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_fluid_penetration_pressure._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -976,6 +996,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_fluid_penetration_pressure()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactFluidPenetrationPressure(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_friction_stress.py b/src/ansys/dpf/core/operators/result/contact_friction_stress.py
index 62e5b817223..5d1243ff233 100644
--- a/src/ansys/dpf/core/operators/result/contact_friction_stress.py
+++ b/src/ansys/dpf/core/operators/result/contact_friction_stress.py
@@ -164,6 +164,8 @@ class contact_friction_stress(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_friction_stress(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_friction_stress(
@@ -225,6 +229,7 @@ class contact_friction_stress(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactFrictionStress(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -656,6 +672,10 @@ def __init__(self, op: Operator):
contact_friction_stress._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_friction_stress._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -972,6 +992,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_friction_stress()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactFrictionStress(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_gap_distance.py b/src/ansys/dpf/core/operators/result/contact_gap_distance.py
index baba8952b9a..398535645f4 100644
--- a/src/ansys/dpf/core/operators/result/contact_gap_distance.py
+++ b/src/ansys/dpf/core/operators/result/contact_gap_distance.py
@@ -164,6 +164,8 @@ class contact_gap_distance(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_gap_distance(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_gap_distance(
@@ -225,6 +229,7 @@ class contact_gap_distance(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactGapDistance(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -648,6 +664,10 @@ def __init__(self, op: Operator):
contact_gap_distance._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_gap_distance._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -964,6 +984,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_gap_distance()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactGapDistance(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_penetration.py b/src/ansys/dpf/core/operators/result/contact_penetration.py
index ab4c2cb4d52..e9b7e072ee4 100644
--- a/src/ansys/dpf/core/operators/result/contact_penetration.py
+++ b/src/ansys/dpf/core/operators/result/contact_penetration.py
@@ -164,6 +164,8 @@ class contact_penetration(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_penetration(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_penetration(
@@ -225,6 +229,7 @@ class contact_penetration(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactPenetration(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -644,6 +660,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(contact_penetration._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_penetration._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -960,6 +980,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_penetration()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactPenetration(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_pressure.py b/src/ansys/dpf/core/operators/result/contact_pressure.py
index fd06c47ceaf..839d732ea49 100644
--- a/src/ansys/dpf/core/operators/result/contact_pressure.py
+++ b/src/ansys/dpf/core/operators/result/contact_pressure.py
@@ -164,6 +164,8 @@ class contact_pressure(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_pressure(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_pressure(
@@ -225,6 +229,7 @@ class contact_pressure(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactPressure(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -640,6 +656,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(contact_pressure._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_pressure._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -956,6 +976,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_pressure()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactPressure(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_sliding_distance.py b/src/ansys/dpf/core/operators/result/contact_sliding_distance.py
index cd6049d46e3..98e3d02326b 100644
--- a/src/ansys/dpf/core/operators/result/contact_sliding_distance.py
+++ b/src/ansys/dpf/core/operators/result/contact_sliding_distance.py
@@ -164,6 +164,8 @@ class contact_sliding_distance(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_sliding_distance(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_sliding_distance(
@@ -225,6 +229,7 @@ class contact_sliding_distance(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactSlidingDistance(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -656,6 +672,10 @@ def __init__(self, op: Operator):
contact_sliding_distance._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_sliding_distance._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -972,6 +992,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_sliding_distance()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactSlidingDistance(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_status.py b/src/ansys/dpf/core/operators/result/contact_status.py
index 6f3ac0b807a..f5914612a63 100644
--- a/src/ansys/dpf/core/operators/result/contact_status.py
+++ b/src/ansys/dpf/core/operators/result/contact_status.py
@@ -164,6 +164,8 @@ class contact_status(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_status(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_status(
@@ -225,6 +229,7 @@ class contact_status(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactStatus(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -636,6 +652,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(contact_status._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_status._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -952,6 +972,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_status()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactStatus(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_surface_heat_flux.py b/src/ansys/dpf/core/operators/result/contact_surface_heat_flux.py
index 88e5b0f1b66..6429213bdea 100644
--- a/src/ansys/dpf/core/operators/result/contact_surface_heat_flux.py
+++ b/src/ansys/dpf/core/operators/result/contact_surface_heat_flux.py
@@ -164,6 +164,8 @@ class contact_surface_heat_flux(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_surface_heat_flux(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_surface_heat_flux(
@@ -225,6 +229,7 @@ class contact_surface_heat_flux(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactSurfaceHeatFlux(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -656,6 +672,10 @@ def __init__(self, op: Operator):
contact_surface_heat_flux._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_surface_heat_flux._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -972,6 +992,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_surface_heat_flux()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactSurfaceHeatFlux(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/contact_total_stress.py b/src/ansys/dpf/core/operators/result/contact_total_stress.py
index fc587ac3607..ed110c0c9f6 100644
--- a/src/ansys/dpf/core/operators/result/contact_total_stress.py
+++ b/src/ansys/dpf/core/operators/result/contact_total_stress.py
@@ -164,6 +164,8 @@ class contact_total_stress(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class contact_total_stress(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.contact_total_stress(
@@ -225,6 +229,7 @@ class contact_total_stress(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsContactTotalStress(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -648,6 +664,10 @@ def __init__(self, op: Operator):
contact_total_stress._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ contact_total_stress._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -964,6 +984,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.contact_total_stress()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsContactTotalStress(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/creep_strain.py b/src/ansys/dpf/core/operators/result/creep_strain.py
index 03eba292c96..2cebe178400 100644
--- a/src/ansys/dpf/core/operators/result/creep_strain.py
+++ b/src/ansys/dpf/core/operators/result/creep_strain.py
@@ -156,6 +156,8 @@ class creep_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class creep_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.creep_strain(
@@ -205,6 +209,7 @@ class creep_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsCreepStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(creep_strain._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ creep_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.creep_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsCreepStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/creep_strain_energy_density.py b/src/ansys/dpf/core/operators/result/creep_strain_energy_density.py
index 5b033dff657..1e5a215d745 100644
--- a/src/ansys/dpf/core/operators/result/creep_strain_energy_density.py
+++ b/src/ansys/dpf/core/operators/result/creep_strain_energy_density.py
@@ -156,6 +156,8 @@ class creep_strain_energy_density(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class creep_strain_energy_density(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.creep_strain_energy_density(
@@ -205,6 +209,7 @@ class creep_strain_energy_density(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsCreepStrainEnergyDensity(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
creep_strain_energy_density._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ creep_strain_energy_density._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.creep_strain_energy_density()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsCreepStrainEnergyDensity(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/creep_strain_eqv.py b/src/ansys/dpf/core/operators/result/creep_strain_eqv.py
index 1eb4e411c5d..54ec9e23e47 100644
--- a/src/ansys/dpf/core/operators/result/creep_strain_eqv.py
+++ b/src/ansys/dpf/core/operators/result/creep_strain_eqv.py
@@ -156,6 +156,8 @@ class creep_strain_eqv(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class creep_strain_eqv(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.creep_strain_eqv(
@@ -205,6 +209,7 @@ class creep_strain_eqv(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsCreepStrainEqv(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -564,6 +580,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(creep_strain_eqv._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ creep_strain_eqv._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -796,6 +816,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.creep_strain_eqv()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsCreepStrainEqv(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/elastic_strain.py b/src/ansys/dpf/core/operators/result/elastic_strain.py
index 70c728bc119..937655bb6e0 100644
--- a/src/ansys/dpf/core/operators/result/elastic_strain.py
+++ b/src/ansys/dpf/core/operators/result/elastic_strain.py
@@ -164,6 +164,8 @@ class elastic_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class elastic_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.elastic_strain(
@@ -225,6 +229,7 @@ class elastic_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsElasticStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -636,6 +652,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(elastic_strain._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ elastic_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -952,6 +972,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.elastic_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElasticStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/elastic_strain_energy_density.py b/src/ansys/dpf/core/operators/result/elastic_strain_energy_density.py
index cb3bad4c22e..4b1871421eb 100644
--- a/src/ansys/dpf/core/operators/result/elastic_strain_energy_density.py
+++ b/src/ansys/dpf/core/operators/result/elastic_strain_energy_density.py
@@ -156,6 +156,8 @@ class elastic_strain_energy_density(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class elastic_strain_energy_density(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.elastic_strain_energy_density(
@@ -205,6 +209,7 @@ class elastic_strain_energy_density(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsElasticStrainEnergyDensity(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -580,6 +596,10 @@ def __init__(self, op: Operator):
elastic_strain_energy_density._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ elastic_strain_energy_density._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -812,6 +832,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.elastic_strain_energy_density()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElasticStrainEnergyDensity(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/elastic_strain_eqv.py b/src/ansys/dpf/core/operators/result/elastic_strain_eqv.py
index 9801ec3a336..0e2158137fb 100644
--- a/src/ansys/dpf/core/operators/result/elastic_strain_eqv.py
+++ b/src/ansys/dpf/core/operators/result/elastic_strain_eqv.py
@@ -156,6 +156,8 @@ class elastic_strain_eqv(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class elastic_strain_eqv(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.elastic_strain_eqv(
@@ -205,6 +209,7 @@ class elastic_strain_eqv(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsElasticStrainEqv(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -566,6 +582,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(elastic_strain_eqv._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ elastic_strain_eqv._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -798,6 +818,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.elastic_strain_eqv()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElasticStrainEqv(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/electric_field.py b/src/ansys/dpf/core/operators/result/electric_field.py
index c9be72782b1..ca699b73cb3 100644
--- a/src/ansys/dpf/core/operators/result/electric_field.py
+++ b/src/ansys/dpf/core/operators/result/electric_field.py
@@ -156,6 +156,8 @@ class electric_field(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class electric_field(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.electric_field(
@@ -205,6 +209,7 @@ class electric_field(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsElectricField(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(electric_field._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ electric_field._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.electric_field()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElectricField(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/electric_flux_density.py b/src/ansys/dpf/core/operators/result/electric_flux_density.py
index c292fa9e524..44635794270 100644
--- a/src/ansys/dpf/core/operators/result/electric_flux_density.py
+++ b/src/ansys/dpf/core/operators/result/electric_flux_density.py
@@ -156,6 +156,8 @@ class electric_flux_density(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class electric_flux_density(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.electric_flux_density(
@@ -205,6 +209,7 @@ class electric_flux_density(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsElectricFluxDensity(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
electric_flux_density._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ electric_flux_density._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.electric_flux_density()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElectricFluxDensity(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/element_nodal_forces.py b/src/ansys/dpf/core/operators/result/element_nodal_forces.py
index 0a3bcec2a37..73fca05aecc 100644
--- a/src/ansys/dpf/core/operators/result/element_nodal_forces.py
+++ b/src/ansys/dpf/core/operators/result/element_nodal_forces.py
@@ -164,6 +164,8 @@ class element_nodal_forces(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
split_force_components: bool, optional
If this pin is set to true, the output fields container splits the ENF by degree of freedom ("dof" label, 0 for translation, 1 for rotation, 2 for temperature) and derivative order ("derivative_order" label, 0 for stiffness terms, 1 for damping terms and 2 for inertial terms). Default is false.
@@ -209,6 +211,8 @@ class element_nodal_forces(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> my_split_force_components = bool()
>>> op.inputs.split_force_components.connect(my_split_force_components)
@@ -229,6 +233,7 @@ class element_nodal_forces(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... split_force_components=my_split_force_components,
... )
@@ -253,6 +258,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
split_force_components=None,
config=None,
server=None,
@@ -290,6 +296,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
if split_force_components is not None:
self.inputs.split_force_components.connect(split_force_components)
@@ -510,6 +518,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
200: PinSpecification(
name="split_force_components",
type_names=["bool"],
@@ -610,6 +624,8 @@ class InputsElementNodalForces(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> my_split_force_components = bool()
>>> op.inputs.split_force_components.connect(my_split_force_components)
"""
@@ -664,6 +680,10 @@ def __init__(self, op: Operator):
element_nodal_forces._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ element_nodal_forces._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
self._split_force_components = Input(
element_nodal_forces._spec().input_pin(200), 200, op, -1
)
@@ -984,6 +1004,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.element_nodal_forces()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
@property
def split_force_components(self) -> Input:
r"""Allows to connect split_force_components input to the operator.
diff --git a/src/ansys/dpf/core/operators/result/element_orientations.py b/src/ansys/dpf/core/operators/result/element_orientations.py
index 772d2d05c77..97c5b2603c5 100644
--- a/src/ansys/dpf/core/operators/result/element_orientations.py
+++ b/src/ansys/dpf/core/operators/result/element_orientations.py
@@ -156,6 +156,8 @@ class element_orientations(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class element_orientations(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.element_orientations(
@@ -205,6 +209,7 @@ class element_orientations(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsElementOrientations(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -570,6 +586,10 @@ def __init__(self, op: Operator):
element_orientations._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ element_orientations._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -802,6 +822,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.element_orientations()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsElementOrientations(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/eqv_stress_parameter.py b/src/ansys/dpf/core/operators/result/eqv_stress_parameter.py
index 5d6873fa82b..48446573ab3 100644
--- a/src/ansys/dpf/core/operators/result/eqv_stress_parameter.py
+++ b/src/ansys/dpf/core/operators/result/eqv_stress_parameter.py
@@ -156,6 +156,8 @@ class eqv_stress_parameter(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class eqv_stress_parameter(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.eqv_stress_parameter(
@@ -205,6 +209,7 @@ class eqv_stress_parameter(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsEqvStressParameter(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -570,6 +586,10 @@ def __init__(self, op: Operator):
eqv_stress_parameter._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ eqv_stress_parameter._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -802,6 +822,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.eqv_stress_parameter()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsEqvStressParameter(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/gasket_inelastic_closure.py b/src/ansys/dpf/core/operators/result/gasket_inelastic_closure.py
index e7f90a864f2..dfd4f711489 100644
--- a/src/ansys/dpf/core/operators/result/gasket_inelastic_closure.py
+++ b/src/ansys/dpf/core/operators/result/gasket_inelastic_closure.py
@@ -154,6 +154,8 @@ class gasket_inelastic_closure(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -187,6 +189,8 @@ class gasket_inelastic_closure(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.gasket_inelastic_closure(
@@ -200,6 +204,7 @@ class gasket_inelastic_closure(Operator):
... requested_location=my_requested_location,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -218,6 +223,7 @@ def __init__(
requested_location=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -244,6 +250,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -432,6 +440,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -516,6 +530,8 @@ class InputsGasketInelasticClosure(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -558,6 +574,10 @@ def __init__(self, op: Operator):
gasket_inelastic_closure._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ gasket_inelastic_closure._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -769,6 +789,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.gasket_inelastic_closure()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsGasketInelasticClosure(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/gasket_stress.py b/src/ansys/dpf/core/operators/result/gasket_stress.py
index 57be4e77d5c..2e74925eb1a 100644
--- a/src/ansys/dpf/core/operators/result/gasket_stress.py
+++ b/src/ansys/dpf/core/operators/result/gasket_stress.py
@@ -154,6 +154,8 @@ class gasket_stress(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -187,6 +189,8 @@ class gasket_stress(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.gasket_stress(
@@ -200,6 +204,7 @@ class gasket_stress(Operator):
... requested_location=my_requested_location,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -218,6 +223,7 @@ def __init__(
requested_location=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -244,6 +250,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -432,6 +440,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -516,6 +530,8 @@ class InputsGasketStress(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -542,6 +558,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(gasket_stress._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ gasket_stress._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -753,6 +773,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.gasket_stress()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsGasketStress(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/gasket_thermal_closure.py b/src/ansys/dpf/core/operators/result/gasket_thermal_closure.py
index 1ae39f67898..33e39a10644 100644
--- a/src/ansys/dpf/core/operators/result/gasket_thermal_closure.py
+++ b/src/ansys/dpf/core/operators/result/gasket_thermal_closure.py
@@ -154,6 +154,8 @@ class gasket_thermal_closure(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -187,6 +189,8 @@ class gasket_thermal_closure(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.gasket_thermal_closure(
@@ -200,6 +204,7 @@ class gasket_thermal_closure(Operator):
... requested_location=my_requested_location,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -218,6 +223,7 @@ def __init__(
requested_location=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -244,6 +250,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -432,6 +440,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -516,6 +530,8 @@ class InputsGasketThermalClosure(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -558,6 +574,10 @@ def __init__(self, op: Operator):
gasket_thermal_closure._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ gasket_thermal_closure._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -769,6 +789,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.gasket_thermal_closure()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsGasketThermalClosure(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/heat_flux.py b/src/ansys/dpf/core/operators/result/heat_flux.py
index a6f7ae4b1d6..b029b6be080 100644
--- a/src/ansys/dpf/core/operators/result/heat_flux.py
+++ b/src/ansys/dpf/core/operators/result/heat_flux.py
@@ -164,6 +164,8 @@ class heat_flux(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class heat_flux(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.heat_flux(
@@ -225,6 +229,7 @@ class heat_flux(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsHeatFlux(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -632,6 +648,8 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(heat_flux._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(heat_flux._spec().input_pin(28), 28, op, -1)
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -948,6 +966,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.heat_flux()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsHeatFlux(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/hydrostatic_pressure.py b/src/ansys/dpf/core/operators/result/hydrostatic_pressure.py
index bb4a322ceaa..d02d133aee5 100644
--- a/src/ansys/dpf/core/operators/result/hydrostatic_pressure.py
+++ b/src/ansys/dpf/core/operators/result/hydrostatic_pressure.py
@@ -156,6 +156,8 @@ class hydrostatic_pressure(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class hydrostatic_pressure(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.hydrostatic_pressure(
@@ -205,6 +209,7 @@ class hydrostatic_pressure(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsHydrostaticPressure(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -570,6 +586,10 @@ def __init__(self, op: Operator):
hydrostatic_pressure._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ hydrostatic_pressure._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -802,6 +822,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.hydrostatic_pressure()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsHydrostaticPressure(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/magnetic_field.py b/src/ansys/dpf/core/operators/result/magnetic_field.py
index 71cfddf4ae4..c8c0f1cc48d 100644
--- a/src/ansys/dpf/core/operators/result/magnetic_field.py
+++ b/src/ansys/dpf/core/operators/result/magnetic_field.py
@@ -156,6 +156,8 @@ class magnetic_field(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class magnetic_field(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.magnetic_field(
@@ -205,6 +209,7 @@ class magnetic_field(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsMagneticField(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(magnetic_field._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ magnetic_field._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.magnetic_field()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsMagneticField(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/magnetic_flux_density.py b/src/ansys/dpf/core/operators/result/magnetic_flux_density.py
index 475c95bffb1..08b9268b269 100644
--- a/src/ansys/dpf/core/operators/result/magnetic_flux_density.py
+++ b/src/ansys/dpf/core/operators/result/magnetic_flux_density.py
@@ -156,6 +156,8 @@ class magnetic_flux_density(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class magnetic_flux_density(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.magnetic_flux_density(
@@ -205,6 +209,7 @@ class magnetic_flux_density(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsMagneticFluxDensity(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
magnetic_flux_density._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ magnetic_flux_density._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.magnetic_flux_density()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsMagneticFluxDensity(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/num_surface_status_changes.py b/src/ansys/dpf/core/operators/result/num_surface_status_changes.py
index 850485de90e..62c20152a07 100644
--- a/src/ansys/dpf/core/operators/result/num_surface_status_changes.py
+++ b/src/ansys/dpf/core/operators/result/num_surface_status_changes.py
@@ -164,6 +164,8 @@ class num_surface_status_changes(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class num_surface_status_changes(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.num_surface_status_changes(
@@ -225,6 +229,7 @@ class num_surface_status_changes(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsNumSurfaceStatusChanges(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -656,6 +672,10 @@ def __init__(self, op: Operator):
num_surface_status_changes._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ num_surface_status_changes._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -972,6 +992,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.num_surface_status_changes()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsNumSurfaceStatusChanges(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/plastic_state_variable.py b/src/ansys/dpf/core/operators/result/plastic_state_variable.py
index e29332399bb..adf8c633c61 100644
--- a/src/ansys/dpf/core/operators/result/plastic_state_variable.py
+++ b/src/ansys/dpf/core/operators/result/plastic_state_variable.py
@@ -156,6 +156,8 @@ class plastic_state_variable(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class plastic_state_variable(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.plastic_state_variable(
@@ -205,6 +209,7 @@ class plastic_state_variable(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsPlasticStateVariable(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
plastic_state_variable._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ plastic_state_variable._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.plastic_state_variable()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsPlasticStateVariable(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/plastic_strain.py b/src/ansys/dpf/core/operators/result/plastic_strain.py
index 37d23532360..542ac347cfb 100644
--- a/src/ansys/dpf/core/operators/result/plastic_strain.py
+++ b/src/ansys/dpf/core/operators/result/plastic_strain.py
@@ -156,6 +156,8 @@ class plastic_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class plastic_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.plastic_strain(
@@ -205,6 +209,7 @@ class plastic_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsPlasticStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(plastic_strain._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ plastic_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.plastic_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsPlasticStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/plastic_strain_energy_density.py b/src/ansys/dpf/core/operators/result/plastic_strain_energy_density.py
index 0e0b2dbb8b6..431751c0dfe 100644
--- a/src/ansys/dpf/core/operators/result/plastic_strain_energy_density.py
+++ b/src/ansys/dpf/core/operators/result/plastic_strain_energy_density.py
@@ -156,6 +156,8 @@ class plastic_strain_energy_density(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class plastic_strain_energy_density(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.plastic_strain_energy_density(
@@ -205,6 +209,7 @@ class plastic_strain_energy_density(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsPlasticStrainEnergyDensity(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -580,6 +596,10 @@ def __init__(self, op: Operator):
plastic_strain_energy_density._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ plastic_strain_energy_density._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -812,6 +832,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.plastic_strain_energy_density()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsPlasticStrainEnergyDensity(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/plastic_strain_eqv.py b/src/ansys/dpf/core/operators/result/plastic_strain_eqv.py
index acb261ed8a8..bc6d8df75f0 100644
--- a/src/ansys/dpf/core/operators/result/plastic_strain_eqv.py
+++ b/src/ansys/dpf/core/operators/result/plastic_strain_eqv.py
@@ -156,6 +156,8 @@ class plastic_strain_eqv(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class plastic_strain_eqv(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.plastic_strain_eqv(
@@ -205,6 +209,7 @@ class plastic_strain_eqv(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsPlasticStrainEqv(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -566,6 +582,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(plastic_strain_eqv._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ plastic_strain_eqv._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -798,6 +818,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.plastic_strain_eqv()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsPlasticStrainEqv(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/state_variable.py b/src/ansys/dpf/core/operators/result/state_variable.py
index c00c4342c5a..100b6dddeac 100644
--- a/src/ansys/dpf/core/operators/result/state_variable.py
+++ b/src/ansys/dpf/core/operators/result/state_variable.py
@@ -158,6 +158,8 @@ class state_variable(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -195,6 +197,8 @@ class state_variable(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.state_variable(
@@ -210,6 +214,7 @@ class state_variable(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -230,6 +235,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -260,6 +266,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -460,6 +468,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -548,6 +562,8 @@ class InputsStateVariable(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(state_variable._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ state_variable._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -831,6 +851,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.state_variable()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsStateVariable(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/stress.py b/src/ansys/dpf/core/operators/result/stress.py
index 74b4ccec9b0..b7121a2f100 100644
--- a/src/ansys/dpf/core/operators/result/stress.py
+++ b/src/ansys/dpf/core/operators/result/stress.py
@@ -164,6 +164,8 @@ class stress(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -207,6 +209,8 @@ class stress(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.stress(
@@ -225,6 +229,7 @@ class stress(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -248,6 +253,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -284,6 +290,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -502,6 +510,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -596,6 +610,8 @@ class InputsStress(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -630,6 +646,8 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(stress._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(stress._spec().input_pin(28), 28, op, -1)
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -946,6 +964,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.stress()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsStress(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/stress_ratio.py b/src/ansys/dpf/core/operators/result/stress_ratio.py
index 4516fb4bf01..35ab1cb1290 100644
--- a/src/ansys/dpf/core/operators/result/stress_ratio.py
+++ b/src/ansys/dpf/core/operators/result/stress_ratio.py
@@ -156,6 +156,8 @@ class stress_ratio(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class stress_ratio(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.stress_ratio(
@@ -205,6 +209,7 @@ class stress_ratio(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsStressRatio(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(stress_ratio._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ stress_ratio._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.stress_ratio()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsStressRatio(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/structural_temperature.py b/src/ansys/dpf/core/operators/result/structural_temperature.py
index f2dd0f46305..08db7f201c4 100644
--- a/src/ansys/dpf/core/operators/result/structural_temperature.py
+++ b/src/ansys/dpf/core/operators/result/structural_temperature.py
@@ -156,6 +156,8 @@ class structural_temperature(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class structural_temperature(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.structural_temperature(
@@ -205,6 +209,7 @@ class structural_temperature(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsStructuralTemperature(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -578,6 +594,10 @@ def __init__(self, op: Operator):
structural_temperature._spec().input_pin(27), 27, op, -1
)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ structural_temperature._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -810,6 +830,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.structural_temperature()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsStructuralTemperature(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/swelling_strains.py b/src/ansys/dpf/core/operators/result/swelling_strains.py
index 2d23887eac6..b6cb7129194 100644
--- a/src/ansys/dpf/core/operators/result/swelling_strains.py
+++ b/src/ansys/dpf/core/operators/result/swelling_strains.py
@@ -156,6 +156,8 @@ class swelling_strains(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class swelling_strains(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.swelling_strains(
@@ -205,6 +209,7 @@ class swelling_strains(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsSwellingStrains(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -564,6 +580,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(swelling_strains._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ swelling_strains._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -796,6 +816,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.swelling_strains()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsSwellingStrains(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/temperature_grad.py b/src/ansys/dpf/core/operators/result/temperature_grad.py
index bc8be7b6d6c..3c25df39e54 100644
--- a/src/ansys/dpf/core/operators/result/temperature_grad.py
+++ b/src/ansys/dpf/core/operators/result/temperature_grad.py
@@ -156,6 +156,8 @@ class temperature_grad(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class temperature_grad(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.temperature_grad(
@@ -205,6 +209,7 @@ class temperature_grad(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsTemperatureGrad(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -564,6 +580,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(temperature_grad._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ temperature_grad._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -796,6 +816,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.temperature_grad()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsTemperatureGrad(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/thermal_strain.py b/src/ansys/dpf/core/operators/result/thermal_strain.py
index 29047b08a33..3c262167d2a 100644
--- a/src/ansys/dpf/core/operators/result/thermal_strain.py
+++ b/src/ansys/dpf/core/operators/result/thermal_strain.py
@@ -156,6 +156,8 @@ class thermal_strain(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class thermal_strain(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.thermal_strain(
@@ -205,6 +209,7 @@ class thermal_strain(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsThermalStrain(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -560,6 +576,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(thermal_strain._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ thermal_strain._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -792,6 +812,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.thermal_strain()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsThermalStrain(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/core/operators/result/thermal_strains_eqv.py b/src/ansys/dpf/core/operators/result/thermal_strains_eqv.py
index 907d14f3e6b..1e3b4c0cd8c 100644
--- a/src/ansys/dpf/core/operators/result/thermal_strains_eqv.py
+++ b/src/ansys/dpf/core/operators/result/thermal_strains_eqv.py
@@ -156,6 +156,8 @@ class thermal_strains_eqv(Operator):
If true, this pin forces the results to be split by element shape, indicated by the presence of the 'elshape' label in the output. If false, the results for all elements shapes are combined. Default value is false if averaging is not required and true if averaging is required.
shell_layer: int, optional
If connected, this pin allows you to extract the result only on the selected shell layer(s). The available values are: 0: Top, 1: Bottom, 2: TopBottom, 3: Mid, 4: TopBottomMid.
+ extend_to_mid_nodes: bool, optional
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
Returns
-------
@@ -191,6 +193,8 @@ class thermal_strains_eqv(Operator):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
>>> # Instantiate operator and connect inputs in one line
>>> op = dpf.operators.result.thermal_strains_eqv(
@@ -205,6 +209,7 @@ class thermal_strains_eqv(Operator):
... read_beams=my_read_beams,
... split_shells=my_split_shells,
... shell_layer=my_shell_layer,
+ ... extend_to_mid_nodes=my_extend_to_mid_nodes,
... )
>>> # Get output data
@@ -224,6 +229,7 @@ def __init__(
read_beams=None,
split_shells=None,
shell_layer=None,
+ extend_to_mid_nodes=None,
config=None,
server=None,
):
@@ -252,6 +258,8 @@ def __init__(
self.inputs.split_shells.connect(split_shells)
if shell_layer is not None:
self.inputs.shell_layer.connect(shell_layer)
+ if extend_to_mid_nodes is not None:
+ self.inputs.extend_to_mid_nodes.connect(extend_to_mid_nodes)
@staticmethod
def _spec() -> Specification:
@@ -446,6 +454,12 @@ def _spec() -> Specification:
optional=True,
document=r"""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.""",
),
+ 28: PinSpecification(
+ name="extend_to_mid_nodes",
+ type_names=["bool"],
+ optional=True,
+ document=r"""Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True""",
+ ),
},
map_output_pin_spec={
0: PinSpecification(
@@ -532,6 +546,8 @@ class InputsThermalStrainsEqv(_Inputs):
>>> op.inputs.split_shells.connect(my_split_shells)
>>> my_shell_layer = int()
>>> op.inputs.shell_layer.connect(my_shell_layer)
+ >>> my_extend_to_mid_nodes = bool()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
"""
def __init__(self, op: Operator):
@@ -568,6 +584,10 @@ def __init__(self, op: Operator):
self._inputs.append(self._split_shells)
self._shell_layer = Input(thermal_strains_eqv._spec().input_pin(27), 27, op, -1)
self._inputs.append(self._shell_layer)
+ self._extend_to_mid_nodes = Input(
+ thermal_strains_eqv._spec().input_pin(28), 28, op, -1
+ )
+ self._inputs.append(self._extend_to_mid_nodes)
@property
def time_scoping(self) -> Input:
@@ -800,6 +820,27 @@ def shell_layer(self) -> Input:
"""
return self._shell_layer
+ @property
+ def extend_to_mid_nodes(self) -> Input:
+ r"""Allows to connect extend_to_mid_nodes input to the operator.
+
+ Compute mid nodes (when available) by averaging the neighbour corner nodes. Default: True
+
+ Returns
+ -------
+ input:
+ An Input instance for this pin.
+
+ Examples
+ --------
+ >>> from ansys.dpf import core as dpf
+ >>> op = dpf.operators.result.thermal_strains_eqv()
+ >>> op.inputs.extend_to_mid_nodes.connect(my_extend_to_mid_nodes)
+ >>> # or
+ >>> op.inputs.extend_to_mid_nodes(my_extend_to_mid_nodes)
+ """
+ return self._extend_to_mid_nodes
+
class OutputsThermalStrainsEqv(_Outputs):
"""Intermediate class used to get outputs from
diff --git a/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll b/src/ansys/dpf/gatebin/Ans.Dpf.GrpcClient.dll
index 89423c408b591ba787fff98aa8021e98e041d8ff..1631a20dda92598b11a484bbd7cded96c296422d 100644
GIT binary patch
delta 3067367
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%0A@bj+b5uR8DxHQFT@ShPgWaE%Sh;>U
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