MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
Functions/Subroutines | Variables
mod_viscosity Module Reference

The module add viscous source terms and check time step. More...

Functions/Subroutines

subroutine vc_params_read (files)
 Read this module"s parameters from a file.
 
subroutine viscosity_init (phys_wider_stencil)
 Initialize the module.
 
subroutine viscosity_add_source_cartesian (qdt, ixil, ixol, wct, wp, w, x, energy, qsourcesplit, active)
 
subroutine viscosity_add_source_sphere (qdt, ixil, ixol, wct, wp, w, x, energy, qsourcesplit, active)
 
subroutine viscosity_add_source_cylinder (qdt, ixil, ixol, wct, wp, w, x, energy, qsourcesplit, active)
 
subroutine viscosity_get_dt (w, ixil, ixol, dtnew, dxd, x)
 
subroutine, public visc_get_flux_prim (w, x, ixil, ixol, idim, f, energy)
 
subroutine get_crossgrad (ixil, ixol, x, w, idim, cross)
 
subroutine cart_cross_grad (ixil, ixol, x, w, idim, cross)
 yields d_i v_j + d_j v_i for a given i, OK in Cartesian and for some tensor terms in cylindrical (rr & rz) and in spherical (rr)
 
subroutine visc_add_source_geom (qdt, ixil, ixol, wct, w, x)
 
subroutine sub_add_source (qdt, ixil, ixol, wct, wp, w, x, energy, qsourcesplit, active)
 

Variables

double precision, public vc_mu = 1.d0
 Viscosity coefficient.
 
integer, public, protected v1_
 Indices of the velocity for the form of better vectorization.
 
integer, public, protected v2_
 
integer, public, protected v3_
 
logical vc_4th_order = .false.
 fourth order
 
logical vc_split = .false.
 source split or not
 
logical viscindiv = .false.
 whether to compute the viscous terms as fluxes (ie in the div on the LHS), or not (by default)
 
procedure(sub_add_source), pointer, public viscosity_add_source => null()
 

Detailed Description

The module add viscous source terms and check time step.

Viscous forces in the momentum equations: d m_i/dt += - div (vc_mu * PI) !! Viscous work in the energy equation: !! de/dt += - div (v . vc_mu * PI) where the PI stress tensor is PI_i,j = - (dv_j/dx_i + dv_i/dx_j) + Kronecker delta_i,j*(2/3)*Sum_k dv_k/dx_k where vc_mu is the dynamic viscosity coefficient (g cm^-1 s^-1).

Function/Subroutine Documentation

◆ cart_cross_grad()

subroutine mod_viscosity::cart_cross_grad ( integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, 1:^nd), intent(in)  x,
double precision, dimension(ixi^s, 1:nw), intent(in)  w,
integer, intent(in)  idim,
double precision, dimension(ixi^s,ndir), intent(out)  cross 
)

yields d_i v_j + d_j v_i for a given i, OK in Cartesian and for some tensor terms in cylindrical (rr & rz) and in spherical (rr)

Definition at line 1117 of file mod_viscosity.t.

Here is the call graph for this function:

◆ get_crossgrad()

subroutine mod_viscosity::get_crossgrad ( integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x,
double precision, dimension(ixi^s, 1:nw), intent(in)  w,
integer, intent(in)  idim,
double precision, dimension(ixi^s,ndir), intent(out)  cross 
)

Definition at line 964 of file mod_viscosity.t.

Here is the call graph for this function:

◆ sub_add_source()

subroutine mod_viscosity::sub_add_source ( double precision, intent(in)  qdt,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s,1:nw), intent(in)  wct,
double precision, dimension(ixi^s,1:nw), intent(in)  wp,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
logical, intent(in)  energy,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

Definition at line 1233 of file mod_viscosity.t.

◆ vc_params_read()

subroutine mod_viscosity::vc_params_read ( character(len=*), dimension(:), intent(in)  files)

Read this module"s parameters from a file.

Definition at line 45 of file mod_viscosity.t.

◆ visc_add_source_geom()

