OpenLB 1.7
|
Super class maintaining block lattices for a cuboid decomposition. More...
#include <superLattice.h>
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 (SuperGeometry< T, DESCRIPTOR::d > &superGeometry) | |
Construct lattice for the cuboid decomposition of superGeometry. | |
SuperLattice (const SuperLattice &)=delete | |
~SuperLattice ()=default | |
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. | |
template<typename DYNAMICS > | |
void | defineDynamics (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator) |
Set dynamics of indicated cells to DYNAMICS. | |
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, Dynamics< T, DESCRIPTOR > *dynamics) |
Define the dynamics on a domain described by an indicator (legacy) | |
void | defineDynamics (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, Dynamics< T, DESCRIPTOR > *dynamics) |
Define the dynamics on a domain with a particular material number (legacy) | |
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, IndicatorF2D< T > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
Defines a field on a indicated domain. | |
template<typename FIELD > | |
void | defineField (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, IndicatorF3D< T > &indicator, AnalyticalF< DESCRIPTOR::d, T, T > &field) |
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 , Platform PLATFORM, typename FIELD > | |
void | setParameter (FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD > &fieldArray) |
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 (PostProcessorGenerator< T, DESCRIPTOR > const &ppGen) |
Add a non-local post-processing step (legacy) | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, PostProcessorGenerator< T, DESCRIPTOR > const &ppGen) |
Add a non-local post-processing step (legacy) | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, PostProcessorGenerator< T, DESCRIPTOR > const &ppGen) |
Add a non-local post-processing step (legacy) | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, PostProcessorPromise< T, DESCRIPTOR > &&promise) |
Add a non-local post-processing step (legacy) | |
template<typename STAGE = stage::PostStream> | |
void | addPostProcessor (PostProcessorPromise< T, DESCRIPTOR > &&promise) |
Add a non-local post-processing step (legacy) | |
template<typename STAGE = stage::PostStream> | |
void | executePostProcessors (STAGE stage=STAGE()) |
Executes post processors for STAGE. | |
template<typename PARTNER_DESCRIPTOR > | |
void | addLatticeCoupling (LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > partnerLattices) |
Adds a coupling generator for a vector of partner superLattice (legacy) | |
template<typename PARTNER_DESCRIPTOR > | |
void | addLatticeCoupling (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > partnerLattices) |
Adds a coupling generator for a vector of partner superLattice (legacy) | |
template<typename PARTNER_DESCRIPTOR > | |
void | addLatticeCoupling (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > partnerLattices) |
Adds a coupling generator for a vector of partner superLattice (legacy) | |
template<typename... PARTNER_DESCRIPTORS> | |
void | addLatticeCoupling (LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, PARTNER_DESCRIPTORS &... partnerLattices) |
Adds a coupling generator for a multiple partner superLattice (legacy) | |
template<typename... PARTNER_DESCRIPTORS> | |
void | addLatticeCoupling (FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > &&indicator, LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, PARTNER_DESCRIPTORS &... partnerLattices) |
Adds a coupling generator for a multiple partner superLattice (legacy) | |
template<typename... PARTNER_DESCRIPTORS> | |
void | addLatticeCoupling (SuperGeometry< T, DESCRIPTOR::d > &sGeometry, int material, LatticeCouplingGenerator< T, DESCRIPTOR > const &lcGen, PARTNER_DESCRIPTORS &... partnerLattices) |
Adds a coupling generator for a multiple partner superLattice (legacy) | |
void | executeCoupling () |
Executes coupling with partner lattices (legacy) | |
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 (CuboidGeometry< T, D > &cuboidGeometry, LoadBalancer< T > &loadBalancer, int overlap=2) | |
Construction of a super structure. | |
SuperStructure (int overlap=1) | |
Default Constructor for empty SuperStructure. | |
CuboidGeometry< T, D > & | getCuboidGeometry () |
Read and write access to cuboid geometry. | |
CuboidGeometry< T, D > const & | getCuboidGeometry () 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 > | |
CuboidGeometry< T, D > & | _cuboidGeometry |
The grid structure is stored 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 45 of file superLattice.h.
using olb::SuperLattice< T, DESCRIPTOR >::block_t = ConcretizableBlockLattice<T,DESCRIPTOR> |
Definition at line 77 of file superLattice.h.
using olb::SuperLattice< T, DESCRIPTOR >::descriptor_t = DESCRIPTOR |
Descriptor / discrete velocity set of the lattice.
Definition at line 75 of file superLattice.h.
using olb::SuperLattice< T, DESCRIPTOR >::value_t = T |
Base value type of the lattice.
Definition at line 73 of file superLattice.h.
olb::SuperLattice< T, DESCRIPTOR >::SuperLattice | ( | SuperGeometry< T, DESCRIPTOR::d > & | superGeometry | ) |
Construct lattice for the cuboid decomposition of superGeometry.
Definition at line 101 of file superLattice.hh.
References olb::SuperStructure< T, DESCRIPTOR::d >::_cuboidGeometry, 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().
|
delete |
|
default |
|
inline |
Schedules f for execution during every invocation of STAGE.
Definition at line 428 of file superLattice.h.
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, | ||
PARTNER_DESCRIPTORS &... | partnerLattices ) |
Adds a coupling generator for a multiple partner superLattice (legacy)
Definition at line 742 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, | ||
std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > | partnerLattices ) |
Adds a coupling generator for a vector of partner superLattice (legacy)
Definition at line 698 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, |
PARTNER_DESCRIPTORS &... | partnerLattices ) |
Adds a coupling generator for a multiple partner superLattice (legacy)
Definition at line 725 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, |
std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > | partnerLattices ) |
Adds a coupling generator for a vector of partner superLattice (legacy)
Definition at line 678 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
int | material, | ||
LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, | ||
PARTNER_DESCRIPTORS &... | partnerLattices ) |
Adds a coupling generator for a multiple partner superLattice (legacy)
Definition at line 756 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
void olb::SuperLattice< T, DESCRIPTOR >::addLatticeCoupling | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
int | material, | ||
LatticeCouplingGenerator< T, DESCRIPTOR > const & | lcGen, | ||
std::vector< SuperLattice< T, PARTNER_DESCRIPTOR > * > | partnerLattices ) |
Adds a coupling generator for a vector of partner superLattice (legacy)
Definition at line 715 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
PostProcessorGenerator< T, DESCRIPTOR > const & | ppGen ) |
Add a non-local post-processing step (legacy)
Definition at line 635 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator, |
PostProcessorPromise< T, DESCRIPTOR > && | promise ) |
Add a non-local post-processing step (legacy)
Definition at line 647 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | PostProcessorGenerator< T, DESCRIPTOR > const & | ppGen | ) |
Add a non-local post-processing step (legacy)
Definition at line 621 of file superLattice.hh.
References olb::LatticeStatistics< T >::reset().
void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | PostProcessorPromise< T, DESCRIPTOR > && | promise | ) |
Add a non-local post-processing step (legacy)
Definition at line 659 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::addPostProcessor | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
int | material, | ||
PostProcessorGenerator< T, DESCRIPTOR > const & | ppGen ) |
Add a non-local post-processing step (legacy)
Definition at line 669 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
void olb::SuperLattice< T, DESCRIPTOR >::collideAndStream | ( | ) |
Core implementation of a single iteration of the collide and stream loop.
Definition at line 512 of file superLattice.hh.
|
overridevirtual |
Perform full overlap communication if needed.
Reimplemented from olb::SuperStructure< T, DESCRIPTOR::d >.
Definition at line 590 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::defineDynamics | ( | FunctorPtr< SuperIndicatorF< T, DESCRIPTOR::d > > && | indicator | ) |
Set dynamics of indicated cells to DYNAMICS.
Definition at line 191 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, |
Dynamics< T, DESCRIPTOR > * | dynamics ) |
Define the dynamics on a domain described by an indicator (legacy)
Definition at line 222 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 200 of file superLattice.hh.
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 >::defineDynamics | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
int | material, | ||
Dynamics< T, DESCRIPTOR > * | dynamics ) |
Define the dynamics on a domain with a particular material number (legacy)
Definition at line 231 of file superLattice.hh.
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 366 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 336 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
IndicatorF2D< T > & | indicator, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Defines a field on a indicated domain.
Definition at line 395 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::defineField | ( | SuperGeometry< T, DESCRIPTOR::d > & | sGeometry, |
IndicatorF3D< T > & | indicator, | ||
AnalyticalF< DESCRIPTOR::d, T, T > & | field ) |
Definition at line 404 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 386 of file superLattice.hh.
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 378 of file superLattice.hh.
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 300 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 317 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 310 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
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 327 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
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 238 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 249 of file superLattice.hh.
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 277 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 292 of file superLattice.hh.
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 256 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 270 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
void olb::SuperLattice< T, DESCRIPTOR >::executeCoupling | ( | ) |
Executes coupling with partner lattices (legacy)
Definition at line 765 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::executeCustomTasks | ( | STAGE | stage = STAGE() | ) |
Executes custom tasks assigned to STAGE.
Definition at line 778 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::executePostProcessors | ( | STAGE | stage = STAGE() | ) |
Executes post processors for STAGE.
Definition at line 559 of file superLattice.hh.
References olb::gpu::cuda::device::synchronize().
|
inline |
Apply f to every ConcreteBlockLattice of PLATFORM.
Definition at line 112 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 150 of file superLattice.hh.
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 175 of file superLattice.hh.
|
inline |
Return BlockLattice with local index locC.
Definition at line 85 of file superLattice.h.
|
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 94 of file superLattice.h.
|
inline |
Return read-only BlockLattice with local index locC.
Definition at line 99 of file superLattice.h.
|
inline |
Return locC-th block lattice casted to BLOCK (read-only)
Definition at line 105 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 851 of file superLattice.hh.
SuperCommunicator< T, SuperLattice< T, DESCRIPTOR > > & olb::SuperLattice< T, DESCRIPTOR >::getCommunicator | ( | STAGE | stage | ) |
Definition at line 579 of file superLattice.hh.
SuperCommunicator< T, SuperLattice > & olb::SuperLattice< T, DESCRIPTOR >::getCommunicator | ( | STAGE | stage = STAGE() | ) |
Return communicator for given communication stage.
|
overridevirtual |
Number of data blocks for the serializable interface.
Implements olb::Serializable.
Definition at line 834 of file superLattice.hh.
|
overridevirtual |
Binary size for the serializer.
Implements olb::Serializable.
Definition at line 843 of file superLattice.hh.
LatticeStatistics< T > & olb::SuperLattice< T, DESCRIPTOR >::getStatistics | ( | ) |
Return a handle to the LatticeStatistics object.
Definition at line 608 of file superLattice.hh.
LatticeStatistics< T > const & olb::SuperLattice< T, DESCRIPTOR >::getStatistics | ( | ) | const |
Return a constant handle to the LatticeStatistics object.
Definition at line 614 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 452 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 471 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 463 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
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 482 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
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 491 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 503 of file superLattice.hh.
References olb::SuperGeometry< T, D >::getMaterialIndicator().
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 181 of file superLattice.hh.
|
overridevirtual |
Reimplemented from olb::Serializable.
Definition at line 864 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 794 of file superLattice.hh.
References olb::GPU_CUDA, and olb::isPlatformCPU().
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 811 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 787 of file superLattice.hh.
References olb::singleton::pool(), and olb::ThreadPool::schedule().
void olb::SuperLattice< T, DESCRIPTOR >::setParameter | ( | FieldArrayD< T, DESCRIPTOR, PLATFORM, FIELD > & | fieldArray | ) |
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 439 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 413 of file superLattice.hh.
void olb::SuperLattice< T, DESCRIPTOR >::setParameterOfDynamics | ( | FieldD< T, DESCRIPTOR, PARAMETER > && | field | ) |
Update PARAMETER in DYNAMICS.
Definition at line 422 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 124 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer, olb::SuperLattice< T, DESCRIPTOR >::communicate(), and olb::Evaluation.
|
inline |
Set processing context of FIELD_TYPE in block lattices.
Used to sync data between device and host
Definition at line 141 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 354 of file superLattice.h.
References olb::SuperStructure< T, DESCRIPTOR::d >::_loadBalancer.
|
inline |
Switch Statistics on (default on)
Definition at line 343 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 599 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 825 of file superLattice.hh.
References olb::singleton::pool(), and olb::ThreadPool::waitFor().
|
staticconstexpr |
Definition at line 70 of file superLattice.h.