![]() |
OpenLB 1.8.1
|
Super class maintaining block lattices for a cuboid decomposition. More...
#include <superLattice.h>
Inheritance diagram for olb::SuperLattice< T, DESCRIPTOR >:
Collaboration diagram for olb::SuperLattice< T, DESCRIPTOR >:Public Types | |
| using | value_t = T |
| Base value type of the lattice. | |
| using | descriptor_t = DESCRIPTOR |
| Descriptor / discrete velocity set of the lattice. | |
| using | block_t = ConcretizableBlockLattice<T,DESCRIPTOR> |
Public Types inherited from olb::SuperStructure< T, DESCRIPTOR::d > | |
| using | value_t |
Public Member Functions | |
| SuperLattice (CuboidDecomposition< T, DESCRIPTOR::d > &cuboidDecomposition, LoadBalancer< T > &loadBalancer, unsigned overlap=3) | |
| SuperLattice (CuboidDecomposition< T, DESCRIPTOR::d > &cuboidDecomposition, LoadBalancer< T > &loadBalancer, unsigned overlap, const UnitConverter< T, DESCRIPTOR > &converter) | |
| SuperLattice (SuperGeometry< T, DESCRIPTOR::d > &sGeometry) | |
| SuperLattice (const SuperLattice &)=delete | |
| ~SuperLattice ()=default | |
| const UnitConverter< T, DESCRIPTOR > & | getConverter () const |
| BlockLattice< T, DESCRIPTOR > & | getBlock (int locC) |
| Return BlockLattice with local index locC. | |
| template<typename BLOCK > | |
| BLOCK & | getBlock (int locC) |
| Return locC-th block lattice casted to BLOCK. | |
| const BlockLattice< T, DESCRIPTOR > & | getBlock (int locC) const |
| Return read-only BlockLattice with local index locC. | |
| template<typename BLOCK > | |
| const BLOCK & | getBlock (int locIC) const |
| Return locC-th block lattice casted to BLOCK (read-only) | |
| template<Platform PLATFORM, typename F > | |
| void | forBlocksOnPlatform (F f) |
| Apply f to every ConcreteBlockLattice of PLATFORM. | |
| void | setProcessingContext (ProcessingContext context) |
| Set processing context of block lattices. | |
| template<typename FIELD_TYPE > | |
| void | setProcessingContext (ProcessingContext context) |
| Set processing context of FIELD_TYPE in block lattices. | |
| template<typename STAGE > | |
| SuperCommunicator< T, SuperLattice > & | getCommunicator (STAGE stage=STAGE()) |
| Return communicator for given communication stage. | |
| void | communicate () override |
| Perform full overlap communication if needed. | |
| LatticeStatistics< T > & | getStatistics () |
| Return a handle to the LatticeStatistics object. | |
| LatticeStatistics< T > const & | getStatistics () const |
| Return a constant handle to the LatticeStatistics object. | |
| Cell< T, DESCRIPTOR > | get (LatticeR< DESCRIPTOR::d+1 > latticeR) |
| Get local cell interface. | |
| template<typename... R> | |
| std::enable_if_t< sizeof...(R)==DESCRIPTOR::d+1, Cell< T, DESCRIPTOR > > | get (R... latticeR) |
| Get local cell interface. | |
| void | initialize () |
| Initialize lattice to be ready for simulation. | |
| void | printSummary () const |
| Prints a summary of all dynamics and post processors. | |
| void | writeSummary (std::string fileName="lattice") const |
| Writes a summary of all dynamics and post processors. | |
| template<typename DYNAMICS > | |
| void | defineDynamics () |
| Set dynamics of all cells to DYNAMICS. | |
| template<template< typename... > typename DYNAMICS> | |
| void | defineDynamics () |
| Set dynamics of all cells to DYNAMICS. | |
| template<typename DYNAMICS > | |
| void | defineDynamics (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator) |
| template<typename DYNAMICS > | |
| void | defineDynamics (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material) |
| Set dynamics of material cells to DYNAMICS. | |
| template<template< typename... > typename DYNAMICS> | |
| void | defineDynamics (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator) |
| Set dynamics of indicated cells to DYNAMICS<T,DESCRIPTOR> | |
| template<template< typename... > typename DYNAMICS> | |
| void | defineDynamics (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material) |
| Set dynamics of indicated cells to DYNAMICS<T,DESCRIPTOR> | |
| void | defineDynamics (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, DynamicsPromise< T, DESCRIPTOR > &&promise) |
| void | defineRho (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&, AnalyticalF< DESCRIPTOR::d, T, T > &rho) |
| Define rho on a domain described by an indicator. | |
| void | defineRho (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &rho) |
| Define rho on a domain with a particular material number. | |
| void | defineU (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Define u on a domain described by an indicator. | |
| void | defineU (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Define u on a domain with a particular material number. | |
| void | defineRhoU (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Define rho and u on a domain described by an indicator. | |
| void | defineRhoU (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Define rho and u on a domain with a particular material number. | |
| void | definePopulations (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &Pop) |
| Define a population on a domain described by an indicator. | |
| void | definePopulations (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &Pop) |
| Define a population on a domain with a particular material number. | |
| void | definePopulations (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, SuperF< DESCRIPTOR::d, T, T > &Pop) |
| void | definePopulations (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, SuperF< DESCRIPTOR::d, T, T > &Pop) |
| Define a population on a domain with a particular material number. | |
| template<typename FIELD > | |
| void | defineField (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > &&field) |
| Define an external field on a domain described by an indicator. | |
| template<typename FIELD > | |
| void | defineField (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
| Defines a field on a domain described by an indicator. | |
| template<typename FIELD > | |
| void | defineField (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > &&field) |
| Define an external field on a domain with a particular material number. | |
| template<typename FIELD > | |
| void | defineField (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
| Defines a field on a domain with a particular material number. | |
| template<typename FIELD > | |
| void | defineField (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, IndicatorF< T, DESCRIPTOR::d > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
| Defines a field on a indicated domain. | |
| template<typename FIELD > | |
| void | defineField (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, IndicatorF< T, DESCRIPTOR::d > &indicator, FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > &&field) |
| Defines a field on a indicated domain. | |
| template<typename PARAMETER > | |
| void | setParameter (FieldD< T, DESCRIPTOR, PARAMETER > field) |
| Update PARAMETER in all dynamics and post processors. | |
| template<typename PARAMETER , typename DYNAMICS > | |
| void | setParameterOfDynamics (FieldD< T, DESCRIPTOR, PARAMETER > &&field) |
| Update PARAMETER in DYNAMICS. | |
| template<typename PARAMETER , template< typename... > typename DYNAMICS> | |
| void | setParameterOfDynamics (FieldD< T, DESCRIPTOR, PARAMETER > &&field) |
| Update PARAMETER in DYNAMICS<T,DESCRIPTOR> | |
| template<typename PARAMETER , typename _DESCRIPTOR , typename FIELD > | |
| void | setParameter (AbstractFieldArrayD< T, _DESCRIPTOR, FIELD > &abstractFieldArray) |
| Set PARAMETER to column pointers of given field array. | |
| void | iniEquilibrium (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Initialize by equilibrium on a domain described by an indicator. | |
| void | iniEquilibrium (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u) |
| Initialize by equilibrium on a domain with a particular material number. | |
| void | iniEquilibrium (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, SuperF< DESCRIPTOR::d, T, T > &u) |
| void | iniEquilibrium (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &rho, SuperF< DESCRIPTOR::d, T, T > &u) |
| void | iniRegularized (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u, AnalyticalF< DESCRIPTOR::d, T, T > &pi) |
| Initialize by non- and equilibrium on a domain described by an indicator. | |
| void | iniRegularized (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, AnalyticalF< DESCRIPTOR::d, T, T > &rho, AnalyticalF< DESCRIPTOR::d, T, T > &u, AnalyticalF< DESCRIPTOR::d, T, T > &pi) |
| Initialize by non- and equilibrium on a domain with a particular material number. | |
| void | collideAndStream () |
| Core implementation of a single iteration of the collide and stream loop. | |
| void | stripeOffDensityOffset (T offset) |
| Subtract constant offset from the density. | |
| void | statisticsOn () |
| Switch Statistics on (default on) | |
| void | statisticsOff () |
| Switch Statistics off (default on) | |
| template<typename STAGE = stage::PostStream> | |
| void | addPostProcessor (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, PostProcessorPromise< T, DESCRIPTOR > &&promise) |
| Add a non-local post-processing step. | |
| template<typename STAGE = stage::PostStream> | |
| void | addPostProcessor (PostProcessorPromise< T, DESCRIPTOR > &&promise) |
| Add a non-local post-processing step. | |
| template<typename STAGE = stage::PostStream> | |
| void | executePostProcessors (STAGE stage=STAGE()) |
| Executes post processors for STAGE. | |
| template<typename STAGE > | |
| void | addCustomTask (std::function< void()> f) |
| Schedules f for execution during every invocation of STAGE. | |
| template<typename STAGE > | |
| void | executeCustomTasks (STAGE stage=STAGE()) |
| Executes custom tasks assigned to STAGE. | |
| template<typename STAGE , typename F > | |
| void | scheduleBackgroundTask (F &&f) |
| Schedule F for one-off background execution to be finished by STAGE. | |
| template<typename F > | |
| void | scheduleBackgroundOutput (F &&f) |
| Schedule F(iC) for one-off background output of block data. | |
| template<typename CONTEXT > | |
| void | scheduleBackgroundOutputVTK (CONTEXT &&vtkContext) |
| Schedule one-off background output of given VTK CONTEXT. | |
| template<typename STAGE > | |
| void | waitForBackgroundTasks (STAGE stage=STAGE{}) |
| Block until all background tasks scheduled for STAGE are completed. | |
| std::size_t | getNblock () const override |
| Number of data blocks for the serializable interface. | |
| std::size_t | getSerializableSize () const override |
| Binary size for the serializer. | |
| bool * | getBlock (std::size_t iBlock, std::size_t &sizeBlock, bool loadingMode) override |
| Return a pointer to the memory of the current block and its size for the serializable interface. | |
| void | postLoad () override |
| template<typename STAGE > | |
| SuperCommunicator< T, SuperLattice< T, DESCRIPTOR > > & | getCommunicator (STAGE stage) |
Public Member Functions inherited from olb::SuperStructure< T, DESCRIPTOR::d > | |
| virtual | ~SuperStructure () |
| Virtual Destructor for inheritance. | |
| SuperStructure (CuboidDecomposition< T, D > &cuboidDecomposition, LoadBalancer< T > &loadBalancer, int overlap=2) | |
| Construction of a super structure. | |
| CuboidDecomposition< T, D > & | getCuboidDecomposition () |
| Read and write access to cuboid geometry. | |
| const CuboidDecomposition< T, D > & | getCuboidDecomposition () const |
| Read only access to cuboid geometry. | |
| int | getOverlap () |
| Read and write access to the overlap. | |
| int | getOverlap () const |
| Read only access to the overlap. | |
| LoadBalancer< T > & | getLoadBalancer () |
| Read and write access to the load balancer. | |
| LoadBalancer< T > const & | getLoadBalancer () const |
| Read only access to the load balancer. | |
| void | forCorePhysLocations (F f) const |
| Iterate over discrete physical locations. | |
| void | forCorePhysLocations (PhysR< T, D > min, PhysR< T, D > max, F f) const |
| Iterate over discrete physical locations between min and max. | |
| void | forCoreSpatialLocations (F f) const |
| Iterate over spatial locations NOTE: Based on physical locations (as opposed to its blockStructure version) | |
| void | forCoreSpatialLocations (PhysR< T, D > min, PhysR< T, D > max, F f) const |
| Iterate over spatial locations between min and max NOTE: Based on physical locations (as opposed to its blockStructure version) | |
Public Member Functions inherited from olb::Serializable | |
| virtual | ~Serializable ()=default |
| template<bool includeLogOutputDir = true> | |
| bool | save (std::string fileName="", const bool enforceUint=false) |
Save Serializable into file fileName | |
| template<bool includeLogOutputDir = true> | |
| bool | load (std::string fileName="", const bool enforceUint=false) |
Load Serializable from file fileName | |
| bool | save (std::uint8_t *buffer) |
Save Serializable into buffer of length getSerializableSize | |
| bool | load (const std::uint8_t *buffer) |
Load Serializable from buffer of length getSerializableSize | |
Static Public Attributes | |
| static constexpr unsigned | d = DESCRIPTOR::d |
Additional Inherited Members | |
Protected Member Functions inherited from olb::BufferSerializable | |
| template<typename DataType > | |
| void | registerSerializable (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, DataType &data, const bool loadingMode=false) |
Register Serializable object of dynamic size. | |
| template<typename DataType > | |
| void | registerStdVectorOfVars (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, std::vector< DataType > &data, const bool loadingMode=false) |
Method for registering a std::vector<DataType> of primitive DataType (int, double, ...) | |
| template<typename DataType > | |
| void | registerStdVectorOfSerializablesOfConstSize (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, std::vector< DataType > &data, const bool loadingMode=false) |
Method for registering a std::vector<DataType> of constant-sized Serializable | |
| template<typename DataType > | |
| void | registerStdVectorOfSerializables (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, std::vector< DataType > &data, const bool loadingMode=false) |
Method for registering a std::vector<DataType> of dynamic-sized DataType | |
| template<typename DataTypeKey , typename DataTypeValue > | |
| void | registerMap (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, std::map< DataTypeKey, DataTypeValue > &data, const bool loadingMode=false) |
Method for registering a std::map<DataTypeKey, DataTypeValue> of fixed-sized types (i.e. int, double) | |
| size_t | addSizeToBuffer (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, size_t &sizeBufferIndex, bool *&dataPtr, const size_t data) const |
Add a size_t to the sizeBuffer in the n-th util::round and return that size_t in all successive rounds. | |
Protected Member Functions inherited from olb::Serializable | |
| template<typename DataType > | |
| void | registerVar (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, const DataType &data, const size_t arrayLength=1) const |
Register primitive data types (int, double, ...) or arrays of those. | |
| template<typename DataType > | |
| void | registerSerializableOfConstSize (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, DataType &data, const bool loadingMode=false) |
Register Serializable object of constant size. | |
| template<typename DataType > | |
| void | registerSerializablesOfConstSize (const std::size_t iBlock, std::size_t &sizeBlock, std::size_t ¤tBlock, bool *&dataPtr, DataType *data, const size_t arrayLength, const bool loadingMode=false) |
Register an array of Serializable objects of constant size. | |
Protected Attributes inherited from olb::SuperStructure< T, DESCRIPTOR::d > | |
| CuboidDecomposition< T, D > & | _cuboidDecomposition |
| The grid structure is referenced here. | |
| LoadBalancer< T > & | _loadBalancer |
| Distribution of the cuboids of the cuboid structure. | |
| int | _overlap |
| Size of ghost cell layer (must be greater than 1 and greater_overlapBC, default =1) | |
| OstreamManager | clout |
| class specific output stream | |
Protected Attributes inherited from olb::BufferSerializable | |
| std::vector< bool * > | _dataBuffer |
Data buffer for data that has to be buffered between two getBlock() iterations. | |
| std::vector< size_t > | _sizeBuffer |
std::vector of integer buffers (e.g. for std::vector size) to be buffered for the whole iteration process | |
Super class maintaining block lattices for a cuboid decomposition.
Definition at line 47 of file superBaseF3D.h.
| using olb::SuperLattice< T, DESCRIPTOR >::block_t = ConcretizableBlockLattice<T,DESCRIPTOR> |
Definition at line 82 of file superLattice.h.
| using olb::SuperLattice< T, DESCRIPTOR >::descriptor_t = DESCRIPTOR |
Descriptor / discrete velocity set of the lattice.
Definition at line 80 of file superLattice.h.
| using olb::SuperLattice< T, DESCRIPTOR >::value_t = T |
Base value type of the lattice.
Definition at line 78 of file superLattice.h.
| olb::SuperLattice< T, DESCRIPTOR >::SuperLattice | ( | CuboidDecomposition< T, DESCRIPTOR::d > & | cuboidDecomposition, |
| LoadBalancer< T > & | loadBalancer, | ||
| unsigned | overlap = 3 ) |
Definition at line 109 of file superLattice.hh.
References olb::SuperStructure< T, DESCRIPTOR::d >::_cuboidDecomposition, olb::constructUsingConcretePlatform(), olb::SuperLattice< T, DESCRIPTOR >::getCommunicator(), olb::gpu::cuda::device::getCount(), olb::SuperStructure< T, DESCRIPTOR::d >::getLoadBalancer(), olb::SuperStructure< T, DESCRIPTOR::d >::getOverlap(), olb::singleton::MpiManager::getRank(), olb::GPU_CUDA, olb::Serializable::load(), and olb::singleton::mpi().
Here is the call graph for this function:
|
inline |
Definition at line 88 of file superLattice.h.
|
inline |
Definition at line 97 of file superLattice.h.
|
delete |
|
default |
|
inline |
Schedules f for execution during every invocation of STAGE.
Definition at line 423 of file superLattice.h.
| void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| PostProcessorPromise< T, DESCRIPTOR > && | promise ) |
Add a non-local post-processing step.
Definition at line 729 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | PostProcessorPromise< T, DESCRIPTOR > && | promise | ) |
Add a non-local post-processing step.
Definition at line 741 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::collideAndStream | ( | ) |
Core implementation of a single iteration of the collide and stream loop.
Definition at line 602 of file superLattice.hh.
References olb::initialize().
Here is the call graph for this function:
|
overridevirtual |
Perform full overlap communication if needed.
Reimplemented from olb::SuperStructure< T, DESCRIPTOR::d >.
Definition at line 698 of file superLattice.hh.
Here is the caller graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | ) |
Set dynamics of all cells to DYNAMICS.
Definition at line 261 of file superLattice.hh.
Here is the caller graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | ) |
Set dynamics of all cells to DYNAMICS.
| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator | ) |
Definition at line 279 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator | ) |
Set dynamics of indicated cells to DYNAMICS<T,DESCRIPTOR>
| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| DynamicsPromise< T, DESCRIPTOR > && | promise ) |
Definition at line 310 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material ) |
Set dynamics of material cells to DYNAMICS.
Definition at line 288 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material ) |
Set dynamics of indicated cells to DYNAMICS<T,DESCRIPTOR>
| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Defines a field on a domain described by an indicator.
Definition at line 448 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > && | field ) |
Define an external field on a domain described by an indicator.
Definition at line 418 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| IndicatorF< T, DESCRIPTOR::d > & | indicator, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Defines a field on a indicated domain.
Definition at line 477 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| IndicatorF< T, DESCRIPTOR::d > & | indicator, | ||
| FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > && | field ) |
Defines a field on a indicated domain.
Definition at line 487 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Defines a field on a domain with a particular material number.
Definition at line 468 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| FunctorPtr< SuperF< DESCRIPTOR::d, T, T > > && | field ) |
Define an external field on a domain with a particular material number.
Definition at line 460 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::definePopulations | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | Pop ) |
Define a population on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| Pop | Analytical functor, target dimension DESCRIPTOR::q |
Definition at line 382 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::definePopulations | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| SuperF< DESCRIPTOR::d, T, T > & | Pop ) |
| indicator | Indicator describing the target domain |
| Pop | Super functor, target dimension DESCRIPTOR::q |
Definition at line 399 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::definePopulations | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | Pop ) |
Define a population on a domain with a particular material number.
Definition at line 392 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::definePopulations | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| SuperF< DESCRIPTOR::d, T, T > & | Pop ) |
Define a population on a domain with a particular material number.
Definition at line 409 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineRho | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho ) |
Define rho on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| rho | Analytical functor |
Definition at line 320 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineRho | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho ) |
Define rho on a domain with a particular material number.
Definition at line 331 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineRhoU | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define rho and u on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| rho | Analytical functor |
| u | Analytical functor |
Definition at line 359 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineRhoU | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define rho and u on a domain with a particular material number.
Definition at line 374 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::defineU | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define u on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| u | Analytical functor |
Definition at line 338 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::defineU | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Define u on a domain with a particular material number.
Definition at line 352 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::executeCustomTasks | ( | STAGE | stage = STAGE() | ) |
Executes custom tasks assigned to STAGE.
Definition at line 751 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::executePostProcessors | ( | STAGE | stage = STAGE() | ) |
Executes post processors for STAGE.
Definition at line 667 of file superLattice.hh.
References olb::gpu::cuda::device::synchronize().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Apply f to every ConcreteBlockLattice of PLATFORM.
Definition at line 142 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer.
| Cell< T, DESCRIPTOR > olb::SuperLattice< T, DESCRIPTOR >::get | ( | LatticeR< DESCRIPTOR::d+1 > | latticeR | ) |
Get local cell interface.
Definition at line 160 of file superLattice.hh.
Here is the caller graph for this function:| std::enable_if_t< sizeof...(R)==DESCRIPTOR::d+1, Cell< T, DESCRIPTOR > > olb::SuperLattice< T, DESCRIPTOR >::get | ( | R... | latticeR | ) |
Get local cell interface.
Definition at line 185 of file superLattice.hh.
|
inline |
Return BlockLattice with local index locC.
Definition at line 115 of file superLattice.h.
Here is the caller graph for this function:
|
inline |
Return locC-th block lattice casted to BLOCK.
Only safe to use under external knownledge that the locC-th block is of type BLOCK
Definition at line 124 of file superLattice.h.
|
inline |
Return read-only BlockLattice with local index locC.
Definition at line 129 of file superLattice.h.
|
inline |
Return locC-th block lattice casted to BLOCK (read-only)
Definition at line 135 of file superLattice.h.
|
overridevirtual |
Return a pointer to the memory of the current block and its size for the serializable interface.
Implements olb::Serializable.
Definition at line 824 of file superLattice.hh.
| SuperCommunicator< T, SuperLattice< T, DESCRIPTOR > > & olb::SuperLattice< T, DESCRIPTOR >::getCommunicator | ( | STAGE | stage | ) |
Definition at line 687 of file superLattice.hh.
| SuperCommunicator< T, SuperLattice > & olb::SuperLattice< T, DESCRIPTOR >::getCommunicator | ( | STAGE | stage = STAGE() | ) |
Return communicator for given communication stage.
Here is the caller graph for this function:
|
inline |
Definition at line 106 of file superLattice.h.
Here is the caller graph for this function:
|
overridevirtual |
Number of data blocks for the serializable interface.
Implements olb::Serializable.
Definition at line 807 of file superLattice.hh.
|
overridevirtual |
Binary size for the serializer.
Implements olb::Serializable.
Definition at line 816 of file superLattice.hh.
| LatticeStatistics< T > & olb::SuperLattice< T, DESCRIPTOR >::getStatistics | ( | ) |
Return a handle to the LatticeStatistics object.
Definition at line 716 of file superLattice.hh.
| LatticeStatistics< T > const & olb::SuperLattice< T, DESCRIPTOR >::getStatistics | ( | ) | const |
Return a constant handle to the LatticeStatistics object.
Definition at line 722 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::iniEquilibrium | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Initialize by equilibrium on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| rho | Analytical functor (global) |
| u | Analytical functor (global) |
Definition at line 542 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::iniEquilibrium | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| SuperF< DESCRIPTOR::d, T, T > & | u ) |
Definition at line 561 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::iniEquilibrium | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u ) |
Initialize by equilibrium on a domain with a particular material number.
Definition at line 553 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::iniEquilibrium | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| SuperF< DESCRIPTOR::d, T, T > & | u ) |
Definition at line 572 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::iniRegularized | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | pi ) |
Initialize by non- and equilibrium on a domain described by an indicator.
| indicator | Indicator describing the target domain |
| rho | Analytical functor (global) |
| u | Analytical functor (global) |
| pi | Analytical functor (global) |
Definition at line 581 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::iniRegularized | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
| int | material, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | rho, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | u, | ||
| AnalyticalF< DESCRIPTOR::d, T, T > & | pi ) |
Initialize by non- and equilibrium on a domain with a particular material number.
Definition at line 593 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::initialize | ( | ) |
Initialize lattice to be ready for simulation.
Calls default post processors (PostStream) once and switches processing context to simulation.
Definition at line 191 of file superLattice.hh.
Here is the caller graph for this function:
|
overridevirtual |
Reimplemented from olb::Serializable.
Definition at line 837 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::printSummary | ( | ) | const |
Prints a summary of all dynamics and post processors.
For brevity only of the first block of the root process
Definition at line 207 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::scheduleBackgroundOutput | ( | F && | f | ) |
Schedule F(iC) for one-off background output of block data.
Definition at line 767 of file superLattice.hh.
References olb::GPU_CUDA, and olb::isPlatformCPU().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::scheduleBackgroundOutputVTK | ( | CONTEXT && | vtkContext | ) |
Schedule one-off background output of given VTK CONTEXT.
CONTEXT must accept tasks as a callable task for which it provides SuperVTMwriter(2,3)D and iT arguments.
Definition at line 784 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::scheduleBackgroundTask | ( | F && | f | ) |
Schedule F for one-off background execution to be finished by STAGE.
Definition at line 760 of file superLattice.hh.
References olb::singleton::pool().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::setParameter | ( | AbstractFieldArrayD< T, _DESCRIPTOR, FIELD > & | abstractFieldArray | ) |
Set PARAMETER to column pointers of given field array.
PARAMETER must store size(FIELD) pointers to the value type of FIELD.
Useful for providing dynamically sized field arrays as parameters to certain post processors.
Definition at line 527 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::setParameter | ( | FieldD< T, DESCRIPTOR, PARAMETER > | field | ) |
Update PARAMETER in all dynamics and post processors.
e.g. SuperLattice::setParameter<OMEGA>(0.6) sets the parameter OMEGA to 0.6 in all operators that declare it as one of their parameters.
Definition at line 497 of file superLattice.hh.
References olb::fields::name().
Here is the call graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::setParameterOfDynamics | ( | FieldD< T, DESCRIPTOR, PARAMETER > && | field | ) |
Update PARAMETER in DYNAMICS.
Definition at line 510 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::setParameterOfDynamics | ( | FieldD< T, DESCRIPTOR, PARAMETER > && | field | ) |
Update PARAMETER in DYNAMICS<T,DESCRIPTOR>
|
inline |
Set processing context of block lattices.
Used to sync data between device and host
Definition at line 154 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer, olb::SuperLattice< T, DESCRIPTOR >::communicate(), olb::Evaluation, and olb::SuperLattice< T, DESCRIPTOR >::waitForBackgroundTasks().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
Set processing context of FIELD_TYPE in block lattices.
Used to sync data between device and host
Definition at line 171 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer.
|
inline |
Switch Statistics off (default on)
This speeds up the execution time
Definition at line 397 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer.
|
inline |
Switch Statistics on (default on)
Definition at line 386 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer.
| void olb::SuperLattice< T, DESCRIPTOR >::stripeOffDensityOffset | ( | T | offset | ) |
Subtract constant offset from the density.
Definition at line 707 of file superLattice.hh.
| void olb::SuperLattice< T, DESCRIPTOR >::waitForBackgroundTasks | ( | STAGE | stage = STAGE{} | ) |
Block until all background tasks scheduled for STAGE are completed.
Definition at line 798 of file superLattice.hh.
References olb::singleton::pool(), and olb::ThreadPool::waitFor().
Here is the call graph for this function:
Here is the caller graph for this function:| void olb::SuperLattice< T, DESCRIPTOR >::writeSummary | ( | std::string | fileName = "lattice" | ) | const |
Writes a summary of all dynamics and post processors.
Definition at line 213 of file superLattice.hh.
|
staticconstexpr |
Definition at line 75 of file superLattice.h.