MoReFEM
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
MoReFEM::OrientedFace Class Referencefinal

Class used to store an face inside a GeometricElement. More...

#include <OrientedFace.hpp>

Inheritance diagram for MoReFEM::OrientedFace:
Collaboration diagram for MoReFEM::OrientedFace:

Public Types

using shared_ptr = std::shared_ptr<OrientedFace>
 Alias to shared pointer.
 
using vector_shared_ptr = std::vector<shared_ptr>
 Alias to vector of shared_pointer.
 

Public Member Functions

const FaceGetUnorientedInterface () const noexcept
 Return the underlying Interface object (without orientation).
 
FaceGetNonCstUnorientedInterface () noexcept
 Return the underlying Interface object (without orientation).
 
UnorientedInterfaceT::shared_ptr GetUnorientedInterfacePtr () const noexcept
 Return the underlying Interface object as a smart pointer (without orientation).
 
const Coords::vector_shared_ptrGetCoordsList () const noexcept
 Return the list of Coords that delimit the interface.
 
std::size_t GetOrientation () const noexcept
 Return the orientation.
 
InterfaceNS::program_wise_index_type GetProgramWiseIndex () const noexcept
 Get the identifier associated to the unoriented interface.
 
void Print (std::ostream &stream) const
 Print the underlying coords list and the orientation.
 
Special members.
template<Concept::TopologyIndexedSectionDescriptionType TopologyIndexedSectionDescriptionT>
 OrientedFace (const Face::shared_ptr &face, const Coords::vector_shared_ptr &coords_list_in_geom_elt, std::size_t local_face_index, TopologyIndexedSectionDescriptionT topology_token)
 Constructor.
 
 ~OrientedFace ()=default
 Destructor.
 
 OrientedFace (const OrientedFace &rhs)=delete
 The copy constructor.
 
 OrientedFace (OrientedFace &&rhs)=delete
 The move constructor.
 
OrientedFaceoperator= (const OrientedFace &rhs)=delete
 The (copy) operator=.
 
OrientedFaceoperator= (OrientedFace &&rhs)=delete
 The (move) operator=.
 

Static Public Member Functions

static const std::string & ClassName ()
 Name of the class.
 
static constexpr InterfaceNS::Nature StaticNature () noexcept
 Nature of the Interface as a static method.
 

Private Attributes

UnorientedInterfaceT::shared_ptr unoriented_interface_
 Underlying unoriented object.
 
const std::size_t orientation_
 Orientation.
 

Detailed Description

Class used to store an face inside a GeometricElement.

An face may be shared among several GeometricElement, but their orientation might differ inside each of the GeometricElement. The purpose of the current object is therefore to store two information:

Constructor & Destructor Documentation

◆ OrientedFace() [1/3]

template<Concept::TopologyIndexedSectionDescriptionType TopologyIndexedSectionDescriptionT>
MoReFEM::OrientedFace::OrientedFace ( const Face::shared_ptr & face,
const Coords::vector_shared_ptr & coords_list_in_geom_elt,
std::size_t local_face_index,
TopologyIndexedSectionDescriptionT topology_token )
explicit

Constructor.

Parameters
[in]faceFace before any orientation is applied.
[in]local_face_indexIndex of the face in the local (topology) element; between 0 and Nface - 1.
[in]coords_list_in_geom_eltList of Coords relared to the considered GeometricElt.
Parameters
[in]topology_tokenA token there for a C++ trick to enable a template argument in a constructor without making the whole class a templated one. The argument itself is not used: it is its type that matters. Said type must be an instantiation of Utilities::Type2Type class - to enable to call it without actually instantiating an object. The template parameter given to this class is expected to fulfill the Concept::TopologyTraitsClass concept.

◆ OrientedFace() [2/3]

MoReFEM::OrientedFace::OrientedFace ( const OrientedFace & rhs)
delete

The copy constructor.

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

◆ OrientedFace() [3/3]

MoReFEM::OrientedFace::OrientedFace ( OrientedFace && rhs)
delete

The move constructor.

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

Member Function Documentation

◆ operator=() [1/2]

OrientedFace & MoReFEM::OrientedFace::operator= ( const OrientedFace & rhs)
delete

The (copy) operator=.

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

◆ operator=() [2/2]

OrientedFace & MoReFEM::OrientedFace::operator= ( OrientedFace && rhs)
delete

The (move) operator=.

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

◆ GetCoordsList()

const Coords::vector_shared_ptr & MoReFEM::Crtp::Orientation< OrientedFace , Face >::GetCoordsList ( ) const
noexceptinherited

Return the list of Coords that delimit the interface.

[internal] Orientation unused here; accessible for metaprogramming purposes.

Returns
List of Coords that delimit the interface.

◆ Print()

void MoReFEM::Crtp::Orientation< OrientedFace , Face >::Print ( std::ostream & stream) const
inherited

Print the underlying coords list and the orientation.

Parameters
[in,out]streamStream upon which object information are written.

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