Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
model::SimplicialMesh< _dim > Class Template Reference

#include <SimplicialMesh.h>

Inheritance diagram for model::SimplicialMesh< _dim >:
Collaboration diagram for model::SimplicialMesh< _dim >:

Public Types

typedef std::map< typename SimplexTraits< dim, dim >::SimplexIDType, std::shared_ptr< Simplex< dim, dim > > > SimplexMapType
typedef IDreader< 1, dim+2, size_t > ElementReaderType
typedef Polyhedron< dim, dim > MeshRegionType
typedef MeshRegionBoundary< dim > MeshRegionBoundaryType
typedef std::pair< size_t, size_t > MeshRegionIDType
typedef std::map< MeshRegionIDType, MeshRegionBoundaryType > MeshRegionBoundaryContainerType
typedef Eigen::Matrix< double, dim, Eigen::Dynamic > PeriodicBasisType
Public Types inherited from model::SimplexReaderBase< dim >
typedef std::map< size_t, Eigen::Matrix< double, dim, 1 > > NodeContainerType
typedef std::map< size_t, std::pair< typename SimplexTraits< dim, dim >::SimplexIDType, size_t > > ElementContainerType

Public Member Functions

 SimplicialMesh ()
 SimplicialMesh (const std::string &meshFileName, const Eigen::Matrix< double, dim, dim > &A, const Eigen::Matrix< double, dim, 1 > &x0, const std::set< int > &)
void readMesh (const std::string &meshFileName, const Eigen::Matrix< double, dim, dim > &A, const Eigen::Matrix< double, dim, 1 > &x0, const std::set< int > &)
const SimplexMapType & simplices () const
SimplexMapType & simplices ()
template<short int order>
auto & simplexFactory ()
template<short int order>
const auto & simplexFactory () const
const PolyhedralMesh< _dim > & polyhedralMesh () const
const auto & regions () const
Polyhedron< _dim, _dim > * region (const size_t &id)
const Polyhedron< _dim, _dim > * region (const size_t &id) const
std::shared_ptr< Polyhedron< _dim, _dim > > getSharedRegion (size_t id)
void updateRegions ()
void updateRegionBoundaries ()
void identifyParallelFaces (const std::set< int > &)
Eigen::Matrix< double, dim, Eigen::Dynamic > periodicBasis () const
std::weak_ptr< const int > lifetimeToken () const
const PeriodicSimplexPairMap< dim > & periodicSimplexPairs () const
void insertSimplex (const typename SimplexTraits< dim, dim >::SimplexIDType &xIN, const int &regionID)
std::pair< bool, const Simplex< _dim, _dim > * > search (const Eigen::Matrix< double, dim, 1 > &P) const
std::pair< bool, const Simplex< _dim, _dim > * > searchWithGuess (const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess) const
std::pair< bool, const Simplex< _dim, _dim > * > searchRegion (const int &regionID, const Eigen::Matrix< double, dim, 1 > &P) const
std::pair< bool, const Simplex< _dim, _dim > * > searchRegionWithGuess (const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess) const
std::pair< bool, const Simplex< _dim, _dim > * > searchWithGuess (const bool &searchAllRegions, const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess, std::set< const Simplex< dim, dim > * > &searchSet) const
void checkSearch (const bool &searchAllRegions, const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess, const std::pair< bool, const Simplex< dim, dim > * > &lastSearched) const
std::pair< bool, const Simplex< _dim, _dim > * > isStrictlyInsideMesh (const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess, const double &tol) const
std::pair< bool, const Simplex< _dim, _dim > * > isOnMeshBoundary (const Eigen::Matrix< double, dim, 1 > &P, const Simplex< dim, dim > *const guess, const double &tol) const
const Eigen::Matrix< double, _dim, 1 > & xMin () const
const double & xMin (const int &k) const
const Eigen::Matrix< double, _dim, 1 > & xMax () const
const double & xMax (const int &k) const
const Eigen::Matrix< double, _dim, 1 > & xCenter () const
const double & volume () const
const MeshRegionBoundaryContainerType & regionBoundaries () const
MeshRegionBoundaryContainerType & regionBoundaries ()
const MeshRegionBoundaryType & regionBoundary (const int &i, const int &j) const
Public Member Functions inherited from model::SimplexReader< _dim >
void read (const int &meshID)
Public Member Functions inherited from model::SimplexReaderBase< dim >
const NodeContainerType & nodes () const
NodeContainerType & nodes ()
const ElementContainerType & elements () const
ElementContainerType & elements ()
void clear ()
SimplexReaderBase< dim > & simplexReader ()
const SimplexReaderBase< dim > & simplexReader () const
const Eigen::Matrix< double, dim, 1 > & get_P0 (const typename SimplexTraits< dim, 0 >::SimplexIDType &xID)

