DOLFIN
DOLFIN C++ interface
Static Public Member Functions | List of all members
dolfin::PlazaRefinementND Class Reference

#include <PlazaRefinementND.h>

Static Public Member Functions

static void refine (Mesh &new_mesh, const Mesh &mesh, bool redistribute, bool calculate_parent_facets)
 
static void refine (Mesh &new_mesh, const Mesh &mesh, const MeshFunction< bool > &refinement_marker, bool redistribute, bool calculate_parent_facets)
 
static void refine (Mesh &new_mesh, const Mesh &mesh, const MeshFunction< bool > &refinement_marker, bool calculate_parent_facets, MeshRelation &mesh_relation)
 
static void get_simplices (std::vector< std::size_t > &simplex_set, const std::vector< bool > &marked_edges, const std::vector< std::size_t > &longest_edge, std::size_t tdim, bool uniform)
 

Detailed Description

Implementation of the refinement method described in Plaza and Carey "Local refinement of simplicial grids based on the skeleton" (Applied Numerical Mathematics 32 (2000) 195-218)

Member Function Documentation

◆ get_simplices()

void PlazaRefinementND::get_simplices ( std::vector< std::size_t > &  simplex_set,
const std::vector< bool > &  marked_edges,
const std::vector< std::size_t > &  longest_edge,
std::size_t  tdim,
bool  uniform 
)
static

Get the subdivision of an original simplex into smaller simplices, for a given set of marked edges, and the longest edge of each facet (cell local indexing). A flag indicates if a uniform subdivision is preferable in 2D.

Parameters
simplex_setReturned set of triangles/tets topological description
marked_edgesVector indicating which edges are to be split
longest_edgeVector indicating the longest edge for each triangle. For tdim=2, one entry, for tdim=3, four entries.
tdimTopological dimension (2 or 3)
uniformMake a "uniform" subdivision with all triangles being similar shape

◆ refine() [1/3]

void PlazaRefinementND::refine ( Mesh new_mesh,
const Mesh mesh,
bool  redistribute,
bool  calculate_parent_facets 
)
static

Uniform refine, optionally redistributing and optionally calculating the parent-child relation for facets (in 2D)

Parameters
new_meshNew Mesh
meshInput mesh to be refined
redistributeFlag to call the Mesh Partitioner to redistribute after refinement
calculate_parent_facetsFlag to build parent facet information, needed to propagate information on boundaries

◆ refine() [2/3]

void PlazaRefinementND::refine ( Mesh new_mesh,
const Mesh mesh,
const MeshFunction< bool > &  refinement_marker,
bool  redistribute,
bool  calculate_parent_facets 
)
static

Refine with markers, optionally redistributing and optionally calculating the parent-child relation for facets (in 2D)

Parameters
new_meshNew Mesh
meshInput mesh to be refined
refinement_markerMeshFunction listing MeshEntities which should be split by this refinement
redistributeFlag to call the Mesh Partitioner to redistribute after refinement
calculate_parent_facetsFlag to build parent facet information, needed to propagate information on boundaries

◆ refine() [3/3]

void PlazaRefinementND::refine ( Mesh new_mesh,
const Mesh mesh,
const MeshFunction< bool > &  refinement_marker,
bool  calculate_parent_facets,
MeshRelation mesh_relation 
)
static

Refine with markers, optionally calculating facet relations, and saving relation data in MeshRelation structure

Parameters
new_meshNew Mesh
meshInput mesh to be refined
refinement_markerMeshFunction listing MeshEntities which should be split by this refinement
calculate_parent_facetsFlag to build parent facet information, needed to propagate information on boundaries
mesh_relationNew relationship between the two meshes

The documentation for this class was generated from the following files: