plaid.containers.features.meshes

Module for implementing collections of features within a Sample.

Classes

SampleMeshes

A container for meshes within a Sample.

Module Contents

class SampleMeshes(meshes: dict[float, plaid.types.CGNSTree] | None, mesh_base_name: str = 'Base', mesh_zone_name: str = 'Zone', links: dict[float, list[plaid.types.CGNSLink]] | None = None, paths: dict[float, list[plaid.types.CGNSPath]] | None = None)[source]

A container for meshes within a Sample.

Parameters:
  • meshes (dict[float, CGNSTree], optional) – A dictionary mapping time steps to CGNSTrees. Defaults to None.

  • mesh_base_name (str, optional) – The base name for the mesh. Defaults to ‘Base’.

  • mesh_zone_name (str, optional) – The zone name for the mesh. Defaults to ‘Zone’.

  • links (dict[float, list[CGNSLink]], optional) – A dictionary mapping time steps to lists of links. Defaults to None.

  • paths (dict[float, list[CGNSPath]], optional) – A dictionary mapping time steps to lists of paths. Defaults to None.

data: dict[float, plaid.types.CGNSTree][source]
_paths = None[source]
_default_active_base: str | None = None[source]
_default_active_zone: str | None = None[source]
_default_active_time: float | None = None[source]
_mesh_base_name: str = 'Base'[source]
_mesh_zone_name: str = 'Zone'[source]
get_all_mesh_times() list[float][source]

Retrieve all time steps corresponding to the meshes, if available.

Returns:

A list of all available time steps.

Return type:

list[float]

get_time_assignment(time: float | None = None) float[source]

Retrieve the default time for the CGNS operations.

If there are available time steps, it will return the first one; otherwise, it will return 0.0.

Parameters:

time (str, optional) – The time value provided for the operation. If not provided, the default time set in the system will be used.

Returns:

The attributed time.

Return type:

float

Note

  • The default time step is used as a reference point for many CGNS operations.

  • It is important for accessing and visualizing data at specific time points in a simulation.

get_base_assignment(base_name: str | None = None, time: float | None = None) str[source]

Retrieve the default base name for the CGNS operations.

This function calculates the attributed base for a specific operation based on the default base set in the system.

Parameters:
  • base_name (str, optional) – The name of the base to attribute the operation to. If not provided, the default base set in the system will be used.

  • time (str, optional) – The time value provided for the operation. If not provided, the default time set in the system will be used.

Raises:
  • KeyError – If no default base can be determined based on the provided or default.

  • KeyError – If no base node is found after following given and default parameters.

Returns:

The attributed base name.

Return type:

str

Note

  • If no specific base name is provided, the function will use the default base provided by the user.

  • In case the default base does not exist: If no specific time is provided, the function will use the default time provided by the user.

get_zone_assignment(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) str[source]

Retrieve the default zone name for the CGNS operations.

This function calculates the attributed zone for a specific operation based on the default zone set in the system, within the specified base.

Parameters:
  • zone_name (str, optional) – The name of the zone to attribute the operation to. If not provided, the default zone set in the system within the specified base will be used.

  • base_name (str, optional) – The name of the base within which the zone should be attributed. If not provided, the default base set in the system will be used.

  • time (str, optional) – The time value provided for the operation. If not provided, the default time set in the system will be used.

Raises:
  • KeyError – If no default zone can be determined based on the provided or default values.

  • KeyError – If no zone node is found after following given and default parameters.

Returns:

The attributed zone name.

Return type:

str

Note

  • If neither a specific zone name nor a specific base name is provided, the function will use the default zone provided by the user.

  • In case the default zone does not exist: If no specific time is provided, the function will use the default time provided by the user.

init_tree(time: float | None = None) plaid.types.CGNSTree[source]

Initialize a CGNS tree structure at a specified time step or create a new one if it doesn’t exist.

Parameters:

time (float, optional) – The time step for which to initialize the CGNS tree structure. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

The initialized or existing CGNS tree structure for the specified time step.

