PlasCom2  1.0
XPACC Multi-physics simluation application
base< GridT, StateT > Class Template Reference

Detailed Description

template<typename GridT, typename StateT>
class simulation::domain::base< GridT, StateT >

Definition at line 40 of file Domain.H.

#include <Domain.H>

Public Types

typedef GridT GridType
 
typedef StateT StateType
 
typedef GridType::HaloType HaloType
 
typedef boundary::base BoundaryType
 
typedef boundary::bc::base BCType
 
typedef StateType::MetaDataSetType DataDictionaryType
 
typedef plascom2::operators::sbp::base OperatorType
 
typedef simulation::rhs::domain_base< GridType, StateType, OperatorType > RHSType
 
typedef std::vector< GridType * > gridvector
 
typedef std::vector< StateType * > statevector
 
typedef std::vector< RHSType * > rhsvector
 

Public Member Functions

 base ()
 
StateType & State (int iGrid)
 
StateType & Target (int iGrid)
 
StateType & Param (int iGrid)
 
GridType & Grid (int iGrid)
 
RHSType & RHS (int iGrid)
 
gridvector & Grids ()
 
statevector & States ()
 
statevector & Targets ()
 
statevector & Params ()
 
rhsvector & RHSs ()
 
std::vector< BoundaryType > & GridBoundaries (int iGrid)
 
std::vector< BoundaryType > & DomainBoundary (int iGrid)
 
std::vector< std::vector< BoundaryType > > & DomainBoundaries ()
 
const std::vector< std::string > & BCNames () const
 
const std::vector< std::string > & BoundaryNames () const
 
void SetGrid (int gridIndex, GridType &inGrid)
 
void SetGridState (int gridIndex, StateType &inState)
 
void SetGridTarget (int gridIndex, StateType &inState)
 
void SetGridParams (int gridIndex, StateType &paramState)
 
std::string Name () const
 
void SetGlobal (pcpp::ParallelGlobalType &inGlobal)
 
int SetNumGrids (int numberOfGrids)
 
int ConfigureDomain (fixtures::ConfigurationType &inConfig, std::ostream &inMessageStream)
 
int ConfigureGridDomainBoundaries (fixtures::ConfigurationType &inConfig, int iGrid, std::ostream &inMessageStream)
 
int CreateData (std::ostream &messageStream)
 
int CreateData (int gridIndex, std::ostream &messageStream)
 
int GetGridIndex (const std::string &gridName) const
 
int NumberOfGrids ()
 
int NumberOfLocalGrids ()
 
std::vector< int > & LocalGridIndices ()
 
int LocalGridIndex (int localGridIndex)
 
std::string Report ()
 
DataDictionaryType & StateDictionary ()
 
DataDictionaryType & ParamDictionary ()
 
void PopulateGridMeta (DataDictionaryType &gridMeta)
 
void PopulateGridParamMeta (DataDictionaryType &gridMeta)
 
void PopulateDomainStateMeta ()
 
void PopulateDomainParamMeta ()
 
fixtures::ConfigurationType & Config ()
 
std::vector< std::string > & GeometryNames ()
 
std::vector< std::string > & GridNames ()
 
std::string GridName (int iGrid)
 
std::vector< std::string > IOFieldNames ()
 
void SetSpatialOrder (int inOrder)
 
int SpatialOrder ()
 
void SetTime (double inTime)
 
double Time ()
 
OperatorType & Operator ()
 
const OperatorType & Operator () const
 
void SetMessageStream (std::ostream &inStream)
 
std::vector< BCType > & BCs ()
 
const std::vector< BCType > & BCs () const
 
RHSType & RHS ()
 
int SetRHS (RHSType &inRHS)
 
int SetRHS (int gridIndex, RHSType &inRHS)
 
fixtures::CommunicatorType & Communicator ()
 
fixtures::CommunicatorType & GridCommunicator (int gridIndex)
 
std::vector< fixtures::CommunicatorType > & GridCommunicators ()
 
fixtures::CommunicatorType & SetCommunicator (fixtures::CommunicatorType &inCommunicator)
 
int PartitionDomain (int inOptions=0)
 
int InitializeRHS (int inOptions)
 
int Step ()
 
void SetStep (int inStep)
 
double TimeStep (double *outCFL=NULL)
 
void ComputeDV (int threadId=0)
 
