MoReFEM
Loading...
Searching...
No Matches
Public Types | Public Member Functions
MoReFEM::RefGeomElt Class Referenceabstract

Polymorphic class which can access static functions related to shape functions, interface and topology. More...

#include <RefGeomElt.hpp>

Inheritance diagram for MoReFEM::RefGeomElt:
Collaboration diagram for MoReFEM::RefGeomElt:

Public Types

using shared_ptr = std::shared_ptr<const RefGeomElt>
 Alias for shared pointer.
 
using const_unique_ptr = std::unique_ptr<const RefGeomElt>
 Alias for unique pointer.
 
using vector_shared_ptr = std::vector<shared_ptr>
 Alias for vector of pointers.
 

Public Member Functions

virtual Advanced::GeometricEltEnum GetIdentifier () const =0
 Get the identifier of the geometric element.
 
virtual std::size_t Ncoords () const =0
 Get the number of Coords object required to characterize completely a GeometricElt of this type.
 
virtual std::size_t GetDimension () const =0
 Get the dimension of the geometric element.
 
virtual const Advanced::GeomEltNS::GenericNameGetName () const =0
 Get the name associated to the element (e.g. 'Triangle3').
 
virtual const std::string & GetTopologyName () const =0
 Get the name associated to the Topology (e.g. 'Triangle').
 
virtual TopologyNS::Type GetTopologyIdentifier () const =0
 Get the enum value associated to the Topology (e.g. 'TopologyNS::Type::tetrahedron').
 
virtual const LocalCoordsGetBarycenter () const =0
 Get the local coordinates of the barycenter.
 
virtual const std::vector< LocalCoords > & GetQ1LocalCoordsList () const =0
 Get the list of local coordinates of the vertices.
 
virtual std::size_t Nvertex () const noexcept=0
 Return the number of vertices.
 
virtual std::size_t Nedge () const noexcept=0
 Return the number of edges.
 
virtual std::size_t Nface () const noexcept=0
 Return the number of faces.
 
virtual InterfaceNS::Nature GetInteriorInterfaceNature () const noexcept=0
 Returns the nature of the interior interface.
 
virtual GmfKwdCod GetMeditIdentifier () const =0
 Get the identifier Medit use to tag the geometric element.
 
virtual const Advanced::GeomEltNS::EnsightNameGetEnsightName () const =0
 Get the Ensight name. If Ensight doesn't support the type empty string is returned.
 
Shape function methods.
virtual double ShapeFunction (LocalNodeNS::index_type local_node_index, const LocalCoords &local_coords) const =0
 Shape function call.
 
virtual double FirstDerivateShapeFunction (LocalNodeNS::index_type local_node_index, Advanced::ComponentNS::index_type component, const LocalCoords &local_coords) const =0
 First derivate of the shape function call.
 
virtual double SecondDerivateShapeFunction (LocalNodeNS::index_type local_node_index, Advanced::ComponentNS::index_type component1, Advanced::ComponentNS::index_type component2, const LocalCoords &local_coords) const =0
 Second derivate of the shape function call.
 

Protected Member Functions

Special members.
 RefGeomElt ()=default
 Default constructor.
 
virtual ~RefGeomElt ()
 Destructor.
 
 RefGeomElt (const RefGeomElt &rhs)=delete
 The copy constructor.
 
 RefGeomElt (RefGeomElt &&rhs)=delete
 The move constructor.
 
RefGeomEltoperator= (const RefGeomElt &rhs)=delete
 The (copy) operator=.
 
RefGeomEltoperator= (RefGeomElt &&rhs)=delete
 The (move) operator=.
 

Detailed Description

Polymorphic class which can access static functions related to shape functions, interface and topology.

This class is used to hold polymorphically the generic information related to a geometric element (shape functions, interface and topology).

It can be used for instance to store in a small vector the list of all the kinds of GeometricElt met in the mesh.

The equivalent that also holds specific data (Coords involved for instance) is GeometricElt.

