ElShapeFieldsContainer
#
- class ansys.dpf.core.custom_fields_container.ElShapeFieldsContainer(fields_container=None, server=None)#
Bases:
ansys.dpf.core.fields_container.FieldsContainer
Represents a fields container with fields split by an element shape.
Instances of this class are created when a model result is split by an element shape, such as a solid, shell, or beam.
- Parameters:
fields_container (ansys.grpc.dpf.collection_message_pb2.Collection or FieldsContainer, optional) – Fields container created from either a collection message or by copying an existing fields container. The default is
None
.server (server.DPFServer, optional) – Server with the channel connected to the remote or local instance. The default is
None
, in which case an attempt is made to use the global server.
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> len(fc.solid_fields()) 45 >>> solid_f_time_2 = fc.solid_field(2)
Overview#
Retrieve a list of all fields with solid element shapes. |
|
Retrieve a list of all fields with shell element shapes. |
|
Retrieve a list of all fields with beam element shapes. |
|
Retrieve a field with a solid element shape. |
|
Retrieve a field with a shell element shape. |
|
Retrieve a field with a beam element shape. |
|
Create a field subtype. |
|
Retrieve fields at a requested time ID or complex ID. |
|
Retrieve a field at a requested time ID or complex ID. |
|
Retrieve the fields at a requested index or label space. |
|
Retrieve the field at a requested index or label space. |
|
Retrieve the complex field at a requested time. |
|
Retrieve the complex fields at a requested time. |
|
Retrieve the complex field at a requested time. |
|
Add or update a field at a requested label space. |
|
Add or update a field at a requested time ID. |
|
Add or update an imaginary field at a requested time ID. |
|
Select fields containing only the component index. |
|
Create a deep copy of the fields container’s data (and its fields) on a given server. |
|
Retrieve the time scoping containing the time sets. |
|
Plot the fields in the FieldsContainer for the given LabelSpace. |
|
Create an animation based on the Fields contained in the FieldsContainer. |
|
Set labels for scoping the collection. |
|
Add the requested label to scope the collection. |
|
Check if a collection has a specified label. |
|
Retrieve the indices of the entries corresponding a requested label space . |
|
Retrieve the label space of an entry at a requested index. |
|
Retrieve the IDs assigned to an input label. |
|
Retrieve the scoping for an input label. |
|
Set the support of the collection for a given label. |
|
Get the support of the collection for a given label. |
Time frequency support. |
|
Name of the Collection. |
|
Provides for getting scoping labels as a property. |
Create a collection of integral type with a list. |
Return a label space dictionary mapping scoping to given id. |
|
Retrieve the field at a requested index. |
|
Add two fields or two fields containers. |
|
Subtract two fields or two fields containers. |
|
Compute element-wise field[i]^2. |
|
Multiply two fields or two fields containers. |
|
Describe the entity. |
|
Retrieve the number of entries. |
|
Delete the entry. |
|
Provide for looping through entry items. |
Import detail#
from ansys.dpf.core.custom_fields_container import ElShapeFieldsContainer
Property detail#
- property ElShapeFieldsContainer.time_freq_support#
Time frequency support.
- property ElShapeFieldsContainer.name#
Name of the Collection.
Notes
Available starting with DPF 2024 R2 pre0.
- Return type:
str
- property ElShapeFieldsContainer.labels: List[str]#
Provides for getting scoping labels as a property.
- Returns:
List of labels scoping the collection.
- Return type:
List[str]
Attribute detail#
- ElShapeFieldsContainer.entries_type: type[TYPE] | None#
- ElShapeFieldsContainer.owned = False#
Method detail#
- ElShapeFieldsContainer.solid_fields(timeid=None, complexid=None)#
Retrieve a list of all fields with solid element shapes.
You can filter the list of fields with solid element shapes based on a given time, complex type, or both.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with solid element shapes.
complexid (int, optional) – Complex type ID for filtering fields with solid element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
List of fields corresponding to the request.
- Return type:
list
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.split_by_shape.eval() >>> len(fc.solid_fields()) 1 >>> len(fc.solid_fields(timeid=1)) 1
- ElShapeFieldsContainer.shell_fields(timeid=None, complexid=None)#
Retrieve a list of all fields with shell element shapes.
You can filter the list of fields with shell element shapes based on a given time, complex type, or both.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with shell element shapes.
complexid (int, optional) – Complex type ID for filtering fields with shell element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
List of fields corresponding to the request.
- Return type:
list
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> len(fc.shell_fields()) 45 >>> len(fc.shell_fields(timeid=3)) 1
- ElShapeFieldsContainer.beam_fields(timeid=None, complexid=None)#
Retrieve a list of all fields with beam element shapes.
You can filter the list of fields with beam element shapes based on a given time, complex type, or both.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with beam element shapes.
complexid (int, optional) – Complex type ID for filtering fields with beam element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
List of fields corresponding to the request.
- Return type:
list
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> len(fc.beam_fields()) 45 >>> len(fc.beam_fields(timeid=3)) 1
- ElShapeFieldsContainer.solid_field(timeid=None, complexid=None)#
Retrieve a field with a solid element shape.
You can give a time, complex type, or both. If the number of fields matching the request is higher than one, an exception is raised.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with solid element shapes.
complexid (int, optional) – Complex type ID for filtering fields with solid element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
Field corresponding to the request.
- Return type:
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> field = fc.solid_field(timeid=3)
- ElShapeFieldsContainer.shell_field(timeid=None, complexid=None)#
Retrieve a field with a shell element shape.
You can give a time, complex type, or both. If the number of fields matching the request is higher than one, an exception is raised.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with shell element shapes.
complexid (int, optional) – Complex type ID for filtering fields with shell element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
Field corresponding to the request.
- Return type:
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> field = fc.shell_field(timeid=3)
- ElShapeFieldsContainer.beam_field(timeid=None, complexid=None)#
Retrieve a field with a beam element shape.
You can give a time, complex type, or both. If the number of fields matching the request is higher than one, an exception is raised.
- Parameters:
timeid (int, optional) – Time ID for filtering fields with solid element shapes.
complexid (int, optional) – Complex type ID for filtering fields with solid element shapes. 0 is for real numbers, and 1 is for imaginary numbers.
- Returns:
Field corresponding to the request.
- Return type:
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> model = dpf.Model(examples.download_all_kinds_of_complexity_modal()) >>> fc = model.results.displacement.on_all_time_freqs.split_by_shape.eval() >>> field = fc.beam_field(timeid=3)
- ElShapeFieldsContainer.create_subtype(obj_by_copy)#
Create a field subtype.
- ElShapeFieldsContainer.get_fields_by_time_complex_ids(timeid=None, complexid=None)#
Retrieve fields at a requested time ID or complex ID.
- Parameters:
timeid (int, optional) – Time ID or frequency ID, which is the one-based index of the result set.
complexid (int, optional) – Complex ID, where
1
is for imaginary and0
is for real.
- Returns:
fields – Fields corresponding to the request.
- Return type:
list[Field]
Examples
Extract the fifth time set of a transient analysis.
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> transient = examples.download_transient_result() >>> model = dpf.Model(transient) >>> len(model.metadata.time_freq_support.time_frequencies) 35 >>> disp = model.results.displacement() >>> disp.inputs.time_scoping.connect([1,5]) >>> fields_container = disp.outputs.fields_container() >>> field_set_5 =fields_container.get_fields_by_time_complex_ids(5)
- ElShapeFieldsContainer.get_field_by_time_complex_ids(timeid=None, complexid=None)#
Retrieve a field at a requested time ID or complex ID.
An exception is raised if the number of fields matching the request is greater than one.
- Parameters:
timeid (int, optional) – Time ID or frequency ID, which is the one-based index of the result set.
complexid (int, optional) – Complex ID, where
1
is for imaginary and0
is for real.
- Returns:
fields – Field corresponding to the request
- Return type:
Examples
Extract the fifth time set of a transient analysis.
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> transient = examples.download_transient_result() >>> model = dpf.Model(transient) >>> len(model.metadata.time_freq_support.time_frequencies) 35 >>> disp = model.results.displacement() >>> disp.inputs.time_scoping.connect([1,5]) >>> fields_container = disp.outputs.fields_container() >>> field_set_5 =fields_container.get_fields_by_time_complex_ids(5)
- ElShapeFieldsContainer.__time_complex_label_space__(timeid=None, complexid=None)#
Return a label space dictionary mapping scoping to given id.
- Parameters:
timeid (int, optional) – time based id, by default None
complexid (int, optional) – complex id, by default None
- Returns:
mapping of space type to given id.
- Return type:
dict[str,int]
- ElShapeFieldsContainer.get_fields(label_space)#
Retrieve the fields at a requested index or label space.
- Parameters:
label_space (dict[str,int]) – Scoping of the requested fields. For example,
{"time": 1, "complex": 0}
.- Returns:
fields – Fields corresponding to the request.
- Return type:
list[Field]
Examples
>>> from ansys.dpf import core as dpf >>> fc= dpf.FieldsContainer() >>> fc.labels =['time','complex'] >>> #real fields >>> for i in range(0,20): ... mscop = {"time":i+1,"complex":0} ... fc.add_field(mscop,dpf.Field(nentities=i+10)) >>> #imaginary fields >>> for i in range(0,20): ... mscop = {"time":i+1,"complex":1} ... fc.add_field(mscop,dpf.Field(nentities=i+10))
>>> fields = fc.get_fields({"time":2}) >>> # imaginary and real fields of time 2 >>> len(fields) 2
- ElShapeFieldsContainer.get_field(label_space_or_index)#
Retrieve the field at a requested index or label space.
An exception is raised if the number of fields matching the request is greater than one.
- Parameters:
label_space_or_index (dict[str,int], int) – Scoping of the requested fields. For example,
{"time": 1, "complex": 0}
or the index of the field.- Returns:
field – Field corresponding to the request.
- Return type:
Examples
>>> from ansys.dpf import core as dpf >>> fc = dpf.fields_container_factory.over_time_freq_fields_container( ... [dpf.Field(nentities=10)] ... ) >>> field = fc.get_field({"time":1})
- ElShapeFieldsContainer.get_field_by_time_id(timeid=None)#
Retrieve the complex field at a requested time.
- Parameters:
timeid (int, optional) – Time ID, which is the one-based index of the result set.
- Returns:
fields – Fields corresponding to the request.
- Return type:
- ElShapeFieldsContainer.get_imaginary_fields(timeid=None)#
Retrieve the complex fields at a requested time.
- Parameters:
timeid (int, optional) – Time ID, which is the one-based index of the result set.
- Returns:
fields – Fields corresponding to the request.
- Return type:
list[Field]
- ElShapeFieldsContainer.get_imaginary_field(timeid=None)#
Retrieve the complex field at a requested time.
- Parameters:
timeid (int, optional) – Time ID, which is the one-based index of the result set.
- Returns:
fields – Field corresponding to the request.
- Return type:
- ElShapeFieldsContainer.__getitem__(key) ansys.dpf.core.field.Field #
Retrieve the field at a requested index.
- Parameters:
key (int) – Index.
- Returns:
field – Field corresponding to the request.
- Return type:
- ElShapeFieldsContainer.add_field(label_space, field)#
Add or update a field at a requested label space.
- Parameters:
label_space (dict[str,int]) – Label space of the requested field. For example, {“time”:1, “complex”:0}.
field (Field) – DPF field to add or update.
Examples
>>> from ansys.dpf import core as dpf >>> fc= dpf.FieldsContainer() >>> fc.labels =['time','complex'] >>> for i in range(0,20): #real fields ... mscop = {"time":i+1,"complex":0} ... fc.add_field(mscop,dpf.Field(nentities=i+10)) >>> for i in range(0,20): #imaginary fields ... mscop = {"time":i+1,"complex":1} ... fc.add_field(mscop,dpf.Field(nentities=i+10))
- ElShapeFieldsContainer.add_field_by_time_id(field, timeid=1)#
Add or update a field at a requested time ID.
- Parameters:
field (Field) – DPF field to add or update.
timeid (int, optional) – Time ID for the requested time set. The default is
1
.
- ElShapeFieldsContainer.add_imaginary_field(field, timeid=1)#
Add or update an imaginary field at a requested time ID.
- Parameters:
field (Field) – DPF field to add or update.
timeid (int, optional) – Time ID for the requested time set. The default is
1
.
- ElShapeFieldsContainer.select_component(index)#
Select fields containing only the component index.
Fields can be selected only by component index as multiple fields may contain a different number of components.
- Parameters:
index (int) – Index of the component.
- Returns:
fields – Fields container with one component selected in each field.
- Return type:
Examples
Select using a component index.
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> transient = examples.download_transient_result() >>> model = dpf.Model(transient) >>> disp = model.results.displacement() >>> disp.inputs.time_scoping.connect([1,5]) >>> fields_container = disp.outputs.fields_container() >>> disp_x_fields = fields_container.select_component(0) >>> my_field = disp_x_fields[0]
- ElShapeFieldsContainer.deep_copy(server=None)#
Create a deep copy of the fields container’s data (and its fields) on a given server.
This method is useful for passing data from one server instance to another.
- Parameters:
server (ansys.dpf.core.server, optional) – Server with the channel connected to the remote or local instance. The default is
None
, in which case an attempt is made to use the global server.- Returns:
fields_container_copy
- Return type:
Examples
>>> from ansys.dpf import core as dpf >>> from ansys.dpf.core import examples >>> transient = examples.download_transient_result() >>> model = dpf.Model(transient) >>> disp = model.results.displacement() >>> disp.inputs.time_scoping.connect([1,5]) >>> fields_container = disp.outputs.fields_container() >>> other_server = dpf.start_local_server(as_global=False) >>> deep_copy = fields_container.deep_copy(server=other_server)
- ElShapeFieldsContainer.get_time_scoping()#
Retrieve the time scoping containing the time sets.
- Returns:
scoping – Scoping containing the time set IDs available in the fields container.
- Return type:
- ElShapeFieldsContainer.plot(label_space: dict = None, **kwargs)#
Plot the fields in the FieldsContainer for the given LabelSpace.
Check the labels available for the FieldsContainer with
labels()
.- Parameters:
label_space – A dictionary (LabelSpace) of labels of the
FieldsContainer
with associated values to select for plotting. This is used to filter the data to plot, for example: - iflabel_space={'time': 10}
: a single time step (mandatory for transient) - iflabel_space={'complex': 0, 'part': 12}
: real part of complex data for a part Seeget_fields()
. If None is given, it renders all fields available, which may not make sense.**kwargs – For more information on accepted keyword arguments, see
plot()
andDpfPlotter
.
- ElShapeFieldsContainer.animate(save_as: str = None, deform_by: FieldsContainer | ansys.dpf.core.Result | ansys.dpf.core.Operator = None, scale_factor: float | Sequence[float] = 1.0, shell_layer: ansys.dpf.core.common.shell_layers = shell_layers.top, **kwargs)#
Create an animation based on the Fields contained in the FieldsContainer.
This method creates a movie or a gif based on the time ids of a FieldsContainer. For kwargs see pyvista.Plotter.open_movie/add_text/show.
- Parameters:
save_as – Path of file to save the animation to. Defaults to None. Can be of any format supported by pyvista.Plotter.write_frame (.gif, .mp4, …).
deform_by – Used to deform the plotted mesh. Must return a FieldsContainer of the same length as self, containing 3D vector Fields of distances. Defaults to None, which takes self if possible. Set as False to force static animation.
scale_factor (float, list, optional) – Scale factor to apply when warping the mesh. Defaults to 1.0. Can be a list to make scaling frequency-dependent.
shell_layer – Enum used to set the shell layer if the field to plot contains shell elements. Defaults to top layer.
**kwargs – Additional keyword arguments for the animator. Used by
pyvista.Plotter()
(off_screen, cpos, …), or bypyvista.Plotter.open_movie()
(framerate, quality, …)
- ElShapeFieldsContainer.__add__(fields_b)#
Add two fields or two fields containers.
- Returns:
add
- Return type:
operators.math.add_fc
- ElShapeFieldsContainer.__sub__(fields_b)#
Subtract two fields or two fields containers.
- Returns:
minus
- Return type:
operators.math.minus_fc
- ElShapeFieldsContainer.__pow__(value)#
Compute element-wise field[i]^2.
- ElShapeFieldsContainer.__mul__(value)#
Multiply two fields or two fields containers.
- Returns:
mul
- Return type:
operators.math.generalized_inner_product_fc
- static ElShapeFieldsContainer.integral_collection(inpt, server: ansys.dpf.core.server_types.BaseServer = None)#
Create a collection of integral type with a list.
The collection of integral is the equivalent of an array of data sent server side. It can be used to efficiently stream large data to the server.
- Parameters:
inpt (list[float], list[int], numpy.array) – list to transfer server side
- Return type:
Notes
Used by default by the
'Operator'
and the``’Workflow’`` when a list is connected or returned.
- ElShapeFieldsContainer.set_labels(labels)#
Set labels for scoping the collection.
- Parameters:
labels (list[str], optional) – Labels to scope entries to. For example,
["time", "complex"]
.
- ElShapeFieldsContainer.add_label(label, default_value=None)#
Add the requested label to scope the collection.
- Parameters:
label (str) – Labels to scope the entries to. For example,
"time"
.default_value (int, optional) – Default value for existing fields in the collection. The default is
None
.
Examples
>>> from ansys.dpf import core as dpf >>> coll = dpf.FieldsContainer() >>> coll.add_label('time')
- ElShapeFieldsContainer.has_label(label) bool #
Check if a collection has a specified label.
- Parameters:
label (str) – Label to search for. For example,
"time"
.- Returns:
True
when successful,False
when failed.- Return type:
bool
Examples
>>> from ansys.dpf import core as dpf >>> coll = dpf.FieldsContainer() >>> coll.add_label('time') >>> coll.has_label('time') True
>>> coll.has_label('complex') False
- ElShapeFieldsContainer.get_entries_indices(label_space)#
Retrieve the indices of the entries corresponding a requested label space .
Notes
Available starting with DPF 2025R1.
- Parameters:
label_space (dict[str,int]) – Label space or index. For example,
{"time": 1, "complex": 0}
or the index of the field.- Returns:
indices – Indices of the entries corresponding to the request.
- Return type:
list[int], list[Field], list[MeshedRegion]
- ElShapeFieldsContainer.get_label_space(index)#
Retrieve the label space of an entry at a requested index.
- Parameters:
index (int) – Index of the entry.
- Returns:
label_space – Scoping of the requested entry. For example,
{"time": 1, "complex": 0}
.- Return type:
dict(str:int)
- ElShapeFieldsContainer.get_available_ids_for_label(label='time')#
Retrieve the IDs assigned to an input label.
- Parameters:
label (str) – Name of the input label. The default is
"time"
.- Returns:
ids – List of IDs assigned to the input label.
- Return type:
list[int]
- ElShapeFieldsContainer.get_label_scoping(label='time')#
Retrieve the scoping for an input label.
This method allows you to retrieve a list of IDs for a given input label in the collection. For example, if the label
el_type
exists in the collection, you can use the get_lable_scoping method to retrieve a list of IDS with this label. You can then use these IDs to request a given entity inside the collection.- Parameters:
label (str) – Name of the input label.
- Returns:
scoping – IDs scoped to the input label.
- Return type:
- ElShapeFieldsContainer.set_support(label: str, support: ansys.dpf.core.support.Support) None #
Set the support of the collection for a given label.
Notes
Available starting with DPF 2023 R1.
- ElShapeFieldsContainer.get_support(label: str) ansys.dpf.core.support.Support #
Get the support of the collection for a given label.
Notes
Available starting with DPF 2023 R1.
- ElShapeFieldsContainer.__str__()#
Describe the entity.
- Returns:
description – Description of the entity.
- Return type:
str
- ElShapeFieldsContainer.__len__()#
Retrieve the number of entries.
- ElShapeFieldsContainer.__del__()#
Delete the entry.
- ElShapeFieldsContainer.__iter__()#
Provide for looping through entry items.