milupHPC documentation
  • include
  • integrator
device_predictor_corrector_euler.cuh
Go to the documentation of this file.
1
8#ifndef MILUPHPC_DEVICE_PREDICTOR_CORRECTOR_EULER_CUH
9#define MILUPHPC_DEVICE_PREDICTOR_CORRECTOR_EULER_CUH
10
11#include "../particles.cuh"
12#include "../materials/material.cuh"
13#include "../simulation_time.cuh"
14
16namespace PredictorCorrectorEulerNS {
17
18 struct Shared {
19 real *forces;
20 real *courant;
21 real *artVisc;
22 real *e;
23 real *rho;
24 real *vmax;
25
26 CUDA_CALLABLE_MEMBER Shared();
27 CUDA_CALLABLE_MEMBER Shared(real *forces, real *courant, real *artVisc);
28 CUDA_CALLABLE_MEMBER ~Shared();
29
30 CUDA_CALLABLE_MEMBER void set(real *forces, real *courant, real *artVisc);
31 CUDA_CALLABLE_MEMBER void setE(real *e);
32 CUDA_CALLABLE_MEMBER void setRho(real *rho);
33 CUDA_CALLABLE_MEMBER void setVmax(real *vmax);
34 };
35
36 namespace SharedNS {
37 __global__ void set(Shared *shared, real *forces, real *courant, real *artVisc);
38 __global__ void setE(Shared *shared, real *e);
39 __global__ void setRho(Shared *shared, real *rho);
40 __global__ void setVmax(Shared *shared, real *vmax);
41
42 namespace Launch {
43 void set(Shared *shared, real *forces, real *courant, real *artVisc);
44 void setE(Shared *shared, real *e);
45 void setRho(Shared *shared, real *rho);
46 void setVmax(Shared *shared, real *vmax);
47 }
48 }
49
50 struct BlockShared {
51 real *forces;
52 real *courant;
53 real *artVisc;
54 real *e;
55 real *rho;
56 real *vmax;
57
58 CUDA_CALLABLE_MEMBER BlockShared();
59 CUDA_CALLABLE_MEMBER BlockShared(real *forces, real *courant, real *artVisc);
60 CUDA_CALLABLE_MEMBER ~BlockShared();
61
62 CUDA_CALLABLE_MEMBER void set(real *forces, real *courant, real *artVisc);
63 CUDA_CALLABLE_MEMBER void setE(real *e);
64 CUDA_CALLABLE_MEMBER void setRho(real *rho);
65 CUDA_CALLABLE_MEMBER void setVmax(real *vmax);
66 };
67
68 namespace BlockSharedNS {
69 __global__ void set(BlockShared *blockShared, real *forces, real *courant, real *artVisc);
70 __global__ void setE(BlockShared *blockShared, real *e);
71 __global__ void setRho(BlockShared *blockShared, real *e);
72 __global__ void setVmax(BlockShared *blockShared, real *vmax);
73
74 namespace Launch {
75 void set(BlockShared *blockShared, real *forces, real *courant, real *artVisc);
76 void setE(BlockShared *blockShared, real *e);
77 void setRho(BlockShared *blockShared, real *e);
78 void setVmax(BlockShared *blockShared, real *vmax);
79 }
80 }
81
83 namespace Kernel {
84
95 __global__ void corrector(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles);
96
107 __global__ void predictor(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles);
108
135 __global__ void setTimeStep(SimulationTime *simulationTime, Material *materials, Particles *particles, BlockShared *blockShared,
136 int *blockCount, int numParticles);
137
139 namespace Launch {
140
146 real corrector(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles);
147
153 real predictor(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles);
154
160 real setTimeStep(int multiProcessorCount, SimulationTime *simulationTime, Material *materials, Particles *particles,
161 BlockShared *blockShared, int *blockCount, real searchRadius, int numParticles);
162
163 real pressureChangeCheck();
164
165 }
166
167 }
168}
169
170#endif //MILUPHPC_DEVICE_PREDICTOR_CORRECTOR_EULER_CUH
IntegratedParticles
Definition: particles.cuh:979
Material
Material parameters.
Definition: material.cuh:88
Particles
Particle(s) class based on SoA (Structur of Arrays).
Definition: particles.cuh:50
SimulationTime
Definition: simulation_time.cuh:14
CUDA_CALLABLE_MEMBER
#define CUDA_CALLABLE_MEMBER
Definition: cuda_utilities.cuh:30
Kernel
Definition: device_rhs.cuh:7
PredictorCorrectorEulerNS::BlockSharedNS::Launch::setE
void setE(BlockShared *blockShared, real *e)
Definition: device_predictor_corrector_euler.cu:111
PredictorCorrectorEulerNS::BlockSharedNS::Launch::setVmax
void setVmax(BlockShared *blockShared, real *vmax)
Definition: device_predictor_corrector_euler.cu:120
PredictorCorrectorEulerNS::BlockSharedNS::Launch::setRho
void setRho(BlockShared *blockShared, real *e)
Definition: device_predictor_corrector_euler.cu:115
PredictorCorrectorEulerNS::BlockSharedNS::Launch::set
void set(BlockShared *blockShared, real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:106
PredictorCorrectorEulerNS::BlockSharedNS::setVmax
__global__ void setVmax(BlockShared *blockShared, real *vmax)
Definition: device_predictor_corrector_euler.cu:101
PredictorCorrectorEulerNS::BlockSharedNS::set
__global__ void set(BlockShared *blockShared, real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:92
PredictorCorrectorEulerNS::BlockSharedNS::setRho
__global__ void setRho(BlockShared *blockShared, real *e)
Definition: device_predictor_corrector_euler.cu:98
PredictorCorrectorEulerNS::BlockSharedNS::setE
__global__ void setE(BlockShared *blockShared, real *e)
Definition: device_predictor_corrector_euler.cu:95
PredictorCorrectorEulerNS::Kernel::Launch::setTimeStep
real setTimeStep(int multiProcessorCount, SimulationTime *simulationTime, Material *materials, Particles *particles, BlockShared *blockShared, int *blockCount, real searchRadius, int numParticles)
Wrapper for PredictorCorrectorEulerNS::Kernel::setTimeStep().
Definition: device_predictor_corrector_euler.cu:534
PredictorCorrectorEulerNS::Kernel::Launch::predictor
real predictor(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles)
Wrapper for PredictorCorrectorEulerNS::Kernel::predictor().
Definition: device_predictor_corrector_euler.cu:528
PredictorCorrectorEulerNS::Kernel::Launch::pressureChangeCheck
real pressureChangeCheck()
Definition: device_predictor_corrector_euler.cu:541
PredictorCorrectorEulerNS::Kernel::Launch::corrector
real corrector(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles)
Wrapper for PredictorCorrectorEulerNS::Kernel::corrector().
Definition: device_predictor_corrector_euler.cu:523
PredictorCorrectorEulerNS::Kernel::corrector
__global__ void corrector(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles)
Corrector step.
Definition: device_predictor_corrector_euler.cu:130
PredictorCorrectorEulerNS::Kernel::setTimeStep
__global__ void setTimeStep(SimulationTime *simulationTime, Material *materials, Particles *particles, BlockShared *blockShared, int *blockCount, int numParticles)
Setting correct time step.
PredictorCorrectorEulerNS::Kernel::predictor
__global__ void predictor(Particles *particles, IntegratedParticles *predictor, real dt, int numParticles)
Predictor step.
Definition: device_predictor_corrector_euler.cu:223
PredictorCorrectorEulerNS::SharedNS::Launch::set
void set(Shared *shared, real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:46
PredictorCorrectorEulerNS::SharedNS::Launch::setRho
void setRho(Shared *shared, real *rho)
Definition: device_predictor_corrector_euler.cu:55
PredictorCorrectorEulerNS::SharedNS::Launch::setE
void setE(Shared *shared, real *e)
Definition: device_predictor_corrector_euler.cu:51
PredictorCorrectorEulerNS::SharedNS::Launch::setVmax
void setVmax(Shared *shared, real *vmax)
Definition: device_predictor_corrector_euler.cu:59
PredictorCorrectorEulerNS::SharedNS::setRho
__global__ void setRho(Shared *shared, real *rho)
Definition: device_predictor_corrector_euler.cu:39
PredictorCorrectorEulerNS::SharedNS::setVmax
__global__ void setVmax(Shared *shared, real *vmax)
Definition: device_predictor_corrector_euler.cu:42
PredictorCorrectorEulerNS::SharedNS::setE
__global__ void setE(Shared *shared, real *e)
Definition: device_predictor_corrector_euler.cu:36
PredictorCorrectorEulerNS::SharedNS::set
__global__ void set(Shared *shared, real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:33
PredictorCorrectorEulerNS
predictor corrector euler (Heun) integrator
Definition: device_predictor_corrector_euler.cuh:16
ProfilerIds::numParticles
const char *const numParticles
Definition: h5profiler.h:29
real
double real
Definition: parameter.h:15
PredictorCorrectorEulerNS::BlockShared
Definition: device_predictor_corrector_euler.cuh:50
PredictorCorrectorEulerNS::BlockShared::courant
real * courant
Definition: device_predictor_corrector_euler.cuh:52
PredictorCorrectorEulerNS::BlockShared::vmax
real * vmax
Definition: device_predictor_corrector_euler.cuh:56
PredictorCorrectorEulerNS::BlockShared::setRho
CUDA_CALLABLE_MEMBER void setRho(real *rho)
Definition: device_predictor_corrector_euler.cu:85
PredictorCorrectorEulerNS::BlockShared::~BlockShared
CUDA_CALLABLE_MEMBER ~BlockShared()
Definition: device_predictor_corrector_euler.cu:74
PredictorCorrectorEulerNS::BlockShared::set
CUDA_CALLABLE_MEMBER void set(real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:77
PredictorCorrectorEulerNS::BlockShared::setE
CUDA_CALLABLE_MEMBER void setE(real *e)
Definition: device_predictor_corrector_euler.cu:82
PredictorCorrectorEulerNS::BlockShared::artVisc
real * artVisc
Definition: device_predictor_corrector_euler.cuh:53
PredictorCorrectorEulerNS::BlockShared::rho
real * rho
Definition: device_predictor_corrector_euler.cuh:55
PredictorCorrectorEulerNS::BlockShared::forces
real * forces
Definition: device_predictor_corrector_euler.cuh:51
PredictorCorrectorEulerNS::BlockShared::e
real * e
Definition: device_predictor_corrector_euler.cuh:54
PredictorCorrectorEulerNS::BlockShared::setVmax
CUDA_CALLABLE_MEMBER void setVmax(real *vmax)
Definition: device_predictor_corrector_euler.cu:88
PredictorCorrectorEulerNS::BlockShared::BlockShared
CUDA_CALLABLE_MEMBER BlockShared()
Definition: device_predictor_corrector_euler.cu:66
PredictorCorrectorEulerNS::Shared
Definition: device_predictor_corrector_euler.cuh:18
PredictorCorrectorEulerNS::Shared::courant
real * courant
Definition: device_predictor_corrector_euler.cuh:20
PredictorCorrectorEulerNS::Shared::rho
real * rho
Definition: device_predictor_corrector_euler.cuh:23
PredictorCorrectorEulerNS::Shared::Shared
CUDA_CALLABLE_MEMBER Shared()
Definition: device_predictor_corrector_euler.cu:7
PredictorCorrectorEulerNS::Shared::forces
real * forces
Definition: device_predictor_corrector_euler.cuh:19
PredictorCorrectorEulerNS::Shared::artVisc
real * artVisc
Definition: device_predictor_corrector_euler.cuh:21
PredictorCorrectorEulerNS::Shared::setVmax
CUDA_CALLABLE_MEMBER void setVmax(real *vmax)
Definition: device_predictor_corrector_euler.cu:29
PredictorCorrectorEulerNS::Shared::setE
CUDA_CALLABLE_MEMBER void setE(real *e)
Definition: device_predictor_corrector_euler.cu:23
PredictorCorrectorEulerNS::Shared::vmax
real * vmax
Definition: device_predictor_corrector_euler.cuh:24
PredictorCorrectorEulerNS::Shared::~Shared
CUDA_CALLABLE_MEMBER ~Shared()
Definition: device_predictor_corrector_euler.cu:15
PredictorCorrectorEulerNS::Shared::setRho
CUDA_CALLABLE_MEMBER void setRho(real *rho)
Definition: device_predictor_corrector_euler.cu:26
PredictorCorrectorEulerNS::Shared::set
CUDA_CALLABLE_MEMBER void set(real *forces, real *courant, real *artVisc)
Definition: device_predictor_corrector_euler.cu:18
PredictorCorrectorEulerNS::Shared::e
real * e
Definition: device_predictor_corrector_euler.cuh:22

milupHPC - include/integrator/device_predictor_corrector_euler.cuh Source File
Generated on Wed Aug 31 2022 12:16:52 by Doxygen 1.9.3