# 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:
      entities array, 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.

      dent int, optional

        The topological dimension of the entities.

      localize bool

        If True, strip the vertices not used in the the resulting sub-mesh cells and renumber the connectivity.

    Returns:
      cmesh CMesh

        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.get_cmem_usage()

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.