![]() |
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Describes a general quadrilateral cell for a 2D hybrid mesh. More...
#include <lf/mesh/hybrid2d/quad.h>
Public Member Functions | |
| Quadrilateral ()=default | |
| default constructors, needed by std::vector | |
| ~Quadrilateral () override=default | |
Default and disabled constructors | |
| Quadrilateral (const Quadrilateral &)=delete | |
| Quadrilateral (Quadrilateral &&) noexcept=default | |
| Quadrilateral & | operator= (const Quadrilateral &)=delete |
| Quadrilateral & | operator= (Quadrilateral &&) noexcept=default |
| Quadrilateral (size_type index, std::unique_ptr< geometry::Geometry > &&geometry, const Point *corner0, const Point *corner1, const Point *corner2, const Point *corner3, const Segment *edge0, const Segment *edge1, const Segment *edge2, const Segment *edge3) | |
| constructor, is called from MeshFactory | |
| unsigned | Codim () const override |
| an edge is an entity of co-dimension 1 | |
| std::span< const Entity *const > | SubEntities (unsigned rel_codim) const override |
| Access to all subentities selected by relative co-dimension. | |
| std::span< const lf::mesh::Orientation > | RelativeOrientations () const override |
| Access to relative orientations of edges. | |
| size_type | index () const |
| access to index of an entity | |
Standard methods inherited from Entity object | |
| |
| const geometry::Geometry * | Geometry () const override |
| Describes the geometry of this entity. | |
| base::RefEl | RefEl () const override |
| Describes the reference element type of this entity. | |
| bool | operator== (const mesh::Entity &rhs) const override |
| Check if two entities are the same. | |
Public Member Functions inherited from lf::mesh::Entity | |
| bool | operator!= (const Entity &rhs) const |
| Check if two entities are different. | |
| virtual | ~Entity ()=default |
| Virtual Destructor. | |
Private Types | |
| using | size_type = mesh::Mesh::size_type |
Private Attributes | |
| size_type | index_ = -1 |
| std::unique_ptr< geometry::Geometry > | geometry_ |
| std::array< const Point *, 4 > | nodes_ {} |
| std::array< const Segment *, 4 > | edges_ {} |
| std::array< lf::mesh::Orientation, 4 > | edge_ori_ {} |
| Entity * | this_ = nullptr |
Additional Inherited Members | |
Protected Member Functions inherited from lf::mesh::Entity | |
| Entity ()=default | |
| Entity (const Entity &)=default | |
| Entity (Entity &&)=default | |
| Entity & | operator= (const Entity &)=default |
| Entity & | operator= (Entity &&)=default |
Related Symbols inherited from lf::mesh::Entity | |
| void | PrintInfo (std::ostream &stream, const lf::mesh::Entity &e, int output_ctrl=0) |
| Prints info about an entity. | |
Describes a general quadrilateral cell for a 2D hybrid mesh.
A quadrilateral cell stores and ordered list of four nodes and of four edges, which have to be compatible.
Segment object owns a smart pointer to an associated geometry object.
|
private |
|
default |
default constructors, needed by std::vector
Referenced by operator=(), operator=(), Quadrilateral(), and Quadrilateral().
|
delete |
References Quadrilateral().
|
defaultnoexcept |
References Quadrilateral().
|
explicit |
constructor, is called from MeshFactory
| index | index of the entity to be created; will usually be retrieved via the Index() method of Mesh |
| geometry | pointer to a geometry object providing the shape of the cell |
| corner0 | pointer to first node |
| corner1 | pointer to second node |
| corner2 | pointer to third node |
| corner3 | pointer to fourth node |
| edge0 | pointer to first edge |
| edge1 | pointer to second edge |
| edge2 | pointer to third edge |
| edge3 | pointer to fourth edge |
The sub-entities have to be consistent according to the conventions fixed for a reference element of type kTria.
|
overridedefault |
|
inlinenodiscardoverridevirtual |
an edge is an entity of co-dimension 1
Implements lf::mesh::Entity.
Definition at line 73 of file quad.h.
References Codim().
Referenced by Codim().
|
inlinenodiscardoverridevirtual |
Describes the geometry of this entity.
Why does this member function return a pointer instead of a reference? One reason is that entities without a geometric shape are conceivable as building block of a "mesh graph", where only topological information matters. Another reason is that during the construction of a mesh, it turns out to be convenient to build entities "without geometry" first and then endow them with geometric information. A nullptr is a good way to indicate missing geometric information.
Implements lf::mesh::Entity.
Definition at line 103 of file quad.h.
References geometry_.
Referenced by operator=().
|
inlinenodiscard |
access to index of an entity
Definition at line 96 of file quad.h.
References index_.
Referenced by operator=(), and Quadrilateral().
|
delete |
References Quadrilateral().
|
defaultnoexcept |
References Geometry(), index(), and Quadrilateral().
|
inlinenodiscardoverridevirtual |
Check if two entities are the same.
| rhs | Check if this entity is the same as the rhs entity. |
Implements lf::mesh::Entity.
|
inlinenodiscardoverridevirtual |
Describes the reference element type of this entity.
Implements lf::mesh::Entity.
Definition at line 106 of file quad.h.
References lf::base::RefEl::kQuad().
|
inlinenodiscardoverridevirtual |
Access to relative orientations of edges.
Implements lf::mesh::Entity.
Definition at line 90 of file quad.h.
References edge_ori_.
|
nodiscardoverridevirtual |
Access to all subentities selected by relative co-dimension.
| rel_codim | if 1 select edges, if 2 select nodes, if 0 select cell itself |
Implements lf::mesh::Entity.
Definition at line 84 of file quad.cc.
References edges_, lf::mesh::Entity::Entity(), nodes_, and this_.
|
private |
Definition at line 122 of file quad.h.
Referenced by RelativeOrientations().
|
private |
Definition at line 120 of file quad.h.
Referenced by SubEntities().
|
private |
Definition at line 118 of file quad.h.
Referenced by Geometry(), and Quadrilateral().
|
private |
Definition at line 117 of file quad.h.
Referenced by index(), and Quadrilateral().
|
private |
Definition at line 119 of file quad.h.
Referenced by Quadrilateral(), and SubEntities().
|
private |
Definition at line 123 of file quad.h.
Referenced by SubEntities().