Static Public Attributes

static constexpr int dim =_dim

Detailed Description

template<int _dim>
class model::SimplicialMesh< _dim >

Definition at line 43 of file SimplicialMesh.h.

Member Typedef Documentation

◆ ElementReaderType

template<int _dim>
typedef IDreader<1,dim+2,size_t> model::SimplicialMesh< _dim >::ElementReaderType

Definition at line 74 of file SimplicialMesh.h.

◆ MeshRegionBoundaryContainerType

template<int _dim>
typedef std::map<MeshRegionIDType,MeshRegionBoundaryType> model::SimplicialMesh< _dim >::MeshRegionBoundaryContainerType

Definition at line 79 of file SimplicialMesh.h.

◆ MeshRegionBoundaryType

template<int _dim>
typedef MeshRegionBoundary<dim> model::SimplicialMesh< _dim >::MeshRegionBoundaryType

Definition at line 77 of file SimplicialMesh.h.

◆ MeshRegionIDType

template<int _dim>
typedef std::pair<size_t,size_t> model::SimplicialMesh< _dim >::MeshRegionIDType

Definition at line 78 of file SimplicialMesh.h.

◆ MeshRegionType

template<int _dim>
typedef Polyhedron<dim,dim> model::SimplicialMesh< _dim >::MeshRegionType

Definition at line 75 of file SimplicialMesh.h.

◆ PeriodicBasisType

template<int _dim>
typedef Eigen::Matrix<double,dim,Eigen::Dynamic> model::SimplicialMesh< _dim >::PeriodicBasisType

Definition at line 80 of file SimplicialMesh.h.

◆ SimplexMapType

template<int _dim>
typedef std::map<typename SimplexTraits<dim,dim>::SimplexIDType, std::shared_ptr<Simplex<dim,dim> > > model::SimplicialMesh< _dim >::SimplexMapType

Definition at line 73 of file SimplicialMesh.h.

Constructor & Destructor Documentation

◆ SimplicialMesh() [1/2]

template<int dim>
model::SimplicialMesh< dim >::SimplicialMesh ( )

Definition at line 164 of file SimplicialMesh.cpp.

◆ SimplicialMesh() [2/2]

template<int dim>
model::SimplicialMesh< dim >::SimplicialMesh ( const std::string & meshFileName,
const Eigen::Matrix< double, dim, dim > & A,
const Eigen::Matrix< double, dim, 1 > & x0,
const std::set< int > & periodicFaceIDs )

Definition at line 173 of file SimplicialMesh.cpp.

Member Function Documentation

◆ checkSearch()

template<int dim>
void model::SimplicialMesh< dim >::checkSearch ( const bool & searchAllRegions,
const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess,
const std::pair< bool, const Simplex< dim, dim > * > & lastSearched ) const

Definition at line 495 of file SimplicialMesh.cpp.

◆ getSharedRegion()

template<int _dim>
std::shared_ptr< Polyhedron< _dim, _dim > > model::SimplicialMesh< _dim >::getSharedRegion ( size_t id)
inline

Definition at line 104 of file SimplicialMesh.h.

◆ identifyParallelFaces()

template<int dim>
void model::SimplicialMesh< dim >::identifyParallelFaces ( const std::set< int > & periodicFaceIDs)

Definition at line 246 of file SimplicialMesh.cpp.

◆ insertSimplex()

template<int dim>
void model::SimplicialMesh< dim >::insertSimplex ( const typename SimplexTraits< dim, dim >::SimplexIDType & xIN,
const int & regionID )
Parameters
[in]xINthe (unsorted) array of mesh node IDs defining a simplex Inserts a Simplex<dim> into the mesh, with ID equal to the sorted array xIN.

