MPI-AMRVAC
3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
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. More... | |
subroutine | viscosity_init (phys_wider_stencil, phys_req_diagonal) |
Initialize the module. More... | |
subroutine | viscosity_add_source (qdt, ixIL, ixOL, wCT, 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) More... | |
subroutine | visc_add_source_geom (qdt, ixIL, ixOL, wCT, w, x) |
Variables | |
double precision, public | vc_mu = 1.d0 |
Viscosity coefficient. More... | |
logical | vc_4th_order = .false. |
fourth order More... | |
logical | vc_split = .false. |
source split or not More... | |
logical | viscindiv = .false. |
whether to compute the viscous terms as fluxes (ie in the div on the LHS), or not (by default) More... | |
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) + (2/3)*Sum_k dv_k/dx_k where vc_mu is the dynamic viscosity coefficient (g cm^-1 s^-1).
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 463 of file mod_viscosity.t.
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 | ||
) |
subroutine mod_viscosity::vc_params_read | ( | character(len=*), dimension(:), intent(in) | files | ) |
Read this module"s parameters from a file.
Definition at line 42 of file mod_viscosity.t.
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 | ||
) |
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 | ||
) |
subroutine mod_viscosity::viscosity_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(inout) | w, | ||
double precision, dimension(ixi^s,1:ndim), intent(in) | x, | ||
logical, intent(in) | energy, | ||
logical, intent(in) | qsourcesplit, | ||
logical, intent(inout) | active | ||
) |
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 244 of file mod_viscosity.t.
subroutine mod_viscosity::viscosity_init | ( | integer, intent(inout) | phys_wider_stencil, |
logical, intent(inout) | phys_req_diagonal | ||
) |
Initialize the module.
Definition at line 58 of file mod_viscosity.t.
logical mod_viscosity::vc_4th_order = .false. |
fourth order
Definition at line 27 of file mod_viscosity.t.
double precision, public mod_viscosity::vc_mu = 1.d0 |
Viscosity coefficient.
Definition at line 15 of file mod_viscosity.t.
logical mod_viscosity::vc_split = .false. |
source split or not
Definition at line 30 of file mod_viscosity.t.
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 34 of file mod_viscosity.t.