LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Implements a MeshBuilder
that generates a triangular structured mesh.
More...
#include <lf/mesh/utils/tp_triag_mesh_builder.h>
Public Member Functions | |
TPTriagMeshBuilder (std::unique_ptr< mesh::MeshFactory > mesh_factory) | |
Constructor: set factory object to be used by the builder. | |
std::shared_ptr< mesh::Mesh > | Build () override |
actual construction of the mesh | |
![]() | |
StructuredMeshBuilder (std::unique_ptr< mesh::MeshFactory > mesh_factory) | |
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) |
Static Public Member Functions | |
static std::shared_ptr< spdlog::logger > & | Logger () |
Used by Build() method to output additional debug info. | |
Private Member Functions | |
size_type | VertexIndex (size_type i, size_type j) const |
vertex index from grid position | |
Additional Inherited Members | |
![]() | |
using | size_type = mesh::Mesh::size_type |
using | dim_t = base::RefEl::dim_t |
![]() | |
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} |
Implements a MeshBuilder
that generates a triangular structured mesh.
Mesh generator for a triangular tensor product mesh covering a rectangle.
A triangular tensor product mesh of a rectangular domain is built by subdividing the domain into equal squares and splitting each of them along the diagonal.
The nodes and cells of the resulting mesh are numbered lexicographically from bottom left to top right. The super-diagonal cells have even indices the sub-diagonal cells odd indices.
The horizontal edges are numbered first, the vertical edges next; both groups lexicographically.
Definition at line 25 of file tp_triag_mesh_builder.h.
|
inlineexplicit |
Constructor: set factory object to be used by the builder.
Definition at line 31 of file tp_triag_mesh_builder.h.
References lf::mesh::utils::StructuredMeshBuilder::mesh_factory_.
|
overridevirtual |
actual construction of the mesh
Implements lf::mesh::utils::StructuredMeshBuilder.
Definition at line 18 of file tp_triag_mesh_builder.cc.
References lf::mesh::utils::StructuredMeshBuilder::bottom_left_corner_, lf::base::RefEl::kSegment(), lf::base::RefEl::kTria(), Logger(), lf::mesh::utils::StructuredMeshBuilder::mesh_factory_, lf::mesh::utils::StructuredMeshBuilder::num_of_x_cells_, lf::mesh::utils::StructuredMeshBuilder::num_of_y_cells_, lf::mesh::utils::StructuredMeshBuilder::top_right_corner_, and VertexIndex().
Referenced by lf::mesh::test_utils::GenerateHybrid2DTestMesh().
|
static |
Used by Build() method to output additional debug info.
Definition at line 12 of file tp_triag_mesh_builder.cc.
References lf::base::InitLogger().
Referenced by Build().
|
inlineprivate |
vertex index from grid position
Definition at line 48 of file tp_triag_mesh_builder.h.
References lf::mesh::utils::StructuredMeshBuilder::num_of_x_cells_.
Referenced by Build().