OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD > Class Template Referencefinal

#include <superFieldArrayD.h>

+ Inheritance diagram for olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD >:
+ Collaboration diagram for olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD >:

Public Member Functions

 SuperFieldArrayD (CuboidGeometry< T, DESCRIPTOR::d > &cGeometry, LoadBalancer< T > &loadBalancer)
 
AbstractFieldArrayD< T, DESCRIPTOR, FIELD > & getBlock (int iC)
 
- 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.
 
virtual void communicate ()
 
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)
 

Additional Inherited Members

- Public Types inherited from olb::SuperStructure< T, DESCRIPTOR::d >
using value_t
 
- 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
 

Detailed Description

template<typename T, typename DESCRIPTOR, typename FIELD>
class olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD >

Definition at line 30 of file superFieldArrayD.h.

Constructor & Destructor Documentation

◆ SuperFieldArrayD()

template<typename T , typename DESCRIPTOR , typename FIELD >
olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD >::SuperFieldArrayD ( CuboidGeometry< T, DESCRIPTOR::d > & cGeometry,
LoadBalancer< T > & loadBalancer )
inline

Definition at line 35 of file superFieldArrayD.h.

36 :
37 SuperStructure<T,DESCRIPTOR::d>(cGeometry, loadBalancer, 0)
38 {
39 auto& load = this->getLoadBalancer();
40 for (int iC = 0; iC < load.size(); ++iC) {
41 _block.emplace_back(
42 constructUsingConcretePlatform<ConcretizableFieldArrayD<T,DESCRIPTOR,FIELD>>(
43 load.platform(iC), 0));
44 }
45 }
LoadBalancer< T > & getLoadBalancer()
Read and write access to the load balancer.
CONCRETIZABLE::base_t * constructUsingConcretePlatform(Platform platform, ARGS &&... args)
Definition platform.h:133

References olb::constructUsingConcretePlatform(), and olb::SuperStructure< T, DESCRIPTOR::d >::getLoadBalancer().

+ Here is the call graph for this function:

Member Function Documentation

◆ getBlock()

template<typename T , typename DESCRIPTOR , typename FIELD >
AbstractFieldArrayD< T, DESCRIPTOR, FIELD > & olb::SuperFieldArrayD< T, DESCRIPTOR, FIELD >::getBlock ( int iC)
inline

Definition at line 47 of file superFieldArrayD.h.

47 {
48 auto& load = this->getLoadBalancer();
49 return *callUsingConcretePlatform<ConcretizableFieldArrayD<T,DESCRIPTOR,FIELD>>(
50 load.platform(iC),
51 _block[iC].get(),
52 [&](auto* field) -> auto* {
53 return &(field->asAbstract());
54 });
55 }
std::enable_if_t< DESCRIPTOR::d==2, std::shared_ptr< SuperF2D< T > > > field(SuperLattice< T, DESCRIPTOR > &sLattice)
Returns external field functor.

References olb::SuperStructure< T, DESCRIPTOR::d >::getLoadBalancer().

+ Here is the call graph for this function:

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