Return type:

CGNSTree (list)

Retrieve the CGNS links for a specified time step, if available.

Parameters:

time (float, optional) – The time step for which to retrieve the CGNS links. If a specific time is not provided, the method will display the links for the default time step.

Returns:

The CGNS links for the specified time step if available; otherwise, returns None.

Return type:

list

get_mesh(time: float | None = None, apply_links: bool = False, in_memory=False) plaid.types.CGNSTree | None[source]

Retrieve the CGNS tree structure for a specified time step, if available.

Parameters:
  • time (float, optional) – The time step for which to retrieve the CGNS tree structure. If a specific time is not provided, the method will display the tree structure for the default time step.

  • apply_links (bool, optional) – Activates the following of the CGNS links to reconstruct the complete CGNS tree - in this case, a deepcopy of the tree is made to prevent from modifying the existing tree.

  • in_memory (bool, optional) – Active if apply_links == True, ONLY WORKING if linked mesh is in the current sample. This option follows the link in memory from current sample.

Returns:

The CGNS tree structure for the specified time step if available; otherwise, returns None.

Return type:

CGNSTree

set_meshes(meshes: dict[float, plaid.types.CGNSTree]) None[source]

Set all meshes with their corresponding time step.

Parameters:

meshes (dict[float,CGNSTree]) – Collection of time step with its corresponding CGNSTree.

Raises:

KeyError – If there is already a CGNS tree set.

add_tree(tree: plaid.types.CGNSTree, time: float | None = None) plaid.types.CGNSTree[source]

Merge a CGNS tree to the already existing tree.

Parameters:
  • tree (CGNSTree) – The CGNS tree to be merged. If a Base node already exists, it is ignored.

  • time (float, optional) – The time step for which to add the CGNS tree structure. If a specific time is not provided, the method will display the tree structure for the default time step.

Raises:

ValueError – If the provided CGNS tree is an empty list.

Returns:

The merged CGNS tree.

Return type:

CGNSTree

del_tree(time: float) plaid.types.CGNSTree[source]

Delete the CGNS tree for a specific time.

Parameters:

time (float) – The time step for which to delete the CGNS tree structure.

Raises:

KeyError – There is no CGNS tree in this Sample / There is no CGNS tree for the provided time.

Returns:

The deleted CGNS tree.

Return type:

CGNSTree

get_topological_dim(base_name: str | None = None, time: float | None = None) int[source]

Get the topological dimension of a base node at a specific time.

Parameters:
  • base_name (str, optional) – The name of the base node for which to retrieve the topological dimension. Defaults to None.

  • time (float, optional) – The time at which to retrieve the topological dimension. Defaults to None.

Raises:

ValueError – If there is no base node with the specified base_name at the given time in this sample.

Returns:

The topological dimension of the specified base node at the given time.

Return type:

int

get_physical_dim(base_name: str | None = None, time: float | None = None) int[source]

Get the physical dimension of a base node at a specific time.

Parameters:
  • base_name (str, optional) – The name of the base node for which to retrieve the topological dimension. Defaults to None.

  • time (float, optional) – The time at which to retrieve the topological dimension. Defaults to None.

Raises:

ValueError – If there is no base node with the specified base_name at the given time in this sample.

Returns:

The topological dimension of the specified base node at the given time.

Return type:

int

init_base(topological_dim: int, physical_dim: int, base_name: str | None = None, time: float | None = None) plaid.types.CGNSNode[source]

Create a Base node named base_name if it doesn’t already exists.

Parameters:
Returns:

The created Base node.

Return type:

CGNSNode

del_base(base_name: str, time: float) plaid.types.CGNSTree[source]

Delete a CGNS base node for a specific time.

Parameters:
  • base_name (str) – The name of the base node to be deleted.

  • time (float) – The time step for which to delete the CGNS base node.

Raises:
  • KeyError – There is no CGNS tree in this sample / There is no CGNS tree for the provided time.

  • KeyError – If there is no base node with the given base name or time.

