MPI-AMRVAC
3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code
|
Go to the source code of this file.
Modules | |
module | mod_magnetofriction |
module mod_magnetofriction.t Purpose: use magnetofrictional method to relax 3D magnetic field to force-free field 01.04.2016 developed by Chun Xia and Yang Guo 04.10.2017 modulized by Chun Xia Usage: in amrvac.par: &methodlist time_stepper='onestep' ! time marching scheme, or 'twostep','threestep' flux_method=13*'cd4' ! or 'tvdlf', 'fd' limiter= 13*'koren' ! or 'vanleer','cada3','mp5' so on / &meshlist ditregrid=20 ! set iteration interval for adjusting AMR / &mhd_list mhd_magnetofriction=.true. / &mf_list mf_it_max=60000 ! set the maximum iteration number mf_ditsave=20000 ! set iteration interval for data output mf_cc=0.3 ! stability coefficient controls numerical stability mf_cy=0.2 ! frictional velocity coefficient mf_cdivb=0.01 ! divb cleaning coefficient controls diffusion speed of divb / | |
Functions/Subroutines | |
subroutine | mod_magnetofriction::mf_params_read (files) |
Read this module"s parameters from a file. More... | |
subroutine | mod_magnetofriction::magnetofriction_init () |
Initialize the module. More... | |
subroutine | mod_magnetofriction::magnetofriction |
subroutine | metrics |
subroutine | mask_inner (ixIL, ixOL, w, x) |
subroutine | printlog_mf |
double precision function | integral_grid_mf (ixIL, ixOL, w, x, iw, patchwi) |
subroutine | mod_magnetofriction::mf_velocity_update (dtfff) |
subroutine | mod_magnetofriction::vhat (w, x, ixIL, ixOL, vhatmaxgrid) |
subroutine | mod_magnetofriction::frictional_velocity (w, x, ixIL, ixOL, qvmax, qdt) |
subroutine | mod_magnetofriction::advectmf (idimLIM, qt, qdt) |
subroutine | mod_magnetofriction::advect1mf (method, dtin, dtfactor, idimLIM, qtC, psa, qt, psb) |
subroutine | mod_magnetofriction::process1_gridmf (method, igrid, qdt, ixGL, idimLIM, qtC, wCT, qt, w) |
subroutine | mod_magnetofriction::upwindlrmf (ixIL, ixLL, ixRL, idim, w, wCT, wLC, wRC, x) |
subroutine | mod_magnetofriction::getfluxmf (w, x, ixIL, ixOL, idir, idim, f) |
subroutine | mod_magnetofriction::tvdlfmf (qdt, ixIL, ixOL, idimLIM, qtC, wCT, qt, wnew, fC, dxD, x) |
subroutine | mod_magnetofriction::hancockmf (qdt, ixIL, ixOL, idimLIM, qtC, wCT, qt, wnew, dxD, x) |
subroutine | mod_magnetofriction::fdmf (qdt, ixIL, ixOL, idimLIM, qtC, wCT, qt, wnew, fC, dxD, x) |
subroutine | mod_magnetofriction::reconstructlmf (ixIL, iLL, idims, w, wLC) |
subroutine | mod_magnetofriction::reconstructrmf (ixIL, iLL, idims, w, wRC) |
subroutine | mod_magnetofriction::centdiff4mf (qdt, ixIL, ixOL, idimLIM, qtC, wCT, qt, w, fC, dxD, x) |
subroutine | mod_magnetofriction::getdtfff_courant (w, x, ixIL, ixOL, dtnew) |
subroutine | mod_magnetofriction::getcmaxfff (w, ixIL, ixOL, idims, cmax) |
subroutine | mod_magnetofriction::divbclean (qdt, ixIL, ixOL, wCT, w, x) |
Clean divergence of magnetic field by Janhunen's and Linde's source terms. More... | |
subroutine | mod_magnetofriction::addgeometrymf (qdt, ixIL, ixOL, wCT, w, x) |
subroutine | mod_magnetofriction::get_current (w, ixIL, ixOL, idirmin, current) |
Calculate idirmin and the idirmin:3 components of the common current array make sure that dxlevel(^D) is set correctly. More... | |
subroutine | mod_magnetofriction::get_divb (w, ixIL, ixOL, divb) |
Calculate div B within ixO. More... | |
Variables | |
double precision | mod_magnetofriction::mf_cc |
stability coefficient controls numerical stability More... | |
double precision | mod_magnetofriction::mf_cy |
frictional velocity coefficient More... | |
double precision | mod_magnetofriction::mf_cy_max |
double precision | mod_magnetofriction::mf_cdivb |
divb cleaning coefficient controls diffusion speed of divb More... | |
double precision | mod_magnetofriction::mf_cdivb_max |
double precision | mod_magnetofriction::mf_tvdlfeps |
TVDLF dissipation coefficient controls the dissipation term. More... | |
double precision | mod_magnetofriction::mf_tvdlfeps_min |
double precision | mod_magnetofriction::tmf |
time in magnetofriction process More... | |
double precision | mod_magnetofriction::cmax_mype |
maximal speed for fd scheme More... | |
double precision | mod_magnetofriction::cmax_global |
maximal speed for fd scheme More... | |
double precision, public | mod_magnetofriction::mf_vmax = 3.d6 |
maximal limit of magnetofrictional velocity in cm s^-1 (Pomoell 2019 A&A) More... | |
integer | mod_magnetofriction::mf_ditsave |
integer | mod_magnetofriction::mf_it_max |
integer | mod_magnetofriction::mf_it |
logical | mod_magnetofriction::mf_advance |
logical | mod_magnetofriction::fix_conserve_at_step = .true. |
double precision function magnetofriction::integral_grid_mf | ( | integer, intent(in) | ixI, |
integer, intent(in) | L, | ||
integer, intent(in) | ixO, | ||
L, | |||
double precision, dimension(ixi^s,nw+nwauxio), intent(in) | w, | ||
double precision, dimension(ixi^s,1:ndim), intent(in) | x, | ||
integer, intent(in) | iw, | ||
logical, dimension(ixi^s), intent(in) | patchwi | ||
) |
subroutine magnetofriction::mask_inner | ( | integer, intent(in) | ixI, |
double precision, intent(in) | L, | ||
integer, intent(in) | ixO, | ||
L, | |||
double precision, dimension(ixi^s,nw), intent(in) | w, | ||
double precision, dimension(ixi^s,1:ndim), intent(in) | x | ||
) |
Definition at line 323 of file mod_magnetofriction.t.
subroutine magnetofriction::metrics |
subroutine magnetofriction::printlog_mf |
Definition at line 349 of file mod_magnetofriction.t.