# PhasicFlow: regularSimulationDomain Class Reference
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

regularSimulationDomain Class Reference
Inheritance diagram for regularSimulationDomain:
[legend]
Collaboration diagram for regularSimulationDomain:
[legend]

## Public Member Functions

| TypeInfo ("simulationDomain<regular>")
| regularSimulationDomain (systemControl &control)
| ~regularSimulationDomain () final=default
| add_vCtor (simulationDomain, regularSimulationDomain, systemControl)
bool | initialUpdateDomains (span< realx3 > pointPos) final
uint32 | initialNumberInThis () const final
uint32 | numberToBeImported () const final
| Number of points to be imported after updating domains. More...
uint32 | numberToBeExported () const final
bool | domainActive () const final
| Is this domain active? Active mean, there is particle in it and boundaries and other entities of simulation domains are valid. More...
const domain & | thisDomain () const final
| return the simulation domain of this processor More...
bool | initialTransferBlockData (span< char > src, span< char > dst, size_t sizeOfElement) const final
bool | initialTransferBlockData (span< realx3 > src, span< realx3 > dst) const final
bool | initialTransferBlockData (span< real > src, span< real > dst) const final
bool | initialTransferBlockData (span< uint32 > src, span< uint32 > dst) const final
bool | initialTransferBlockData (span< int32 > src, span< int32 > dst) const final
Public Member Functions inherited from simulationDomain
| TypeInfo ("simulationDomain")
| simulationDomain (systemControl &control)
| Constrcut from components. More...
| ~simulationDomain () override=default
| Destructor. More...
| create_vCtor (simulationDomain, systemControl,(systemControl &control),(control))
const auto & | globalBox () const
const auto & | globalBoundariesDict () const
| The original dictionary supplied by the user as input. More...
const dictionary & | thisBoundariesDict () const
| The generated dictionary generated by code which is used. More...
word | thisBoundariesDictName () const
const dictionary & | boundaryDict (uint32 i) const
| return a const ref to dicrionary of boundary i of this processor More...
template<typename T >
bool | initialTransferBlockData (span< T > src, span< T > dst) const
domain | extendThisDomain (const realx3 &lowerPointExtension, const realx3 &upperPointExtension) const
const plane & | boundaryPlane (uint32 i) const
| return a const ref to the plane of boundary i of this processor More...
Public Member Functions inherited from fileDictionary
| TypeInfo ("fileDictionary")
| fileDictionary (const objectFile &of, repository *owner=nullptr)
| construct an empty dictionary with keyword and make it global/fileDictionary More...
| fileDictionary (const word &keyword, const fileSystem &file)
| construct a dictionary with name and read it from file More...
| fileDictionary (const objectFile &objf, const dictionary &dict, repository *owner=nullptr)
bool | read (iIstream &is, const IOPattern &iop) override
| read from stream More...
bool | write (iOstream &os, const IOPattern &iop) const override
| write to stream More...
bool | read (iIstream &is) override
| read from stream More...
bool | write (iOstream &os) const override
| write to stream More...
Public Member Functions inherited from IOobject
virtual word | typeName () const =0
| IOobject (const objectFile &objf, const IOPattern &iop, repository *owner)
| ~IOobject () override
| IOobject (const IOobject &src)=delete
| IOobject (IOobject &&src)=delete
const IOPattern & | ioPattern () const
const repository * | owner () const override
repository * | owner ()
repository * | releaseOwner (bool fromOwner=false)
bool | isIncluded (const word &objName) const override
bool | isExcluded (const word &objName) const override
bool | readObject (bool rdHdr=true)
bool | writeObject () const
bool | readObject (iIstream &is, bool rdHdr=true)
bool | writeObject (iOstream &os) const
Public Member Functions inherited from IOfileHeader
| IOfileHeader (const objectFile &objf)
const word & | objectName () const
const word & | objectType () const
fileSystem | path () const
bool | outFileBinary () const
bool | inFileBinary () const
bool | headerOk (bool silent=false)
bool | implyRead () const
| Imply read. More...
bool | implyWrite () const
| Imply write. More...
bool | fileExist () const
| Check if file exists. More...
bool | readIfPresent () const
| Check read if present. More...
bool | writeHeader () const
| Check if the header should be written to file True: on master + implyWrite + readWriteHeader = true False: otherwise. More...
bool | writeHeader (iOstream &os, const word &typeName, bool forceWrite=false) const
| Write the header to the file , typeName comes from caller. More...
bool | writeHeader (iOstream &os, bool forceWrite=false) const
| Write the header to the file, typeName comes from the one read from file. More...
bool | readHeader () const
| Check if header should be read from file. More...
bool | readHeader (iIstream &is, bool silent=false)
| Read the header in the file. More...
bool | writeBanner (iOstream &os) const
| write the banner More...
bool | writeSeparator (iOstream &os) const
| wirte a separator line More...
Public Member Functions inherited from objectFile
| objectFile (const word &name)
| objectFile (const word &name, const fileSystem &localPath, const readFlag &rf=readFlag::READ_NEVER, const writeFlag &wf=writeFlag::WRITE_NEVER, bool rwHeader=true)
| objectFile (const objectFile &src)=default
| objectFile (objectFile &&src)=default
objectFile & | operator= (const objectFile &rhs)=default
objectFile & | operator= (objectFile &&rhs)=default
virtual | ~objectFile ()=default
virtual const word & | name () const
virtual const fileSystem & | localPath () const
readFlag | rFlag () const
writeFlag | wFlag () const
bool | isReadAlways () const
bool | isReadNever () const
bool | isReadIfPresent () const
bool | isWriteAlways () const
bool | isWriteNever () const
bool | readWriteHeader () const
Public Member Functions inherited from dictionary
| TypeInfo ("dictionary")
| dictionary (const word &keyword, bool global)
| construct an empty dictionary with keyword and make it global/fileDictionary (if true) More...
| dictionary (const word &keyword, const fileSystem &file)
| construct a dictionary with name and read it from file More...
| dictionary ()
| cunstructs a null dictionary More...
| dictionary (const word &keyword)
| construct an empty dictionary with keyword More...
| dictionary (const word &keyword, const dictionary &parDict)
| cunstruct an empty dictionary with keyword and parDict More...
| dictionary (const word &keyword, const dictionary &parDict, iIstream &is)
| cunstruct a dictionary with keyword and parDict and from stream More...
| dictionary (const word &keyword, const dictionary &parDict, const dictionary &dict)
| copy construct with keyword and new parrent dict discard the keyword and parDict of dict More...
| dictionary (const dictionary &)
| copy construct as default behavior entries_ are copied smoothly. More...
| dictionary (const dictionary &src, bool global)
dictionary & | operator= (const dictionary &rhs)
| assignment preserve name of this dictionary only entries are transfered with ownership More...
virtual dictionary * | dictPtr ()
| pointer to this dictionary More...
virtual const dictionary * | dictPtr () const
| pointer to this dictionary More...
virtual bool | isDictionary () const
| if this is a dictionary More...
virtual word | globalName () const
| global name of entry, separated with dots More...
virtual const dictionary & | parrentDict () const
| const ref to parrent dictionary More...
virtual dictionary & | dict ()
| ref to this dictionary, if it is a dictionary More...
virtual const dictionary & | dict () const
| const ref to this dictionary, if it is a dictionary More...
virtual bool | isFileDict () const
| if dictionary is file dictionary, return false More...
bool | addPtr (const word &keyword, uniquePtr< iEntry > &etry, bool warning=true)
| add a pointer entry (dictionary/dataEntry) replaces this entry with existing one and issue a warning More...
bool | add (const word &keyword, const float &v)
| add a float dataEntry More...
bool | add (const word &keyword, const double &v)
| add a double dataEntry More...
bool | add (const word &keyword, const word &v)
| add a word dataEntry More...
bool | add (const word &keyword, const int64 &v)
| add a int64 dataEntry More...
bool | add (const word &keyword, const int32 &v)
| add a int32 dataEntry More...
bool | add (const word &keyword, const int8 &v)
| add a int8 dataEntry More...
bool | add (const word &keyword, const uint64 &v)
| add a uint64 dataEntry More...
bool | add (const word &keyword, const uint32 &v)
| add a uint32 dataEntry More...
bool | add (const word &keyword, const uint8 &v)
| add a uint8 dataEntry More...
bool | addDict (const word &keyword, const dictionary &dict)
| add a dictionary with the specifiedd keyword, if it exists, replace it. More...
template<typename T >
bool | add (const word &keyword, const T &v)
| add a dataEntry of type T More...
template<typename T >
bool | addOrKeep (const word &keyword, const T &v)
template<typename T >
bool | addOrReplace (const word &keyword, const T &v)
void | clear ()
dictionary * | subDictPtr (const word &keyword)
| pointer to a subdictionary fatalExit if not found More...
dictionary & | subDict (const word &keyword)
| ref to a subdictioanry fatalExit if not found More...
const dictionary & | subDict (const word &keyword) const
| const ref to a subdictioanry fatalExit if not found More...
dataEntry * | dataEntryPtr (const word &keyword)
| pointer to a dataEntry fatalExit if not found/not a dataEntry More...
dataEntry & | dataEntryRef (const word &keyword)
| ref to a subdictioanry fatalExit if not found/not a dataEntry More...
const dataEntry & | dataEntryRef (const word &keyword) const
| const ref to a subdictioanry fatalExit if not found/not a dataEntry More...
dictionary & | subDictOrCreate (const word &keyword)
| search for a sub-dict with keyword create a new sub-dict if not found and return a ref to it fatalExit if fails More...
template<typename T >
T | getVal (const word &keyword) const
| get the value of data entry More...
template<typename T >
T | getValMax (const word &keyword, const T &maxVal) const
| get the value of data entry and return max(value, maxVal) More...
template<typename T >
T | getValMin (const word &keyword, const T &minVal) const
| get the value of data entry and return min(value, minVal) More...
template<typename T >
T | getValOrSet (const word &keyword, const T &setVal) const
| get the value of data entry or if not found, set the value to setVal More...
template<typename T >
T | getValOrSetMax (const word &keyword, const T &setMaxVal) const
| get the value of data entry anf return max(setMaxVal, value) if not found, set the value to setMaxVal More...
template<typename T >
T | getValOrSetMin (const word &keyword, const T &setMinVal) const
| get the value of data entry anf return max(setMinVal, value) if not found, set the value to setMinVal More...
size_t | numEntries () const
| return number of entris in this dictionary More...
size_t | numDataEntries () const
| return number of non-nullptr dataEntries More...
size_t | numDictionaries () const
| return number of non-nullptr dictionaries More...
wordList | allKeywords () const
| return all keywords (non-nullptr) in this dictionary More...
wordList | dataEntryKeywords () const
| return a list of all dataEntries (non-nullptr) keywords More...
wordList | dictionaryKeywords () const
| return a list of all dictionary (non-null) keywords More...
bool | containsDictionay (const word &name) const
| check if a sub-dictionary exists More...
bool | containsDataEntry (const word &name) const
| check if a data entry exist More...
virtual uniquePtr< iEntry > | clone () const
| clone polymorphic object (here dictionary) More...
virtual iEntry * | clonePtr () const
| clone the object More...
virtual uniquePtr< iEntry > | clone (const dictionary &parDict) const
| clone the polymorhpic object with parDict as the new parrent dictionary More...
virtual iEntry * | clonePtr (const dictionary &parDict) const
| clone the object and change its ownership to parDict More...
bool | read (iIstream &is) override
| read from stream More...
bool | write (iOstream &os) const override
| write to stream More...
Public Member Functions inherited from iEntry
| TypeInfo ("iEntry")
| Type info. More...
| iEntry ()
| empty constructor More...
| iEntry (const word &key)
| construct with a keyword More...
virtual | ~iEntry ()
| destructor More...
virtual const word & | keyword () const
| return keyword More...
virtual word & | keyword ()
| return keyword More...
virtual word | name () const
| name/keyword of entry More...