Returns:

The tree at the provided time (without the deleted node)

Return type:

CGNSTree

get_base_names(full_path: bool = False, unique: bool = False, time: float | None = None) list[str][source]

Return Base names.

Parameters:
  • full_path (bool, optional) – If True, returns full paths instead of only Base names. Defaults to False.

  • unique (bool, optional) – If True, returns unique names instead of potentially duplicated names. Defaults to False.

  • time (float, optional) – The time at which to check for the Base. If a specific time is not provided, the method will display the tree structure for the default time step.

Return type:

list[str]

has_base(base_name: str, time: float | None = None) bool[source]

Check if a CGNS tree contains a Base with a given name at a specified time.

Parameters:
  • base_name (str) – The name of the Base to check for in the CGNS tree.

  • time (float, optional) – The time at which to check for the Base. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

True if the CGNS tree has a Base called base_name, else return False.

Return type:

bool

get_base(base_name: str | None = None, time: float | None = None) plaid.types.CGNSNode[source]

Return Base node named base_name.

If base_name is not specified, checks that there is at most one base, else raises an error.

Parameters:
  • base_name (str, optional) – The name of the Base node to retrieve. Defaults to None. Defaults to None.

  • time (float, optional) – Time at which you want to retrieve the Base node. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

The Base node with the specified name or None if it is not found.

Return type:

CGNSNode or None

init_zone(zone_shape: numpy.ndarray, zone_type: str = CGK.Unstructured_s, zone_name: str | None = None, base_name: str | None = None, time: float | None = None) plaid.types.CGNSNode[source]

Initialize a new zone within a CGNS base.

Parameters:
  • zone_shape (np.ndarray) – An array specifying the shape or dimensions of the zone.

  • zone_type (str, optional) – The type of the zone. Defaults to CGK.Unstructured_s.

  • zone_name (str, optional) – The name of the zone to initialize. If not provided, uses mesh_zone_name specified in Sample initialization. Defaults to None.

  • base_name (str, optional) – The name of the base to which the zone will be added. If not provided, the zone will be added to the currently active base. Defaults to None.

  • time (float, optional) – The time at which to initialize the zone. If a specific time is not provided, the method will display the tree structure for the default time step.

Raises:

KeyError – If the specified base does not exist. You can create a base using Sample.init_base(base_name).

Returns:

The newly initialized zone node within the CGNS tree.

Return type:

CGLNode

del_zone(zone_name: str, base_name: str, time: float) plaid.types.CGNSTree[source]

Delete a zone within a CGNS base.

Parameters:
  • zone_name (str) – The name of the zone to be deleted.

  • base_name (str, optional) – The name of the base from which the zone will be deleted. If not provided, the zone will be deleted from the currently active base. Defaults to None.

  • time (float, optional) – The time step for which to delete the zone. Defaults to None.

Raises:
  • KeyError – There is no CGNS tree in this sample / There is no CGNS tree for the provided time.

  • KeyError – If there is no base node with the given base name or time.

Returns:

The tree at the provided time (without the deleted node)

Return type:

CGNSTree

get_zone_names(base_name: str | None = None, full_path: bool = False, unique: bool = False, time: float | None = None) list[str][source]

Return list of Zone names in Base named base_name with specific time.

Parameters:
  • base_name (str, optional) – Name of Base where to search Zones. If not specified, checks if there is at most one Base. Defaults to None.

  • full_path (bool, optional) – If True, returns full paths instead of only Zone names. Defaults to False.

  • unique (bool, optional) – If True, returns unique names instead of potentially duplicated names. Defaults to False.

  • time (float, optional) – The time at which to check for the Zone. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

List of Zone names in Base named base_name, empty if there is none or if the Base doesn’t exist.

Return type:

list[str]

has_zone(zone_name: str, base_name: str | None = None, time: float | None = None) bool[source]

Check if the CGNS tree contains a Zone with the specified name within a specific Base and time.