int SetNumThreads (int numThreads)
 
int SetDomainBCs ()
 
int InitThreads ()
 
int FinalizeAdvance (double newTime)
 
void SetGeometryInfo (geometry::info &geometryInfo)
 
void SetScalarNames (const std::string &inNames)
 
std::vector< std::string > & ScalarNames ()
 
const std::vector< std::string > & ScalarNames () const
 

Protected Attributes

geometry::info * geometryInfoPtr
 
pcpp::ParallelGlobalType * globalPtr
 
std::ostream * messageStreamPtr
 
std::string domainName
 
OperatorType domainOperator
 
StateType domainState
 
StateType domainParams
 
gridvector domainGrids
 
statevector gridStates
 
statevector gridTargets
 
statevector gridParams
 
rhsvector gridRHSs
 
int spatialOrder
 
int stepNumber
 
double domainTime
 
std::vector< bool > ownRHS
 
std::vector< bool > ownGrid
 
std::vector< bool > ownState
 
fixtures::ConfigurationType domainConfig
 
DataDictionaryType stateDataDictionary
 
DataDictionaryType paramDataDictionary
 
std::vector< std::string > gridNames
 
std::vector< std::string > geometryNames
 
std::vector< std::string > ioFieldNames
 
std::vector< std::vector< BoundaryType > > domainBoundaries
 
std::vector< std::string > bcNames
 
std::vector< std::string > boundaryNames
 
std::vector< std::string > scalarNames
 
std::vector< BCType > domainBCs
 
RHSType * rhsPtr
 
RHSType dummyRHS
 
fixtures::CommunicatorType domainCommunicator
 
std::vector< fixtures::CommunicatorType > gridCommunicators
 
int domainRank
 
int numGrids
 
partitioninfo partitionInfo
 

Friends

template<typename DomainT >
class DomainInitializer
 
Collaboration diagram for base< GridT, StateT >:

Member Typedef Documentation

◆ BCType

Definition at line 53 of file Domain.H.

◆ BoundaryType

Definition at line 52 of file Domain.H.

◆ DataDictionaryType

typedef StateType::MetaDataSetType DataDictionaryType

Definition at line 54 of file Domain.H.

◆ GridType

typedef GridT GridType

Definition at line 47 of file Domain.H.

◆ gridvector

typedef std::vector<GridType*> gridvector

Definition at line 63 of file Domain.H.

◆ HaloType

typedef GridType::HaloType HaloType

Definition at line 49 of file Domain.H.

◆ OperatorType

Definition at line 55 of file Domain.H.

◆ RHSType

◆ rhsvector

typedef std::vector<RHSType*> rhsvector

Definition at line 65 of file Domain.H.

◆ StateType

typedef StateT StateType

Definition at line 48 of file Domain.H.

◆ statevector

typedef std::vector<StateType*> statevector

Definition at line 64 of file Domain.H.

Constructor & Destructor Documentation

◆ base()

base ( )
inline

Definition at line 71 of file Domain.H.

Member Function Documentation

◆ BCNames()

const std::vector<std::string>& BCNames ( ) const
inline

Definition at line 91 of file Domain.H.

References simulation::domain::boundary::bc::bcNames.

◆ BCs() [1/2]

std::vector<BCType>& BCs ( )
inline

Definition at line 728 of file Domain.H.

◆ BCs() [2/2]

const std::vector<BCType>& BCs ( ) const
inline

Definition at line 729 of file Domain.H.

◆ BoundaryNames()

const std::vector<std::string>& BoundaryNames ( ) const
inline

Definition at line 92 of file Domain.H.

◆ Communicator()

fixtures::CommunicatorType& Communicator ( )
inline

Definition at line 759 of file Domain.H.

◆ ComputeDV()

void ComputeDV ( int  threadId = 0)
inline

Definition at line 923 of file Domain.H.

◆ Config()

fixtures::ConfigurationType& Config ( )
inline

Definition at line 716 of file Domain.H.

◆ ConfigureDomain()

◆ ConfigureGridDomainBoundaries()

int ConfigureGridDomainBoundaries ( fixtures::ConfigurationType &  inConfig,
int  iGrid,
std::ostream &  inMessageStream 
)
inline

◆ CreateData() [1/2]

int CreateData ( std::ostream &  messageStream)
inline

