Loading docs/source/DualGrid.rst 0 → 100644 +25 −0 Original line number Diff line number Diff line .. role:: cpp(code) :language: c++ .. role:: fortran(code) :language: fortran .. _ss:dual_grid: Dual Grid Approach ------------------ In MFiX-Exa the mesh work and particle work have very different requirements for load balancing. Rather than using a combined work estimate to create the same grids for mesh and particle data, we have the option to pursue a "dual grid" approach. With this approach the mesh (:cpp:`MultiFab`) and particle (:cpp:`ParticleContainer`) data are allocated on different :cpp:`BoxArrays` with different :cpp:`DistributionMappings`. This enables separate load balancing strategies to be used for the mesh and particle work. The cost of this strategy, of course, is the need to copy mesh data onto temporary :cpp:`MultiFabs` defined on the particle :cpp:`BoxArrays` when mesh-particle communication is required. docs/source/ManagingGridHierarchy.rst→docs/source/GridCreation.rst +0 −0 File moved. View file docs/source/ManagingGridHierarchy_Chapter.rst +4 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,10 @@ Computational load balancing is based on several different steps: i.e. defining the :cpp:`DistributionMapping` with which :cpp:`MultiFabs` at that level will be built. How we do this depends on what strategy we specify and what work estimate we use We note that we can load balance the mesh and particle data separately; see :ref:`dual_grid` .. toctree:: :maxdepth: 1 ManagingGridHierarchy GridCreation DualGrid Loading
docs/source/DualGrid.rst 0 → 100644 +25 −0 Original line number Diff line number Diff line .. role:: cpp(code) :language: c++ .. role:: fortran(code) :language: fortran .. _ss:dual_grid: Dual Grid Approach ------------------ In MFiX-Exa the mesh work and particle work have very different requirements for load balancing. Rather than using a combined work estimate to create the same grids for mesh and particle data, we have the option to pursue a "dual grid" approach. With this approach the mesh (:cpp:`MultiFab`) and particle (:cpp:`ParticleContainer`) data are allocated on different :cpp:`BoxArrays` with different :cpp:`DistributionMappings`. This enables separate load balancing strategies to be used for the mesh and particle work. The cost of this strategy, of course, is the need to copy mesh data onto temporary :cpp:`MultiFabs` defined on the particle :cpp:`BoxArrays` when mesh-particle communication is required.
docs/source/ManagingGridHierarchy_Chapter.rst +4 −1 Original line number Diff line number Diff line Loading @@ -15,7 +15,10 @@ Computational load balancing is based on several different steps: i.e. defining the :cpp:`DistributionMapping` with which :cpp:`MultiFabs` at that level will be built. How we do this depends on what strategy we specify and what work estimate we use We note that we can load balance the mesh and particle data separately; see :ref:`dual_grid` .. toctree:: :maxdepth: 1 ManagingGridHierarchy GridCreation DualGrid