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

Class used to store an edge inside a GeometricElt. More...

#include <OrientedEdge.hpp>

Inheritance diagram for MoReFEM::OrientedEdge:
Collaboration diagram for MoReFEM::OrientedEdge:

Public Types

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

Public Member Functions

const EdgeGetUnorientedInterface () const noexcept
 Return the underlying Interface object (without orientation).
 
EdgeGetNonCstUnorientedInterface () 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>
 OrientedEdge (const Edge::shared_ptr &edge, const Coords::vector_shared_ptr &coords_list_in_geom_elt, std::size_t local_edge_index, TopologyIndexedSectionDescriptionT topology_token)
 Constructor.
 
 ~OrientedEdge ()=default
 Destructor.
 
 OrientedEdge (const OrientedEdge &rhs)=delete
 The copy constructor.
 
 OrientedEdge (OrientedEdge &&rhs)=delete
 The move constructor.
 
OrientedEdgeoperator= (const OrientedEdge &rhs)=delete
 The (copy) operator=.
 
OrientedEdgeoperator= (OrientedEdge &&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 edge inside a GeometricElt.

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

Constructor & Destructor Documentation

◆ OrientedEdge() [1/3]

template<Concept::TopologyIndexedSectionDescriptionType TopologyIndexedSectionDescriptionT>
MoReFEM::OrientedEdge::OrientedEdge ( const Edge::shared_ptr & edge,
const Coords::vector_shared_ptr & coords_list_in_geom_elt,
std::size_t local_edge_index,
TopologyIndexedSectionDescriptionT topology_token )
explicit

Constructor.

Parameters
[in]edgeEdge before any orientation is applied.
[in]local_edge_indexIndex of the edge in the local (topology) element; between 0 and Nedge - 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.

◆ OrientedEdge() [2/3]

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

The copy constructor.

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

◆ OrientedEdge() [3/3]

MoReFEM::OrientedEdge::OrientedEdge ( OrientedEdge && rhs)
delete

The move constructor.

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

Member Function Documentation

◆ operator=() [1/2]

OrientedEdge & MoReFEM::OrientedEdge::operator= ( const OrientedEdge & 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]

OrientedEdge & MoReFEM::OrientedEdge::operator= ( OrientedEdge && 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< OrientedEdge , Edge >::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< OrientedEdge , Edge >::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: