hypervisc_strict_fft

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 operator

2*S_ij = u_i,j + u_j,i - 2/3*delta_ij*div(u)

Derivatives are taken in Fourier space.

** 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:

hyperviscosity_strict(), register_hypervisc_strict()

Needed modules

Variables

Subroutines and functions

subroutine  hypervisc_strict/register_hypervisc_strict()

Set up indices for hyperviscosity auxiliary slots.

20-aug-07/anders: coded

Use :

farraymanager

Call to:

svn_id(), fourier_transform_shear(), fourier_transform()

subroutine  hypervisc_strict/hyperviscosity_strict(f)

Apply momentum-conserving, symmetric, sixth order hyperviscosity with positive define heating rate (see Haugen & Brandenburg 2004).

20-aug-2007/anders: coded

Parameters:

f (mx,my,mz,mfarray) [real]

Use :

fourier, sub

Call to:

svn_id(), fourier_transform_shear(), fourier_transform()