## Private Member Functions

bool | createBoundaryDicts () final
bool | setThisDomain () final

## Private Attributes

domain | thisDomain_
uint32 | initialNumPoints_ = 0

## Additional Inherited Members

Public Types inherited from objectFile
enum | readFlag { READ_ALWAYS, READ_NEVER, READ_IF_PRESENT }
enum | writeFlag { WRITE_ALWAYS, WRITE_NEVER }
Static Public Member Functions inherited from simulationDomain
static uniquePtr< simulationDomain > | create (systemControl &control)
static const word & | bundaryName (uint32 i)
| Boundary name based on boundary index. More...
static uint32 | sizeOfBoundaries ()
Static Public Member Functions inherited from iEntry
static bool | readKeyword (iIstream &is, word &keyword, token &tok)
| read a keyword from stream More...
static bool | createEntry (dictionary &parDict, iIstream &is, bool hasBlockToken=false)
| create an entry (dataEntry or dictionary) from stream More...
Static Public Attributes inherited from dictionary
static dictionary | nullDict
Protected Member Functions inherited from simulationDomain
bool | prepareBoundaryDicts ()
Protected Member Functions inherited from IOfileHeader
uniquePtr< iFstream > | inStream () const
uniquePtr< oFstream > | outStream () const
uniquePtr< oFstream > | dummyOutStream () const
Protected Member Functions inherited from dictionary
iEntry * | findEntry (const word &keyword)
| find an entry based on keyword return nullptr if not found More...
iEntry * | findEntry (const word &keyword) const
| find and entry based on keyword return nullptr if not found More...
template<typename T >
bool | readDataEntry (const word &keyword, T &val) const
| reads a dataEntry with keyword from dictionary More...
bool | readDictionary (iIstream &is)
| read dictionary from stream - without keyword More...
bool | writeDictionary (iOstream &os, bool withBlock=true) const
| write dictionary to stream - with keyword More...
Protected Member Functions inherited from iEntry
bool | writeKeyword (iOstream &os) const
Protected Attributes inherited from IOfileHeader
word | objectName_
word | objectType_
word | fileFormat_ = "ASCII"
| file format read from file More...
Protected Attributes inherited from dictionary
word | name_
| global name of dictionary, separated with dots More...
wordOrderedMapPtr< iEntry > | entries_
| all the entries (data and dictionary) of the current dictionary More...
List< iEntry * > | orderedEntries_
| entries in order of insertion More...
const dictionary & | parDict_
| ref to parrent dictionary More...
bool | isGlobal_ = false
Protected Attributes inherited from iEntry
word | keyword_

