sfepy.discrete.fem.utils module¶
- sfepy.discrete.fem.utils.compute_nodal_edge_dirs(nodes, region, field, return_imap=False)[source]¶
Nodal edge directions are computed by simple averaging of direction vectors of edges a node is contained in. Edges are assumed to be straight and a node must be on a single edge (a border node) or shared by exactly two edges.
- sfepy.discrete.fem.utils.compute_nodal_normals(nodes, region, field, return_imap=False)[source]¶
Nodal normals are computed by simple averaging of element normals of elements every node is contained in.
- sfepy.discrete.fem.utils.extend_cell_data(data, domain, rname, val=None, is_surface=False, average_surface=True)[source]¶
Extend cell data defined in a region to the whole domain.
- Parameters:
- dataarray
The data defined in the region.
- domainFEDomain instance
The FE domain.
- rnamestr
The region name.
- valfloat, optional
The value for filling cells not covered by the region. If not given, the smallest value in data is used.
- is_surfacebool
If True, the data are defined on a surface region. In that case the values are averaged or summed into the cells containing the region surface faces (a cell can have several faces of the surface), see average_surface.
- average_surfacebool
If True, the data defined on a surface region are averaged, otherwise the data are summed.
- Returns:
- edataarray
The data extended to all domain elements.
- sfepy.discrete.fem.utils.get_edge_paths(graph, mask)[source]¶
Get all edge paths in a graph with non-masked vertices. The mask is updated.
- sfepy.discrete.fem.utils.get_min_value(dofs)[source]¶
Get a reasonable minimal value of DOFs suitable for extending over a whole domain.
- sfepy.discrete.fem.utils.invert_remap(remap)[source]¶
Return the inverse of remap, i.e. a mapping from a sub-range indices to a full range, see
prepare_remap()
.
- sfepy.discrete.fem.utils.prepare_remap(indices, n_full)[source]¶
Prepare vector for remapping range [0, n_full] to its subset given by indices.
- sfepy.discrete.fem.utils.prepare_translate(old_indices, new_indices)[source]¶
Prepare vector for translating old_indices to new_indices.
- Returns:
- translatearray
The translation vector. Then new_ar = translate[old_ar].
- sfepy.discrete.fem.utils.refine_mesh(filename, level)[source]¶
Uniformly refine level-times a mesh given by filename.
The refined mesh is saved to a file with name constructed from base name of filename and level-times appended ‘_r’ suffix.
- Parameters:
- filenamestr
The mesh file name.
- levelint
The refinement level.