aboutsummaryrefslogtreecommitdiff
path: root/Docs/source/developers/repo_organization.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Docs/source/developers/repo_organization.rst')
-rw-r--r--Docs/source/developers/repo_organization.rst24
1 files changed, 24 insertions, 0 deletions
diff --git a/Docs/source/developers/repo_organization.rst b/Docs/source/developers/repo_organization.rst
new file mode 100644
index 000000000..495cc8fc7
--- /dev/null
+++ b/Docs/source/developers/repo_organization.rst
@@ -0,0 +1,24 @@
+.. _developers-repo-structure:
+
+WarpX structure
+===============
+
+Repo organization
+-----------------
+
+All the WarpX source code is located in ``Source/``. All sub-directories have a pretty straigtforward name. The PIC loop is part of the WarpX class, in function ``WarpX::EvolveEM`` implemented in ``Source/WarpXEvolveEM.cpp``. The core of the PIC loop (i.e., without diagnostics etc.) is in ``WarpX::OneStep_nosub`` (when subcycling is OFF) or ``WarpX::OneStep_sub1`` (when subcycling is ON, with method 1).
+
+Code organization
+-----------------
+
+The main WarpX class is WarpX, implemented in ``Source/WarpX.cpp``.
+
+Build system
+------------
+
+WarpX uses the AMReX build system. Each sub-folder contains a file ``Make.package`` with the names of header files and source files to include for the build.
+
+WarpX-specific vocabulary
+-------------------------
+
+- ``Evolve`` is a generic term to advance a quantity (this comes from AMReX). For instance, ``WarpX::EvolveE(dt)`` advances the electric field for duration ``dt``, ``PhysicalParticleContainer::Evolve(...)`` does field gather + particle push + current deposition for all particles in ``PhysicalParticleContainer``, and ``WarpX::EvolveEM`` is the central ``WarpX`` function that performs 1 PIC iteration.