aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar RevathiJambunathan <revanathan@gmail.com> 2020-01-13 11:41:22 -0800
committerGravatar RevathiJambunathan <revanathan@gmail.com> 2020-01-13 11:41:22 -0800
commiteae5b5934107d1f044c9f869e53b8c41678ea2ea (patch)
tree4a03b2f88f1e49d8eae1980064da8bca06ee06aa /Source/Particles/PhysicalParticleContainer.cpp
parent314155c64214c4b37d66e6fe4b668143920dd6cf (diff)
downloadWarpX-eae5b5934107d1f044c9f869e53b8c41678ea2ea.tar.gz
WarpX-eae5b5934107d1f044c9f869e53b8c41678ea2ea.tar.zst
WarpX-eae5b5934107d1f044c9f869e53b8c41678ea2ea.zip
shared memory for parser on gpu
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index 51448c747..dc6b5f6c1 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -1003,7 +1003,11 @@ PhysicalParticleContainer::AssignExternalFieldOnParticles(WarpXParIter& pti,
Exp_data[i] = xfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
Eyp_data[i] = yfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
Ezp_data[i] = zfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
- });
+ }
+ /* To allocate shared memory for the GPU threads. */
+ /* But, for now only 3 doubles (x,y,z) are allocated. */
+ amrex::Gpu::numThreadsPerBlockParallelFor() * sizeof(double) * 3
+ );
}
if (mypc.m_B_ext_particle_s=="parse_b_ext_particle_function") {
Real* const AMREX_RESTRICT xp_data = xp.dataPtr();
@@ -1020,7 +1024,11 @@ PhysicalParticleContainer::AssignExternalFieldOnParticles(WarpXParIter& pti,
Bxp_data[i] = xfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
Byp_data[i] = yfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
Bzp_data[i] = zfield_partparser->getField(xp_data[i],yp_data[i],zp_data[i]);
- });
+ }
+ /* To allocate shared memory for the GPU threads. */
+ /* But, for now only 3 doubles (x,y,z) are allocated. */
+ amrex::Gpu::numThreadsPerBlockParallelFor() * sizeof(double) * 3
+ );
}
}