subroutine mod_viscosity::visc_add_source_geom ( double precision, intent(in)  qdt,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s, 1:nw), intent(inout)  wct,
double precision, dimension(ixi^s, 1:nw), intent(inout)  w,
double precision, dimension(ixi^s, 1:ndim), intent(in)  x 
)

Definition at line 1140 of file mod_viscosity.t.

Here is the call graph for this function:

◆ visc_get_flux_prim()

subroutine, public mod_viscosity::visc_get_flux_prim ( double precision, dimension(ixi^s, 1:nw), intent(in)  w,
double precision, dimension(ixi^s, 1:^nd), intent(in)  x,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
integer, intent(in)  idim,
double precision, dimension(ixi^s, nwflux), intent(inout)  f,
logical, intent(in)  energy 
)

Definition at line 930 of file mod_viscosity.t.

Here is the call graph for this function:

◆ viscosity_add_source_cartesian()

subroutine mod_viscosity::viscosity_add_source_cartesian ( double precision, intent(in)  qdt,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s,1:nw), intent(in)  wct,
double precision, dimension(ixi^s,1:nw), intent(in)  wp,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
logical, intent(in)  energy,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

Definition at line 100 of file mod_viscosity.t.

◆ viscosity_add_source_cylinder()

subroutine mod_viscosity::viscosity_add_source_cylinder ( double precision, intent(in)  qdt,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s,1:nw), intent(in)  wct,
double precision, dimension(ixi^s,1:nw), intent(in)  wp,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
logical, intent(in)  energy,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

Definition at line 551 of file mod_viscosity.t.

◆ viscosity_add_source_sphere()

subroutine mod_viscosity::viscosity_add_source_sphere ( double precision, intent(in)  qdt,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, dimension(ixi^s,1:nw), intent(in)  wct,
double precision, dimension(ixi^s,1:nw), intent(in)  wp,
double precision, dimension(ixi^s,1:nw), intent(inout)  w,
double precision, dimension(ixi^s,1:ndim), intent(in)  x,
logical, intent(in)  energy,
logical, intent(in)  qsourcesplit,
logical, intent(inout)  active 
)

Definition at line 294 of file mod_viscosity.t.

◆ viscosity_get_dt()

subroutine mod_viscosity::viscosity_get_dt ( double precision, dimension(ixi^s,1:nw), intent(in)  w,
integer, intent(in)  ixi,
integer, intent(in)  l,
integer, intent(in)  ixo,
  l,
double precision, intent(inout)  dtnew,
double precision, intent(in)  dx,
double precision, intent(in)  d,
double precision, dimension(ixi^s,1:ndim), intent(in)  x 
)

Definition at line 887 of file mod_viscosity.t.

◆ viscosity_init()

subroutine mod_viscosity::viscosity_init ( integer, intent(inout)  phys_wider_stencil)

Initialize the module.

Definition at line 62 of file mod_viscosity.t.

Here is the call graph for this function:

Variable Documentation

◆ v1_

integer, public, protected mod_viscosity::v1_

Indices of the velocity for the form of better vectorization.

Definition at line 26 of file mod_viscosity.t.

◆ v2_

integer, public, protected mod_viscosity::v2_

Definition at line 26 of file mod_viscosity.t.

◆ v3_

integer, public, protected mod_viscosity::v3_

Definition at line 26 of file mod_viscosity.t.

◆ vc_4th_order

logical mod_viscosity::vc_4th_order = .false.

fourth order

Definition at line 29 of file mod_viscosity.t.

◆ vc_mu

double precision, public mod_viscosity::vc_mu = 1.d0

Viscosity coefficient.

Definition at line 15 of file mod_viscosity.t.

◆ vc_split

logical mod_viscosity::vc_split = .false.

source split or not

Definition at line 32 of file mod_viscosity.t.

◆ viscindiv

logical mod_viscosity::viscindiv = .false.

whether to compute the viscous terms as fluxes (ie in the div on the LHS), or not (by default)

Definition at line 36 of file mod_viscosity.t.

◆ viscosity_add_source

procedure(sub_add_source), pointer, public mod_viscosity::viscosity_add_source => null()

Definition at line 38 of file mod_viscosity.t.