DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::basis::TriangulationDealiiParallel< dim > Class Template Reference

#include <TriangulationDealiiParallel.h>

Inheritance diagram for dftefe::basis::TriangulationDealiiParallel< dim >:
Collaboration diagram for dftefe::basis::TriangulationDealiiParallel< dim >:

Public Member Functions

 TriangulationDealiiParallel (const MPI_Comm &mpi_communicator)
 
 ~TriangulationDealiiParallel ()
 
void initializeTriangulationConstruction () override
 
void finalizeTriangulationConstruction () override
 
void createUniformParallelepiped (const std::vector< unsigned int > &subdivisions, const std::vector< utils::Point > &domainVectors, const std::vector< bool > &isPeriodicFlags) override
 
void createSingleCellTriangulation (const std::vector< utils::Point > &vertices) override
 
void shiftTriangulation (const utils::Point &origin) override
 
void refineGlobal (const unsigned int times=1) override
 
void coarsenGlobal (const unsigned int times=1) override
 
void clearUserFlags () override
 
void executeCoarseningAndRefinement () override
 
unsigned int nLocallyOwnedCells () const override
 
double maxElementLength () const override
 
double minElementLength () const override
 
size_type nGlobalCells () const override
 
size_type nLocalCells () const override
 
std::vector< size_typegetBoundaryIds () const override
 
TriangulationBase::TriangulationCellIterator beginLocal () override
 
TriangulationBase::TriangulationCellIterator endLocal () override
 
TriangulationBase::const_TriangulationCellIterator beginLocal () const override
 
TriangulationBase::const_TriangulationCellIterator endLocal () const override
 
unsigned int getDim () const override
 
std::vector< bool > getPeriodicFlags () const override
 
void saveRefineFlags (std::vector< bool > &v) const override
 
void writeToVtkFile (std::ostream &out) const override
 
std::vector< utils::PointgetDomainVectors () const override
 
const dealii::parallel::distributed::Triangulation< dim > & returnDealiiTria () const
 
- Public Member Functions inherited from dftefe::basis::TriangulationBase
virtual ~TriangulationBase ()=default
 
virtual void initializeTriangulationConstruction ()=0
 
virtual void finalizeTriangulationConstruction ()=0
 
virtual void createUniformParallelepiped (const std::vector< unsigned int > &subdivisions, const std::vector< utils::Point > &domainVectors, const std::vector< bool > &isPeriodicFlags)=0
 
virtual void createSingleCellTriangulation (const std::vector< utils::Point > &vertices)=0
 
virtual void shiftTriangulation (const utils::Point &origin)=0
 
virtual void refineGlobal (const unsigned int times=1)=0
 
virtual void coarsenGlobal (const unsigned int times=1)=0
 
virtual void clearUserFlags ()=0
 
virtual void executeCoarseningAndRefinement ()=0
 
virtual unsigned int nLocallyOwnedCells () const =0
 
virtual double maxElementLength () const =0
 
virtual double minElementLength () const =0
 
virtual unsigned int nLocalCells () const =0
 
virtual size_type nGlobalCells () const =0
 
virtual std::vector< size_typegetBoundaryIds () const =0
 
virtual TriangulationCellIterator beginLocal ()=0
 
virtual TriangulationCellIterator endLocal ()=0
 
virtual const_TriangulationCellIterator beginLocal () const =0
 
virtual const_TriangulationCellIterator endLocal () const =0
 
virtual unsigned int getDim () const =0
 
virtual std::vector< bool > getPeriodicFlags () const =0
 
virtual void saveRefineFlags (std::vector< bool > &v) const =0
 
virtual void writeToVtkFile (std::ostream &out) const =0
 
virtual std::vector< utils::PointgetDomainVectors () const =0
 

Private Member Functions

void markPeriodicFaces (const std::vector< bool > &isPeriodicFlags, const std::vector< utils::Point > &domainVectors)
 

Private Attributes

bool isInitialized
 
bool isFinalized
 
dealii::parallel::distributed::Triangulation< dim > d_triangulationDealii
 
std::vector< std::shared_ptr< TriangulationCellBase > > d_triaVectorCell
 
std::vector< bool > d_isPeriodicFlags
 
std::vector< utils::Pointd_domainVectors
 
double d_maxElemLength
 
double d_minElemLength
 
const MPI_Comm & d_mpiDomainCommunicator
 

Additional Inherited Members

- Public Types inherited from dftefe::basis::TriangulationBase
typedef std::vector< std::shared_ptr< TriangulationCellBase > >::iterator TriangulationCellIterator
 
typedef std::vector< std::shared_ptr< TriangulationCellBase > >::const_iterator const_TriangulationCellIterator
 

Constructor & Destructor Documentation

◆ TriangulationDealiiParallel()

template<unsigned int dim>
dftefe::basis::TriangulationDealiiParallel< dim >::TriangulationDealiiParallel ( const MPI_Comm &  mpi_communicator)

◆ ~TriangulationDealiiParallel()

Member Function Documentation

◆ beginLocal() [1/2]

◆ beginLocal() [2/2]

◆ clearUserFlags()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::clearUserFlags
overridevirtual

◆ coarsenGlobal()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::coarsenGlobal ( const unsigned int  times = 1)
overridevirtual

◆ createSingleCellTriangulation()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::createSingleCellTriangulation ( const std::vector< utils::Point > &  vertices)
overridevirtual