Definition at line 459 of file Domain.H.

References bufferSizes, pcpp::util::ConfigKey(), ConfigStateValues(), apptools::DumpContents(), and numPointsBuffer.

Here is the call graph for this function:

◆ CreateData() [2/2]

int CreateData ( int  gridIndex,
std::ostream &  messageStream 
)
inline

Definition at line 527 of file Domain.H.

References bufferSizes, pcpp::util::ConfigKey(), ConfigStateValues(), apptools::DumpContents(), simulation::report::Grid(), and numPointsBuffer.

Here is the call graph for this function:

◆ DomainBoundaries()

std::vector<std::vector<BoundaryType> >& DomainBoundaries ( )
inline

Definition at line 89 of file Domain.H.

◆ DomainBoundary()

std::vector<BoundaryType>& DomainBoundary ( int  iGrid)
inline

Definition at line 88 of file Domain.H.

◆ FinalizeAdvance()

int FinalizeAdvance ( double  newTime)
inline

Definition at line 966 of file Domain.H.

◆ GeometryNames()

std::vector<std::string>& GeometryNames ( )
inline

Definition at line 717 of file Domain.H.

◆ GetGridIndex()

int GetGridIndex ( const std::string &  gridName) const
inline

Definition at line 579 of file Domain.H.

◆ Grid()

GridType& Grid ( int  iGrid)
inline

Definition at line 78 of file Domain.H.

◆ GridBoundaries()

std::vector<BoundaryType>& GridBoundaries ( int  iGrid)
inline

Definition at line 87 of file Domain.H.

◆ GridCommunicator()

fixtures::CommunicatorType& GridCommunicator ( int  gridIndex)
inline

Definition at line 760 of file Domain.H.

◆ GridCommunicators()

std::vector<fixtures::CommunicatorType>& GridCommunicators ( )
inline

Definition at line 765 of file Domain.H.

◆ GridName()

std::string GridName ( int  iGrid)
inline

Definition at line 719 of file Domain.H.

◆ GridNames()

std::vector<std::string>& GridNames ( )
inline

Definition at line 718 of file Domain.H.

◆ Grids()

gridvector& Grids ( )
inline

Definition at line 81 of file Domain.H.

◆ InitializeRHS()

int InitializeRHS ( int  inOptions)
inline

Definition at line 884 of file Domain.H.

◆ InitThreads()

int InitThreads ( )
inline

Definition at line 955 of file Domain.H.

◆ IOFieldNames()

std::vector<std::string> IOFieldNames ( )
inline

Definition at line 720 of file Domain.H.

◆ LocalGridIndex()

int LocalGridIndex ( int  localGridIndex)
inline

Definition at line 599 of file Domain.H.

◆ LocalGridIndices()

std::vector<int>& LocalGridIndices ( )
inline

Definition at line 595 of file Domain.H.

◆ Name()

std::string Name ( ) const
inline

Definition at line 120 of file Domain.H.

◆ NumberOfGrids()

int NumberOfGrids ( )
inline

Definition at line 593 of file Domain.H.

◆ NumberOfLocalGrids()

int NumberOfLocalGrids ( )
inline

Definition at line 594 of file Domain.H.

◆ Operator() [1/2]

OperatorType& Operator ( )
inline

Definition at line 725 of file Domain.H.

◆ Operator() [2/2]

const OperatorType& Operator ( ) const
inline

Definition at line 726 of file Domain.H.

◆ Param()

StateType& Param ( int  iGrid)
inline

Definition at line 77 of file Domain.H.

◆ ParamDictionary()

DataDictionaryType& ParamDictionary ( )
inline

Definition at line 668 of file Domain.H.

◆ Params()

statevector& Params ( )
inline

Definition at line 84 of file Domain.H.

◆ PartitionDomain()

int PartitionDomain ( int  inOptions = 0)
inline
Todo:
finish automatic domain splitting [mtc]

Definition at line 768 of file Domain.H.

References gridSizes, and ix::util::SortPermutation().

Here is the call graph for this function:

◆ PopulateDomainParamMeta()

void PopulateDomainParamMeta ( )
inline

Definition at line 704 of file Domain.H.

◆ PopulateDomainStateMeta()

void PopulateDomainStateMeta ( )
inline

Definition at line 692 of file Domain.H.