Definition at line 324 of file SimplicialMesh.cpp.

◆ isOnMeshBoundary()

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::isOnMeshBoundary ( const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess,
const double & tol ) const

Definition at line 542 of file SimplicialMesh.cpp.

◆ isStrictlyInsideMesh()

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::isStrictlyInsideMesh ( const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess,
const double & tol ) const

Definition at line 523 of file SimplicialMesh.cpp.

◆ lifetimeToken()

template<int _dim>
std::weak_ptr< const int > model::SimplicialMesh< _dim >::lifetimeToken ( ) const
inline

Definition at line 117 of file SimplicialMesh.h.

◆ periodicBasis()

template<int dim>
SimplicialMesh< dim >::PeriodicBasisType model::SimplicialMesh< dim >::periodicBasis ( ) const

Definition at line 318 of file SimplicialMesh.cpp.

◆ periodicSimplexPairs()

template<int _dim>
const PeriodicSimplexPairMap< dim > & model::SimplicialMesh< _dim >::periodicSimplexPairs ( ) const
inline

Definition at line 121 of file SimplicialMesh.h.

◆ polyhedralMesh()

template<int dim>
const PolyhedralMesh< dim > & model::SimplicialMesh< dim >::polyhedralMesh ( ) const

Definition at line 210 of file SimplicialMesh.cpp.

◆ readMesh()

template<int dim>
void model::SimplicialMesh< dim >::readMesh ( const std::string & meshFileName,
const Eigen::Matrix< double, dim, dim > & A,
const Eigen::Matrix< double, dim, 1 > & x0,
const std::set< int > & periodicFaceIDs )

Definition at line 185 of file SimplicialMesh.cpp.

◆ region() [1/2]

template<int _dim>
Polyhedron< _dim, _dim > * model::SimplicialMesh< _dim >::region ( const size_t & id)
inline

Definition at line 102 of file SimplicialMesh.h.

◆ region() [2/2]

template<int _dim>
const Polyhedron< _dim, _dim > * model::SimplicialMesh< _dim >::region ( const size_t & id) const
inline

Definition at line 103 of file SimplicialMesh.h.

◆ regionBoundaries() [1/2]

template<int dim>
SimplicialMesh< dim >::MeshRegionBoundaryContainerType & model::SimplicialMesh< dim >::regionBoundaries ( )

Definition at line 601 of file SimplicialMesh.cpp.

◆ regionBoundaries() [2/2]

template<int dim>
const SimplicialMesh< dim >::MeshRegionBoundaryContainerType & model::SimplicialMesh< dim >::regionBoundaries ( ) const

Definition at line 595 of file SimplicialMesh.cpp.

◆ regionBoundary()

template<int dim>
const SimplicialMesh< dim >::MeshRegionBoundaryType & model::SimplicialMesh< dim >::regionBoundary ( const int & i,
const int & j ) const

Definition at line 607 of file SimplicialMesh.cpp.

◆ regions()

template<int _dim>
const auto & model::SimplicialMesh< _dim >::regions ( ) const
inline

Definition at line 101 of file SimplicialMesh.h.

◆ search()

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::search ( const Eigen::Matrix< double, dim, 1 > & P) const
Parameters
[in]Pposition to search for
Returns
a pair, where: -pair.first is a boolean indicating whether the search succesfully found a Simplex<dim,dim> which includes P. -pair.second is a pointer to the last Simplex<dim,dim> searched.

By default the search starts at this->begin()->second

Definition at line 340 of file SimplicialMesh.cpp.

◆ searchRegion()

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::searchRegion ( const int & regionID,
const Eigen::Matrix< double, dim, 1 > & P ) const
Parameters
[in]Pposition to search for
Returns
a pair, where: -pair.first is a boolean indicating whether the search succesfully found a Simplex<dim,dim> which includes P. -pair.second is a pointer to the last Simplex<dim,dim> searched.

By default the search starts at this->begin()->second

Definition at line 375 of file SimplicialMesh.cpp.

