LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
#include <lf/mesh/utils/structured_mesh_builder.h>
Public Types | |
using | size_type = mesh::Mesh::size_type |
using | dim_t = base::RefEl::dim_t |
Public Member Functions | |
StructuredMeshBuilder (std::unique_ptr< mesh::MeshFactory > mesh_factory) | |
virtual std::shared_ptr< mesh::Mesh > | Build ()=0 |
Interface for the actual construction of the mesh. | |
Initialization methods | |
template<typename VECTOR > | |
StructuredMeshBuilder & | setBottomLeftCorner (const VECTOR &blc) |
StructuredMeshBuilder & | setBottomLeftCorner (double x0, double x1) |
template<typename VECTOR > | |
StructuredMeshBuilder & | setTopRightCorner (const VECTOR &&trc) |
StructuredMeshBuilder & | setTopRightCorner (double x0, double x1) |
StructuredMeshBuilder & | setNumXCells (size_type nxc) |
StructuredMeshBuilder & | setNumYCells (size_type nyc) |
Protected Attributes | |
std::unique_ptr< mesh::MeshFactory > | mesh_factory_ |
Eigen::Vector2d | bottom_left_corner_ |
Eigen::Vector2d | top_right_corner_ |
size_type | num_of_x_cells_ {0} |
size_type | num_of_y_cells_ {0} |
@ brief Builder interface for creating structured meshes on rectangular domains
The design of the class complies with the builder pattern.
The geometry of the rectangular domain can be set by specifying the corners.
Definition at line 16 of file structured_mesh_builder.h.
Definition at line 19 of file structured_mesh_builder.h.
Definition at line 18 of file structured_mesh_builder.h.
|
inlineexplicit |
Definition at line 24 of file structured_mesh_builder.h.
References mesh_factory_.
|
pure virtual |
Interface for the actual construction of the mesh.
This method has to be implemented by derived classes
Implemented in lf::mesh::utils::TorusMeshBuilder, lf::mesh::utils::TPQuadMeshBuilder, and lf::mesh::utils::TPTriagMeshBuilder.
|
inline |
Definition at line 37 of file structured_mesh_builder.h.
References bottom_left_corner_.
Referenced by lf::mesh::test_utils::GenerateHybrid2DTestMesh().
|
inline |
Definition at line 41 of file structured_mesh_builder.h.
References bottom_left_corner_.
|
inline |
Definition at line 54 of file structured_mesh_builder.h.
References num_of_x_cells_.
|
inline |
Definition at line 58 of file structured_mesh_builder.h.
References num_of_y_cells_.
Referenced by lf::mesh::test_utils::GenerateHybrid2DTestMesh().
|
inline |
Definition at line 46 of file structured_mesh_builder.h.
References top_right_corner_.
|
inline |
Definition at line 50 of file structured_mesh_builder.h.
References top_right_corner_.
|
protected |
corners of rectangle defining the domain
Definition at line 80 of file structured_mesh_builder.h.
Referenced by lf::mesh::utils::TorusMeshBuilder::Build(), lf::mesh::utils::TPQuadMeshBuilder::Build(), lf::mesh::utils::TPTriagMeshBuilder::Build(), setBottomLeftCorner(), and setBottomLeftCorner().
|
protected |
mesh factory object that has to be supplied to the MeshBuilder
Definition at line 78 of file structured_mesh_builder.h.
Referenced by lf::mesh::utils::TorusMeshBuilder::Build(), lf::mesh::utils::TPQuadMeshBuilder::Build(), lf::mesh::utils::TPTriagMeshBuilder::Build(), StructuredMeshBuilder(), lf::mesh::utils::TorusMeshBuilder::TorusMeshBuilder(), lf::mesh::utils::TPQuadMeshBuilder::TPQuadMeshBuilder(), and lf::mesh::utils::TPTriagMeshBuilder::TPTriagMeshBuilder().
|
protected |
Mesh resolution parameters
Definition at line 82 of file structured_mesh_builder.h.
Referenced by lf::mesh::utils::TorusMeshBuilder::Build(), lf::mesh::utils::TPQuadMeshBuilder::Build(), lf::mesh::utils::TPTriagMeshBuilder::Build(), setNumXCells(), lf::mesh::utils::TorusMeshBuilder::VertexIndex(), lf::mesh::utils::TPQuadMeshBuilder::VertexIndex(), and lf::mesh::utils::TPTriagMeshBuilder::VertexIndex().
|
protected |
Definition at line 82 of file structured_mesh_builder.h.
Referenced by lf::mesh::utils::TorusMeshBuilder::Build(), lf::mesh::utils::TPQuadMeshBuilder::Build(), lf::mesh::utils::TPTriagMeshBuilder::Build(), and setNumYCells().
|
protected |
Definition at line 80 of file structured_mesh_builder.h.
Referenced by lf::mesh::utils::TorusMeshBuilder::Build(), lf::mesh::utils::TPQuadMeshBuilder::Build(), lf::mesh::utils::TPTriagMeshBuilder::Build(), setTopRightCorner(), and setTopRightCorner().