MeshEditor.h

Note

The documentation on this page was automatically extracted from the DOLFIN C++ code and may need to be edited or expanded.

class MeshEditor

A simple mesh editor for creating simplicial meshes in 1D, 2D and 3D.

MeshEditor()

Constructor

void open(Mesh &mesh, CellType::Type type, std::size_t tdim, std::size_t gdim, std::size_t degree = 1)

Open mesh of given cell type, topological and geometrical dimension

@param mesh (Mesh)
The mesh to open.
@param type (CellType::Type)
Cell type.
@param tdim (std::size_t)
The topological dimension.
@param gdim (std::size_t)
The geometrical dimension.
@param degree (std::size_t)
The polynomial degree.
void open(Mesh &mesh, std::string type, std::size_t tdim, std::size_t gdim, std::size_t degree = 1)

Open mesh of given cell type, topological and geometrical dimension

@param mesh (Mesh)
The mesh to open.
@param type (std::string)
Cell type.
@param tdim (std::size_t)
The topological dimension.
@param gdim (std::size_t)
The geometrical dimension.
@param degree (std::size_t)
The polynomial degree.
void init_vertices(std::size_t num_vertices)

Specify number of vertices (serial version)

@param num_vertices (std::size_t)
The number of vertices.

@code{.cpp}

Mesh mesh; MeshEditor editor; editor.open(mesh, 2, 2); editor.init_vertices(9);

@endcode

void init_entities()

Initialise entities in MeshGeometry

Create required Edges and Faces for the current polynomial degree in the mesh topology, so that points can be added for them. In order to initialise entities, cells must all be added first.

void init_vertices_global(std::size_t num_local_vertices, std::size_t num_global_vertices)

Specify number of vertices (distributed version)

@param num_local_vertices (std::size_t)
The number of vertices on this process.
@param num_global_vertices (std::size_t)
The number of vertices in distributed mesh.

@code{.cpp}

Mesh mesh; MeshEditor editor; editor.open(mesh, 2, 2); editor.init_vertices(4, 8);

@endcode

void init_cells(std::size_t num_cells)

Specify number of cells (serial version)

@param num_cells (std::size_t)
The number of cells.

@code{.cpp}

Mesh mesh; MeshEditor editor; editor.open(mesh, 2, 2); editor.init_cells(8);

@endcode

void init_cells_global(std::size_t num_local_cells, std::size_t num_global_cells)

Specify number of cells (distributed version)

@param num_local_cells (std::size_t)
The number of local cells.
@param num_global_cells (std::size_t)
The number of cells in distributed mesh.

@code{.cpp}

Mesh mesh; MeshEditor editor; editor.open(mesh, 2, 2); editor.init_cells(2, 6);

@endcode

void add_vertex(std::size_t index, const Point &p)

Add vertex v at given point p

@param index (std::size_t)
The vertex (index).
@param p (Point)
The point.
void add_vertex(std::size_t index, const std::vector<double> &x)

Add vertex v at given coordinate x

@param index (std::size_t)
The vertex (index).
@param x (std::vector<double>)
The x-coordinates.
void add_vertex(std::size_t index, double x)

Add vertex v at given point x (for a 1D mesh)

@param index (std::size_t)
The vertex (index).
@param x (double)
The x-coordinate.
void add_vertex(std::size_t index, double x, double y)

Add vertex v at given point (x, y) (for a 2D mesh)

@param index (std::size_t)
The vertex (index).
@param x (double)
The x-coordinate.
@param y (double)
The y-coordinate.
void add_vertex(std::size_t index, double x, double y, double z)

Add vertex v at given point (x, y, z) (for a 3D mesh)

@param index (std::size_t)
The vertex (index).
@param x (double)
The x-coordinate.
@param y (double)
The y-coordinate.
@param z (double)
The z-coordinate.
void add_vertex_global(std::size_t local_index, std::size_t global_index, const Point &p)

Add vertex v at given point p

@param local_index (std::size_t)
The vertex (local index).
@param global_index (std::size_t)
The vertex (global_index).
@param p (Point)
The point.
void add_vertex_global(std::size_t local_index, std::size_t global_index, const std::vector<double> &x)

Add vertex v at given coordinate x

@param local_index (std::size_t)
The vertex (local index).
@param global_index (std::size_t)
The vertex (global_index).
@param x (std::vector<double>)
The x-coordinates.
void add_entity_point(std::size_t entity_dim, std::size_t order, std::size_t index, const Point &p)

Add a point in a given entity of dimension entity_dim

void add_cell(std::size_t c, std::size_t v0, std::size_t v1)

Add cell with given vertices (1D)

@param c (std::size_t)
The cell (index).
@param v0 (std::vector<std::size_t>)
The first vertex (local index).
@param v1 (std::vector<std::size_t>)
The second vertex (local index).
void add_cell(std::size_t c, std::size_t v0, std::size_t v1, std::size_t v2)

Add cell with given vertices (2D)

@param c (std::size_t)
The cell (index).
@param v0 (std::vector<std::size_t>)
The first vertex (local index).
@param v1 (std::vector<std::size_t>)
The second vertex (local index).
@param v2 (std::vector<std::size_t>)
The third vertex (local index).
void add_cell(std::size_t c, std::size_t v0, std::size_t v1, std::size_t v2, std::size_t v3)

Add cell with given vertices (3D)

@param c (std::size_t)
The cell (index).
@param v0 (std::vector<std::size_t>)
The first vertex (local index).
@param v1 (std::vector<std::size_t>)
The second vertex (local index).
@param v2 (std::vector<std::size_t>)
The third vertex (local index).
@param v3 (std::vector<std::size_t>)
The fourth vertex (local index).
void add_cell(std::size_t c, const std::vector<std::size_t> &v)

Add cell with given vertices (non-templated version for Python interface)

@param c (std::size_t)
The cell (index).
@param v (std::vector<std::size_t>)
The vertex indices (local indices)
void add_cell(std::size_t c, const T &v)

Add cell with given vertices

@param c (std::size_t)
The cell (index).
@param v (typename T)
The vertex indices (local indices)
void add_cell(std::size_t local_index, std::size_t global_index, const T &v)

Add cell with given vertices

@param local_index (std::size_t)
The cell (index).
@param global_index (std::size_t)
The global (user) cell index.
@param v (std::vector<std::size_t>)
The vertex indices (local indices)
void close(bool order = true)

Close mesh, finish editing, and order entities locally

@param order (bool)
Order entities locally if true. Default values is true.

@code{.cpp}

MeshEditor editor; editor.open(mesh, 2, 2); … editor.close()

@endcode