MoReFEM
Loading...
Searching...
No Matches
Data Structures | Functions
MoReFEM::Crtp Namespace Reference

Namespace that enclose some generic CRTP ("Curiously recurrent template pattern"). More...

Data Structures

class  CrtpMpi
 This CRTP class provides to its derived class a Mpi object and an accessor to it. More...
 
class  LocalMatrixStorage
 CRTP to give access to NlocalMatricesT local matrices. More...
 
class  LocalVectorStorage
 CRTP to give access to NlocalVectorT local vectors. More...
 
class  Mutex
 This CRTP class defines a mutex each object of the DerivedT class. More...
 
class  NumberingSubsetForMatrix
 This Crtp add two data attributes (const references to row and column numbering subsets) and accessors to them. More...
 
class  Orientation
 This Crtp is used for both Edge and Face interface. More...
 
class  UniqueId
 This CRTP class defines a unique ID for each object of the DerivedT class. More...
 
class  VolumicAndSurfacicSource
 Crtp for VariationalFormulation that needs to address a volumic and/or a surfacic force. More...
 

Functions

template<class DerivedT , class UnorientedInterfaceT >
bool operator< (const Orientation< DerivedT, UnorientedInterfaceT > &lhs, const Orientation< DerivedT, UnorientedInterfaceT > &rhs) noexcept
 operator< for the class.
 
template<class DerivedT , class UnorientedInterfaceT >
bool operator== (const Orientation< DerivedT, UnorientedInterfaceT > &lhs, const Orientation< DerivedT, UnorientedInterfaceT > &rhs) noexcept
 operator== for the class.
 

Detailed Description

Namespace that enclose some generic CRTP ("Curiously recurrent template pattern").

Function Documentation

◆ operator<()

template<class DerivedT , class UnorientedInterfaceT >
bool MoReFEM::Crtp::operator< ( const Orientation< DerivedT, UnorientedInterfaceT > & lhs,
const Orientation< DerivedT, UnorientedInterfaceT > & rhs )
noexcept

operator< for the class.

Parameters
[in]lhsLeft-hand side.
[in]rhsRight-hand side.
Returns
True if lhs is less than rhs according to the criteria chosen for the class.

The convention is that the ordering is the same as the one of underlying Interface; in case of equality orientation is also considered.

◆ operator==()

template<class DerivedT , class UnorientedInterfaceT >
bool MoReFEM::Crtp::operator== ( const Orientation< DerivedT, UnorientedInterfaceT > & lhs,
const Orientation< DerivedT, UnorientedInterfaceT > & rhs )
noexcept

operator== for the class.

Parameters
[in]lhsLeft-hand side.
[in]rhsRight-hand side.
Returns
True if lhs is equal to rhs according to the criteria chosen for the class.

Two Orientation<DerivedT, UnorientedInterfaceT> objects are equal if they share the same underlying Interface and the same orientation.