Update 3.2 User interfaces authored by Udo Ziegler's avatar Udo Ziegler
...@@ -944,7 +944,7 @@ divergence-free setup: ...@@ -944,7 +944,7 @@ divergence-free setup:
\(1\) computation of cell-face-averaged magnetic field components via \(1\) computation of cell-face-averaged magnetic field components via
exact integration of the analytical expressions. The so discretized exact integration of the analytical expressions. The so discretized
field is per se cell-wise divergence-free. For a grid cell field is per se cell-wise divergence-free. For a grid cell
(`ix`,`iy`,`iz`) on superblock `g` this means (`ix`,`iy`,`iz`) on superblock `g` the discritized components read
![ic_b](uploads/411b3e817fec94afa0a2861772697e71/ic_b.png) ![ic_b](uploads/411b3e817fec94afa0a2861772697e71/ic_b.png)
The numerical expressions for the cell face contents are: The numerical expressions for the cell face contents are:
...@@ -1289,7 +1289,7 @@ physics guide ...@@ -1289,7 +1289,7 @@ physics guide
non-periodic BC. The combination of periodic BC at one domain boundary non-periodic BC. The combination of periodic BC at one domain boundary
with non-periodic BC at another domain boundary is not supported.* with non-periodic BC at another domain boundary is not supported.*
### User-defined coefficients for dissipative processes ## User-defined coefficients for dissipative processes
The modules `viscosityCoeffUser.c`, `conductionCoeffUser.c` and The modules `viscosityCoeffUser.c`, `conductionCoeffUser.c` and
`diffusionCoeffUser.c` serve as templates for a user-defined coefficient `diffusionCoeffUser.c` serve as templates for a user-defined coefficient
...@@ -1423,7 +1423,7 @@ User-defined Ohmic diffusion is enabled by appropriate choice in the ...@@ -1423,7 +1423,7 @@ User-defined Ohmic diffusion is enabled by appropriate choice in the
parameter interface `nirvana.par` under the category parameter interface `nirvana.par` under the category
`PHYSICS SPECIFICATIONS` (code parameter: `_C.diffusion`). `PHYSICS SPECIFICATIONS` (code parameter: `_C.diffusion`).
### User-defined coefficient for ambipolar diffusion ## User-defined coefficient for ambipolar diffusion
The module `APdiffusionCoeffUser.c` serves as template for a The module `APdiffusionCoeffUser.c` serves as template for a
user-defined ambipolar diffusion coefficient. Ambipolar diffusion enters user-defined ambipolar diffusion coefficient. Ambipolar diffusion enters
...@@ -1467,11 +1467,11 @@ User-defined ambipolar diffusion is enabled by appropriate choice in the ...@@ -1467,11 +1467,11 @@ User-defined ambipolar diffusion is enabled by appropriate choice in the
parameter interface `nirvana.par` under the category parameter interface `nirvana.par` under the category
`PHYSICS SPECIFICATIONS` (code parameter: `_C.APdiffusion`). `PHYSICS SPECIFICATIONS` (code parameter: `_C.APdiffusion`).
### User-defined body force ## User-defined body force
The module `forceUser.c` serves as template for coding a user-defined The module `forceUser.c` serves as template for coding a user-defined
*specific* body force **f** (force per mass in units *specific* body force **f** (force per mass in units
*N**k**g*<sup>1</sup>). The body force then enters the momentum N⋅kg<sup>1</sup>). The body force then enters the momentum
equation and energy equation as source term. equation and energy equation as source term.
In the call of `forceUser()` the function arguments are the superblock In the call of `forceUser()` the function arguments are the superblock
...@@ -1506,17 +1506,17 @@ The body force is enabled by specification in the parameter interface ...@@ -1506,17 +1506,17 @@ The body force is enabled by specification in the parameter interface
`nirvana.par` under the category `PHYSICS SPECIFICATIONS` (code `nirvana.par` under the category `PHYSICS SPECIFICATIONS` (code
parameter: `_C.force`). parameter: `_C.force`).
### User-defined cooling/heating function ## User-defined cooling/heating function
The modules `sourceCoolingUser.c` and `sourceHeatingUser.c` serve as The modules `sourceCoolingUser.c` and `sourceHeatingUser.c` serve as
templates for coding a user-defined cooling function, templates for coding a user-defined cooling function,
*L*<sub>*c**o**o**l*</sub> ≤ 0, and heating function, *L*<sub>*cool*</sub> ≤ 0, and heating function,
*L*<sub>*h**e**a**t*</sub> ≥ 0, respectively. Both functions are allowed *L*<sub>*heat*</sub> ≥ 0, respectively. Both functions are allowed
to depend on temperature *T* and density 𝜚. The net heatloss, i.e. the to depend on temperature *T* and density 𝜚. The net heatloss, i.e. the
sum sum
*L*<sub>*c**o**o**l*</sub>(*T*, 𝜚) + *L*<sub>*h**e**a**t*</sub>(*T*, 𝜚) *L*<sub>*cool*</sub>(*T*, 𝜚) + *L*<sub>*heat*</sub>(*T*, 𝜚)
of both functions, enters as a source term in the energy equation. of both functions, enters as a source term in the energy equation.
*L*<sub>*c**o**o**l*</sub> and *L*<sub>*h**e**a**t*</sub> are measured *L*<sub>*cool*</sub> and *L*<sub>*heat*</sub> are measured
in units *J**s*<sup> − 1</sup>*m*<sup> − 3</sup>. in units *J**s*<sup> − 1</sup>*m*<sup> − 3</sup>.
In the call of `sourceCoolingUser()` (`sourceHeatingUser()`) the In the call of `sourceCoolingUser()` (`sourceHeatingUser()`) the
...@@ -1529,12 +1529,12 @@ the pointer `deriv` to the derivatives flag and the 2-element vector ...@@ -1529,12 +1529,12 @@ the pointer `deriv` to the derivatives flag and the 2-element vector
f=sourceHeatingUser(T,rho,deriv,dfh); f=sourceHeatingUser(T,rho,deriv,dfh);
The user must define the return value The user must define the return value
`f` = *L*<sub>*c**o**o**l*</sub>(`T``,` `r``h``o`) `f` = *L*<sub>*cool*</sub>(`T``,` `rho`)
(*L*<sub>*h**e**a**t*</sub>(`T``,` `r``h``o`)) in `sourceCoolingUser.c` (*L*<sub>*heat*</sub>(`T``,` `rho`)) in `sourceCoolingUser.c`
(`sourceHeatingUser.c`). The `deriv`-flag is thought to indicate the (`sourceHeatingUser.c`). The `deriv`-flag is thought to indicate the
calling function whether a user provides the derivatives of calling function whether a user provides the derivatives of
*L*<sub>*c**o**o**l*</sub>(*T*, 𝜚) and *L*<sub>*cool*</sub>(*T*, 𝜚) and
*L*<sub>*h**e**a**t*</sub>(*T*, 𝜚) with respect to *T* and 𝜚 himself. *L*<sub>*heat*</sub>(*T*, 𝜚) with respect to *T* and 𝜚 himself.
The `deriv`-flag is preset to `NO` when entering the code function. If The `deriv`-flag is preset to `NO` when entering the code function. If
the user sets the user sets
...@@ -1542,9 +1542,9 @@ the user sets ...@@ -1542,9 +1542,9 @@ the user sets
the derivatives must be stored by the user in the 2-element vector `dfc` the derivatives must be stored by the user in the 2-element vector `dfc`
(`dfh`) with `dfc[0]` (`dfh[0]`) storing the derivative (`dfh`) with `dfc[0]` (`dfh[0]`) storing the derivative
*L*<sub>*c**o**o**l*</sub>/∂*T* (∂*L*<sub>*h**e**a**t*</sub>/∂*T*) and *L*<sub>*cool*</sub>/∂*T* (∂*L*<sub>*heat*</sub>/∂*T*) and
`dfc[1]` (`dfh[1]`) storing the derivative `dfc[1]` (`dfh[1]`) storing the derivative
*L*<sub>*c**o**o**l*</sub>/∂𝜚 (∂*L*<sub>*h**e**a**t*</sub>/∂𝜚). *L*<sub>*cool*</sub>/∂𝜚 (∂*L*<sub>*heat*</sub>/∂𝜚).
Otherwise derivatives are automatically computed by a finite difference Otherwise derivatives are automatically computed by a finite difference
approximation. approximation.
...@@ -1559,7 +1559,7 @@ User-defined cooling/heating is enabled by appropriate choice in the ...@@ -1559,7 +1559,7 @@ User-defined cooling/heating is enabled by appropriate choice in the
parameter interface `nirvana.par` under the category parameter interface `nirvana.par` under the category
`PHYSICS SPECIFICATIONS` (code parameter: `_C.heatloss`). `PHYSICS SPECIFICATIONS` (code parameter: `_C.heatloss`).
### User-defined equation of state ## User-defined equation of state
#### Analytic EOS #### Analytic EOS
...@@ -1724,7 +1724,7 @@ A tabulated EOS is enabled by appropriate choice in the parameter ...@@ -1724,7 +1724,7 @@ A tabulated EOS is enabled by appropriate choice in the parameter
interface `nirvana.par` under category `PHYSICS SPECIFICATIONS` (code interface `nirvana.par` under category `PHYSICS SPECIFICATIONS` (code
paramter: `_C.eos`). paramter: `_C.eos`).
### User-defined initial/restricted mesh refinement ## User-defined initial/restricted mesh refinement
For certain problems it may be advantageous to start a simulation with a For certain problems it may be advantageous to start a simulation with a
pre-refined mesh in some parts of the computational domain or to retrict pre-refined mesh in some parts of the computational domain or to retrict
...@@ -1835,7 +1835,7 @@ the requested refinement control parameter. ...@@ -1835,7 +1835,7 @@ the requested refinement control parameter.
An example can be found in the testproblem An example can be found in the testproblem
`/nirvana/testproblems/GRAVITY/problem3`. `/nirvana/testproblems/GRAVITY/problem3`.
### Specification of NCCM parameters ## Specification of NCCM parameters
The parameter file `NCCM.par` serves as user interface to the The parameter file `NCCM.par` serves as user interface to the
multi-species framework/NCCM. `NCCM.par` is grouped into the category multi-species framework/NCCM. `NCCM.par` is grouped into the category
...@@ -1987,7 +1987,7 @@ A thermal process is activated (deactivated) by specifying the value Y ...@@ -1987,7 +1987,7 @@ A thermal process is activated (deactivated) by specifying the value Y
(N). Every text in a line following the ’`>`’-character is ignored by (N). Every text in a line following the ’`>`’-character is ignored by
the parser and serves for comments. the parser and serves for comments.
### User-controllable macros ## User-controllable macros
Besides the parameters collected in the user interfaces `nirvana.par` Besides the parameters collected in the user interfaces `nirvana.par`
and `NCCM.par` there are a number of further parameters which can be and `NCCM.par` there are a number of further parameters which can be
... ...
......