BodyFieldsContainer#
- class ansys.dpf.core.custom_fields_container.BodyFieldsContainer(fields_container=None, server=None)#
- Bases: - ansys.dpf.core.fields_container.FieldsContainer- Represents a fields container with fields split by a body. - Instances of this class are created when a model result is split by a body, which is an MAPDL material property. - 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_body.eval() >>> fc.get_mat_scoping().ids[3] np.int32(45) >>> len(fc.get_fields_by_mat_id(45)) 45 >>> f_time_2 = fc.get_field_by_mat_id(45, timeid=2) 
Overview#
| Retrieve a list of all fields for a material ID. | |
| Retrieve a field with a given material ID. | |
| Retrieve the material or body scoping containing material IDs. | |
| 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 BodyFieldsContainer
Property detail#
- property BodyFieldsContainer.time_freq_support#
- Time frequency support. 
- property BodyFieldsContainer.name#
- Name of the Collection. - Notes - Available starting with DPF 2024 R2 pre0. - Return type:
- str 
 
- property BodyFieldsContainer.labels: List[str]#
- Provides for getting scoping labels as a property. - Returns:
- List of labels scoping the collection. 
- Return type:
- List[str] 
 
Attribute detail#
- BodyFieldsContainer.entries_type: type[TYPE] | None#
- BodyFieldsContainer.owned = False#
Method detail#
- BodyFieldsContainer.get_fields_by_mat_id(matid, timeid=None, complexid=None)#
- Retrieve a list of all fields for a material ID. - You can filter the list of fields for a material ID based on a given time, complex type, or both. - Parameters:
- matid (int, optional) – Material ID. To request available material IDs, you can use the get_mat_scoping method. 
- timeid (int, optional) – Time ID for filtering fields with the given material ID. 
- complexid (int, optional) – Complex type ID for filtering fields with the given material ID. 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_body.eval() >>> len(fc.get_fields_by_mat_id(1)) 45 >>> len(fc.get_fields_by_mat_id(1, timeid=3)) 1 
- BodyFieldsContainer.get_field_by_mat_id(matid, timeid=None, complexid=None)#
- Retrieve a field with a given material ID. - You can filter the field based on a given time, complex type, or both. - Parameters:
- matid (int, optional) – Material ID. To request available material IDs, you can use the get_mat_scoping method. 
- timeid (int, optional) – Time ID for filtering fields with the given material ID. 
- complexid (int, optional) – Complex type ID for filtering fields with the given material ID. 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_body.eval() >>> f_time_2 = fc.get_field_by_mat_id(45, timeid=2) 
- BodyFieldsContainer.get_mat_scoping()#
- Retrieve the material or body scoping containing material IDs. - Returns:
- Field corresponding to the request. Scoping containing the material IDs available in the fields container. 
- Return type:
 
- BodyFieldsContainer.create_subtype(obj_by_copy)#
- Create a field subtype. 
- BodyFieldsContainer.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 - 1is for imaginary and- 0is 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) 
- BodyFieldsContainer.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 - 1is for imaginary and- 0is 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) 
- BodyFieldsContainer.__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] 
 
- BodyFieldsContainer.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 
- BodyFieldsContainer.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}) 
- BodyFieldsContainer.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:
 
- BodyFieldsContainer.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] 
 
- BodyFieldsContainer.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:
 
- BodyFieldsContainer.__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:
 
- BodyFieldsContainer.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)) 
- BodyFieldsContainer.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.
 
 
- BodyFieldsContainer.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.
 
 
- BodyFieldsContainer.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] 
- BodyFieldsContainer.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) 
- BodyFieldsContainer.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:
 
- BodyFieldsContainer.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 - FieldsContainerwith associated values to select for plotting. This is used to filter the data to plot, for example: - if- label_space={'time': 10}: a single time step (mandatory for transient) - if- label_space={'complex': 0, 'part': 12}: real part of complex data for a part See- get_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()and- DpfPlotter.
 
 
- BodyFieldsContainer.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 by- pyvista.Plotter.open_movie()(framerate, quality, …)
 
 
- BodyFieldsContainer.__add__(fields_b)#
- Add two fields or two fields containers. - Returns:
- add 
- Return type:
- operators.math.add_fc 
 
- BodyFieldsContainer.__sub__(fields_b)#
- Subtract two fields or two fields containers. - Returns:
- minus 
- Return type:
- operators.math.minus_fc 
 
- BodyFieldsContainer.__pow__(value)#
- Compute element-wise field[i]^2. 
- BodyFieldsContainer.__mul__(value)#
- Multiply two fields or two fields containers. - Returns:
- mul 
- Return type:
- operators.math.generalized_inner_product_fc 
 
- static BodyFieldsContainer.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.
- BodyFieldsContainer.set_labels(labels)#
- Set labels for scoping the collection. - Parameters:
- labels (list[str], optional) – Labels to scope entries to. For example, - ["time", "complex"].
 
- BodyFieldsContainer.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') 
- BodyFieldsContainer.has_label(label) bool#
- Check if a collection has a specified label. - Parameters:
- label (str) – Label to search for. For example, - "time".
- Returns:
- Truewhen successful,- Falsewhen 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 
- BodyFieldsContainer.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] 
 
- BodyFieldsContainer.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) 
 
- BodyFieldsContainer.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] 
 
- BodyFieldsContainer.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_typeexists 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:
 
- BodyFieldsContainer.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. 
- BodyFieldsContainer.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. 
- BodyFieldsContainer.__str__()#
- Describe the entity. - Returns:
- description – Description of the entity. 
- Return type:
- str 
 
- BodyFieldsContainer.__len__()#
- Retrieve the number of entries. 
- BodyFieldsContainer.__del__()#
- Delete the entry. 
- BodyFieldsContainer.__iter__()#
- Provide for looping through entry items. 
 
    