Changes
Page history
Update 3.2 User interfaces
authored
Jan 11, 2021
by
Udo Ziegler
Show whitespace changes
Inline
Side-by-side
3-NIRVANA-user-guide/3.2-User-interfaces.md
View page @
3bc94dcd
...
@@ -1332,7 +1332,7 @@ whence a loop like
...
@@ -1332,7 +1332,7 @@ whence a loop like
must be added in
`viscosityCoeffUser.c`
. The coefficient should be
must be added in
`viscosityCoeffUser.c`
. The coefficient should be
evaluated at cell-centroid coordinates
evaluated at cell-centroid coordinates
(
`g->xc[ix]
,
g->yc[iy]
,
g->zc[iz]`
). An example definition for a viscosity
(
`g->xc[ix]
`
,
`
g->yc[iy]
`
,
`
g->zc[iz]`
). An example definition for a viscosity
coefficient can be found in testproblem
coefficient can be found in testproblem
`/nirvana/testproblems/VISC/problem1`
.
`/nirvana/testproblems/VISC/problem1`
.
...
@@ -1347,7 +1347,7 @@ Thermal conduction enters the energy equation through a heat flux
...
@@ -1347,7 +1347,7 @@ Thermal conduction enters the energy equation through a heat flux
introduces anisotropic effects with different transport properties along
introduces anisotropic effects with different transport properties along
and across the magnetic field.
**F**
<sub>
*C*
</sub>
is described by
and across the magnetic field.
**F**
<sub>
*C*
</sub>
is described by
**F**
<sub>
*C*
</sub>
=
−
*κ*
<sub>
∥
</sub>
(∇
*T*
⋅
**B̂**
)
**B̂**
−
*κ*
<sub>
⊥
</sub>
(∇
*T*
−(∇
*T*
⋅
**B̂**
)
**B̂**
)
**F**
<sub>
*C*
</sub>
=
−
*κ*
<sub>
∥
</sub>
(∇
*T*
⋅
**B̂**
)
**B̂**
−
*κ*
<sub>
⊥
</sub>
(∇
*T*
−(∇
*T*
⋅
**B̂**
)
**B̂**
)
where
*κ*
<sub>
∥
</sub>
and
*κ*
<sub>
⊥
</sub>
is the thermal conduction
where
*κ*
<sub>
∥
</sub>
and
*κ*
<sub>
⊥
</sub>
is the thermal conduction
coefficient parallel and perpendicular to the magnetic field,
coefficient parallel and perpendicular to the magnetic field,
...
@@ -1378,7 +1378,7 @@ range of `g`, whence a loop like
...
@@ -1378,7 +1378,7 @@ range of `g`, whence a loop like
must be added to
`conductionCoeffUser.c`
. The coefficients should be
must be added to
`conductionCoeffUser.c`
. The coefficients should be
evaluated at cell-centroid coordinates
evaluated at cell-centroid coordinates
(
`g->xc[ix]
,
g->yc[iy]
,
g->zc[iz]`
). In HD simulations or MHD simulations
(
`g->xc[ix]
`
,
`
g->yc[iy]
`
,
`
g->zc[iz]`
). In HD simulations or MHD simulations
with forced isotropy (when
`COND_FORCE_ISO`
=
`YES`
in
`nirvanaUser.h`
)
with forced isotropy (when
`COND_FORCE_ISO`
=
`YES`
in
`nirvanaUser.h`
)
only the
`cond`
-array has to be assigned with
`cond`
representing the
only the
`cond`
-array has to be assigned with
`cond`
representing the
conduction coefficient
*κ*
in the isotropic heat flux
conduction coefficient
*κ*
in the isotropic heat flux
...
@@ -1393,7 +1393,7 @@ PHYSICS SPECIFICATIONS (code parameter: `_C.conduction`).
...
@@ -1393,7 +1393,7 @@ PHYSICS SPECIFICATIONS (code parameter: `_C.conduction`).
Ohmic diffusion enters the induction equation and energy equation as a
Ohmic diffusion enters the induction equation and energy equation as a
field contribution given by
field contribution given by
**E**
<sub>
*D*
</sub>
=
−
*η*
<sub>
*D*
</sub>
∇
×
**B**
**E**
<sub>
*D*
</sub>
=
−
*η*
<sub>
*D*
</sub>
∇
×
**B**
where
*η*
<sub>
*D*
</sub>
\[
m
<sup>
2
</sup>
⋅s
<sup>
−1
</sup>
\]
is the
where
*η*
<sub>
*D*
</sub>
\[
m
<sup>
2
</sup>
⋅s
<sup>
−1
</sup>
\]
is the
diffusion coefficient.
diffusion coefficient.
...
@@ -1417,7 +1417,7 @@ whence a loop like
...
@@ -1417,7 +1417,7 @@ whence a loop like
must be added in
`diffusionCoeffUser.c`
. The coefficient should be
must be added in
`diffusionCoeffUser.c`
. The coefficient should be
evaluated at cell-centroid coordinates
evaluated at cell-centroid coordinates
(
`g->xc[ix]
,
g->yc[iy]
,
g->zc[iz]`
).
(
`g->xc[ix]
`
,
`
g->yc[iy]
`
,
`
g->zc[iz]`
).
User-defined Ohmic diffusion is enabled by appropriate choice in the
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
...
@@ -1430,7 +1430,7 @@ user-defined ambipolar diffusion coefficient. Ambipolar diffusion enters
...
@@ -1430,7 +1430,7 @@ user-defined ambipolar diffusion coefficient. Ambipolar diffusion enters
the induction equation and energy equation as a field contribution given
the induction equation and energy equation as a field contribution given
by
by
**E**
<sub>
*AD*
</sub>
=
*η*
<sub>
*AD*
</sub>
/
*μ*
\[
(∇×
**B**
)×
**B**
\]
×
**B**
**E**
<sub>
*AD*
</sub>
=
*η*
<sub>
*AD*
</sub>
/
*μ*
\[
(∇×
**B**
)×
**B**
\]
×
**B**
where
*η*
<sub>
*AD*
</sub>
where
*η*
<sub>
*AD*
</sub>
\[
V⋅m⋅A
<sup>
−1
</sup>
⋅T
<sup>
−2
</sup>
\]
denotes the
\[
V⋅m⋅A
<sup>
−1
</sup>
⋅T
<sup>
−2
</sup>
\]
denotes the
...
@@ -1459,7 +1459,7 @@ whence a loop like
...
@@ -1459,7 +1459,7 @@ whence a loop like
must be added in
`APdiffusionCoeffUser.c`
. The coefficient should be
must be added in
`APdiffusionCoeffUser.c`
. The coefficient should be
evaluated at cell-centroid coordinates
evaluated at cell-centroid coordinates
(
`g->xc[ix]
,
g->yc[iy]
,
g->zc[iz]`
). An example definition for an
(
`g->xc[ix]
`
,
`
g->yc[iy]
`
,
`
g->zc[iz]`
). An example definition for an
ambipolar diffusion coefficient can be found in testproblem
ambipolar diffusion coefficient can be found in testproblem
`/nirvana/testproblems/APDIFF/problem1`
.
`/nirvana/testproblems/APDIFF/problem1`
.
...
@@ -1497,7 +1497,7 @@ The user must assign the `fx`,`fy`,`fz`-arrays for active grid cells of
...
@@ -1497,7 +1497,7 @@ The user must assign the `fx`,`fy`,`fz`-arrays for active grid cells of
must be added in
`forceUser.c`
. Strictly speaking, the body force is to
must be added in
`forceUser.c`
. Strictly speaking, the body force is to
be understood as a cell-averaged quantity. Therefore,
**f**
should be
be understood as a cell-averaged quantity. Therefore,
**f**
should be
evaluated at cell-centroid coordinates (
`g->xc[ix]
,
g->yc[iy]
,
g->zc[iz]`
)
evaluated at cell-centroid coordinates (
`g->xc[ix]
`
,
`
g->yc[iy]
`
,
`
g->zc[iz]`
)
and the point values assigned to
`fx`
,
`fy`
,
`fz`
. An example definition
and the point values assigned to
`fx`
,
`fy`
,
`fz`
. An example definition
for a body force can be found in testproblem
for a body force can be found in testproblem
`/nirvana/testproblems/MHD/problem21`
.
`/nirvana/testproblems/MHD/problem21`
.
...
@@ -1510,11 +1510,11 @@ parameter: `_C.force`).
...
@@ -1510,11 +1510,11 @@ parameter: `_C.force`).
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>
*cool*
</sub>
≤
0, and heating function,
*L*
<sub>
*cool*
</sub>
≤
0, and heating function,
*L*
<sub>
*heat*
</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>
*cool*
</sub>
(
*T*
,
𝜚)
+
*L*
<sub>
*heat*
</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>
*cool*
</sub>
and
*L*
<sub>
*heat*
</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>
.
...
@@ -1533,8 +1533,8 @@ The user must define the return value
...
@@ -1533,8 +1533,8 @@ The user must define the return value
(
*L*
<sub>
*heat*
</sub>
(
`T`
,
`rho`
)) 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>
*cool*
</sub>
(
*T*
,
𝜚) and
*L*
<sub>
*cool*
</sub>
(
*T*
,𝜚) and
*L*
<sub>
*heat*
</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
...
...
...
...