Skip to content

Commit 0b8bffe

Browse files
update operators (#916)
Co-authored-by: PProfizi <[email protected]>
1 parent f79f67c commit 0b8bffe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+15915
-115
lines changed

docs/source/_static/dpf_operators.html

Lines changed: 11 additions & 11 deletions
Large diffs are not rendered by default.

src/ansys/dpf/core/operators/averaging/elemental_nodal_to_nodal_fc.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,9 @@ def _spec():
173173
),
174174
1: PinSpecification(
175175
name="weights",
176-
type_names=["class dataProcessing::CPropertyFieldsContainer"],
176+
type_names=[
177+
"class dataProcessing::DpfTypeCollection<class dataProcessing::CPropertyField>"
178+
],
177179
optional=False,
178180
document="""Gives for each node, the number of times it
179181
was found in the elemental nodal

src/ansys/dpf/core/operators/logic/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
from .component_selector import component_selector
55
from .identical_property_fields import identical_property_fields
66
from .component_transformer_fc import component_transformer_fc
7+
from .enrich_materials import enrich_materials
78
from .solid_shell_fields import solid_shell_fields
89
from .identical_meshes import identical_meshes
910
from .identical_fields import identical_fields
1011
from .included_fields import included_fields
1112
from .identical_fc import identical_fc
12-
from .enrich_materials import enrich_materials
1313
from .descending_sort import descending_sort
1414
from .ascending_sort_fc import ascending_sort_fc
1515
from .descending_sort_fc import descending_sort_fc

src/ansys/dpf/core/operators/mapping/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
from .find_reduced_coordinates import find_reduced_coordinates
44
from .on_reduced_coordinates import on_reduced_coordinates
55
from .on_coordinates import on_coordinates
6+
from .solid_to_skin_fc import solid_to_skin_fc
67
from .prepare_mapping_workflow import prepare_mapping_workflow
Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
"""
2+
solid_to_skin_fc
3+
================
4+
Autogenerated DPF operator classes.
5+
"""
6+
from warnings import warn
7+
from ansys.dpf.core.dpf_operator import Operator
8+
from ansys.dpf.core.inputs import Input, _Inputs
9+
from ansys.dpf.core.outputs import Output, _Outputs
10+
from ansys.dpf.core.operators.specification import PinSpecification, Specification
11+
12+
13+
class solid_to_skin_fc(Operator):
14+
"""Maps a field defined on solid elements to a field defined on skin
15+
elements.
16+
17+
Parameters
18+
----------
19+
fields_container : FieldsContainer
20+
Field or fields container with only one field
21+
is expected
22+
mesh_scoping : MeshedRegion, optional
23+
Skin mesh region expected
24+
25+
26+
Examples
27+
--------
28+
>>> from ansys.dpf import core as dpf
29+
30+
>>> # Instantiate operator
31+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
32+
33+
>>> # Make input connections
34+
>>> my_fields_container = dpf.FieldsContainer()
35+
>>> op.inputs.fields_container.connect(my_fields_container)
36+
>>> my_mesh_scoping = dpf.MeshedRegion()
37+
>>> op.inputs.mesh_scoping.connect(my_mesh_scoping)
38+
39+
>>> # Instantiate operator and connect inputs in one line
40+
>>> op = dpf.operators.mapping.solid_to_skin_fc(
41+
... fields_container=my_fields_container,
42+
... mesh_scoping=my_mesh_scoping,
43+
... )
44+
45+
>>> # Get output data
46+
>>> result_fields_container = op.outputs.fields_container()
47+
"""
48+
49+
def __init__(
50+
self, fields_container=None, mesh_scoping=None, config=None, server=None
51+
):
52+
super().__init__(name="solid_to_skin_fc", config=config, server=server)
53+
self._inputs = InputsSolidToSkinFc(self)
54+
self._outputs = OutputsSolidToSkinFc(self)
55+
if fields_container is not None:
56+
self.inputs.fields_container.connect(fields_container)
57+
if mesh_scoping is not None:
58+
self.inputs.mesh_scoping.connect(mesh_scoping)
59+
60+
@staticmethod
61+
def _spec():
62+
description = """Maps a field defined on solid elements to a field defined on skin
63+
elements."""
64+
spec = Specification(
65+
description=description,
66+
map_input_pin_spec={
67+
0: PinSpecification(
68+
name="fields_container",
69+
type_names=["fields_container"],
70+
optional=False,
71+
document="""Field or fields container with only one field
72+
is expected""",
73+
),
74+
1: PinSpecification(
75+
name="mesh_scoping",
76+
type_names=["abstract_meshed_region"],
77+
optional=True,
78+
document="""Skin mesh region expected""",
79+
),
80+
},
81+
map_output_pin_spec={
82+
0: PinSpecification(
83+
name="fields_container",
84+
type_names=["fields_container"],
85+
optional=False,
86+
document="""""",
87+
),
88+
},
89+
)
90+
return spec
91+
92+
@staticmethod
93+
def default_config(server=None):
94+
"""Returns the default config of the operator.
95+
96+
This config can then be changed to the user needs and be used to
97+
instantiate the operator. The Configuration allows to customize
98+
how the operation will be processed by the operator.
99+
100+
Parameters
101+
----------
102+
server : server.DPFServer, optional
103+
Server with channel connected to the remote or local instance. When
104+
``None``, attempts to use the global server.
105+
"""
106+
return Operator.default_config(name="solid_to_skin_fc", server=server)
107+
108+
@property
109+
def inputs(self):
110+
"""Enables to connect inputs to the operator
111+
112+
Returns
113+
--------
114+
inputs : InputsSolidToSkinFc
115+
"""
116+
return super().inputs
117+
118+
@property
119+
def outputs(self):
120+
"""Enables to get outputs of the operator by evaluationg it
121+
122+
Returns
123+
--------
124+
outputs : OutputsSolidToSkinFc
125+
"""
126+
return super().outputs
127+
128+
129+
class InputsSolidToSkinFc(_Inputs):
130+
"""Intermediate class used to connect user inputs to
131+
solid_to_skin_fc operator.
132+
133+
Examples
134+
--------
135+
>>> from ansys.dpf import core as dpf
136+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
137+
>>> my_fields_container = dpf.FieldsContainer()
138+
>>> op.inputs.fields_container.connect(my_fields_container)
139+
>>> my_mesh_scoping = dpf.MeshedRegion()
140+
>>> op.inputs.mesh_scoping.connect(my_mesh_scoping)
141+
"""
142+
143+
def __init__(self, op: Operator):
144+
super().__init__(solid_to_skin_fc._spec().inputs, op)
145+
self._fields_container = Input(solid_to_skin_fc._spec().input_pin(0), 0, op, -1)
146+
self._inputs.append(self._fields_container)
147+
self._mesh_scoping = Input(solid_to_skin_fc._spec().input_pin(1), 1, op, -1)
148+
self._inputs.append(self._mesh_scoping)
149+
150+
@property
151+
def fields_container(self):
152+
"""Allows to connect fields_container input to the operator.
153+
154+
Field or fields container with only one field
155+
is expected
156+
157+
Parameters
158+
----------
159+
my_fields_container : FieldsContainer
160+
161+
Examples
162+
--------
163+
>>> from ansys.dpf import core as dpf
164+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
165+
>>> op.inputs.fields_container.connect(my_fields_container)
166+
>>> # or
167+
>>> op.inputs.fields_container(my_fields_container)
168+
"""
169+
return self._fields_container
170+
171+
@property
172+
def mesh_scoping(self):
173+
"""Allows to connect mesh_scoping input to the operator.
174+
175+
Skin mesh region expected
176+
177+
Parameters
178+
----------
179+
my_mesh_scoping : MeshedRegion
180+
181+
Examples
182+
--------
183+
>>> from ansys.dpf import core as dpf
184+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
185+
>>> op.inputs.mesh_scoping.connect(my_mesh_scoping)
186+
>>> # or
187+
>>> op.inputs.mesh_scoping(my_mesh_scoping)
188+
"""
189+
return self._mesh_scoping
190+
191+
192+
class OutputsSolidToSkinFc(_Outputs):
193+
"""Intermediate class used to get outputs from
194+
solid_to_skin_fc operator.
195+
196+
Examples
197+
--------
198+
>>> from ansys.dpf import core as dpf
199+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
200+
>>> # Connect inputs : op.inputs. ...
201+
>>> result_fields_container = op.outputs.fields_container()
202+
"""
203+
204+
def __init__(self, op: Operator):
205+
super().__init__(solid_to_skin_fc._spec().outputs, op)
206+
self._fields_container = Output(solid_to_skin_fc._spec().output_pin(0), 0, op)
207+
self._outputs.append(self._fields_container)
208+
209+
@property
210+
def fields_container(self):
211+
"""Allows to get fields_container output of the operator
212+
213+
Returns
214+
----------
215+
my_fields_container : FieldsContainer
216+
217+
Examples
218+
--------
219+
>>> from ansys.dpf import core as dpf
220+
>>> op = dpf.operators.mapping.solid_to_skin_fc()
221+
>>> # Connect inputs : op.inputs. ...
222+
>>> result_fields_container = op.outputs.fields_container()
223+
""" # noqa: E501
224+
return self._fields_container

src/ansys/dpf/core/operators/math/svd.py

Lines changed: 70 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212

1313
class svd(Operator):
14-
"""Computes the complex matrix singular value decomposition (SVD) for
15-
each field in the given fields container.
14+
"""Computes the matrix singular value decomposition (SVD) for each field
15+
in the given fields container.
1616
1717
Parameters
1818
----------
@@ -37,7 +37,9 @@ class svd(Operator):
3737
... )
3838
3939
>>> # Get output data
40-
>>> result_fields_container = op.outputs.fields_container()
40+
>>> result_s_svd = op.outputs.s_svd()
41+
>>> result_u_svd = op.outputs.u_svd()
42+
>>> result_vt_svd = op.outputs.vt_svd()
4143
"""
4244

4345
def __init__(self, fields_container=None, config=None, server=None):
@@ -49,8 +51,8 @@ def __init__(self, fields_container=None, config=None, server=None):
4951

5052
@staticmethod
5153
def _spec():
52-
description = """Computes the complex matrix singular value decomposition (SVD) for
53-
each field in the given fields container."""
54+
description = """Computes the matrix singular value decomposition (SVD) for each field
55+
in the given fields container."""
5456
spec = Specification(
5557
description=description,
5658
map_input_pin_spec={
@@ -63,10 +65,23 @@ def _spec():
6365
},
6466
map_output_pin_spec={
6567
0: PinSpecification(
66-
name="fields_container",
68+
name="s_svd",
6769
type_names=["fields_container"],
6870
optional=False,
69-
document="""""",
71+
document="""Singular values of the input data, where
72+
a=u.s.vt""",
73+
),
74+
1: PinSpecification(
75+
name="u_svd",
76+
type_names=["fields_container"],
77+
optional=False,
78+
document="""U of the input data, where a=u.s.vt""",
79+
),
80+
2: PinSpecification(
81+
name="vt_svd",
82+
type_names=["fields_container"],
83+
optional=False,
84+
document="""Vt of the input data, where a=u.s.vt""",
7085
),
7186
},
7287
)
@@ -156,27 +171,67 @@ class OutputsSvd(_Outputs):
156171
>>> from ansys.dpf import core as dpf
157172
>>> op = dpf.operators.math.svd()
158173
>>> # Connect inputs : op.inputs. ...
159-
>>> result_fields_container = op.outputs.fields_container()
174+
>>> result_s_svd = op.outputs.s_svd()
175+
>>> result_u_svd = op.outputs.u_svd()
176+
>>> result_vt_svd = op.outputs.vt_svd()
160177
"""
161178

162179
def __init__(self, op: Operator):
163180
super().__init__(svd._spec().outputs, op)
164-
self._fields_container = Output(svd._spec().output_pin(0), 0, op)
165-
self._outputs.append(self._fields_container)
181+
self._s_svd = Output(svd._spec().output_pin(0), 0, op)
182+
self._outputs.append(self._s_svd)
183+
self._u_svd = Output(svd._spec().output_pin(1), 1, op)
184+
self._outputs.append(self._u_svd)
185+
self._vt_svd = Output(svd._spec().output_pin(2), 2, op)
186+
self._outputs.append(self._vt_svd)
166187

167188
@property
168-
def fields_container(self):
169-
"""Allows to get fields_container output of the operator
189+
def s_svd(self):
190+
"""Allows to get s_svd output of the operator
170191
171192
Returns
172193
----------
173-
my_fields_container : FieldsContainer
194+
my_s_svd : FieldsContainer
174195
175196
Examples
176197
--------
177198
>>> from ansys.dpf import core as dpf
178199
>>> op = dpf.operators.math.svd()
179200
>>> # Connect inputs : op.inputs. ...
180-
>>> result_fields_container = op.outputs.fields_container()
201+
>>> result_s_svd = op.outputs.s_svd()
181202
""" # noqa: E501
182-
return self._fields_container
203+
return self._s_svd
204+
205+
@property
206+
def u_svd(self):
207+
"""Allows to get u_svd output of the operator
208+
209+
Returns
210+
----------
211+
my_u_svd : FieldsContainer
212+
213+
Examples
214+
--------
215+
>>> from ansys.dpf import core as dpf
216+
>>> op = dpf.operators.math.svd()
217+
>>> # Connect inputs : op.inputs. ...
218+
>>> result_u_svd = op.outputs.u_svd()
219+
""" # noqa: E501
220+
return self._u_svd
221+
222+
@property
223+
def vt_svd(self):
224+
"""Allows to get vt_svd output of the operator
225+
226+
Returns
227+
----------
228+
my_vt_svd : FieldsContainer
229+
230+
Examples
231+
--------
232+
>>> from ansys.dpf import core as dpf
233+
>>> op = dpf.operators.math.svd()
234+
>>> # Connect inputs : op.inputs. ...
235+
>>> result_vt_svd = op.outputs.vt_svd()
236+
""" # noqa: E501
237+
return self._vt_svd

0 commit comments

Comments
 (0)