AMReX Guided Tutorials and Example Codes
========================================

Welcome to AMReX Tutorials and Example Codes. Here you will find
a progression of hands on demonstrations and useful stand-alone examples
designed to assist users in learning and writing their own AMReX code.
For additional details on the topics presented here, please see the
`AMReX Source Documentation`_. The resources are divided into two categories:

.. _`AMReX Source Documentation`: https://amrex-codes.github.io/amrex/docs_html/


Guided Tutorials
----------------

Guided tutorials provide a gentle introduction to AMReX
features by focusing on key concepts in a progressive way. They are designed
to be followed from start to finish. They will focus on a few specific goals
of larger importance to using AMReX rather than comment on every line of code.

.. toctree::
   :maxdepth: 1

   Guided Tutorials  <GuidedTutorials>

Example Codes
-------------

Example codes are stand-alone examples that demonstrate how to use
different parts of the AMReX functionality. They are aimed at
users who are comfortable with the basics of AMReX.
They present a straightforward application of AMReX features, and
provide a starting place for user's to develop their unique applications.

The example codes listed below are provided in the ``AMReX-Codes/amrex-tutorials`` repo,
under the directory ``amrex-tutorials/ExampleCodes``. The examples are
sorted by the following categories:

- :ref:`AMR<tutorials_amr>` -- Examples of adaptive mesh refinement.
- :ref:`Basic<tutorials_basic>` -- Fundamental operations supported by AMReX.
- :ref:`Blueprint<tutorials_blueprint>` -- Convert AMReX mesh data into an in-memory
  Conduit Mesh Blueprint for use with the ALPINE Ascent in situ visualization
  and analysis tool.
- :ref:`EB<tutorials_eb>`  -- Examples of embedded boundaries.
- :ref:`FFT<tutorials_fft>`  -- Demonstration on how to use the amrex::FFT class for forward/inverse FFT and data manipulation
- :ref:`ForkJoin<tutorials_forkjoin>` -- Parallel execution and subgrouping of MPI ranks.
- :ref:`GPU<tutorials_gpu>`  -- Offload work to the GPUs using AMReX tools.
- :ref:`Linear Solvers<tutorials_linearsolvers>`  -- Examples of several linear solvers.
- :ref:`ML/PYTORCH<tutorials_ml>`  -- Use of pytorch models to replace point-wise computational kernels.
- :ref:`MPMD<tutorials_mpmd>` -- Usage of AMReX-MPMD (Multiple Program Multiple Data) framework.
- :ref:`MUI<tutorials_mui>`  -- Incorporates the MxUI/MUI (Multiscale Universal interface) frame into AMReX.
- :ref:`Particles<tutorials_particles>`  -- Basic usage of AMReX's particle data structures.
- :ref:`Python<tutorials_python>`  -- Using AMReX and interfacing with AMReX applications form Python - via `pyAMReX <https://github.com/AMReX-Codes/pyamrex/>`__
- :ref:`SDC<tutorials_sdc>`  -- Example usage of a "Multi-Implicit" Spectral Deferred Corrections (MISDC) integrator
  to solve a scalar advection-diffusion-reaction equation.
- :ref:`SENSEI<tutorials_sensei>`  -- In situ data analysis and visualization through a unified interface.
- :ref:`SUNDIALS<tutorials_sundials>`  -- Time integration with SUNDIALS backend and native AMReX types.


.. toctree::
   :hidden:

   AMR_Tutorial
   Basic_Tutorial
   Blueprint_Tutorial
   EB_Tutorial
   FFT_Tutorial
   ForkJoin_Tutorial
   GPU_Tutorial
   LinearSolvers_Tutorial
   ML_Tutorial
   MPMD_Tutorials
   MUI_Tutorial
   Particles_Tutorial
   Python_Tutorial
   SDC_Tutorial
   SENSEI_Tutorial
   SUNDIALS_Tutorial


.. _`AMR`:  AMR_Tutorial.html

.. _`Basic`:  Basic_Tutorial.html

.. _`Blueprint`:  Blueprint_Tutorial.html

.. _`EB`:  EB_Tutorial.html

.. _`FFT`:  FFT_Tutorial.html

.. _`ForkJoin`:  ForkJoin_Tutorial.html

.. _`GPU`:  GPU_Tutorial.html

.. _`Linear Solvers`:  LinearSolvers_Tutorial.html

.. _`MPMD`:  MPMD_Tutorials.html

.. _`MUI`: MUI_Tutorial.html

.. _`Particles`: Particles_Tutorial.html

.. _`Python`: Python_Tutorial.html

.. _`SDC`: SDC_Tutorial.html

.. _`SENSEI`: SENSEI_Tutorial.html




|
|

Additional Questions and Help
-----------------------------

Didn't find what you were looking for? Have questions we didn't answer?
Please let us know how we can improve by posting on `AMReX's GitHub Discussions`_.

.. _`AMReX's GitHub Discussions`: https://github.com/AMReX-Codes/amrex/discussions

The copyright notice of AMReX is included in the AMReX home directory as README.md.

Your use of this software is under the 3-clause BSD license -- the license agreement is included in the
AMReX home directory as LICENSE.