[internal] RefGeomElt pure virtual methods are all defined in derived class TRefGeomElt. Currently only the static functions required by the current state of the code are implemented, but many others could have been and aren't. It is not very difficult to do it when necessary: the principle is always to call the traits class which defines the static function (take any existing one to understand how it works).

Constructor & Destructor Documentation

◆ RefGeomElt() [1/2]

MoReFEM::RefGeomElt::RefGeomElt ( const RefGeomElt & rhs)
protecteddelete

The copy constructor.

Parameters
[in]rhsThe object from which the construction occurs.

◆ RefGeomElt() [2/2]

MoReFEM::RefGeomElt::RefGeomElt ( RefGeomElt && rhs)
protecteddelete

The move constructor.

Parameters
[in]rhsThe object from which the construction occurs.

Member Function Documentation

◆ operator=() [1/2]

RefGeomElt & MoReFEM::RefGeomElt::operator= ( const RefGeomElt & rhs)
protecteddelete

The (copy) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ operator=() [2/2]

RefGeomElt & MoReFEM::RefGeomElt::operator= ( RefGeomElt && rhs)
protecteddelete

The (move) operator=.

Parameters
[in]rhsThe object from which the affectation occurs.
Returns
Reference to the object (to enable chained affectation).

◆ GetIdentifier()

virtual Advanced::GeometricEltEnum MoReFEM::RefGeomElt::GetIdentifier ( ) const
pure virtual

◆ Ncoords()

virtual std::size_t MoReFEM::RefGeomElt::Ncoords ( ) const
pure virtual

◆ GetDimension()

virtual std::size_t MoReFEM::RefGeomElt::GetDimension ( ) const
pure virtual

◆ GetName()

virtual const Advanced::GeomEltNS::GenericName & MoReFEM::RefGeomElt::GetName ( ) const
pure virtual

◆ GetTopologyName()

virtual const std::string & MoReFEM::RefGeomElt::GetTopologyName ( ) const
pure virtual

◆ GetTopologyIdentifier()

virtual TopologyNS::Type MoReFEM::RefGeomElt::GetTopologyIdentifier ( ) const
pure virtual

◆ GetBarycenter()

virtual const LocalCoords & MoReFEM::RefGeomElt::GetBarycenter ( ) const
pure virtual

◆ GetQ1LocalCoordsList()

virtual const std::vector< LocalCoords > & MoReFEM::RefGeomElt::GetQ1LocalCoordsList ( ) const
pure virtual

◆ Nvertex()

virtual std::size_t MoReFEM::RefGeomElt::Nvertex ( ) const
pure virtualnoexcept

◆ Nedge()

virtual std::size_t MoReFEM::RefGeomElt::Nedge ( ) const
pure virtualnoexcept

◆ Nface()

virtual std::size_t MoReFEM::RefGeomElt::Nface ( ) const
pure virtualnoexcept

◆ GetInteriorInterfaceNature()

virtual InterfaceNS::Nature MoReFEM::RefGeomElt::GetInteriorInterfaceNature ( ) const
pure virtualnoexcept

◆ GetMeditIdentifier()

virtual GmfKwdCod MoReFEM::RefGeomElt::GetMeditIdentifier ( ) const
pure virtual

◆ GetEnsightName()

virtual const Advanced::GeomEltNS::EnsightName & MoReFEM::RefGeomElt::GetEnsightName ( ) const
pure virtual

◆ ShapeFunction()

virtual double MoReFEM::RefGeomElt::ShapeFunction ( LocalNodeNS::index_type local_node_index,
const LocalCoords & local_coords ) const
pure virtual

◆ FirstDerivateShapeFunction()

virtual double MoReFEM::RefGeomElt::FirstDerivateShapeFunction ( LocalNodeNS::index_type local_node_index,
Advanced::ComponentNS::index_type component,
const LocalCoords & local_coords ) const
pure virtual

◆ SecondDerivateShapeFunction()

virtual double MoReFEM::RefGeomElt::SecondDerivateShapeFunction ( LocalNodeNS::index_type local_node_index,
Advanced::ComponentNS::index_type component1,
Advanced::ComponentNS::index_type component2,
const LocalCoords & local_coords ) const
pure virtual

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