-
Notifications
You must be signed in to change notification settings - Fork 35
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
163 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
.. _sec:burn_cell_sdc: | ||
|
||
***************** | ||
``burn_cell_sdc`` | ||
***************** | ||
|
||
.. index:: burn_cell_sdc | ||
|
||
``burn_cell_sdc`` is a simple one-zone burn analogous to :ref:`sec:burn_cell` that | ||
exercises the simplified-SDC code paths in the integrator. | ||
The system that is evolved | ||
has the form: | ||
|
||
.. math:: | ||
\begin{align*} | ||
\frac{d(\rho X_k)}{dt} &= \Adv{\rho X_k}^{n+1/2} + \rho \dot{\omega}_k(\rho, X_k, T) \\ | ||
\frac{d(\rho e)}{dt} &= \Adv{\rho e}^{n+1/2} + \rho \epsilon(\rho, X_k, T) | ||
\end{align*} | ||
with density constructed as needed via: | ||
|
||
$$\rho(t) = \rho^n + \Adv{\rho}^{n+1/2} (t - t^n)$$ | ||
|
||
In this system, we now need to specify the advective terms for the unit test. | ||
|
||
.. note:: | ||
|
||
This test can also be used with NSE to test how the integration | ||
bails out into NSE if the ``in_nse()`` test is true. | ||
|
||
|
||
|
||
|
||
Getting Started | ||
=============== | ||
|
||
The ``burn_cell_sdc`` code is located in | ||
``Microphysics/unit_test/burn_cell_sdc``. By default, ``USE_SIMPLIFIED_SDC=TRUE`` | ||
is set in the ``GNUmakefile``. | ||
|
||
|
||
Setting the thermodynamics | ||
-------------------------- | ||
|
||
The parameters that affect the thermodynamics are: | ||
|
||
* ``unit_test.density`` : the initial density | ||
|
||
* ``unit_test.temperature`` : the initial temperature | ||
|
||
* ``unit_test.rhoe`` : the initial $(rho e)$. If this is not set (or | ||
set to be $< 0$), then it will be computed from the temperature | ||
using the EOS. | ||
|
||
The composition can be set either by specifying individual mass fractions | ||
or setting ``unit_test.uniform_xn`` as described in :ref:`sec:defining_unit_test_composition`. | ||
|
||
Aux composition | ||
--------------- | ||
|
||
When built with ``USE_NSE_TABLE=TRUE`` (see :ref:`tabulated_nse`) or with | ||
``USE_AUX_THERMO=TRUE`` (see :ref:`aux_eos_comp`) then the auxiliary | ||
composition, $Y_e$, $\bar{A}$, $\langle | ||
B/A\rangle$, is defined. | ||
|
||
The auxiliary composition can either be initialized directly via | ||
``unit_test.Aux1``, ``unit_test.Aux2``, and ``unit_test.Aux3``, or | ||
their values can be computed at initialization from the mass fractions | ||
if ``unit_test.recompute_aux=1`` is set. | ||
|
||
|
||
|
||
Advective terms | ||
--------------- | ||
|
||
But default, the advective terms are set to zero. In this mode, | ||
``burn_cell_sdc`` largely mimics ``burn_cell`` (although with a | ||
slightly different ODE system integrated). | ||
|
||
The advective terms can be set manually via | ||
|
||
* ``unit_test.Adv_rho`` : $\Adv{\rho}^{n+1/2}$ | ||
* ``unit_test.Adv_rhoe`` : $\Adv{\rho e}^{n+1/2}$ | ||
* ``unit_test.Adv_X1``, ``unit_test.Adv_X2``, ... : $\Adv{\rho X_1}^{n+1/2}$, $\Adv{\rho X_2}^{n+1/2}$, ... (up to $X_{35}$) | ||
* ``unit_test.Adv_Aux1``, ``unit_test.Adv_Aux2``, ``unit_test.Adv_Aux3`` : $\Adv{\rho \alpha_1}^{n+1/2}$, $\Adv{\rho \alpha_2}^{n+1/2}$, $\Adv{\rho \alpha_3}^{n+1/2}$ | ||
|
||
|
||
|
||
|
||
Controlling time | ||
---------------- | ||
|
||
The integration time and output frequency are controlled by the | ||
same set of parameters as in ``burn_cell``. see :ref:`sec:burn_cell_time`. | ||
|
||
|
||
Integration parameters | ||
---------------------- | ||
|
||
The tolerances, choice of Jacobian, and other integration parameters | ||
can be set via the usual Microphysics runtime parameters, e.g. | ||
``integrator.atol_spec``. | ||
|
||
|
||
Rerunning a burn fail | ||
--------------------- | ||
|
||
.. index:: parse_integration_failure.py, USE_GPU_PRINTF | ||
|
||
When a network integration encounters a failure, it will output the | ||
entire burn state to ``stdout`` (for GPU builds, this needs to be | ||
enabled explicitly by building with ``USE_GPU_PRINTF``). | ||
|
||
The script ``unit_test/burn_cell_sdc/parse_integration_failure.py`` | ||
can be used to parse the output (copy and paste the full error into a | ||
file) and produce the runtime parameter settings needed to reproduce | ||
the burn. This is especially important with SDC, since it will contain | ||
all of the advective terms. | ||
|
||
|
||
Building and Running the Code | ||
============================= | ||
|
||
The code can be built simply as: | ||
|
||
.. prompt:: bash | ||
|
||
make | ||
|
||
and the network and integrator can be changed using the normal | ||
Microphysics build system parameters. | ||
|
||
.. important:: | ||
|
||
You need to do a ``make clean`` before rebuilding with a different | ||
network or integrator. | ||
|
||
|
||
To run the code, in the ``burn_cell_sdc`` directory run:: | ||
|
||
./main3d.gnu.ex inputs | ||
|
||
where ``inputs`` is the name of your inputs file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters