Commit 6a6ea001 authored by Charles G Waldman's avatar Charles G Waldman
Browse files

typos from MR114 (!134)

parent c4359b47
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ the same for all geometries.

1. Construct an implicit function representing the geometry.

2. Call :cpp:`mfix::build_eb_levels(gshop)` this function builds the EB levels. 
2. Call :cpp:`mfix::build_eb_levels(gshop)`. This function builds the EB levels.
   Note that this also makes the particle EB levels point to the fluid eb levels.

3. Call ``mfix.fill_eb_levelsets``. This function fills the level-set ``MultiFab``.
@@ -260,7 +260,7 @@ input ``amr.max_level`` The level-set can be in one of two modes:
   way the level-set always has the appropriate resolution to resolve structures
   in the EB, even if the fluid is defined on a fairly coarse grid.

2. MFIX-Exa is running in multi-level mode (:cpp:`nlev > 1`). The the parameter
2. MFIX-Exa is running in multi-level mode (:cpp:`nlev > 1`). The parameter
   :cpp:`mfix::levelset__refinement` is ignored. :cpp:`mfix::level_sets` then
   follows the rest of MFIX-Exa, i.e. it is defined on the particle grids on all
   levels.
+1 −4
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ To port this algorithm to the GPU, we use the parallel algorithms library Thrust
- Sort the particles on each grid by bin, using a parallel counting sort. We use Thrust's `exclusive\_scan` function to implement the prefix sum phase of the sort, and hand-coded kernels for the rest. This step does not actually involving rearranging the particle data - rather, we compute a permutation that would put the particles in order without actually reordering them.
- Once the particles are sorted by bin, we can loop over the particles in neighboring bins. We make two passes over the particles. First, we launch a kernel to count the number of collision partners for each particle.
- Then, we sum these numbers and allocate space for our neighbor list.
- Finally, we make a another pass over the particles, putting them into to list at the appropriate place.
- Finally, we make another pass over the particles, putting them into the list at the appropriate place.

Note that we build a full neighbor list, meaning that if particle `i` appears in particle `j`'s list, then particle `j` also appears in particle `i`'s list. This simplifies the force-computation step when using these lists, since the forces and torques for a given particle can be updated without atomics.

@@ -69,6 +69,3 @@ To use this optimization, set `particles.reduceGhostParticles` to :cpp:`true` in
Once the neighbor list has been constructed, collisions with both particles and walls can easily be processed.

MFIX-Exa currently runs on both CPU-only and hybrid CPU/GPU architectures.