MPI-AMRVAC 3.1
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
|
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. | |
subroutine | mod_magnetofriction::magnetofriction_init () |
Initialize the module. | |
subroutine | mod_magnetofriction::magnetofriction |
subroutine | metrics |
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. | |
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. | |
subroutine | mod_magnetofriction::get_divb (w, ixil, ixol, divb) |
Calculate div B within ixO. | |
Variables | |
double precision | mod_magnetofriction::mf_cc |
stability coefficient controls numerical stability | |
double precision | mod_magnetofriction::mf_cy |
frictional velocity coefficient | |
double precision | mod_magnetofriction::mf_cy_max |
double precision | mod_magnetofriction::mf_cdivb |
divb cleaning coefficient controls diffusion speed of divb | |
double precision | mod_magnetofriction::mf_cdivb_max |
double precision | mod_magnetofriction::mf_tvdlfeps |
TVDLF dissipation coefficient controls the dissipation term. | |
double precision | mod_magnetofriction::mf_tvdlfeps_min |
double precision | mod_magnetofriction::tmf |
time in magnetofriction process | |
double precision | mod_magnetofriction::cmax_mype |
maximal speed for fd scheme | |
double precision | mod_magnetofriction::cmax_global |
maximal speed for fd scheme | |
double precision, public | mod_magnetofriction::mf_vmax = 3.d6 |
maximal limit of magnetofrictional velocity in cm s^-1 (Pomoell 2019 A&A) | |
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. |
subroutine magnetofriction::metrics |