Scoping#

class ansys.dpf.core.scoping.Scoping(scoping: ansys.grpc.dpf.scoping_pb2.Scoping | ctypes.c_void_p = None, server: ansys.dpf.core.server_types.AnyServerType = None, ids: IdVectorType = None, location: ansys.dpf.core.common.locations = None)#

Represents a scoping, which is a subset of a model support.

Parameters:
  • scoping – gRPC message or pointer for an existing scoping on the server.

  • server – Server with channel connected to the remote or local instance. The default is None, in which case an attempt is made to use the global server.

  • ids – List of entity IDs.

  • location – Location for this scoping. Defines the type of entities the IDs correspond to. For example, if location is locations.nodal, then the scoping is a list of node IDs.

Examples

Create a scoping for mesh entities.

>>> from ansys.dpf import core as dpf
>>> # 1. using the mesh_scoping_factory
>>> from ansys.dpf.core import mesh_scoping_factory
>>> # a. scoping with elemental location that targets the elements with id 2, 7 and 11
>>> my_elemental_scoping = mesh_scoping_factory.elemental_scoping([2, 7, 11])
>>> # b. scoping with nodal location that targets the elements with id 4 to 6
>>> my_nodal_scoping = mesh_scoping_factory.nodal_scoping(range(4, 7))
>>> #2. using the Scoping class directly
>>> # a. scoping with elemental location that targets the elements with id 2, 7 and 11
>>> my_elemental_scoping = dpf.Scoping(location=dpf.locations.elemental, ids=[2, 7, 11])
>>> # b. scoping with nodal  location that targets the elements with id 4 to 6
>>> my_nodal_scoping = dpf.Scoping(ids=range(4, 7))
>>> # 3. create a time_freq scoping that targets the second load step
>>> from ansys.dpf.core import time_freq_scoping_factory
>>> # a. using the time_freq_scoping_factory
>>> my_load_step_scoping = time_freq_scoping_factory.scoping_by_load_step(2)
>>> # b. using the Scoping class directly
>>> my_load_step_scoping = dpf.Scoping(location=dpf.locations.time_freq_step, ids=[2])

Overview#

get_ids

Return the list of entity IDs in the scoping as a list or as a numpy.ndarray.

set_id

Set the ID of the entity at index in the scoping.

id

Retrieve the entity ID at a given index.

index

Retrieve the index for a given entity ID.

deep_copy

Create a deep copy of the scoping’s data on a given server.

as_local_scoping

Create a deep copy of the scoping that can be accessed and modified locally.

plot

Plot the entities of the mesh corresponding to the scoping.

ids

Retrieve the entity IDs in the scoping.

location

Location of the scoping as a string.

size

Length of the list of IDs.

__len__

Return the number of scoping ids.

__del__

Clean up resources associated with the instance.

__iter__

Return an iterator over the scoping ids.

__getitem__

Retrieve the ID at a requested index.

__setitem__

Set the ID at a given index.

__str__

Describe the entity.

Import detail#

from ansys.dpf.core.scoping import Scoping

Property detail#

property Scoping.ids: ansys.dpf.gate.dpf_array.DPFArray | list[int]#

Retrieve the entity IDs in the scoping.

Returns:

List of IDs in the scoping. By default, a mutable DPFArray is returned. To change the return type to a list for the complete python session, see ansys.dpf.core.settings.get_runtime_client_config() and ansys.dpf.core.runtime_config.RuntimeClientConfig.return_arrays(). To get the list of IDs from a scoping as a Python list without changing a default configuration, use ansys.dpf.core.scoping.Scoping.get_ids() instead.

Return type:

ids

property Scoping.location: str#

Location of the scoping as a string.

This defines the type of entity the IDs correspond to (such as node ID, element ID, face ID, and so on).

Returns:

The location of the scoping. One of the values of locations.

Return type:

location

property Scoping.size: int#

Length of the list of IDs.

Returns:

Size of the scoping.

Return type:

size

Method detail#

Scoping.get_ids(np_array: bool = False) list[int] | ansys.dpf.gate.dpf_array.DPFArray#

Return the list of entity IDs in the scoping as a list or as a numpy.ndarray.

Parameters:

np_array – Whether to return the list of IDs as a numpy array.

Returns:

List of entity IDs in the scoping.

Return type:

ids

Scoping.set_id(index: int, scopingid: int)#

Set the ID of the entity at index in the scoping.

Parameters:
  • index – Index in the scoping.

  • scopingid – ID of the entity.

Scoping.id(index: int) int#

Retrieve the entity ID at a given index.

Parameters:

index – Index of the entity in the scoping.

Returns:

ID of the entity at index in the scoping.

Return type:

entity_id

Scoping.index(id: int) int#

Retrieve the index for a given entity ID.

Parameters:

id – Entity ID at the index in the scoping.

Returns:

Index in the scoping for the entity ID.

Return type:

index

Scoping.__len__()#

Return the number of scoping ids.

Returns:

The number of scoping ids.

Return type:

int

Scoping.__del__()#

Clean up resources associated with the instance.

This method calls the deleter function to release resources. If an exception occurs during deletion, a warning is issued.

Raises:

Warning – If an exception occurs while attempting to delete resources.

Scoping.__iter__()#

Return an iterator over the scoping ids.

Scoping.__getitem__(key)#

Retrieve the ID at a requested index.

Scoping.__setitem__(index, id)#

Set the ID at a given index.

Scoping.__str__()#

Describe the entity.

Returns:

description

Return type:

str

Scoping.deep_copy(server=None)#

Create a deep copy of the scoping’s data on a given server.

This method is useful for passiong 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:

scoping_copy

Return type:

Scoping

Scoping.as_local_scoping()#

Create a deep copy of the scoping that can be accessed and modified locally.

This method allows you to access and modify the local copy of the scoping without sending a request to the server. It should be used in a with statement so that the local field is released and the data is sent to the server in one action. If it is not used in a with statement, Scoping.release_data() should be used to update the scoping.

Warning

If this as_local_scoping method is not used as a context manager in a with statement or if the method release_data() is not called, the data will not be updated.

Returns:

local_scoping

Return type:

Scoping

Examples

>>> from ansys.dpf import core as dpf
>>> num_entities = 3
>>> scoping_to_local = dpf.Scoping()
>>> with scoping_to_local.as_local_scoping() as scoping:
...     for i in range(0,num_entities):
...         scoping[i] = i+1
Scoping.plot(mesh, show_mesh: bool = False, **kwargs)#

Plot the entities of the mesh corresponding to the scoping.

Parameters:
  • mesh – Mesh to use to translate the scoping into mesh entities.

  • show_mesh – Whether to also show the mesh with low opacity.

  • **kwargs (optional) – Additional keyword arguments for the plotter. More information are available at pyvista.plot().

Returns:

Returns what the pyvista.show() method returns based on arguments.

Return type:

(cpos, image)

Examples

>>> from ansys.dpf import core as dpf
>>> from ansys.dpf.core import examples
>>> model = dpf.Model(examples.download_cfx_mixing_elbow())
>>> mesh = model.metadata.meshed_region
>>> node_scoping = dpf.Scoping(
...    location=dpf.locations.nodal,
...    ids=mesh.nodes.scoping.ids[0:100]
...)
>>> node_scoping.plot(mesh=mesh, color="red")
>>> element_scoping = dpf.Scoping(
...    location=dpf.locations.elemental,
...    ids=mesh.elements.scoping.ids[0:100]
...)
>>> element_scoping.plot(mesh=mesh, color="green")