From d48939149901eab1fce153baf4b0ac2a1e46e5e6 Mon Sep 17 00:00:00 2001 From: Archis Joglekar Date: Sun, 15 Sep 2024 14:50:36 -0700 Subject: [PATCH] TPD solver documentation (#74) --- docs/source/index.rst | 6 ---- docs/source/solvers.rst | 2 ++ docs/source/solvers/datamodels/lpse2d.rst | 41 +++++++++++++++++++++ docs/source/solvers/lpse2d.rst | 44 +++++++++++++++++++++++ docs/source/solvers/vfp1d.rst | 10 ++++++ docs/source/solvers/vlasov1d1v.rst | 4 +-- 6 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 docs/source/solvers/datamodels/lpse2d.rst create mode 100644 docs/source/solvers/lpse2d.rst create mode 100644 docs/source/solvers/vfp1d.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index b0e84b5..573f56c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -12,12 +12,6 @@ ADEPT **ADEPT** is a set of **A** utomatic **D** ifferentation **E** nabled **P** lasma **T** ransport solvers. -So far, we have implemented the following solvers - -1. Vlasov-Poisson-Fokker-Planck 1D1V -2. Two fluid - Poisson system in 1D -3. Zakharov Equations for Two Plasmon Decay in 2D -4. Vlasov-Poisson-Fokker-Planck (spherical harmonic decomposition) 1D3V Examples ---------- diff --git a/docs/source/solvers.rst b/docs/source/solvers.rst index 1b3e138..5a643da 100644 --- a/docs/source/solvers.rst +++ b/docs/source/solvers.rst @@ -6,5 +6,7 @@ The solvers that we have implemented (and documented) so far are .. toctree:: solvers/vlasov1d1v + solvers/lpse2d + solvers/vfp1d :maxdepth: 3 :caption: Implemented solvers: diff --git a/docs/source/solvers/datamodels/lpse2d.rst b/docs/source/solvers/datamodels/lpse2d.rst new file mode 100644 index 0000000..c4f9a27 --- /dev/null +++ b/docs/source/solvers/datamodels/lpse2d.rst @@ -0,0 +1,41 @@ +Configuration Options +====================== +``ADEPT`` needs a ``yaml`` file with the following datamodel to run the simulation. The datamodel is defined in the following class. + +.. autoclass:: adept._lpse2d.datamodel.ConfigModel + :members: __init__ + +Each of the objects used to initialize this datamodel can be treated just like dictionaries. Each dictionary needs to be compiled into a megadictionary that is passed to the solver. +The ``yaml`` configs accomplish this because a ``yaml`` is also a nested dictionary. The following documents those classes + +High Level +----------- +These are the high level configuration options for the LPSE2D solver. Each of these either contains a fundamental type such as +``bool``, ``int``, ``float``, or ``str`` or is another nested ``datamodel`` which can be treated just like a dictionary. + +.. autoclass:: adept._lpse2d.datamodel.UnitsModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.DensityModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.GridModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.SaveModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.MLFlowModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.DriverModel + :members: __init__ + +.. autoclass:: adept._lpse2d.datamodel.TermsModel + :members: __init__ + + +Low Level +---------- + +The documentation for the nested datamodels is still TBD. To investigate them further, go to the source code. \ No newline at end of file diff --git a/docs/source/solvers/lpse2d.rst b/docs/source/solvers/lpse2d.rst new file mode 100644 index 0000000..67f0bd0 --- /dev/null +++ b/docs/source/solvers/lpse2d.rst @@ -0,0 +1,44 @@ +Enveloped equations in Cartesian 2D +==================================== + + + +Equations and Quantities +------------------------- +These equations model the evolution and interaction of the complex envelopes of light waves and plasma waves. This is faster than modeling the plasma waves using a fluid or kinetic solver along with modeling the light waves + +Note on pump depletion +^^^^^^^^^^^^^^^^^^^^^^^^ +One can solve these equations with or without "pump depletion". "Pump depletion" is the effect of the plasma waves on the light waves. We do not currently have this implemented, so we have light waves that behave as external drivers for the plasma waves and we only model the plasma wave response. +This approach is adequate for modeling laser plasma instabilities below the absolute instability threshold. + +Electron Plasma Waves +^^^^^^^^^^^^^^^^^^^^^^^ + +.. math:: + \nabla \cdot \left[ i \left(\frac{\partial}{\partial t} + \nu_e^{\circ} \right) + \frac{3 v_{te}^2}{2 \omega_{p0}} \nabla^2 + \frac{\omega_{p0}}{2}\left(1-\frac{n_b(x)}{n_0}\right) \right] \textbf{E}_h = S_{TPD} + S_h + + +Two Plasmon Decay +^^^^^^^^^^^^^^^^^^^^ + +.. math:: + S_{\text{TPD}} \equiv \frac{e}{8 \omega_{p0} m_e} \frac{n_b(x)}{n_0} \nabla \cdot [\nabla (\textbf{E}_0 \cdot \textbf{E}_h^*) - \textbf{E}_0 \nabla\cdot \textbf{E}_h^*] e^{-i (\omega_0 - 2 \omega_{p0})t} + +Laser Driver +^^^^^^^^^^^^^^^ +We only have a plane wave implementation for now + +.. math:: + E_0(t, x, y) = \sum_j^{N_c} A_j ~ \exp(-i k_0 x - i \omega_0 \Delta\omega_j ~ t + \phi_j) + + +Configuration Options +---------------------- + +As with all other solvers, the configuration is passed in via a ``yaml`` file. The datamodel for the configuration is documented below + +.. toctree:: + datamodels/lpse2d + :maxdepth: 3 + :caption: Configuration Options: \ No newline at end of file diff --git a/docs/source/solvers/vfp1d.rst b/docs/source/solvers/vfp1d.rst new file mode 100644 index 0000000..72048bf --- /dev/null +++ b/docs/source/solvers/vfp1d.rst @@ -0,0 +1,10 @@ +Implicit Cartesian-Spherical Harmonics Vlasov-Fokker-Planck in 1D3V +===================================================================== + +This set of solvers is usually used to model electron transport over hydrodynamic / collisional time-scales while the other Vlasov solvers in ``ADEPT`` are for +modeling over electron plasma wave time-scales. + +Equations and Quantities +------------------------- + +TODO \ No newline at end of file diff --git a/docs/source/solvers/vlasov1d1v.rst b/docs/source/solvers/vlasov1d1v.rst index 22faf7f..c081464 100644 --- a/docs/source/solvers/vlasov1d1v.rst +++ b/docs/source/solvers/vlasov1d1v.rst @@ -1,5 +1,5 @@ -Vlasov 1D1V -================= +Explicit Cartesian-Cartesian Vlasov 1D1V +========================================= Equations and Quantities -------------------------