## Detailed Description

Definition at line 29 of file regularSimulationDomain.hpp.

## Constructor & Destructor Documentation

## regularSimulationDomain()

regularSimulationDomain | ( | systemControl & | control | ) |

explicit

Definition at line 74 of file regularSimulationDomain.cpp.

## ~regularSimulationDomain()

~regularSimulationDomain | ( |  | ) |

finaldefault

## Member Function Documentation

## createBoundaryDicts()

bool createBoundaryDicts | ( |  | ) |

finalprivatevirtual

Implements simulationDomain.

Definition at line 25 of file regularSimulationDomain.cpp.

References dictionary::add(), dictionary::addOrReplace(), simulationDomain::bundaryName(), pFlow::endl(), fatalErrorInFunction, dictionary::getVal(), dictionary::globalName(), processors::globalRank(), simulationDomain::sizeOfBoundaries(), dictionary::subDict(), and simulationDomain::thisBoundariesDictName().

Here is the call graph for this function:

## setThisDomain()

bool setThisDomain | ( |  | ) |

finalprivatevirtual

Implements simulationDomain.

Definition at line 67 of file regularSimulationDomain.cpp.

## TypeInfo()

TypeInfo | ( | "simulationDomain<regular>" |  | ) |

## add_vCtor()

add_vCtor | ( | simulationDomain | ,
|  | regularSimulationDomain | ,
|  | systemControl |
| ) |  |

