aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/MultiParticleContainer.cpp
diff options
context:
space:
mode:
authorGravatar Yin-YinjianZhao <yinjianzhao@lbl.gov> 2019-11-08 15:12:14 -0800
committerGravatar Yin-YinjianZhao <yinjianzhao@lbl.gov> 2019-11-08 15:12:14 -0800
commit1c2ee5542fbcbffc24fb0c2df3ba2102cd931870 (patch)
tree231f40a20ae42e057e2f3a34882465d4d6ca52e8 /Source/Particles/MultiParticleContainer.cpp
parenta05dedf635131551cb1b45751ac49767ad09983d (diff)
downloadWarpX-1c2ee5542fbcbffc24fb0c2df3ba2102cd931870.tar.gz
WarpX-1c2ee5542fbcbffc24fb0c2df3ba2102cd931870.tar.zst
WarpX-1c2ee5542fbcbffc24fb0c2df3ba2102cd931870.zip
Add CoulombCollisions files; Compile successfully.
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index fca22daa2..6b3a34e38 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -617,6 +617,38 @@ MultiParticleContainer::doFieldIonization ()
} // pc_source
}
+void
+MultiParticleContainer::doCoulombCollisions ()
+{
+ BL_PROFILE("MPC::doCoulombCollisions");
+
+ // At this point, the code always collides the first and second species
+ // TODO: Read the user input to read the different types of collisions requested
+ // and loop over all types of collisions, selecting each time the
+ // two types of species that will be collided
+ auto& species1 = allcontainers[0];
+ auto& species2 = allcontainers[1];
+
+ // Enable tiling
+ MFItInfo info;
+ if (Gpu::notInLaunchRegion()) info.EnableTiling(species1->tile_size);
+
+ // Loop over refinement levels
+ for (int lev = 0; lev <= species1->finestLevel(); ++lev){
+
+ // Loop over all grids/tiles at this level
+#ifdef _OPENMP
+ info.SetDynamic(true);
+ #pragma omp parallel
+#endif
+ for (MFIter mfi = species1->MakeMFIter(lev, info); mfi.isValid(); ++mfi){
+
+ doCoulombCollisionsWithinTile( lev, mfi, species1, species2 );
+
+ }
+ }
+}
+
#ifdef WARPX_QED
void MultiParticleContainer::InitQED ()
{