Implements dftefe::basis::TriangulationBase.

Here is the call graph for this function:

◆ createUniformParallelepiped()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::createUniformParallelepiped ( const std::vector< unsigned int > &  subdivisions,
const std::vector< utils::Point > &  domainVectors,
const std::vector< bool > &  isPeriodicFlags 
)
overridevirtual

Implements dftefe::basis::TriangulationBase.

Here is the call graph for this function:

◆ endLocal() [1/2]

◆ endLocal() [2/2]

◆ executeCoarseningAndRefinement()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::executeCoarseningAndRefinement
overridevirtual

◆ finalizeTriangulationConstruction()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::finalizeTriangulationConstruction
overridevirtual

Implements dftefe::basis::TriangulationBase.

Here is the call graph for this function:

◆ getBoundaryIds()

template<unsigned int dim>
std::vector< size_type > dftefe::basis::TriangulationDealiiParallel< dim >::getBoundaryIds
overridevirtual
Todo:
TODO: Implement it to get the user specified boundary Ids on different faces of the triangulation

Implements dftefe::basis::TriangulationBase.

Here is the call graph for this function:

◆ getDim()

template<unsigned int dim>
unsigned int dftefe::basis::TriangulationDealiiParallel< dim >::getDim
overridevirtual

◆ getDomainVectors()

template<unsigned int dim>
std::vector< utils::Point > dftefe::basis::TriangulationDealiiParallel< dim >::getDomainVectors
overridevirtual

◆ getPeriodicFlags()

template<unsigned int dim>
std::vector< bool > dftefe::basis::TriangulationDealiiParallel< dim >::getPeriodicFlags
overridevirtual

◆ initializeTriangulationConstruction()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::initializeTriangulationConstruction
overridevirtual

◆ markPeriodicFaces()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::markPeriodicFaces ( const std::vector< bool > &  isPeriodicFlags,
const std::vector< utils::Point > &  domainVectors 
)
private
Todo:
TODO:
  1. Implement for periodic case
  2. Check if the domainvectors argument is redundant (i.e., if they can be fetched from the d_triangulationDealii)

◆ maxElementLength()

template<unsigned int dim>
double dftefe::basis::TriangulationDealiiParallel< dim >::maxElementLength
overridevirtual

◆ minElementLength()

template<unsigned int dim>
double dftefe::basis::TriangulationDealiiParallel< dim >::minElementLength
overridevirtual

◆ nGlobalCells()

template<unsigned int dim>
size_type dftefe::basis::TriangulationDealiiParallel< dim >::nGlobalCells
overridevirtual

◆ nLocalCells()

template<unsigned int dim>
size_type dftefe::basis::TriangulationDealiiParallel< dim >::nLocalCells
overridevirtual

◆ nLocallyOwnedCells()

template<unsigned int dim>
size_type dftefe::basis::TriangulationDealiiParallel< dim >::nLocallyOwnedCells
overridevirtual

◆ refineGlobal()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::refineGlobal ( const unsigned int  times = 1)
overridevirtual

◆ returnDealiiTria()

template<unsigned int dim>
const dealii::parallel::distributed::Triangulation< dim > & dftefe::basis::TriangulationDealiiParallel< dim >::returnDealiiTria
Here is the caller graph for this function:

◆ saveRefineFlags()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::saveRefineFlags ( std::vector< bool > &  v) const
overridevirtual

◆ shiftTriangulation()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::shiftTriangulation ( const utils::Point origin)
overridevirtual

Implements dftefe::basis::TriangulationBase.

Here is the call graph for this function:

◆ writeToVtkFile()

template<unsigned int dim>
void dftefe::basis::TriangulationDealiiParallel< dim >::writeToVtkFile ( std::ostream &  out) const
overridevirtual

Member Data Documentation

◆ d_domainVectors

template<unsigned int dim>
std::vector<utils::Point> dftefe::basis::TriangulationDealiiParallel< dim >::d_domainVectors
private

◆ d_isPeriodicFlags

template<unsigned int dim>
std::vector<bool> dftefe::basis::TriangulationDealiiParallel< dim >::d_isPeriodicFlags
private

◆ d_maxElemLength

template<unsigned int dim>
double dftefe::basis::TriangulationDealiiParallel< dim >::d_maxElemLength
private

◆ d_minElemLength

template<unsigned int dim>
double dftefe::basis::TriangulationDealiiParallel< dim >::d_minElemLength
private

◆ d_mpiDomainCommunicator

template<unsigned int dim>
const MPI_Comm& dftefe::basis::TriangulationDealiiParallel< dim >::d_mpiDomainCommunicator
private

◆ d_triangulationDealii

template<unsigned int dim>
dealii::parallel::distributed::Triangulation<dim> dftefe::basis::TriangulationDealiiParallel< dim >::d_triangulationDealii
private

◆ d_triaVectorCell

template<unsigned int dim>
std::vector<std::shared_ptr<TriangulationCellBase> > dftefe::basis::TriangulationDealiiParallel< dim >::d_triaVectorCell
private

◆ isFinalized

template<unsigned int dim>
bool dftefe::basis::TriangulationDealiiParallel< dim >::isFinalized
private

◆ isInitialized

template<unsigned int dim>
bool dftefe::basis::TriangulationDealiiParallel< dim >::isInitialized
private

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