Skip to content

Commit

Permalink
Vlasov1D1V documentation (#59)
Browse files Browse the repository at this point in the history
* Vlasov1D1V docs update

* ergoExo docs
  • Loading branch information
joglekara authored Aug 1, 2024
1 parent cc95b7a commit 3e947ee
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 0 deletions.
25 changes: 25 additions & 0 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,31 @@ There are two primary high level classes.
1. `ergoExo` houses the solver and handles the mlflow logging and experiment management
2. `ADEPTModule` is base class for the solver

If you wanted to create your own differentiable program that uses the ADEPT solvers, you could do

.. code-block:: python
from adept import ergoExo
exo = ergoExo()
modules = exo.setup(cfg)
and

.. code-block:: python
sol, ppo, run_id = exo(modules)
or

.. code-block:: python
sol, ppo, run_id = exo.val_and_grad(modules)
This is analogous to `torch.nn.Module` and `eqx.Module` the `Module` workflows in general.

You can see what each of those calls does in API documentation below.

.. toctree::
ergoExo
ADEPTModule
Expand Down
1 change: 1 addition & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Documentation

.. toctree::
usage
solvers
faq
api
:maxdepth: 1
Expand Down
10 changes: 10 additions & 0 deletions docs/source/solvers.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Available solvers
==================

The solvers that we have implemented so far are


.. toctree::
solvers/vlasov1d1v
:maxdepth: 1
:caption: Implemented solvers:
27 changes: 27 additions & 0 deletions docs/source/solvers/vlasov1d1v.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Vlasov 1D1V
-----------------------------------------

Equations and Quantities
========================
We solve the following coupled set of partial differential equations

.. math::
\frac{\partial f}{\partial t} + v \frac{\partial f}{\partial x} + \frac{q}{m} (E + E_D) \frac{\partial f}{\partial v} &= \nu \partial_v (v f + v_0^2 \partial_v f)
\partial_x E &= 1 - \int f dv
where :math:`f` is the distribution function, :math:`E` is the electric field, :math:`C(f)` is the collision operator, :math:`q` is the charge, :math:`m` is the mass, and :math:`v` is the velocity.

The distribution function is :math:`f = f(t, x, v)` and the electric field is :math:`E = E(t, x)`

These simulations can be initialized via perturbing the distribution function or the electric field.
The electric field can be "driven" using :math:`E_D` which is a user defined function of time and space.


Solver Options
================
This is where we should have a list of the different solvers that can be chosen including the collision operator. #TODO

Configuration parameters
========================
This is where there should be a line by line explanation of everything in a config file... #TODO

0 comments on commit 3e947ee

Please sign in to comment.