Parameters:
  • zone_name (str) – The name of the Zone to check for.

  • base_name (str, optional) – The name of the Base where the Zone should be located. If not provided, the function checks all bases. Defaults to None.

  • time (float, optional) – The time at which to check for the Zone. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

True if the CGNS tree has a Zone called zone_name in a Base called base_name, else return False.

Return type:

bool

get_zone(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) plaid.types.CGNSNode[source]

Retrieve a CGNS Zone node by its name within a specific Base and time.

Parameters:
  • zone_name (str, optional) – The name of the Zone node to retrieve. If not specified, checks that there is at most one zone in the base, else raises an error. Defaults to None.

  • base_name (str, optional) – The Base in which to seek to zone retrieve. If not specified, checks that there is at most one base, else raises an error. Defaults to None.

  • time (float, optional) – Time at which you want to retrieve the Zone node.

Returns:

Returns a CGNS Zone node if found; otherwise, returns None.

Return type:

CGNSNode

get_zone_type(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) str[source]

Get the type of a specific zone at a specified time.

Parameters:
  • zone_name (str, optional) – The name of the zone whose type you want to retrieve. Default is None.

  • base_name (str, optional) – The name of the base in which the zone is located. Default is None.

  • time (float, optional) – The timestamp for which you want to retrieve the zone type. Default is 0.0.

Raises:

KeyError – Raised when the specified zone or base does not exist. You should first create the base/zone using Sample.init_zone(zone_name, base_name).

Returns:

The type of the specified zone as a string.

Return type:

str

get_nodal_tags(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) dict[str, numpy.ndarray][source]

Get the nodal tags for a specified base and zone at a given time.

Parameters:
  • zone_name (str, optional) – The name of the zone for which element connectivity data is requested. Defaults to None, indicating the default zone.

  • base_name (str, optional) – The name of the base for which element connectivity data is requested. Defaults to None, indicating the default base.

  • time (float, optional) – The time at which element connectivity data is requested. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

A dictionary where keys are nodal tags names and values are NumPy arrays containing the corresponding tag indices. The NumPy arrays have shape (num_nodal_tags).

Return type:

dict[str,np.ndarray]

get_nodes(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) numpy.ndarray | None[source]

Get grid node coordinates from a specified base, zone, and time.

Parameters:
  • zone_name (str, optional) – The name of the zone to search for. Defaults to None.

  • base_name (str, optional) – The name of the base to search for. Defaults to None.

  • time (float, optional) – The time value to consider when searching for the zone. If a specific time is not provided, the method will display the tree structure for the default time step.

Raises:

TypeError – Raised if multiple <GridCoordinates> nodes are found. Only one is expected.

Returns:

A NumPy array containing the grid node coordinates. If no matching zone or grid coordinates are found, None is returned.

Return type:

Optional[np.ndarray]

Seealso:

This function can also be called using get_points() or get_vertices().

get_points[source]
get_vertices[source]
set_nodes(nodes: numpy.ndarray, zone_name: str | None = None, base_name: str | None = None, time: float | None = None) None[source]

Set the coordinates of nodes for a specified base and zone at a given time.

Parameters:
  • nodes (np.ndarray) – A numpy array containing the new node coordinates.

  • zone_name (str, optional) – The name of the zone where the nodes should be updated. Defaults to None.

  • base_name (str, optional) – The name of the base where the nodes should be updated. Defaults to None.

  • time (float, optional) – The time at which the node coordinates should be updated. If a specific time is not provided, the method will display the tree structure for the default time step.

Raises:
  • KeyError – Raised if the specified base or zone do not exist. You should first

  • create the base and zone using the Sample.init_zone(zone_name,base_name) method.

Seealso:

This function can also be called using set_points() or set_vertices()

set_points[source]
set_vertices[source]
get_elements(zone_name: str | None = None, base_name: str | None = None, time: float | None = None) dict[str, numpy.ndarray][source]

Retrieve element connectivity data for a specified zone, base, and time.

