| ... | @@ -168,7 +168,7 @@ possible values or a numeric range. | 
... | @@ -168,7 +168,7 @@ possible values or a numeric range. | 
| 
 | 
 | 
 | 
 | 
| 
 | 
    -   `_C.freq_ana`: interval in units of timesteps at which the user
 | 
 | 
    -   `_C.freq_ana`: interval in units of timesteps at which the user
 | 
| 
 | 
        interface function `analysisUser()` is called for user-specific
 | 
 | 
        interface function `analysisUser()` is called for user-specific
 | 
| 
 | 
        analysis tasks (cf. [Data analysis](3.3-Output-data#data-analysis)).
 | 
 | 
        analysis tasks (cf. [Data analysis](3.5-Data-analysis)).
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
    -   `_C.freq_walltime`: interval in seconds at which the special
 | 
 | 
    -   `_C.freq_walltime`: interval in seconds at which the special
 | 
| 
 | 
        snapshot `NIRLAST.#` (cf. [Snapshot files](3.3-Output-data#snapshot-files)) is
 | 
 | 
        snapshot `NIRLAST.#` (cf. [Snapshot files](3.3-Output-data#snapshot-files)) is
 | 
| ... | @@ -297,14 +297,14 @@ possible values or a numeric range. | 
... | @@ -297,14 +297,14 @@ possible values or a numeric range. | 
| 
 | 
            $u_o=u_i$ for the perpendicular magnetic field component.
 | 
 | 
            $u_o=u_i$ for the perpendicular magnetic field component.
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
        -   `R`: reflection-on-axis (only of relevance in cylindrical
 | 
 | 
        -   `R`: reflection-on-axis (only of relevance in cylindrical
 | 
| 
 | 
            geometry at the $y$-lower boundary (at $R=0$) or in
 | 
 | 
            geometry at the $y$-lower boundary at $R=0$ or in
 | 
| 
 | 
            spherical geometry at the $y$-lower/upper boundaries (at
 | 
 | 
            spherical geometry at the $y$-lower/upper boundaries at
 | 
| 
 | 
            $\theta=0,\pi$)) -- reflecting conditions at the geometric
 | 
 | 
            $\theta =0,\pi $) -- reflecting conditions at the geometric
 | 
| 
 | 
            axis. Same as M except for the azimutal magnetic field
 | 
 | 
            axis. Same as M except for the azimutal magnetic field
 | 
| 
 | 
            component for which $u_o=-u_i$.
 | 
 | 
            component for which $u_o=-u_i$.
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
        -   `C`: reflection-at-center (only of relevance in spherical
 | 
 | 
        -   `C`: reflection-at-center (only of relevance in spherical
 | 
| 
 | 
            geometry at the $x$-lower boundary (at $r=0$)) -- reflecting
 | 
 | 
            geometry at the $x$-lower boundary at $r=0$) -- reflecting
 | 
| 
 | 
            conditions at the coordinate center. Same as M except for
 | 
 | 
            conditions at the coordinate center. Same as M except for
 | 
| 
 | 
            the non-radial magnetic field components for which
 | 
 | 
            the non-radial magnetic field components for which
 | 
| 
 | 
            $u_o=-u_i$.
 | 
 | 
            $u_o=-u_i$.
 | 
| ... | @@ -316,9 +316,9 @@ possible values or a numeric range. | 
... | @@ -316,9 +316,9 @@ possible values or a numeric range. | 
| 
 | 
            (pseudo-vacuum condition) for the magnetic field.
 | 
 | 
            (pseudo-vacuum condition) for the magnetic field.
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
        -   `F`: free boundary (only of relevance in cylindrical
 | 
 | 
        -   `F`: free boundary (only of relevance in cylindrical
 | 
| 
 | 
            geometry at the $y$-lower boundary (at $R=0$) or in
 | 
 | 
            geometry at the $y$-lower boundary at $R=0$ or in
 | 
| 
 | 
            spherical geometry at the $y$-lower/upper boundaries (at
 | 
 | 
            spherical geometry at the $y$-lower/upper boundaries at
 | 
| 
 | 
            $\theta=0,\pi$) and $x$-lower boundary (at $r=0$)) --
 | 
 | 
            $\theta =0,\pi$ and $x$-lower boundary at $r=0$) --
 | 
| 
 | 
            'natural' boundary condition at the geometric axis. Boundary
 | 
 | 
            'natural' boundary condition at the geometric axis. Boundary
 | 
| 
 | 
            values are not set explictely but are implicitly given by
 | 
 | 
            values are not set explictely but are implicitly given by
 | 
| 
 | 
            $\pi$-shifted values. Note that when a `F`-type boundary
 | 
 | 
            $\pi$-shifted values. Note that when a `F`-type boundary
 | 
| ... | @@ -400,13 +400,13 @@ possible values or a numeric range. | 
... | @@ -400,13 +400,13 @@ possible values or a numeric range. | 
| 
 | 
        value `_C.amr_exp>1` (`_C.amr_exp<1`) means that mesh refinement
 | 
 | 
        value `_C.amr_exp>1` (`_C.amr_exp<1`) means that mesh refinement
 | 
| 
 | 
        becomes progressively more difficult (easier) with increasing
 | 
 | 
        becomes progressively more difficult (easier) with increasing
 | 
| 
 | 
        refinement level compared to the standard linear dependence
 | 
 | 
        refinement level compared to the standard linear dependence
 | 
| 
 | 
        (`_C.amr_exp=1`) (cf. [AMR](#adaptive-mesh-refinement)).
 | 
 | 
        (`_C.amr_exp=1`) (cf. [AMR](3.1-Code-basics#adaptive-mesh-refinement)).
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
-   `05` (`_C.amr_Jeans`, `_C.amr_exp`, `_C.amr_Field`)
 | 
 | 
-   `05` (`_C.amr_Jeans`, `_C.amr_exp`, `_C.amr_Field`)
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
    -   `_C.amr_Jeans` (typical value: $0.2$): threshold in the
 | 
 | 
    -   `_C.amr_Jeans` (typical value: $0.2$): threshold in the
 | 
| 
 | 
        Jeans-length-based mesh refinement criterion (cf.
 | 
 | 
        Jeans-length-based mesh refinement criterion (cf.
 | 
| 
 | 
        [AMR](#adaptive-mesh-refinement)). The value `_C.amr_Jeans`
 | 
 | 
        [AMR](3.1-Code-basics#adaptive-mesh-refinement)). The value `_C.amr_Jeans`
 | 
| 
 | 
        defines the fraction of local Jeans length to be resolved by one
 | 
 | 
        defines the fraction of local Jeans length to be resolved by one
 | 
| 
 | 
        grid cell. A zero or negative value means that the
 | 
 | 
        grid cell. A zero or negative value means that the
 | 
| 
 | 
        Jeans-length-based criterion is disabled.
 | 
 | 
        Jeans-length-based criterion is disabled.
 | 
| ... | @@ -426,7 +426,7 @@ possible values or a numeric range. | 
... | @@ -426,7 +426,7 @@ possible values or a numeric range. | 
| 
 | 
 | 
 | 
 | 
| 
 | 
    -   `_C.amr_Field` (typical value: $0.2$): threshold in the
 | 
 | 
    -   `_C.amr_Field` (typical value: $0.2$): threshold in the
 | 
| 
 | 
        Field-length-based mesh refinement criterion (cf.
 | 
 | 
        Field-length-based mesh refinement criterion (cf.
 | 
| 
 | 
        [AMR](#adaptive-mesh-refinement)). The value `_C.amr_Field`
 | 
 | 
        [AMR](3.1-Code-basics#adaptive-mesh-refinement)). The value `_C.amr_Field`
 | 
| 
 | 
        defines the fraction of the local Field length to be resolved by
 | 
 | 
        defines the fraction of the local Field length to be resolved by
 | 
| 
 | 
        one grid cell. A zero or negative value means that the
 | 
 | 
        one grid cell. A zero or negative value means that the
 | 
| 
 | 
        Field-length-based criterion is disabled.
 | 
 | 
        Field-length-based criterion is disabled.
 | 
| ... | @@ -603,7 +603,7 @@ possible values or a numeric range. | 
... | @@ -603,7 +603,7 @@ possible values or a numeric range. | 
| 
 | 
        given by the parameter `_C.diffusion_coeff` described below. U
 | 
 | 
        given by the parameter `_C.diffusion_coeff` described below. U
 | 
| 
 | 
        enables Ohmic diffusion with a user-defined magnetic diffusion
 | 
 | 
        enables Ohmic diffusion with a user-defined magnetic diffusion
 | 
| 
 | 
        coefficient as coded in the user interface function
 | 
 | 
        coefficient as coded in the user interface function
 | 
| 
 | 
        **diffusionCoeffUser()**. (cf. [Ohmic
 | 
 | 
        `diffusionCoeffUser()`. (cf. [Ohmic
 | 
| 
 | 
        diffusion](#ohmic-diffusion)). N disables Ohmic diffusion.
 | 
 | 
        diffusion](#ohmic-diffusion)). N disables Ohmic diffusion.
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
    -   `_C.diffusion_coeff`: constant magnetic diffusion coefficient.
 | 
 | 
    -   `_C.diffusion_coeff`: constant magnetic diffusion coefficient.
 | 
| ... | @@ -646,7 +646,7 @@ possible values or a numeric range. | 
... | @@ -646,7 +646,7 @@ possible values or a numeric range. | 
| 
 | 
        coefficient given by the parameter `_C.APdiffusion_coeff`
 | 
 | 
        coefficient given by the parameter `_C.APdiffusion_coeff`
 | 
| 
 | 
        described below. U enables ambipolar diffusion with a
 | 
 | 
        described below. U enables ambipolar diffusion with a
 | 
| 
 | 
        user-defined anbipolar diffusion coefficient as coded in the
 | 
 | 
        user-defined anbipolar diffusion coefficient as coded in the
 | 
| 
 | 
        user interface function **APdiffusionCoeffUser()** (cf.
 | 
 | 
        user interface function `APdiffusionCoeffUser()` (cf.
 | 
| 
 | 
        [Ambipolar diffusion](#user-defined-coefficient-for-ambipolar-diffusion)).
 | 
 | 
        [Ambipolar diffusion](#user-defined-coefficient-for-ambipolar-diffusion)).
 | 
| 
 | 
        N disables ambipolar diffusion.
 | 
 | 
        N disables ambipolar diffusion.
 | 
| 
 | 
 | 
 | 
 | 
| ... | @@ -800,7 +800,7 @@ The module `configUser.c` serves as user interface for the definition of | 
... | @@ -800,7 +800,7 @@ The module `configUser.c` serves as user interface for the definition of | 
| 
 | 
initial conditions (IC). To do this the user must program the function
 | 
 | 
initial conditions (IC). To do this the user must program the function
 | 
| 
 | 
`configUser()` in the module. Defining IC means assigning values to
 | 
 | 
`configUser()` in the module. Defining IC means assigning values to
 | 
| 
 | 
primary physical variables on the mesh, that are
 | 
 | 
primary physical variables on the mesh, that are
 | 
| 
 | 
$\{\varrho,\mathbf{m},e,\mathbf{B},C_\mc,n_\ms\}$ -- gas density,
 | 
 | 
$\{\varrho,\mathbf{m},e,\mathbf{B},C_c,n_s\}$ -- gas density,
 | 
| 
 | 
momentum,total energy density, magnetic field, tracer
 | 
 | 
momentum,total energy density, magnetic field, tracer
 | 
| 
 | 
($c=0,{\tt\_C.tracer}-1$), species number densities
 | 
 | 
($c=0,{\tt\_C.tracer}-1$), species number densities
 | 
| 
 | 
($s=0,{\tt\_C.species}-1$). The parameter `_C.tracer` (`_C.species`)
 | 
 | 
($s=0,{\tt\_C.species}-1$). The parameter `_C.tracer` (`_C.species`)
 | 
| ... | @@ -819,7 +819,7 @@ considered as primary variables and must be assigned by the user. The | 
... | @@ -819,7 +819,7 @@ considered as primary variables and must be assigned by the user. The | 
| 
 | 
parameter `_C.testfields` denotes the number of testfields.
 | 
 | 
parameter `_C.testfields` denotes the number of testfields.
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
**Important:** In case magnetic field splitting is enabled (cf. [Code
 | 
 | 
**Important:** In case magnetic field splitting is enabled (cf. [Code
 | 
| 
 | 
features](#code-features)) the variable $\mathbf{B}$ represents the
 | 
 | 
features](3.1-Code-basics#code-features)) the variable $\mathbf{B}$ represents the
 | 
| 
 | 
residual magnetic field, i.e., total field minus background field. In
 | 
 | 
residual magnetic field, i.e., total field minus background field. In
 | 
| 
 | 
addition, $e$ represents the residual total energy density, i.e, has a
 | 
 | 
addition, $e$ represents the residual total energy density, i.e, has a
 | 
| 
 | 
magnetic energy density contribution solely from the residual magnetic
 | 
 | 
magnetic energy density contribution solely from the residual magnetic
 | 
| ... | @@ -843,7 +843,7 @@ il=0,`_C.level`, and all its superblocks: | 
... | @@ -843,7 +843,7 @@ il=0,`_C.level`, and all its superblocks: | 
| 
 | 
        }
 | 
 | 
        }
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
Please recall in this context the introduction to NIRVANA's [Mesh data
 | 
 | 
Please recall in this context the introduction to NIRVANA's [Mesh data
 | 
| 
 | 
structure](#mesh-data-structure).
 | 
 | 
structure](3.1-Code-basics#mesh-data-structure).
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
There are two types of mesh variables: cell-averaged variables and
 | 
 | 
There are two types of mesh variables: cell-averaged variables and
 | 
| 
 | 
face-averaged variables. Cell-averaged variables are
 | 
 | 
face-averaged variables. Cell-averaged variables are
 | 
| ... | @@ -944,7 +944,7 @@ divergence-free setup: | 
... | @@ -944,7 +944,7 @@ divergence-free setup: | 
| 
 | 
 | 
 | 
 | 
| 
 | 
**(I)** Explicit computation of cell-face-averaged magnetic field
 | 
 | 
**(I)** Explicit computation of cell-face-averaged magnetic field
 | 
| 
 | 
components by exact integration of given analytical expressions. For a
 | 
 | 
components by exact integration of given analytical expressions. For a
 | 
| 
 | 
grid cell (,,) on superblock `g` the discretized components would then
 | 
 | 
grid cell (ix,iy,iz) on superblock `g` the discretized components would then
 | 
| 
 | 
read 
 | 
 | 
read 
 | 
| 
 | 
$$\mathtt{g->bx[iz][iy][ix]}=\frac{1}{\delta \mathcal{A}_x}\int
 | 
 | 
$$\mathtt{g->bx[iz][iy][ix]}=\frac{1}{\delta \mathcal{A}_x}\int
 | 
| 
 | 
\limits_\mathtt{g->y[iy]}^\mathtt{g->y[iy+1]}
 | 
 | 
\limits_\mathtt{g->y[iy]}^\mathtt{g->y[iy+1]}
 | 
| ... | @@ -958,7 +958,7 @@ $$\mathtt{g->bz[iz][iy][ix]}=\frac{1}{\delta \mathcal{A}_z}\int | 
... | @@ -958,7 +958,7 @@ $$\mathtt{g->bz[iz][iy][ix]}=\frac{1}{\delta \mathcal{A}_z}\int | 
| 
 | 
where the numerical expressions for the cell faces are:
 | 
 | 
where the numerical expressions for the cell faces are:
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
| cell face          | expression                               |
 | 
 | 
| cell face          | expression                               |
 | 
| 
 | 
|:---------------------|:-----------------------------------------|
 | 
 | 
|:-------------------|:-----------------------------------------|
 | 
| 
 | 
| *δ*𝒜<sub>*x*</sub> | `g->hyh[ix]*g->hyh[ix]*g->dvy[iy]*g->dz` |
 | 
 | 
| *δ*𝒜<sub>*x*</sub> | `g->hyh[ix]*g->hyh[ix]*g->dvy[iy]*g->dz` |
 | 
| 
 | 
| *δ*𝒜<sub>*y*</sub> | `g->dax[ix]*g->hzyh[iy]*g->dz`           |
 | 
 | 
| *δ*𝒜<sub>*y*</sub> | `g->dax[ix]*g->hzyh[iy]*g->dz`           |
 | 
| 
 | 
| *δ*𝒜<sub>*z*</sub> | `g->dax[ix]*g->dy`                       |
 | 
 | 
| *δ*𝒜<sub>*z*</sub> | `g->dax[ix]*g->dy`                       |
 | 
| ... | @@ -982,21 +982,21 @@ integral form of $\mathbf{B}=\nabla\times \mathbf{A}$: | 
... | @@ -982,21 +982,21 @@ integral form of $\mathbf{B}=\nabla\times \mathbf{A}$: | 
| 
 | 
where the difference operators $\Delta_{ix}$, $\Delta_{iy}$ and
 | 
 | 
where the difference operators $\Delta_{ix}$, $\Delta_{iy}$ and
 | 
| 
 | 
$\Delta_{iz}$ are given by
 | 
 | 
$\Delta_{iz}$ are given by
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$\Delta_{ix}X=X(\mathtt{ix+1,iy,iz})-X(\mathtt{ix,iy,iz})$,
 | 
 | 
$\Delta_{ix}X=X(\mathtt{iz,iy,ix+1})-X(\mathtt{iz,iy,ix})$,
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$\Delta_{iy}X=X(\mathtt{ix,iy+1,iz})-X(\mathtt{ix,iy,iz})$,
 | 
 | 
$\Delta_{iy}X=X(\mathtt{iz,iy+1,ix})-X(\mathtt{iz,iy,ix})$,
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$\Delta_{iz}X=X(\mathtt{ix,iy,iz+1})-X(\mathtt{ix,iy,iz})$
 | 
 | 
$\Delta_{iz}X=X(\mathtt{iz,iy,ix+1})-X(\mathtt{iz,iy,ix})$
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
and $(\hat{A}_x,\hat{A}_y,\hat{A}_z)$ are the cell-edge integrals
 | 
 | 
and $(\hat{A}_x,\hat{A}_y,\hat{A}_z)$ are the cell-edge integrals
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$$\hat{A}_x(\mathtt{ix,iy,iz})=\int\limits_\mathtt{g->x[ix]}^\mathtt{g->x[ix+1]}
 | 
 | 
$$\hat{A}_x(\mathtt{iz,iy,ix})=\int\limits_\mathtt{g->x[ix]}^\mathtt{g->x[ix+1]}
 | 
| 
 | 
A_x(x,\mathtt{g->y[iy]},\mathtt{g->z[iz]})dx$$
 | 
 | 
A_x(x,\mathtt{g->y[iy]},\mathtt{g->z[iz]})dx$$
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$$\hat{A}_y(\mathtt{ix,iy,iz})=\int\limits_\mathtt{g->y[iy]}^\mathtt{g->y[iy+1]}
 | 
 | 
$$\hat{A}_y(\mathtt{iz,iy,ix})=\int\limits_\mathtt{g->y[iy]}^\mathtt{g->y[iy+1]}
 | 
| 
 | 
A_y(\mathtt{g->x[ix]},y,\mathtt{g->z[iz]})dy$$
 | 
 | 
A_y(\mathtt{g->x[ix]},y,\mathtt{g->z[iz]})dy$$
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
$$\hat{A}_z(\mathtt{ix,iy,iz})=\int\limits_\mathtt{g->z[iz]}^\mathtt{g->z[iz+1]}
 | 
 | 
$$\hat{A}_z(\mathtt{iz,iy,ix})=\int\limits_\mathtt{g->z[iz]}^\mathtt{g->z[iz+1]}
 | 
| 
 | 
A_z(\mathtt{g->x[ix]},\mathtt{g->y[iy]},z)dz$$
 | 
 | 
A_z(\mathtt{g->x[ix]},\mathtt{g->y[iy]},z)dz$$
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
The $\hat{A}$'s are usually easier to compute than the face-averaged
 | 
 | 
The $\hat{A}$'s are usually easier to compute than the face-averaged
 | 
| ... | @@ -1025,7 +1025,7 @@ for two problems: the Orszag-Tang vortex problem (example 1) and a | 
... | @@ -1025,7 +1025,7 @@ for two problems: the Orszag-Tang vortex problem (example 1) and a | 
| 
 | 
shock-cloud interaction problem (example 2).
 | 
 | 
shock-cloud interaction problem (example 2).
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
**Example 1** (taken from `/nirvana/testproblems/MHD/problem2`; cf.
 | 
 | 
**Example 1** (taken from `/nirvana/testproblems/MHD/problem2`; cf.
 | 
| 
 | 
[@Z04])
 | 
 | 
\[[Z04](#references)\])
 | 
| 
 | 
 | 
 | 
 | 
| 
 | 
IC for the Orszag-Tang vortex problem simulated in a doubly-periodic
 | 
 | 
IC for the Orszag-Tang vortex problem simulated in a doubly-periodic
 | 
| 
 | 
square domain of length $L$ (given by `_C.up[0]-_C.lo[0]`):
 | 
 | 
square domain of length $L$ (given by `_C.up[0]-_C.lo[0]`):
 | 
| ... |  | ... |  |