◆ PopulateGridMeta()

void PopulateGridMeta ( DataDictionaryType &  gridMeta)
inline

Definition at line 670 of file Domain.H.

◆ PopulateGridParamMeta()

void PopulateGridParamMeta ( DataDictionaryType &  gridMeta)
inline

Definition at line 681 of file Domain.H.

◆ Report()

◆ RHS() [1/2]

RHSType& RHS ( int  iGrid)
inline

Definition at line 79 of file Domain.H.

◆ RHS() [2/2]

RHSType& RHS ( )
inline

Definition at line 730 of file Domain.H.

◆ RHSs()

rhsvector& RHSs ( )
inline

Definition at line 85 of file Domain.H.

◆ ScalarNames() [1/2]

std::vector<std::string>& ScalarNames ( )
inline

Definition at line 988 of file Domain.H.

References navierstokes::scalarNames().

Here is the call graph for this function:

◆ ScalarNames() [2/2]

const std::vector<std::string>& ScalarNames ( ) const
inline

Definition at line 989 of file Domain.H.

References navierstokes::scalarNames().

Here is the call graph for this function:

◆ SetCommunicator()

fixtures::CommunicatorType& SetCommunicator ( fixtures::CommunicatorType &  inCommunicator)
inline

Definition at line 766 of file Domain.H.

◆ SetDomainBCs()

int SetDomainBCs ( )
inline

Definition at line 944 of file Domain.H.

◆ SetGeometryInfo()

void SetGeometryInfo ( geometry::info &  geometryInfo)
inline

Definition at line 984 of file Domain.H.

◆ SetGlobal()

void SetGlobal ( pcpp::ParallelGlobalType &  inGlobal)
inline

Definition at line 122 of file Domain.H.

◆ SetGrid()

void SetGrid ( int  gridIndex,
GridType &  inGrid 
)
inline

Definition at line 96 of file Domain.H.

◆ SetGridParams()

void SetGridParams ( int  gridIndex,
StateType &  paramState 
)
inline

Definition at line 114 of file Domain.H.

◆ SetGridState()

void SetGridState ( int  gridIndex,
StateType &  inState 
)
inline

Definition at line 102 of file Domain.H.

◆ SetGridTarget()

void SetGridTarget ( int  gridIndex,
StateType &  inState 
)
inline

Definition at line 108 of file Domain.H.

◆ SetMessageStream()

void SetMessageStream ( std::ostream &  inStream)
inline

Definition at line 727 of file Domain.H.

◆ SetNumGrids()

int SetNumGrids ( int  numberOfGrids)
inline

Definition at line 127 of file Domain.H.

◆ SetNumThreads()

int SetNumThreads ( int  numThreads)
inline

Definition at line 933 of file Domain.H.

◆ SetRHS() [1/2]

int SetRHS ( RHSType &  inRHS)
inline

Definition at line 731 of file Domain.H.

◆ SetRHS() [2/2]

int SetRHS ( int  gridIndex,
RHSType &  inRHS 
)
inline

Definition at line 741 of file Domain.H.

◆ SetScalarNames()

void SetScalarNames ( const std::string &  inNames)
inline

Definition at line 987 of file Domain.H.

References navierstokes::scalarNames().

Here is the call graph for this function:

◆ SetSpatialOrder()

void SetSpatialOrder ( int  inOrder)
inline

Definition at line 721 of file Domain.H.

◆ SetStep()

void SetStep ( int  inStep)
inline

Definition at line 903 of file Domain.H.

◆ SetTime()

void SetTime ( double  inTime)
inline

Definition at line 723 of file Domain.H.

◆ SpatialOrder()

int SpatialOrder ( )
inline

Definition at line 722 of file Domain.H.

◆ State()

StateType& State ( int  iGrid)
inline

Definition at line 75 of file Domain.H.

◆ StateDictionary()

DataDictionaryType& StateDictionary ( )
inline

Definition at line 667 of file Domain.H.

◆ States()

statevector& States ( )
inline

Definition at line 82 of file Domain.H.

◆ Step()

int Step ( )
inline

Definition at line 902 of file Domain.H.

◆ Target()

StateType& Target ( int  iGrid)
inline

Definition at line 76 of file Domain.H.

◆ Targets()

statevector& Targets ( )
inline

Definition at line 83 of file Domain.H.

