Changes
Page history
Update 3.2 User interfaces
authored
Jan 09, 2021
by
Udo Ziegler
Hide whitespace changes
Inline
Side-by-side
3-NIRVANA-user-guide/3.2-User-interfaces.md
View page @
23f0556f
...
@@ -1303,15 +1303,15 @@ viscous stress tensor *τ* given by
...
@@ -1303,15 +1303,15 @@ viscous stress tensor *τ* given by
*τ*
=
*ν*
\[
∇
**v**
+(∇
**v**
)
<sup>
⊤
</sup>
−2/3(∇⋅
**v**
)
*I*
\]
*τ*
=
*ν*
\[
∇
**v**
+(∇
**v**
)
<sup>
⊤
</sup>
−2/3(∇⋅
**v**
)
*I*
\]
where
*ν*
\[
`k``g`
⋅
`m`
<sup>
−
1
</sup>
⋅
`s`
<sup>
−
1
</sup>
\]
is the
where
*ν*
\[
kg⋅m
<sup>
−
1
</sup>
⋅s
<sup>
−
1
</sup>
\]
is the
*dynamic*
viscosity coefficient,
**v**
the fluid velocity and
*I*
the
*dynamic*
viscosity coefficient,
**v**
the fluid velocity and
*I*
the
identity operator.
identity operator.
*Note: The *
dynamic
* viscosity coefficient *
ν
*
to be defined here should
*Note: The *
dynamic
* viscosity coefficient *
ν
*
to be defined here should
not be confused with the kinetic coefficient,
*
not be confused with the kinetic coefficient,
*
*ν*
<sub>
*k
**i**n**e**t**i**
c*
</sub>
*ν*
<sub>
*k
ineti
c*
</sub>
\[
`m`
<sup>
2
</sup>
⋅
`s`
<sup>
−
1
</sup>
\]
,
*
related to the dynamic
\[
m
<sup>
2
</sup>
⋅s
<sup>
−
1
</sup>
\]
,
*
related to the dynamic
coefficient by
* *
ν
* = 𝜚*
ν
*<sub>*
k
**i**
n
**e**
t
**i**
c
*
</sub>
.
coefficient by
* *
ν
* = 𝜚*
ν
*<sub>*
k
ineti
c
*
</sub>
.
In the call of
`viscosityCoeffUser()`
the function arguments are the
In the call of
`viscosityCoeffUser()`
the function arguments are the
superblock pointer
`g`
and the array pointer
`vis`
of type
`double***`
superblock pointer
`g`
and the array pointer
`vis`
of type
`double***`
...
@@ -1354,7 +1354,7 @@ coefficient parallel and perpendicular to the magnetic field,
...
@@ -1354,7 +1354,7 @@ coefficient parallel and perpendicular to the magnetic field,
respectively, and
**B̂**
=
**B**
/
\|
**B**
\|
is the unit vector in the
respectively, and
**B̂**
=
**B**
/
\|
**B**
\|
is the unit vector in the
direction of the magnetic field.
*κ*
<sub>
∥
</sub>
and
*κ*
<sub>
⊥
</sub>
are
direction of the magnetic field.
*κ*
<sub>
∥
</sub>
and
*κ*
<sub>
⊥
</sub>
are
measured in units
measured in units
`J`
⋅
`K`
<sup>
−
1
</sup>
⋅
`m`
<sup>
−
1
</sup>
⋅
`s`
<sup>
−
1
</sup>
.
J⋅K
<sup>
−
1
</sup>
⋅m
<sup>
−
1
</sup>
⋅s
<sup>
−
1
</sup>
.
In the call of
`conductionCoeffUser()`
the function arguments are the
In the call of
`conductionCoeffUser()`
the function arguments are the
superblock pointer
`g`
and the array pointers
`cond`
,
`cond_perp`
of
superblock pointer
`g`
and the array pointers
`cond`
,
`cond_perp`
of
...
@@ -1382,7 +1382,7 @@ evaluated at cell-centroid coordinates
...
@@ -1382,7 +1382,7 @@ evaluated at cell-centroid coordinates
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
**F**
<sub>
*C*
</sub>
=
−
*κ*
∇
*T*
.
**F**
<sub>
*C*
</sub>
=
−
*κ*
∇
*T*
.
User-defined thermal conduction is enabled by appropriate choice in the
User-defined thermal conduction is enabled by appropriate choice in the
parameter interface
`nirvana.par`
under the category
parameter interface
`nirvana.par`
under the category
...
@@ -1395,7 +1395,7 @@ field contribution given by
...
@@ -1395,7 +1395,7 @@ 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.
In the call of
`diffusionCoeffUser()`
function arguments are the
In the call of
`diffusionCoeffUser()`
function arguments are the
...
@@ -1433,11 +1433,11 @@ by
...
@@ -1433,11 +1433,11 @@ 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
ambipolar diffusion coefficient.
ambipolar diffusion coefficient.
*Note: The prefactor*
*η*
<sub>
*AD*
</sub>
/
*μ*
*has units*
*Note: The prefactor*
*η*
<sub>
*AD*
</sub>
/
*μ*
*has units*
`m`
<sup>
2
</sup>
⋅
`s`
<sup>
−
1
</sup>
⋅
`T`
<sup>
−
2
</sup>
.
m
<sup>
2
</sup>
⋅s
<sup>
−
1
</sup>
⋅T
<sup>
−
2
</sup>
.
In the call of
`APdiffusionCoeffUser()`
function arguments are the
In the call of
`APdiffusionCoeffUser()`
function arguments are the
superblock pointer
`g`
and the array pointer
`APdiff`
of type
superblock pointer
`g`
and the array pointer
`APdiff`
of type
...
@@ -1517,7 +1517,7 @@ sum
...
@@ -1517,7 +1517,7 @@ 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>
.
In the call of
`sourceCoolingUser()`
(
`sourceHeatingUser()`
) the
In the call of
`sourceCoolingUser()`
(
`sourceHeatingUser()`
) the
function arguments are the temperature value
`T`
, density value
`rho`
,
function arguments are the temperature value
`T`
, density value
`rho`
,
...
@@ -1529,8 +1529,8 @@ the pointer `deriv` to the derivatives flag and the 2-element vector
...
@@ -1529,8 +1529,8 @@ 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>
*cool*
</sub>
(
`T`
`,`
`rho`
)
`f`
=
*L*
<sub>
*cool*
</sub>
(
`T`
,
`rho`
)
(
*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
...
...
...
...