## initialUpdateDomains()

bool initialUpdateDomains | ( | span< realx3 > | pointPos | ) |

finalvirtual

Implements simulationDomain.

Definition at line 81 of file regularSimulationDomain.cpp.

References span< T >::size().

Here is the call graph for this function:

## initialNumberInThis()

pFlow::uint32 initialNumberInThis | ( |  | ) | const

finalvirtual

Implements simulationDomain.

Definition at line 89 of file regularSimulationDomain.cpp.

## numberToBeImported()

pFlow::uint32 numberToBeImported | ( |  | ) | const

finalvirtual

Number of points to be imported after updating domains.

Returns
  number of points

Implements simulationDomain.

Definition at line 101 of file regularSimulationDomain.cpp.

## numberToBeExported()

pFlow::uint32 numberToBeExported | ( |  | ) | const

finalvirtual

Implements simulationDomain.

Definition at line 106 of file regularSimulationDomain.cpp.

## domainActive()

bool domainActive | ( |  | ) | const

finalvirtual

Is this domain active? Active mean, there is particle in it and boundaries and other entities of simulation domains are valid.

Implements simulationDomain.

Definition at line 112 of file regularSimulationDomain.cpp.

## thisDomain()

const pFlow::domain & thisDomain | ( |  | ) | const