Parameters:
  • zone_name (str, optional) – The name of the zone for which element connectivity data is requested. Defaults to None, indicating the default zone.

  • base_name (str, optional) – The name of the base for which element connectivity data is requested. Defaults to None, indicating the default base.

  • time (float, optional) – The time at which element connectivity data is requested. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

A dictionary where keys are element type names and values are NumPy arrays representing the element connectivity data. The NumPy arrays have shape (num_elements, num_nodes_per_element), and element indices are 0-based.

Return type:

dict[str,np.ndarray]

get_field_names(location: str = None, zone_name: str | None = None, base_name: str | None = None, time: float | None = None) list[str][source]

Get a set of field names associated with a specified zone, base, location, and/or time.

For each argument that is not specified, the method will search for fields in all available values for this argument.

Parameters:
  • location (str, optional) – The desired grid location where to search for. Defaults to None. Possible values : plaid.constants.CGNS_FIELD_LOCATIONS

  • zone_name (str, optional) – The name of the zone to search for. Defaults to None.

  • base_name (str, optional) – The name of the base to search for. Defaults to None.

  • time (float, optional) – The specific time at which to search for. Defaults to None.

Returns:

A set containing the names of the fields that match the specified criteria.

Return type:

set[str]

get_field(name: str, location: str = 'Vertex', zone_name: str | None = None, base_name: str | None = None, time: float | None = None) plaid.types.Field[source]

Retrieve a field with a specified name from a given zone, base, location, and time.

Parameters:
  • name (str) – The name of the field to retrieve.

  • location (str, optional) – The location at which to retrieve the field. Defaults to ‘Vertex’. Possible values : plaid.constants.CGNS_FIELD_LOCATIONS

  • zone_name (str, optional) – The name of the zone to search for. Defaults to None.

  • base_name (str, optional) – The name of the base to search for. Defaults to None.

  • time (float, optional) – The time value to consider when searching for the field. If a specific time is not provided, the method will display the tree structure for the default time step.

Returns:

A set containing the names of the fields that match the specified criteria.

Return type:

Field

add_field(name: str, field: plaid.types.Field, location: str = 'Vertex', zone_name: str | None = None, base_name: str | None = None, time: float | None = None, warning_overwrite: bool = True) None[source]

Add a field to a specified zone in the grid.

Parameters:
  • name (str) – The name of the field to be added.

  • field (Field) – The field data to be added.

  • location (str, optional) – The grid location where the field will be stored. Defaults to ‘Vertex’. Possible values : plaid.constants.CGNS_FIELD_LOCATIONS

  • zone_name (str, optional) – The name of the zone where the field will be added. Defaults to None.

  • base_name (str, optional) – The name of the base where the zone is located. Defaults to None.

  • time (float, optional) – The time associated with the field. Defaults to 0.

  • warning_overwrite (bool, optional) – Show warning if a preexisting field is being overwritten. Defaults to True.

Raises:

KeyError – Raised if the specified zone does not exist in the given base.

del_field(name: str, location: str = 'Vertex', zone_name: str | None = None, base_name: str | None = None, time: float | None = None) plaid.types.CGNSTree[source]

Delete a field with specified name in the mesh.

Parameters:
  • name (str) – The name of the field to be deleted.

  • location (str, optional) – The grid location where the field is stored. Defaults to ‘Vertex’. Possible values : plaid.constants.CGNS_FIELD_LOCATIONS

  • zone_name (str, optional) – The name of the zone from which the field will be deleted. Defaults to None.

  • base_name (str, optional) – The name of the base where the zone is located. Defaults to None.

  • time (float, optional) – The time associated with the field. Defaults to None.

Raises:

KeyError – Raised if the specified zone or field does not exist in the given base.

Returns:

The tree at the provided time (without the deleted node)

Return type:

CGNSTree

show_tree(time: float | None = None) None[source]

Display the structure of the CGNS tree for a specified time.

Parameters:

time (float, optional) – The time step for which you want to display the CGNS tree structure. Defaults to None. If a specific time is not provided, the method will display the tree structure for the default time step.