# PhasicFlow: Class Hierarchy
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.

Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:

AB3History |
AB4History |
AB5History |
allocator |
noConstructAllocator< T > |
allOp< T > |
anyList |
App |
commandLine |
array |
boundariesMask< 6 > |
boundariesMask< N > |
array2D< T, nRow, nCol > |
array2D< real, 3uL, 3uL > |
baseTimeControl |
betweenEqOp< T > |
betweenOp< T > |
bitsetHD< blockType, MemorySpace > |
boundaryFieldList< T, MemorySpace > |
boundaryFieldList< pFlow::VectorSingle, pFlow::AB3History > |
boundaryFieldList< pFlow::VectorSingle, pFlow::AB4History > |
boundaryFieldList< pFlow::VectorSingle, pFlow::AB5History > |
boundaryFieldList< real, void > |
boundaryFieldList< realx3, void > |
boundaryFieldList< T, void > |
boundaryFieldList< uint32, void > |
boundaryFieldList< VectorField, pFlow::VectorSingle, pFlow::AB3History > |
boundaryFieldList< VectorField, pFlow::VectorSingle, pFlow::AB4History > |
boundaryFieldList< VectorField, pFlow::VectorSingle, pFlow::AB5History > |
boundaryFieldList< VectorField, real, void > |
boundaryFieldList< VectorField, realx3, void > |
boundaryFieldList< VectorField, T, void > |
boundaryFieldList< VectorField, uint32, void > |
box |
boxRegion |
mapperNBS::CellIterator |
cellMapper::CellIterator |
cellMapper |
cells |
cellsWallLevel0 |
cGAbsoluteLinear< limited > |
cGRelativeLinear< limited > |
checkStatic< T >::has_static_member_TYPENAME< testType, Ret(Args...)>::Check< U, U > |
checkStatic< T > |
collisionCheck |
combinedRange< T > |
compareOne< T, Operator > |
compareTwo< T, Operator > |
compareZero< T, Operator > |
contactForceModel |
grainRolling< contactForceModel > |
normalRolling< contactForceModel > |
nonLinearMod< limited >::contactForceStorage |
cGAbsoluteLinear< limited >::contactForceStorage |
cGRelativeLinear< limited >::contactForceStorage |
linear< limited >::contactForceStorage |
nonLinear< limited >::contactForceStorage |
contactSearch |
ContactSearch< searchMethod > |
token::content | A union of token types
conveyorBelt | Conveyor belt model for a wall
countField |
countFields |
cylinder |
cylinderRegion |
dataIO< T > |
dataIORegular< T > |
demComponent | A base class for every main component of DEM system
demGeometry | Base for geometry that manages control
geometry | Base class for geometry for managing tri-surfaces, geometry motion, and surface physical properties
geometryMotion< MotionModelType > |
interaction |
grainInteraction< contactForceModel, geometryMotionModel, contactListType > |
sphereInteraction< contactForceModel, geometryMotionModel, contactListType > |
particles |
grainParticles |
sphereParticles | Class for managing spherical particles
pointStructure |
dynamicPointStructure |
domain |
dynamicLinkLibs |
equalOp< T > |
fileSeries |
fileStream | Creates and manages an input/output file stream with specified format
iFstream | Input file stream for reading binary or ascii data from a file
oFstream | Output file stream to send binary or ascii data to a file
fileSystem | Manages file pathes, manupulate and combines them
geometricRegion< GeomType > |
greater< T > |
greaterThanEqOp< T > |
greaterThanOp< T > |
checkStatic< T >::has_static_member_TYPENAME< typename, typename > |
checkStatic< T >::has_static_member_TYPENAME< testType, Ret(Args...)> |
iBox< intType > |
iEntry | Interface calss for data entry and dictionary
dataEntry | Data entry to be used in dictionries
dictionary | Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or are in a file
fileDictionary |
baseShapeNames |
shape |
grainShape |
sphereShape |
conveyorBeltMotion | Conveyor belt model for walls
insertion | Base class for particle insertion
Insertion< ShapeType > | This class manages all the insertion regions for particles insertion in the simulation
property | Property holds the pure properties of materials
interaction |
rotatingAxisMotion | Rotating axis motion model for walls
simulationDomain |
regularSimulationDomain |
stationaryWall | Stationary model for walls
vibratingMotion | Vibrating motion model for walls
iEntry< Key, T * > |
includeMask |
IncludeMask< T, Operator > |
IncludeMask< T, allOp< T > > |
indexContainer< IndexType >::IndexAccessor< ViewType > | Helper class for accessing index on host or device
indexContainer< IndexType > | It holds two vectors of indecis on Host and Device
indexMorton |
infinitePlane |
plane |
insertionRegion | This class defines all the necessary enteties for defining an insertion region
InsertionRegion< ShapeType > | This manages insertion of particles from a region based on the ShapeType
integration | Base class for integrating the first order ODE (IVP)
AdamsBashforth2 | Second order Adams-Bashforth integration method for solving ODE
AdamsBashforth3 | Third order Adams-Bashforth integration method for solving ODE
AdamsBashforth4 | Fourth order Adams-Bashforth integration method for solving ODE
AdamsBashforth5 | Fifth order Adams-Bashforth integration method for solving ODE
AdamsMoulton3 | Third order Adams-Moulton integration method for solving ODE
AdamsMoulton4 | Fourth order Adams-Moulton integration method for solving ODE
AdamsMoulton5 | Fifth order Adams-Moulton integration method for solving ODE
intervalRange< T > |
IOPattern |
IOstream | A base calss for input/output streams
iIstream | Interface class for any input stream
Istream | Standard input stream for binary and ascii data
iFstream | Input file stream for reading binary or ascii data from a file
iTstream | Input token stream
iOstream | Interface class for any output stream
Ostream | Standard output stream for BINARY and ASCII formats
masterOstream | Output stream for MPI parallel run, when we need to know which the processor number in the output line
oFstream | Output file stream to send binary or ascii data to a file
processorOstream | Output stream for MPI parallel run, when we need to know which the processor number in the output line
oTstream | Output token stream
less< T > |
lessThanEqOp< T > |
lessThanOp< T > |
line |
rotatingAxis | An axis which rotates around itself at specified speed
multiRotatingAxis | Defines an axis of rotation that rotates around itself and rotates around another axis
linear< limited > |
cGAbsoluteLinear< limited >::linearProperties |
cGRelativeLinear< limited >::linearProperties |
linear< limited >::linearProperties |
list |
List< any > |
List< pFlow::iEntry * > |
List< pFlow::intervalRange > |
List< pFlow::List > |
List< pFlow::stridedRange > |
List< pFlow::Timer * > |
List< setFieldEntry > |
setFieldList |
List< std::any > |
List< subSurface > |
List< token > |
List< uint32 > |
List< word > |
List< T > |
ListPtr< T > |
ListPtr< boundaryBase > |
boundaryList |
ListPtr< boundaryContactSearch > |
boundaryContactSearchList |
ListPtr< boundaryGrainInteraction< contactForceModel, geometryMotionModel > > |
boundaryGrainInteractionList< contactForceModel, geometryMotionModel > |
ListPtr< boundaryGrainInteraction< ContactForceModel, GeometryMotionModel > > |
boundaryGrainInteractionList< ContactForceModel, GeometryMotionModel > |
ListPtr< boundaryGrainParticles > |
boundaryGrainParticlesList |
ListPtr< boundaryIntegration > |
boundaryIntegrationList |
ListPtr< boundarySphereInteraction< contactForceModel, geometryMotionModel > > |
boundarySphereInteractionList< contactForceModel, geometryMotionModel > |
ListPtr< boundarySphereInteraction< ContactForceModel, GeometryMotionModel > > |
boundarySphereInteractionList< ContactForceModel, GeometryMotionModel > |
ListPtr< boundarySphereParticles > |
boundarySphereParticlesList |
ListPtr< pFlow::InsertionRegion< ShapeType > > |
ListPtr< pFlow::processField > |
ListPtr< pFlow::Vector > |
Logical | Holds a bool value and converts strings to bool
map |
Map< pFlow::IOobject * > |
Map< pFlow::repository * > |
Map< real, fileSystem > |
Map< word, pFlow::Map > |
Map< Key, T, Compare > |
mapperNBS |
NBSLevel0 |
MapPtr< Container, Key, T > |
MapPtr< pFlow::iEntry > |
maximum< T > |
message |
minimum< T > |
multiRotatingAxisMotion::Model | Motion model class to be passed to computational units/kernels for transfing points and returning velocities at various positions
MotionModel< Model, Component >::ModelInterface | Motion model class to be passed to computational units/kernels for transfing points and returning velocities at various positions
MotionModel< Model, Component > | Motion model abstract class (CRTP) for all the motion models
MotionModel< conveyorBeltMotion, conveyorBelt > |
conveyorBeltMotion | Conveyor belt model for walls
MotionModel< rotatingAxisMotion, rotatingAxis > |
rotatingAxisMotion | Rotating axis motion model for walls
MotionModel< stationaryWall, stationary > |
stationaryWall | Stationary model for walls
MotionModel< vibratingMotion, vibrating > |
vibratingMotion | Vibrating motion model for walls
multiRotatingAxisMotion | Rotating axis motion model for walls
nonLinear< limited > |
nonLinearMod< limited > |
nonLinearMod< limited >::nonLinearProperties |
nonLinear< limited >::nonLinearProperties |
objectFile |
IOfileHeader |
IOobject |
fileDictionary |
pointField< T, MemorySpace > |
AdamsBashforth2 | Second order Adams-Bashforth integration method for solving ODE
particleIdHandler |
regularParticleIdHandler |
pointStructure |
rectangleMesh |
rectMeshField< T > |
triSurface |
multiTriSurface |
geometry | Base class for geometry for managing tri-surfaces, geometry motion, and surface physical properties
triSurfaceField< T, MemorySpace > |
pointField< pFlow::VectorSingle, pFlow::AB3History > |
pointField< pFlow::VectorSingle, pFlow::AB4History > |
pointField< pFlow::VectorSingle, pFlow::AB5History > |
pointField< real > |
pointField< realx3 > |
pointField< uint32 > |
rectMeshField< int32 > |
triSurfaceField< realx3 > |
triSurfaceField< uint32 > |
observer |
internalField< pFlow::VectorSingle, pFlow::AB3History > |
pointField< pFlow::VectorSingle, pFlow::AB3History > |
internalField< pFlow::VectorSingle, pFlow::AB4History > |
pointField< pFlow::VectorSingle, pFlow::AB4History > |
internalField< pFlow::VectorSingle, pFlow::AB5History > |
pointField< pFlow::VectorSingle, pFlow::AB5History > |
internalField< real, void > |
pointField< real > |
internalField< realx3, void > |
pointField< realx3 > |
internalField< T, void > |
pointField< T, MemorySpace > |
internalField< uint32, void > |
pointField< uint32 > |
generalBoundary |
boundaryField< T, void > |
exitBoundaryField< T, MemorySpace > |
periodicBoundaryField< T, MemorySpace > |
reflectiveBoundaryField< T, MemorySpace > |
boundaryContactSearch |
periodicBoundaryContactSearch |
boundaryField< T, MemorySpace > |
boundaryGrainInteraction< contactForceModel, geometryMotionModel > |
periodicBoundaryGrainInteraction< contactForceModel, geometryMotionModel > |
boundaryGrainParticles |
boundaryIntegration |
boundarySphereInteraction< contactForceModel, geometryMotionModel > |
periodicBoundarySphereInteraction< contactForceModel, geometryMotionModel > |
boundarySphereParticles |
interaction |
internalField< T, MemorySpace > |
particles |
triSurfaceField< T, MemorySpace > |
triSurfaceField< realx3 > |
triSurfaceField< uint32 > |
pair |
Range< T > | Range for elements in an vector [start,end)
Range< uint32 > |
sortedPairs< executionSpace, idType >::pairAccessor |
unsortedPairs< executionSpace, idType >::pairAccessor |
particleWallContactSearchs< method > |
particleWallContactSearchs< NBS > |
NBS |
peakableRegion |
PeakableRegion< GeomType > |
pLine |
pLine |
pointFlag< ExecutionSpace > |
pointFlag< DefaultExecutionSpace > |
pointFlag< DefaultHostExecutionSpace > |
pointRectCell |
pointSorting |
positionParticles |
empty |
positionOrdered |
positionRandom |
postprocess |
ppInteractionFunctor< ContactForceModel, ContactListType > |
ppInteractionFunctor< ContactForceModel, ContactListType > |
ppwBndryContactSearch |
processField |
ProcessField< T > |
processors | This class holds the information about the global execution world and number of processors in communication
localProcessors |
pStructSelector |
selectBox |
selectorGeometric< GeomType > |
selectorRandomPoints |
selectorStridedRange |
pwInteractionFunctor< ContactForceModel, ContactListType, TraingleAccessor, MotionModel > |
pwInteractionFunctor< ContactForceModel, ContactListType, TraingleAccessor, MotionModel > |
quadruple< T > |
randomReal |
RandomReal< DistributionType > |
readControlDict |
readFromTimeFolder |
repository |
systemControl |
Time |
RESERVE |
scatteredFieldAccess< T, MemorySpace > |
setFieldEntry |
shapeMixture | Defines a mixture of particles for particle insertion
span< T > |
sphere |
sphereRegion |
stationary | Stationary model for a wall
stlFile |
stridedRange< T > |
stridedRange< int32 > |
stridedRange< real > |
subDomain |
subscriber |
boundaryBase |
boundaryExit |
boundaryNone |
boundaryPeriodic |
boundaryReflective |
internalPoints |
pointStructure |
multiTriSurface |
subSurface |
symArray< T, MemorySpace > |
symArray< linearProperties > |
symArray< nonLinearProperties > |
symArray< real > |
sortedPairs< executionSpace, idType >::TagFillFlag |
sortedPairs< executionSpace, idType >::TagFillPairs |
cellsWallLevel0::TagFindCellRange2 |
sortedContactList< valueType, executionSpace, idType >::TagReFillPairs |
unsortedContactList< valueType, executionSpace, idType >::TagReFillPairs |
timeControl |
Time |
timeFolder |
timeInfo |
timeInterval |
rotatingAxis | An axis which rotates around itself at specified speed
vibrating | Vibrating model for a wall
Timer |
MPITimer |
Timers |
token | Token class based on OpenFOAM stream, with some modifications/simplifications to be tailored to our needs
triangleAccessor |
triple< T > | A set of 3 variables that can be used for vector variables
triple< int32 > |
triple< intType > |
triple< real > |
triWall |
triWall |
twoPartEntry |
uniformRandomReal |
uniformRandomUint32 |
unique_ptr |
uniquePtr< T > |
uniquePtr< ContactForceModel > |
uniquePtr< ContactListType > |
uniquePtr< pFlow::contactSearch > |
uniquePtr< pFlow::dictionary > |
uniquePtr< pFlow::fileDictionary > |
uniquePtr< pFlow::includeMask > |
uniquePtr< pFlow::integration > |
uniquePtr< pFlow::oFstream > |
uniquePtr< pFlow::particleIdHandler > |
uniquePtr< pFlow::peakableRegion > |
uniquePtr< pFlow::pointField< T > > |
uniquePtr< pFlow::pointRectCell > |
uniquePtr< pFlow::pointSorting > |
uniquePtr< pFlow::ppwBndryContactSearch > |
uniquePtr< pFlow::repository > |
uniquePtr< pFlow::shapeMixture > |
uniquePtr< pFlow::simulationDomain > |
uniquePtr< pFlow::sortedContactList > |
uniquePtr< pFlow::wallBoundaryContactSearch > |
uniquePtr< SearchMethodType > |
uniquePtr< std::ifstream > |
uniquePtr< std::ofstream > |
unordered_map |
hashMap< uint32 > |
hashMap< void * > |
hashMap< Key, T, Hash > |
unsortedPairs< executionSpace, idType > |
sortedPairs< executionSpace, idType > |
sortedContactList< valueType, executionSpace, idType > |
unsortedContactList< valueType, executionSpace, idType > |
Vector< T, Allocator > |
Vector< real > |
Vector< realx3 > |
Vector< size_t > |
Vector< uint32 > |
Vector< word > |
VectorDual< T, MemorySpace > |
VectorDual< int32 > |
VectorDual< multiRotatingAxis > |
VectorSingle< T, MemorySpace > |
VectorSingle< ModelComponent > |
VectorSingle< pFlow::VectorSingle, pFlow::AB3History > |
Field< pFlow::VectorSingle, pFlow::AB3History > |
VectorSingle< pFlow::VectorSingle, pFlow::AB4History > |
Field< pFlow::VectorSingle, pFlow::AB4History > |
VectorSingle< pFlow::VectorSingle, pFlow::AB5History > |
Field< pFlow::VectorSingle, pFlow::AB5History > |
VectorSingle< real, void > |
Field< real > |
Field< real, void > |
VectorSingle< realx3, void > |
Field< realx3 > |
Field< realx3, void > |
VectorSingle< T, void > |
Field< T, void > |
Field< T, MemorySpace > |
VectorSingle< uint32 > |
VectorSingle< uint32, HostSpace > |
VectorSingle< uint32, void > |
Field< uint32 > |
Field< uint32, void > |
VectorSingle< uint32x3, void > |
Field< uint32x3 > |
VectorSingle< word, HostSpace > |
Field< word, HostSpace > |
vtkByteSwapper< s > |
vtkByteSwapper< 1 > | With char, no re-ordering is required
vtkByteSwapper< 2 > | Re-order 2-byte data
vtkByteSwapper< 4 > | Re-order 4-byte data
vtkByteSwapper< 8 > | Re-order of 8-byte data
vtkFile |
Wall |
cuboidWall |
cylinderWall |
planeWall |
stlWall |
wallBoundaryContactSearch |
zAxis |