◆ Time()

double Time ( )
inline

Definition at line 724 of file Domain.H.

◆ TimeStep()

double TimeStep ( double *  outCFL = NULL)
inline

Definition at line 906 of file Domain.H.

Friends And Related Function Documentation

◆ DomainInitializer

friend class DomainInitializer
friend

Definition at line 43 of file Domain.H.

Member Data Documentation

◆ bcNames

std::vector<std::string> bcNames
protected

Definition at line 1018 of file Domain.H.

◆ boundaryNames

std::vector<std::string> boundaryNames
protected

Definition at line 1019 of file Domain.H.

◆ domainBCs

std::vector<BCType> domainBCs
protected

Definition at line 1021 of file Domain.H.

◆ domainBoundaries

std::vector<std::vector<BoundaryType> > domainBoundaries
protected

Definition at line 1017 of file Domain.H.

◆ domainCommunicator

fixtures::CommunicatorType domainCommunicator
protected

Definition at line 1024 of file Domain.H.

◆ domainConfig

fixtures::ConfigurationType domainConfig
protected

Definition at line 1011 of file Domain.H.

◆ domainGrids

gridvector domainGrids
protected

Definition at line 1000 of file Domain.H.

◆ domainName

std::string domainName
protected

Definition at line 996 of file Domain.H.

◆ domainOperator

OperatorType domainOperator
protected

Definition at line 997 of file Domain.H.

◆ domainParams

StateType domainParams
protected

Definition at line 999 of file Domain.H.

◆ domainRank

int domainRank
protected

Definition at line 1026 of file Domain.H.

◆ domainState

StateType domainState
protected

Definition at line 998 of file Domain.H.

◆ domainTime

double domainTime
protected

Definition at line 1007 of file Domain.H.

◆ dummyRHS

RHSType dummyRHS
protected

Definition at line 1023 of file Domain.H.

◆ geometryInfoPtr

geometry::info* geometryInfoPtr
protected

Definition at line 989 of file Domain.H.

◆ geometryNames

std::vector<std::string> geometryNames
protected

Definition at line 1015 of file Domain.H.

◆ globalPtr

pcpp::ParallelGlobalType* globalPtr
protected

Definition at line 994 of file Domain.H.

◆ gridCommunicators

std::vector<fixtures::CommunicatorType> gridCommunicators
protected

Definition at line 1025 of file Domain.H.

◆ gridNames

std::vector<std::string> gridNames
protected

Definition at line 1014 of file Domain.H.

◆ gridParams

statevector gridParams
protected

Definition at line 1003 of file Domain.H.

◆ gridRHSs

rhsvector gridRHSs
protected

Definition at line 1004 of file Domain.H.

◆ gridStates

statevector gridStates
protected

Definition at line 1001 of file Domain.H.

◆ gridTargets

statevector gridTargets
protected

Definition at line 1002 of file Domain.H.

◆ ioFieldNames

std::vector<std::string> ioFieldNames
protected

Definition at line 1016 of file Domain.H.

◆ messageStreamPtr

std::ostream* messageStreamPtr
protected

Definition at line 995 of file Domain.H.

◆ numGrids

int numGrids
protected

Definition at line 1027 of file Domain.H.

◆ ownGrid

std::vector<bool> ownGrid
protected

Definition at line 1009 of file Domain.H.

◆ ownRHS

std::vector<bool> ownRHS
protected

Definition at line 1008 of file Domain.H.

◆ ownState

std::vector<bool> ownState
protected

Definition at line 1010 of file Domain.H.

◆ paramDataDictionary

DataDictionaryType paramDataDictionary
protected

Definition at line 1013 of file Domain.H.

◆ partitionInfo

partitioninfo partitionInfo
protected

Definition at line 1028 of file Domain.H.

◆ rhsPtr

RHSType* rhsPtr
protected

Definition at line 1022 of file Domain.H.

◆ scalarNames

std::vector<std::string> scalarNames
protected

Definition at line 1020 of file Domain.H.

◆ spatialOrder

int spatialOrder
protected

Definition at line 1005 of file Domain.H.

◆ stateDataDictionary

DataDictionaryType stateDataDictionary
protected

Definition at line 1012 of file Domain.H.

◆ stepNumber

int stepNumber
protected

Definition at line 1006 of file Domain.H.


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