hypervisc_strict_2nd
Module
Description
$Id$
This module applies a sixth order hyperviscosity to the equation of motion (following Haugen & Brandenburg 2004). This hyperviscosity ensures that the energy dissipation rate is positive define everywhere.
The rate of strain tensor
S^(3) = (-nab^2)^2*S
is a high order generalisation of the first order rate of strain tensor
2*S_ij = u_i,j + u_j,i - 2/3*delta_ij*div(u)
Spatial derivatives are accurate to second order.
** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module
CPARAM logical, parameter :: lhyperviscosity_strict=.true.
MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 3
Quick access
- Variables:
del2_2nd,del2_2nd_nof,del2v_2nd,der2_2nd,der2_2nd_nof,der_2nd,der_2nd_nof,div_2nd,grad_2nd,graddivu_2nd- Routines:
Needed modules
Variables
- hypervisc_strict/del2_2nd [private]
- hypervisc_strict/del2_2nd_nof [private]
- hypervisc_strict/del2v_2nd [private]
- hypervisc_strict/der2_2nd [private]
- hypervisc_strict/der2_2nd_nof [private]
- hypervisc_strict/der_2nd [private]
- hypervisc_strict/der_2nd_nof [private]
- hypervisc_strict/div_2nd [private]
- hypervisc_strict/grad_2nd [private]
- hypervisc_strict/graddivu_2nd [private]
Subroutines and functions
- subroutine hypervisc_strict/register_hypervisc_strict()
Set up indices for hyperviscosity auxiliary slots.
- Use :
- Call to:
- subroutine hypervisc_strict/hyperviscosity_strict(f)
Apply momentum-conserving, symmetric, sixth order hyperviscosity with positive definite heating rate (see Haugen & Brandenburg 2004).
The rate of strain tensor of order 3 is defined as:
/-1/3*div(u)+dux/dx 1/2*(dux/dy+duy/dx) 1/2*(dux/dz+duz/dx) | |
- S^(3)=(d2)^2 |1/2*(dux/dy+duy/dx) -1/3*div(u)+duy/dy 1/2*(duy/dz+duz/dy) |
-
1/2*(dux/dz+duz/dx) 1/2*(duy/dz+duz/dy) -1/3*div(u)+2*duz/dz/
where d2 is the Laplacian operator d2=(d^2/dx^2+d2/dy^2+d2/dz^2).
To avoid communicating ghost zones after each operator, we use derivatives that are second order in space.
24-nov-03/nils: coded
- Parameters:
- Use :