finalvirtual

return the simulation domain of this processor

Implements simulationDomain.

Definition at line 118 of file regularSimulationDomain.cpp.

## initialTransferBlockData() [1/5]

bool initialTransferBlockData | ( | span< char > | src,
|  | span< char > | dst,
|  | size_t | sizeOfElement
| ) |  | const

finalvirtual

Implements simulationDomain.

Definition at line 124 of file regularSimulationDomain.cpp.

References span< T >::data(), pFlow::endl(), fatalErrorInFunction, and span< T >::size().

Here is the call graph for this function:

## initialTransferBlockData() [2/5]

bool initialTransferBlockData | ( | span< realx3 > | src,
|  | span< realx3 > | dst
| ) |  | const

finalvirtual

Parameters

  src |
  dst |

Returns

Implements simulationDomain.

Definition at line 154 of file regularSimulationDomain.cpp.

References pFlow::charSpan().

Here is the call graph for this function:

## initialTransferBlockData() [3/5]

bool initialTransferBlockData | ( | span< real > | src,
|  | span< real > | dst
| ) |  | const

finalvirtual

Implements simulationDomain.

Definition at line 166 of file regularSimulationDomain.cpp.

References pFlow::charSpan().

Here is the call graph for this function:

## initialTransferBlockData() [4/5]

bool initialTransferBlockData | ( | span< uint32 > | src,
|  | span< uint32 > | dst
| ) |  | const

finalvirtual

Implements simulationDomain.

Definition at line 178 of file regularSimulationDomain.cpp.

References pFlow::charSpan().

Here is the call graph for this function:

## initialTransferBlockData() [5/5]

bool initialTransferBlockData | ( | span< int32 > | src,
|  | span< int32 > | dst
| ) |  | const

finalvirtual

Implements simulationDomain.

Definition at line 190 of file regularSimulationDomain.cpp.

References pFlow::charSpan().

Here is the call graph for this function:

## Member Data Documentation

## thisDomain_

domain thisDomain_

private

Definition at line 35 of file regularSimulationDomain.hpp.

## initialNumPoints_

uint32 initialNumPoints_ = 0

private

Definition at line 37 of file regularSimulationDomain.hpp.

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

- src/phasicFlow/structuredData/domain/regularSimulationDomain.hpp
- src/phasicFlow/structuredData/domain/regularSimulationDomain.cpp