.. _Chap:InputsVerbosity:

Advanced
========

Testing / debugging
-------------------

The following inputs must be preceded by the prefix ``mfix``:

+------------------------+-----------------------------------------------------------------------+-------------+--------------+
|                        | Description                                                           |   Type      | Default      |
+========================+=======================================================================+=============+==============+
| verbose                |  Verbosity in MFIX-Exa routines                                       |    Int      |   0          |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+
| ooo_debug              |  If true, print the name of the current routine.                      |   Bool      | false        |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+
| only_print_grid_report |  Do not time-march the simulation. Simply generate the grid report    |   Bool      | false        |
|                        |  and exit.                                                            |             |              |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+


The following inputs must be preceded by the prefix ``amrex``:

+------------------------+-----------------------------------------------------------------------+-------------+--------------+
|                        | Description                                                           |   Type      | Default      |
+========================+=======================================================================+=============+==============+
| fpe_trap_invalid       |  Abort if an invalid floating point exception is encountered.         |  Int        | 0            |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+
| fpe_trap_zero          |  Abort if a division by zero is computed.                             |  Int        | 0            |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+
| fpe_trap_overflow      |  Abort if an overflow is detected.                                    |  Int        | 0            |
+------------------------+-----------------------------------------------------------------------+-------------+--------------+

GPU memory
----------

The following inputs must be preceded by the prefix ``amrex``:

+----------------------------+-----------------------------------------------------------------------+-------------+---------------+
|                            | Description                                                           |   Type      | Default       |
+============================+=======================================================================+=============+===============+
| the_arena_is_managed       | Use managed memory for the main arena.                                |  Int        | 0             |
+----------------------------+-----------------------------------------------------------------------+-------------+---------------+
| the_arena_init_size        | Initial size of main memory arena (bytes).  If not specified, use     |  Int        | Unspecified   |
|                            | 3/4 of system device memory.                                          |             |               |
+----------------------------+-----------------------------------------------------------------------+-------------+---------------+
| abort_on_out_of_gpu_memory | Abort if free device memory is less than the amount an arena is       |  Int        | 0             |
|                            | asked to allocate.                                                    |             |               |
+----------------------------+-----------------------------------------------------------------------+-------------+---------------+


Load balancing
--------------

Note that when running a granular simulation, i.e., no fluid phase, ``mfix.load_balance`` defaults to ``SingleGrid``. Hence,
the ``particles.max_grid_size`` (in each direction) have no meaning. Therefore the fluid grid and tile
sizes should be set for particle load balancing. It may also be necessary to set the blocking factors to 1.


The following inputs must be preceded by the prefix ``mfix`` and control load balancing:

+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
|                                  | Description                                                           |   Type      | Default           |
+==================================+=======================================================================+=============+===================+
| regrid_int                       | How often to regrid (in number of steps at level 0).                  |  Int        | 0                 |
|                                  | If regrid_int <= 0 then no regridding will occur.                     |             |                   |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
|                                  | Grid type.                                                            |  String     | SingleGrid        |
|                                  |                                                                       |             |                   |
|                                  | Options:                                                              |             |                   |
|                                  |                                                                       |             |                   |
| load_balance                     | * ``SingleGrid`` fluid and particles are co-located on the same grids |             |                   |
|                                  | * ``DualGrid`` fluid and particles live on different grids            |             |                   |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
| load_balance.DualGrid.fluid      | Regrid mesh (fluid) in addition to particles when using `DualGrid`    |  Int        | 0                 |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
| load_balance.strategy            | Strategy to use for dynamic load balancing.                           |  String     | KnapSack          |
|                                  |                                                                       |             |                   |
|                                  | Options (case-insensitive):                                           |             |                   |
|                                  |                                                                       |             |                   |
|                                  | * ``KnapSack``                                                        |             |                   |
|                                  | * ``SFC``                                                             |             |                   |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
| load_balance.weighting           | Weighting function to use if using ``KnapSack`` load balancing        |  String     | ParticleRunTime   |
|                                  |                                                                       |             |                   |
|                                  | Options:                                                              |             |                   |
|                                  |                                                                       |             |                   |
|                                  | * ``ParticleRunTime``                                                 |             |                   |
|                                  | * ``ParticleCount``                                                   |             |                   |
|                                  | * ``CellCount``                                                       |             |                   |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
| knapsack_nmax                    | Maximum number of grids per MPI process if using knapsack algorithm   |  Int        | 128               |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+
| grid_pruning                     | Remove all covered grids from the base mesh; this may result in       |  Bool       | false             |
|                                  | disjoined grids                                                       |             |                   |
+----------------------------------+-----------------------------------------------------------------------+-------------+-------------------+

To allow a user to verify the breakdown of fluid grids created before running a full simulation, an input option,
``mfix.only_print_grid_report`` is supported. By default, it is ``False``. When set to ``True``, the run uses
minimal memory to print the grid coverage report and exits immediately after that.


The following inputs are defined using the prefix ``particles``:

+----------------------+-----------------------------------------------------------------------+-------------+--------------+
|                      | Description                                                           |   Type      | Default      |
+======================+=======================================================================+=============+==============+
| max_grid_size_x      | Maximum number of cells at level 0 in each grid in x-direction        |    Int      | 32           |
|                      | for grids in the ParticleBoxArray if dual_grid is true                |             |              |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
| max_grid_size_y      | Maximum number of cells at level 0 in each grid in y-direction        |    Int      | 32           |
|                      | for grids in the ParticleBoxArray if dual_grid is true                |             |              |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
| max_grid_size_z      | Maximum number of cells at level 0 in each grid in z-direction        |    Int      | 32           |
|                      | for grids in the ParticleBoxArray if dual_grid is true.               |             |              |
+----------------------+-----------------------------------------------------------------------+-------------+--------------+
