SPH related functionalities and kernels. More...
#include "../particles.cuh"
#include "../subdomain_key_tree/subdomain.cuh"
#include "../parameter.h"
#include "../helper.cuh"
#include "../materials/material.cuh"
#include <float.h>
#include <boost/mpi.hpp>
#include <assert.h>
Go to the source code of this file.
Namespaces | |
namespace | SPH |
SPH related functions and kernels. | |
namespace | SPH::Kernel |
SPH related (CUDA) kernels. | |
namespace | SPH::Kernel::Launch |
SPH related (CUDA) kernel wrappers. | |
Macros | |
#define | MILUPHPC_SPH_CUH |
Functions | |
void | SPH::exchangeParticleEntry (SubDomainKeyTree *subDomainKeyTree, real *entry, real *toSend, integer *sendLengths, integer *receiveLengths, integer numParticlesLocal) |
__global__ void | SPH::Kernel::fixedRadiusNN_bruteForce (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Fixed-radius near neighbor search (brute-force method). More... | |
__global__ void | SPH::Kernel::fixedRadiusNN (Tree *tree, Particles *particles, integer *interactions, real radius, integer numParticlesLocal, integer numParticles, integer numNodes) |
Fixed-radius near neighbor search (default method via explicit stack). More... | |
__global__ void | SPH::Kernel::fixedRadiusNN_withinBox (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Fixed-radius near neighbor search (nested stack method). More... | |
__global__ void | SPH::Kernel::fixedRadiusNN_sharedMemory (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Fixed-radius near neighbor search (brute-force method). More... | |
__global__ void | SPH::Kernel::fixedRadiusNN_variableSML (Material *materials, Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Fixed-radius near neighbor search for iteratively finding appropriate smoothing length. More... | |
__device__ void | SPH::Kernel::redoNeighborSearch (Tree *tree, Particles *particles, int particleId, int *interactions, real radius, integer numParticles, integer numNodes) |
Redo the neighbor search (FRNN). More... | |
__global__ void | SPH::Kernel::compTheta (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, Curve::Type curveType) |
Find the relevant (lowest) domain list nodes as preparation for finding particles to be exchanged between processes. More... | |
__global__ void | SPH::Kernel::symbolicForce (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantIndex, Curve::Type curveType) |
Find the particles that need to be exchanged between processes to grant correctness of SPH forces. More... | |
__global__ void | SPH::Kernel::symbolicForce_test (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, integer relevantIndexOld, Curve::Type curveType) |
__global__ void | SPH::Kernel::symbolicForce_test2 (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, Curve::Type curveType) |
__global__ void | SPH::Kernel::collectSendIndices (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *particlesCount, integer n, integer length, Curve::Type curveType) |
Collect the found particles into contiguous memory in order to facilitate sending via MPI. More... | |
__global__ void | SPH::Kernel::collectSendIndices_test2 (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *particlesCount, integer numParticlesLocal, integer numParticles, integer treeIndex, int currentProc, Curve::Type curveType) |
__global__ void | SPH::Kernel::particles2Send (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, integer maxLevel, integer *toSend, integer *sendCount, integer *alreadyInserted, integer insertOffset, integer numParticlesLocal, integer numParticles, integer numNodes, real radius, Curve::Type curveType=Curve::lebesgue) |
__global__ void | SPH::Kernel::collectSendIndicesBackup (integer *toSend, integer *toSendCollected, integer count) |
__global__ void | SPH::Kernel::collectSendEntriesBackup (SubDomainKeyTree *subDomainKeyTree, real *entry, real *toSend, integer *sendIndices, integer *sendCount, integer totalSendCount, integer insertOffset) |
__global__ void | SPH::Kernel::insertReceivedParticles (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, int n, int m) |
Insert the received particles into the local tree. More... | |
__global__ void | SPH::Kernel::calculateCentersOfMass (Tree *tree, Particles *particles, integer level) |
__global__ void | SPH::Kernel::determineSearchRadii (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, real *searchRadii, int n, int m, Curve::Type curveType) |
Determine the search radius needed for SPH::Kernel::symbolicForce(). More... | |
__global__ void | SPH::Kernel::info (Tree *tree, Particles *particles, Helper *helper, integer numParticlesLocal, integer numParticles, integer numNodes) |
Info/Debug kernel. More... | |
real | SPH::Kernel::Launch::fixedRadiusNN_bruteForce (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::fixedRadiusNN_bruteForce(). More... | |
real | SPH::Kernel::Launch::fixedRadiusNN (Tree *tree, Particles *particles, integer *interactions, real radius, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::fixedRadiusNN(). More... | |
real | SPH::Kernel::Launch::fixedRadiusNN_sharedMemory (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::fixedRadiusNN_sharedMemory(). More... | |
real | SPH::Kernel::Launch::fixedRadiusNN_withinBox (Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::fixedRadiusNN_withinBox(). More... | |
real | SPH::Kernel::Launch::fixedRadiusNN_variableSML (Material *materials, Tree *tree, Particles *particles, integer *interactions, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::fixedRadiusNN_variableSML(). More... | |
real | SPH::Kernel::Launch::compTheta (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, Curve::Type curveType) |
Wrapper for SPH::Kernel::compTheta(). More... | |
real | SPH::Kernel::Launch::symbolicForce (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantIndex, Curve::Type curveType) |
Wrapper for SPH::Kernel::symbolicForce(). More... | |
real | SPH::Kernel::Launch::symbolicForce_test (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *lowestDomainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, integer relevantIndexOld, Curve::Type curveType) |
real | SPH::Kernel::Launch::symbolicForce_test2 (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, integer *sendIndices, real searchRadius, integer n, integer m, integer relevantProc, integer relevantIndicesCounter, Curve::Type curveType) |
real | SPH::Kernel::Launch::collectSendIndices (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *particlesCount, integer n, integer length, Curve::Type curveType) |
Wrapper for SPH::Kernel::collectSendIndices(). More... | |
real | SPH::Kernel::Launch::collectSendIndices_test2 (Tree *tree, Particles *particles, integer *sendIndices, integer *particles2Send, integer *particlesCount, integer numParticlesLocal, integer numParticles, integer treeIndex, int currentProc, Curve::Type curveType) |
real | SPH::Kernel::Launch::particles2Send (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, integer maxLevel, integer *toSend, integer *sendCount, integer *alreadyInserted, integer insertOffset, integer numParticlesLocal, integer numParticles, integer numNodes, real radius, Curve::Type curveType=Curve::lebesgue) |
Wrapper for SPH::Kernel::particles2Send(). More... | |
real | SPH::Kernel::Launch::collectSendIndicesBackup (integer *toSend, integer *toSendCollected, integer count) |
Wrapper for SPH::Kernel::collectSendIndicesBackup(). More... | |
real | SPH::Kernel::Launch::collectSendEntriesBackup (SubDomainKeyTree *subDomainKeyTree, real *entry, real *toSend, integer *sendIndices, integer *sendCount, integer totalSendCount, integer insertOffset) |
Wrapper for SPH::Kernel::collectSendEntriesBackup(). More... | |
real | SPH::Kernel::Launch::insertReceivedParticles (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, int n, int m) |
Wrapper for SPH::Kernel::insertReceivedParticles(). More... | |
real | SPH::Kernel::Launch::info (Tree *tree, Particles *particles, Helper *helper, integer numParticlesLocal, integer numParticles, integer numNodes) |
Wrapper for SPH::Kernel::info(). More... | |
real | SPH::Kernel::Launch::calculateCentersOfMass (Tree *tree, Particles *particles, integer level) |
Wrapper for SPH::Kernel::calculateCentersOfMass(). More... | |
real | SPH::Kernel::Launch::determineSearchRadii (SubDomainKeyTree *subDomainKeyTree, Tree *tree, Particles *particles, DomainList *domainList, DomainList *lowestDomainList, real *searchRadii, int n, int m, Curve::Type curveType) |
Wrapper for SPH::Kernel::determineSearchRadii(). More... | |
SPH related functionalities and kernels.
Including:
Definition in file sph.cuh.