◆ searchRegionWithGuess()

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::searchRegionWithGuess ( const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess ) const
Parameters
[in]Pposition to search for
[in]guessSimplex* where the search starts
Returns
a pair, where: -pair.first is a boolean indicating whether the search succesfully found a Simplex<dim,dim> which includes P. -pair.second is a pointer to the last Simplex<dim,dim> searched.

Definition at line 389 of file SimplicialMesh.cpp.

◆ searchWithGuess() [1/2]

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::searchWithGuess ( const bool & searchAllRegions,
const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess,
std::set< const Simplex< dim, dim > * > & searchSet ) const
Parameters
[in]Pposition to search for
[in]guessSimplex* where the search starts. If searchAllRegions=false, only the region of guess is searched
Returns
a pair, where: -pair.first is a boolean indicating whether the search succesfully found a Simplex<dim,dim> which includes P. -pair.second is a pointer to the last Simplex<dim,dim> searched.

Definition at line 403 of file SimplicialMesh.cpp.

◆ searchWithGuess() [2/2]

template<int dim>
std::pair< bool, const Simplex< dim, dim > * > model::SimplicialMesh< dim >::searchWithGuess ( const Eigen::Matrix< double, dim, 1 > & P,
const Simplex< dim, dim > *const guess ) const
Parameters
[in]Pposition to search for
[in]guessSimplex* where the search starts
Returns
a pair, where: -pair.first is a boolean indicating whether the search succesfully found a Simplex<dim,dim> which includes P. -pair.second is a pointer to the last Simplex<dim,dim> searched.

Definition at line 353 of file SimplicialMesh.cpp.

◆ simplexFactory() [1/2]

template<int _dim>
template<short int order>
auto & model::SimplicialMesh< _dim >::simplexFactory ( )
inline

Definition at line 92 of file SimplicialMesh.h.

◆ simplexFactory() [2/2]

template<int _dim>
template<short int order>
const auto & model::SimplicialMesh< _dim >::simplexFactory ( ) const
inline

Definition at line 96 of file SimplicialMesh.h.

◆ simplices() [1/2]

template<int dim>
SimplicialMesh< dim >::SimplexMapType & model::SimplicialMesh< dim >::simplices ( )

Definition at line 204 of file SimplicialMesh.cpp.

◆ simplices() [2/2]

template<int dim>
const SimplicialMesh< dim >::SimplexMapType & model::SimplicialMesh< dim >::simplices ( ) const

Definition at line 198 of file SimplicialMesh.cpp.

◆ updateRegionBoundaries()

template<int dim>
void model::SimplicialMesh< dim >::updateRegionBoundaries ( )

Definition at line 229 of file SimplicialMesh.cpp.

◆ updateRegions()

template<int dim>
void model::SimplicialMesh< dim >::updateRegions ( )

Definition at line 220 of file SimplicialMesh.cpp.

◆ volume()

template<int dim>
const double & model::SimplicialMesh< dim >::volume ( ) const

Definition at line 589 of file SimplicialMesh.cpp.

◆ xCenter()

template<int dim>
const Eigen::Matrix< double, dim, 1 > & model::SimplicialMesh< dim >::xCenter ( ) const

Definition at line 583 of file SimplicialMesh.cpp.

◆ xMax() [1/2]

template<int dim>
const Eigen::Matrix< double, dim, 1 > & model::SimplicialMesh< dim >::xMax ( ) const

Definition at line 571 of file SimplicialMesh.cpp.

◆ xMax() [2/2]

template<int dim>
const double & model::SimplicialMesh< dim >::xMax ( const int & k) const

Definition at line 577 of file SimplicialMesh.cpp.

◆ xMin() [1/2]

template<int dim>
const Eigen::Matrix< double, dim, 1 > & model::SimplicialMesh< dim >::xMin ( ) const

Definition at line 559 of file SimplicialMesh.cpp.

◆ xMin() [2/2]

template<int dim>
const double & model::SimplicialMesh< dim >::xMin ( const int & k) const

Definition at line 565 of file SimplicialMesh.cpp.

Member Data Documentation

◆ dim

template<int _dim>
int model::SimplicialMesh< _dim >::dim =_dim
staticconstexpr

Definition at line 69 of file SimplicialMesh.h.


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