sfepy.discrete.common.extmods.cmesh module¶
C Mesh data structures and functions.
- class sfepy.discrete.common.extmods.cmesh.CConnectivity¶
Notes
The memory is allocated/freed in C - this class just wraps NumPy arrays around that data without copying.
- cprint()¶
- indices¶
- n_incident¶
- num¶
- offset¶
- offsets¶
- class sfepy.discrete.common.extmods.cmesh.CMesh¶
- cell_groups¶
- cell_types¶
- conns¶
- coors¶
- cprint(header_only=1)¶
- create_new(entities=None, dent=0, localize=False)¶
Create a new CMesh instance, with cells corresponding to the given entities of dimension dent.
- Parameters:
- entitiesarray, optional
The selected topological entities of the mesh to be in the new mesh. If not given, a copy of the mesh based on the cell-vertex connectivity is returned.
- dentint, optional
The topological dimension of the entities.
- localizebool
If True, strip the vertices not used in the the resulting sub-mesh cells and renumber the connectivity.
- Returns:
- cmeshCMesh
The new mesh with the cell-vertex connectivity. Other connectivities have to be created and local entities need to be set manually.
- dim¶
- edge_oris¶
- entities¶
- face_oris¶
- facet_oris¶
- free_connectivity(d1, d2)¶
- classmethod from_data(coors, vertex_groups, conns, mat_ids, descs, copy_coors=True)¶
Fill CMesh data using Python data.
- get_cell_conn()¶
- get_centroids(dim)¶
Return the coordinates of centroids of mesh entities with dimension dim.
- get_complete(dim, entities, dent)¶
Get entities of dimension dim that are completely given by entities of dimension dent listed in entities.
- get_conn(d1, d2)¶
- get_conn_as_graph(d1, d2)¶
Get d1 -> d2 connectivity as a sparse matrix graph (values = ones).
For safety, creates a copy of the connectivity arrays. The connectivity is created if necessary.
- get_facet_normals(which=-1)¶
Return the normals of facets for each mesh cell. The normals can be accessed using the cell-facet connectivity.
If which is -1, two normals of each quadrilateral face are averaged. If it is 0 or 1, the corresponding normal is used.
- get_incident(dim, entities, dent, ret_offsets=False)¶
Get non-unique entities indices of dimension dim that are contained in entities of dimension dent listed in entities. As each of entities can be in several entities of dimension dent, offsets array is returned optionally.
- get_local_entities(key)¶
- get_local_ids(entities, dent, incident, offsets, dim)¶
Get local ids of entities of dimension dent in non-unique entities incident of dimension dim (with given offsets per entities) incident to entities, see mesh_get_incident().
The function searches entities in incident -> entities connectivity for each non-unique entity in incident.
- get_orientations(dim, codim=None)¶
Get orientations of entities of dimension dim. Alternatively, co-dimension can be specified using codim argument.
- get_surface_facets()¶
Get facets (edges in 2D, faces in 3D) on the mesh surface.
- get_volumes(dim)¶
Return the volumes of mesh entities with dimension dim > 0.
- key_to_index¶
- n_coor¶
- n_el¶
- num¶
- set_local_entities(gels)¶
- setup_connectivity(d1, d2)¶
- setup_entities()¶
Set up mesh edge (2D and 3D) and face connectivities (3D only) as well as their orientations.
- tdim¶
- vertex_groups¶
- sfepy.discrete.common.extmods.cmesh.cmem_statistics()¶
- sfepy.discrete.common.extmods.cmesh.create_mesh_graph(n_row, n_col, n_gr, rconns, cconns)¶
Create sparse (CSR) graph corresponding to given row and column connectivities.
- Parameters:
- n_rowint
The number of row connectivity nodes.
- n_colint
The number of column connectivity nodes.
- n_grint
The number of element groups.
- rconnslist of arrays
The list of length n_gr of row connectivities.
- cconnslist of arrays
The list of length n_gr of column connectivities.
- Returns:
- nnzint
The number of graph nonzeros.
- prowarray
The array of CSR row pointers.
- icolarray
The array of CSR column indices.
- sfepy.discrete.common.extmods.cmesh.get_cmem_usage()¶
- sfepy.discrete.common.extmods.cmesh.graph_components(n_nod, row, col)¶
Determine connected compoments of a compressed sparse graph.
- Returns:
- n_compint
The number of components.
- flagarray
The flag marking for each node its component.
- sfepy.discrete.common.extmods.cmesh.orient_elements(flag, cmesh, cells, dcells, v_roots, v_vecs, swap_from, swap_to)¶
Swap element nodes so that its volume is positive.