.. _intro: Introduction ============ AMReX-Hydro is set of routines that support the construction of convective terms for incompressible and low Mach number flow modeling in cartesian coordinates with (or without) embedded boundaries and R-Z coordinate systems. It is not a stand-alone code, but is used in several application codes, such as `incflo `_ (a variable density incompressible Navier-Stokes solver with adaptive mesh refinement (AMR)), `IAMR `_ (a variable density incompressible Navier-Stokes solver with time subcycling AMR), and `MFIX-Exa `_ (a multiphase computational fluid dynamics modeling tool). In application codes, the general procedure for constructing convective terms from cell-centered data is as follows: 1. Construct values of the normal velocity at the centroid on each cell face using chosen advection scheme 2. MAC-project this face-based velocity field 3. Use MAC-projected velocities to help construct values on faces 4. Define fluxes on faces 5. Difference fluxes to create the convective term. AMReX-Hydro provides routines to support all of these steps. Here we group the routines into a few general categories and map them to the step(s) they address: * :ref:`Schemes`: the fundamental algorithm is either a Method-of-Lines (MOL) or Godunov approach (used in steps 1 and 3). * :ref:`projections` frameworks: + MAC Projection - enforces a divergence condition on an edge-based velocity field (used in step 2). + Nodal Projection - can be used to compute an approximate projection of a cell-centered velocity field, with pressure and velocity divergence defined on nodes (not generally used as part of computing the convective term, but used in application codes to define a cell-centered velocity update that approximately obeys a divergence constraint). * :ref:`Redistribution `: AMReX contains schemes to address the "small cell problem" associated with explicit cut cell algorithms (part of step 4 for problems with embedded boundaries). * :ref:`utilities`: to do things like compute slopes, create fluxes from face-centered values, and create the convective term from fluxes (used in all but step 2).