|
MPI-AMRVAC 3.2
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. | |
| 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() |
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).
| 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.

| 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::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.
| 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.
| 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_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.
| 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.
| 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.
| 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.
| subroutine mod_viscosity::viscosity_init | ( | integer, intent(inout) | phys_wider_stencil | ) |
Initialize the module.
Definition at line 62 of file mod_viscosity.t.

| 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.
| integer, public, protected mod_viscosity::v2_ |
Definition at line 26 of file mod_viscosity.t.
| integer, public, protected mod_viscosity::v3_ |
Definition at line 26 of file mod_viscosity.t.
| logical mod_viscosity::vc_4th_order = .false. |
fourth order
Definition at line 29 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 32 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 36 of file mod_viscosity.t.
| procedure(sub_add_source), pointer, public mod_viscosity::viscosity_add_source => null() |
Definition at line 38 of file mod_viscosity.t.