waLBerla 7.2
|
Classes | |
class | BoxFractionMappingSweep |
struct | ParticleAndVolumeFractionSoA_T |
class | PSMSweepCollection |
class | ReduceParticleForcesSweep |
class | SetParticleVelocitiesSweep |
class | SphereFractionMappingSweep |
Typedefs | |
using | nOverlappingParticlesField_T = GhostLayerField< uint_t, 1 > |
using | BsField_T = GhostLayerField< real_t, MaxParticlesPerCell > |
using | idxField_T = GhostLayerField< size_t, MaxParticlesPerCell > |
using | BField_T = GhostLayerField< real_t, 1 > |
using | particleVelocitiesField_T = GhostLayerField< real_t, MaxParticlesPerCell * 3 > |
using | particleForcesField_T = GhostLayerField< real_t, MaxParticlesPerCell * 3 > |
Functions | |
template<int Weighting_T> | |
__global__ void | superSampling (walberla::gpu::FieldAccessor< uint_t > nOverlappingParticlesField, walberla::gpu::FieldAccessor< real_t > BsField, walberla::gpu::FieldAccessor< id_t > idxField, walberla::gpu::FieldAccessor< real_t > BField, const real_t omega, const real_t *__restrict__ const spherePositions, const real_t *__restrict__ const sphereRadii, const double3 blockStart, const real_t dx, const int3 nSamples, const size_t *__restrict__ const numParticlesSubBlocks, const size_t *__restrict__ const particleIDsSubBlocks, const uint3 subBlocksPerDim) |
template<int Weighting_T> | |
__global__ void | linearApproximation (walberla::gpu::FieldAccessor< uint_t > nOverlappingParticlesField, walberla::gpu::FieldAccessor< real_t > BsField, walberla::gpu::FieldAccessor< id_t > idxField, walberla::gpu::FieldAccessor< real_t > BField, const real_t omega, const real_t *__restrict__ const spherePositions, const real_t *__restrict__ const sphereRadii, const real_t *__restrict__ const f_rs, const double3 blockStart, const real_t dx, const size_t *__restrict__ const numParticlesSubBlocks, const size_t *__restrict__ const particleIDsSubBlocks, const uint3 subBlocksPerDim) |
template<int Weighting_T> | |
__global__ void | boxMapping (walberla::gpu::FieldAccessor< uint_t > nOverlappingParticlesField, walberla::gpu::FieldAccessor< real_t > BsField, walberla::gpu::FieldAccessor< id_t > idxField, walberla::gpu::FieldAccessor< real_t > BField, const real_t omega, const double3 boxPositionMin, const double3 boxPositionMax, const double3 blockStart, const real_t dx, const id_t idxMapped) |
template<int Weighting_T> | |
void | calculateWeighting (real_t *const, const real_t &, const real_t &) |
template<> | |
void | calculateWeighting< 1 > (real_t *const weighting, const real_t &epsilon, const real_t &) |
template<> | |
void | calculateWeighting< 2 > (real_t *const weighting, const real_t &epsilon, const real_t &tau) |
template<int Weighting_T> | |
void | mapParticles (IBlock &blockIt, const ParticleAndVolumeFractionSoA_T< Weighting_T > &particleAndVolumeFractionSoA, const real_t *const spherePositions, const real_t *const sphereRadii, const real_t *const f_rs, const size_t *const numParticlesSubBlocks, const size_t *const particleIDsSubBlocks, const Vector3< uint_t > subBlocksPerDim) |
template<int Weighting_T> | |
void | mapParticles (const IBlock &blockIt, const ParticleAndVolumeFractionSoA_T< Weighting_T > &particleAndVolumeFractionSoA, const real_t *const spherePositions, const real_t *const sphereRadii, const real_t *const f_rs, const size_t *const numParticlesSubBlocks, const size_t *const particleIDsSubBlocks, const Vector3< uint_t > subBlocksPerDim) |
template<typename SweepCollection , typename PSMSweep > | |
void | addPSMSweepsToTimeloop (SweepTimeloop &timeloop, SweepCollection &psmSweepCollection, PSMSweep &psmSweep, bool synchronize=true) |
template<typename SweepCollection , typename PSMSweep , typename Communication > | |
void | addPSMSweepsToTimeloops (SweepTimeloop &commTimeloop, SweepTimeloop &timeloop, Communication &comm, SweepCollection &psmSweepCollection, PSMSweep &psmSweep, bool synchronize=true) |
__device__ void | cross (real_t *__restrict__ const crossResult, const real_t *__restrict__ const lhs, const real_t *__restrict__ const rhs) |
__device__ void | getVelocityAtWFPoint (real_t *__restrict__ const velocityAtWFPoint, const real_t *__restrict__ const linearVelocity, const real_t *__restrict__ const angularVelocity, const real_t *__restrict__ const position, const real_t *__restrict__ const wf_pt) |
__device__ void | addHydrodynamicForceTorqueAtWFPosAtomic (real_t *__restrict__ const particleForce, real_t *__restrict__ const particleTorque, const real_t *__restrict__ const f, const real_t *__restrict__ const pos, const real_t *__restrict__ const wf_pt) |
__global__ void | SetParticleVelocities (walberla::gpu::FieldAccessor< uint_t > nOverlappingParticlesField, walberla::gpu::FieldAccessor< uint_t > idxField, walberla::gpu::FieldAccessor< real_t > particleVelocitiesField, real_t *__restrict__ const linearVelocities, real_t *__restrict__ const angularVelocities, real_t *__restrict__ const positions, const double3 blockStart, const real_t dx) |
__global__ void | ReduceParticleForces (walberla::gpu::FieldAccessor< uint_t > nOverlappingParticlesField, walberla::gpu::FieldAccessor< id_t > idxField, walberla::gpu::FieldAccessor< real_t > particleForcesField, real_t *__restrict__ const hydrodynamicForces, real_t *__restrict__ const hydrodynamicTorques, real_t *__restrict__ const positions, const double3 blockStart, const real_t dx, const real_t forceScalingFactor) |
Variables | |
const uint_t | MaxParticlesPerCell = MAX_PARTICLES_PER_CELL |
auto | deviceSyncWrapper |
using walberla::lbm_mesapd_coupling::psm::gpu::BsField_T = GhostLayerField< real_t, MaxParticlesPerCell > |
using walberla::lbm_mesapd_coupling::psm::gpu::idxField_T = GhostLayerField< size_t, MaxParticlesPerCell > |
using walberla::lbm_mesapd_coupling::psm::gpu::nOverlappingParticlesField_T = GhostLayerField< uint_t, 1 > |
using walberla::lbm_mesapd_coupling::psm::gpu::particleForcesField_T = GhostLayerField< real_t, MaxParticlesPerCell * 3 > |
using walberla::lbm_mesapd_coupling::psm::gpu::particleVelocitiesField_T = GhostLayerField< real_t, MaxParticlesPerCell * 3 > |
|
inline |
void walberla::lbm_mesapd_coupling::psm::gpu::addPSMSweepsToTimeloop | ( | SweepTimeloop & | timeloop, |
SweepCollection & | psmSweepCollection, | ||
PSMSweep & | psmSweep, | ||
bool | synchronize = true ) |
void walberla::lbm_mesapd_coupling::psm::gpu::addPSMSweepsToTimeloops | ( | SweepTimeloop & | commTimeloop, |
SweepTimeloop & | timeloop, | ||
Communication & | comm, | ||
SweepCollection & | psmSweepCollection, | ||
PSMSweep & | psmSweep, | ||
bool | synchronize = true ) |
__global__ void walberla::lbm_mesapd_coupling::psm::gpu::boxMapping | ( | walberla::gpu::FieldAccessor< uint_t > | nOverlappingParticlesField, |
walberla::gpu::FieldAccessor< real_t > | BsField, | ||
walberla::gpu::FieldAccessor< id_t > | idxField, | ||
walberla::gpu::FieldAccessor< real_t > | BField, | ||
const real_t | omega, | ||
const double3 | boxPositionMin, | ||
const double3 | boxPositionMax, | ||
const double3 | blockStart, | ||
const real_t | dx, | ||
const id_t | idxMapped ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
__global__ void walberla::lbm_mesapd_coupling::psm::gpu::linearApproximation | ( | walberla::gpu::FieldAccessor< uint_t > | nOverlappingParticlesField, |
walberla::gpu::FieldAccessor< real_t > | BsField, | ||
walberla::gpu::FieldAccessor< id_t > | idxField, | ||
walberla::gpu::FieldAccessor< real_t > | BField, | ||
const real_t | omega, | ||
const real_t *__restrict__ const | spherePositions, | ||
const real_t *__restrict__ const | sphereRadii, | ||
const real_t *__restrict__ const | f_rs, | ||
const double3 | blockStart, | ||
const real_t | dx, | ||
const size_t *__restrict__ const | numParticlesSubBlocks, | ||
const size_t *__restrict__ const | particleIDsSubBlocks, | ||
const uint3 | subBlocksPerDim ) |
void walberla::lbm_mesapd_coupling::psm::gpu::mapParticles | ( | const IBlock & | blockIt, |
const ParticleAndVolumeFractionSoA_T< Weighting_T > & | particleAndVolumeFractionSoA, | ||
const real_t *const | spherePositions, | ||
const real_t *const | sphereRadii, | ||
const real_t *const | f_rs, | ||
const size_t *const | numParticlesSubBlocks, | ||
const size_t *const | particleIDsSubBlocks, | ||
const Vector3< uint_t > | subBlocksPerDim ) |
void walberla::lbm_mesapd_coupling::psm::gpu::mapParticles | ( | IBlock & | blockIt, |
const ParticleAndVolumeFractionSoA_T< Weighting_T > & | particleAndVolumeFractionSoA, | ||
const real_t *const | spherePositions, | ||
const real_t *const | sphereRadii, | ||
const real_t *const | f_rs, | ||
const size_t *const | numParticlesSubBlocks, | ||
const size_t *const | particleIDsSubBlocks, | ||
const Vector3< uint_t > | subBlocksPerDim ) |
__global__ void walberla::lbm_mesapd_coupling::psm::gpu::ReduceParticleForces | ( | walberla::gpu::FieldAccessor< uint_t > | nOverlappingParticlesField, |
walberla::gpu::FieldAccessor< id_t > | idxField, | ||
walberla::gpu::FieldAccessor< real_t > | particleForcesField, | ||
real_t *__restrict__ const | hydrodynamicForces, | ||
real_t *__restrict__ const | hydrodynamicTorques, | ||
real_t *__restrict__ const | positions, | ||
const double3 | blockStart, | ||
const real_t | dx, | ||
const real_t | forceScalingFactor ) |
__global__ void walberla::lbm_mesapd_coupling::psm::gpu::SetParticleVelocities | ( | walberla::gpu::FieldAccessor< uint_t > | nOverlappingParticlesField, |
walberla::gpu::FieldAccessor< uint_t > | idxField, | ||
walberla::gpu::FieldAccessor< real_t > | particleVelocitiesField, | ||
real_t *__restrict__ const | linearVelocities, | ||
real_t *__restrict__ const | angularVelocities, | ||
real_t *__restrict__ const | positions, | ||
const double3 | blockStart, | ||
const real_t | dx ) |
__global__ void walberla::lbm_mesapd_coupling::psm::gpu::superSampling | ( | walberla::gpu::FieldAccessor< uint_t > | nOverlappingParticlesField, |
walberla::gpu::FieldAccessor< real_t > | BsField, | ||
walberla::gpu::FieldAccessor< id_t > | idxField, | ||
walberla::gpu::FieldAccessor< real_t > | BField, | ||
const real_t | omega, | ||
const real_t *__restrict__ const | spherePositions, | ||
const real_t *__restrict__ const | sphereRadii, | ||
const double3 | blockStart, | ||
const real_t | dx, | ||
const int3 | nSamples, | ||
const size_t *__restrict__ const | numParticlesSubBlocks, | ||
const size_t *__restrict__ const | particleIDsSubBlocks, | ||
const uint3 | subBlocksPerDim ) |
|
inline |
const uint_t walberla::lbm_mesapd_coupling::psm::gpu::MaxParticlesPerCell = MAX_PARTICLES_PER_CELL |