FE-Project
|
module FElib / Fluid dyn solver / Atmosphere / Tracer advection More...
Functions/Subroutines | |
subroutine, public | atm_dyn_dgm_trcadvect3d_heve_init (mesh, faceintmat) |
subroutine, public | atm_dyn_dgm_trcadvect3d_heve_final () |
subroutine, public | atm_dyn_dgm_trcadvect3d_heve_cal_tend (qtrc_dt, qtrc_, momx_, momy_, momz_, alphdens_m, alphdens_p, fct_coef, rhoq_tp, dx, dy, dz, sx, sy, sz, lift, faceintmat, lmesh, elem, lmesh2d, elem2d) |
subroutine, public | atm_dyn_dgm_trcadvect3d_heve_calc_fct_coef (fct_coef, qtrc_, momx_, momy_, momz_, rhoq_tp_, alphdens_m, alphdens_p, dens_hyd, ddens_, ddens0_, rk_c_ssm1, dt, dx, dy, dz, sx, sy, sz, lift, faceintmat, lmesh, elem, lmesh2d, elem2d, disable_limiter) |
subroutine, public | atm_dyn_dgm_trcadvect3d_tmar (qtrc_, dens_hyd, ddens_, lmesh, elem, lmesh2d, elem2d) |
Second Step of limiter in which nonlinear truncation and mass aware rescaling (TMAR) | |
subroutine, public | atm_dyn_dgm_trcadvect3d_save_massflux (mflx_x_tavg, mflx_y_tavg, mflx_z_tavg, alph_dens_m, alph_dens_p, ddens, momx, momy, momz, dpres, dens_hyd, pres_hyd, rtot, cvtot, cptot, lmesh, elem, rkstage, tavg_weight_h, tavg_weight_v) |
subroutine, public | atm_dyn_dgm_trcadvect3d_heve_cal_alphdens_advtest (alph_dens_m, alph_dens_p, ddens_, momx_, momy_, momz_, dens_hyd, gsqrt, nx, ny, nz, vmapm, vmapp, lmesh, elem) |
module FElib / Fluid dyn solver / Atmosphere / Tracer advection
To preserve nonnegativity, a limiter proposed by Light and Durran (2016, MWR) is used: we apply FCT for the lowest mode and the truncation and mass aware rescaling (TMAR).
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_heve_init | ( | class(meshbase3d), intent(in), target | mesh, |
type(sparsemat), intent(inout) | faceintmat ) |
Definition at line 74 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
References scale_polynominal::polynominal_gengausslobattoptintweight().
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_heve_final |
Definition at line 139 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_heve_cal_tend | ( | real(rp), dimension(elem%np,lmesh%nea), intent(out) | qtrc_dt, |
real(rp), dimension(elem%np,lmesh%nea), intent(in) | qtrc_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momx_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momy_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momz_, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(in) | alphdens_m, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(in) | alphdens_p, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | fct_coef, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | rhoq_tp, | ||
type(sparsemat), intent(in) | dx, | ||
type(sparsemat), intent(in) | dy, | ||
type(sparsemat), intent(in) | dz, | ||
type(sparsemat), intent(in) | sx, | ||
type(sparsemat), intent(in) | sy, | ||
type(sparsemat), intent(in) | sz, | ||
type(sparsemat), intent(in) | lift, | ||
type(sparsemat), intent(in) | faceintmat, | ||
class(localmesh3d), intent(in) | lmesh, | ||
class(elementbase3d), intent(in) | elem, | ||
class(localmesh2d), intent(in) | lmesh2d, | ||
class(elementbase2d), intent(in) | elem2d ) |
Definition at line 148 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_heve_calc_fct_coef | ( | real(rp), dimension(elem%np,lmesh%nea), intent(out) | fct_coef, |
real(rp), dimension(elem%np,lmesh%nea), intent(in) | qtrc_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momx_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momy_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momz_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | rhoq_tp_, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(in) | alphdens_m, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(in) | alphdens_p, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | dens_hyd, | ||
real(rp), dimension (elem%np,lmesh%nea), intent(in) | ddens_, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | ddens0_, | ||
real(rp), intent(in) | rk_c_ssm1, | ||
real(rp), intent(in) | dt, | ||
type(sparsemat), intent(in) | dx, | ||
type(sparsemat), intent(in) | dy, | ||
type(sparsemat), intent(in) | dz, | ||
type(sparsemat), intent(in) | sx, | ||
type(sparsemat), intent(in) | sy, | ||
type(sparsemat), intent(in) | sz, | ||
type(sparsemat), intent(in) | lift, | ||
type(sparsemat), intent(in) | faceintmat, | ||
class(localmesh3d), intent(in) | lmesh, | ||
class(elementbase3d), intent(in) | elem, | ||
class(localmesh2d), intent(in) | lmesh2d, | ||
class(elementbase2d), intent(in) | elem2d, | ||
logical, intent(in), optional | disable_limiter ) |
Definition at line 222 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_tmar | ( | real(rp), dimension(elem%np,lmesh%nea), intent(inout) | qtrc_, |
real(rp), dimension(elem%np,lmesh%nea), intent(in) | dens_hyd, | ||
real(rp), dimension (elem%np,lmesh%nea), intent(in) | ddens_, | ||
class(localmesh3d), intent(in) | lmesh, | ||
class(elementbase3d), intent(in) | elem, | ||
class(localmesh2d), intent(in) | lmesh2d, | ||
class(elementbase2d), intent(in) | elem2d ) |
Second Step of limiter in which nonlinear truncation and mass aware rescaling (TMAR)
Definition at line 300 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_save_massflux | ( | real(rp), dimension(elem%np,lmesh%nea), intent(inout) | mflx_x_tavg, |
real(rp), dimension(elem%np,lmesh%nea), intent(inout) | mflx_y_tavg, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(inout) | mflx_z_tavg, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(inout) | alph_dens_m, | ||
real(rp), dimension(elem%nfptot,lmesh%ne), intent(inout) | alph_dens_p, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | ddens, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momx, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momy, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | momz, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | dpres, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | dens_hyd, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | pres_hyd, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | rtot, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | cvtot, | ||
real(rp), dimension(elem%np,lmesh%nea), intent(in) | cptot, | ||
class(localmesh3d), intent(in) | lmesh, | ||
class(elementbase3d), intent(in) | elem, | ||
integer, intent(in) | rkstage, | ||
real(rp), intent(in) | tavg_weight_h, | ||
real(rp), intent(in) | tavg_weight_v ) |
Definition at line 332 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.
subroutine, public scale_atm_dyn_dgm_trcadvect3d_heve::atm_dyn_dgm_trcadvect3d_heve_cal_alphdens_advtest | ( | real(rp), dimension(elem%nfptot*lmesh%ne), intent(inout) | alph_dens_m, |
real(rp), dimension(elem%nfptot*lmesh%ne), intent(inout) | alph_dens_p, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | ddens_, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | momx_, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | momy_, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | momz_, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | dens_hyd, | ||
real(rp), dimension(elem%np*lmesh%nea), intent(in) | gsqrt, | ||
real(rp), dimension(elem%nfptot*lmesh%ne), intent(in) | nx, | ||
real(rp), dimension(elem%nfptot*lmesh%ne), intent(in) | ny, | ||
real(rp), dimension(elem%nfptot*lmesh%ne), intent(in) | nz, | ||
integer, dimension(elem%nfptot*lmesh%ne), intent(in) | vmapm, | ||
integer, dimension(elem%nfptot*lmesh%ne), intent(in) | vmapp, | ||
class(localmesh3d), intent(in) | lmesh, | ||
class(elementbase3d), intent(in) | elem ) |
Definition at line 392 of file scale_atm_dyn_dgm_trcadvect3d_heve.F90.