In many test problems it is not necessary to activate the 2D/3D tensor viscosity. But when strong slow shock fronts are aligned with the grid the Roe solver runs into problems and at least some additional 2D or 3D viscosity is necessary. And even if the Roe solver can handle sharp shocks by its own, the radiation transport algorithm might cause trouble because of the enormous opacity variations across a shock front. Here the tensor viscosity is useful, too.
real c_vissmagorinsky
:
0.5
are sufficient to stabilize the code.
Larger values (1.2
in the example above) are only necessary for some
nasty under-resolved supergiant models.
Setting
c_vissmagorinsky
= c_visartificial
= c_visexpansion
=
c_vislinear
= c_visp2pcoeff
= 0.0
skips the tensor viscosity step entirely.
real c_visartificial
:
0.5
are sufficient to stabilize the code.
Larger values (1.2
in the example above) are only necessary for some
nasty under-resolved supergiant models.
real c_visexpansion
:
c_visexpansion
= 0.0
).
However, it might be useful in cases were strong localized expansions cause problems.
real c_vislinear
:
c_vislinear
= 0.0
).
It might be useful to damp small-amplitude almost linear waves.
real c_visprturb
:
1.0
and 10.0
appear reasonable.
Note that larger values lead to smaller amounts of turbulent mixing!
A value of 0.0
switches off the turbulent mixing terms
(but not the entire tensor viscosity).
real c_vistensordiag
:
real c_vissmagorinsky
and real c_visartificial
.
But the parameter can be used to tentatively switch off the diagonal terms completely
or to change its importance compared to the other terms.
real c_vistensoroff
:
real c_vissmagorinsky
and real c_visartificial
.
But the parameter can be used to tentatively switch off the off-diagonal terms completely
or to change its importance compared to the other terms.
real c_vistensordiv
:
real c_vissmagorinsky
and real c_visartificial
.
But the parameter can be used to switch off the divergence terms completely
or to change its importance compared to the other terms.
These divergence terms can be used to reduce the effect of
the tensor viscosity in the case of isotropic compression.
But this reduction
(c_vistensordiv
= -0.333333
in 3D,
c_vistensordiv
= -0.5
in 2D)
is usually switched off.
integer n_viscellsperchunk
:
integer n_hydcellsperchunk
, see Sect. 5.3.7)
are adequate.
On the other hand they should not be too large to limit the usage of temporary
memory and to allow parallelization (the distribution of chunks to threads):
For simulations with activated OpenMP on a parallel machine the
chunk size has to be made small enough to allow at least as many chunks as processors available.
This is particularly important for models with a small number of grid points (e.g. 2D models).
An example is given for the Hitachi SR8000 in Sect. 3.7.8.
In addition to the standard tensor viscosity described above, there
is a more experimental "point-to-point" viscosity.
It relies on a completely different discretization.
It should conserve angular momentum exactly and
guarantee positivity of dissipated energy (for sufficiently small time steps).
The current version should only be used for equidistant grids
(same spacing in all directions, as for the supergiant models)
by experienced users.
If activated, the "point-to-point" viscosity is typically used in addition to the standard one.
real c_visp2pcoeff
:
real c_visartificial
, see 5.3.8.
A value of 0.0
switches it off.
real c_visp2pincl1
:
1.0
(interaction is considered) and
0.0
(no interaction with these cells).
The usual value is 1.0
.
real c_visp2pincl2
:
1.0
(interaction is considered) and
0.0
(no interaction with these cells).
The usual value is 0.0
to save some computation time.