MPI-AMRVAC 3.2
The MPI - Adaptive Mesh Refinement - Versatile Advection Code (development version)
Loading...
Searching...
No Matches
Modules | Functions/Subroutines | Variables
mod_lfff.t File Reference

Go to the source code of this file.

Modules

module  mod_lfff
 Program to extrapolate linear force-free fields in 3D Cartesian coordinates, based on exact Green function method (Chiu & Hilton 1977 ApJ 212,873).
 

Functions/Subroutines

subroutine mod_lfff::init_b_fff_data (magnetogramname, qlunit, qbunit)
 
subroutine mod_lfff::init_b_fff_data_driven_boundary (boundaryname, qlunit, qbunit, qxc1, qxc2)
 
subroutine mod_lfff::lfff_balance_bottom_flux (bz, treatment, max_imbalance, imbalance_before, imbalance_after, mean_correction, status)
 Check a constant-alpha magnetogram and optionally remove its core mean. Status: 0 accepted unchanged, 1 mean removed, 2 invalid treatment, 3 invalid threshold, 4 strict-mode imbalance, 5 above auto-balance limit.
 
subroutine mod_lfff::extrapolate_potential_fft (iw_b, padding_factor, source_plane_depth, alpha, top_boundary, flux_treatment, max_flux_imbalance)
 Extrapolate a Cartesian potential field with horizontal Fourier modes. The bottom magnetogram must match the level-one physical cell centers. Results are streamed one AMRVAC block layer at a time and written directly to the distributed cell-centered magnetic variables.
 
subroutine mod_lfff::lfff_fft_transfer (k2, alpha, z, top_height, top_closed, transfer_b, transfer_d, status)
 Vertical transfer functions for one nonzero horizontal constant-alpha Fourier mode. transfer_b multiplies Bz0, while transfer_d=-d(transfer_b)/dz enters the horizontal field. status is zero on success, one for an oscillatory mode in an open half-space, two for a closed-box resonance, and three for invalid geometry.
 
subroutine mod_lfff::calc_lin_fff (ixil, ixol, bf, x, alpha, zshift, idir)
 
subroutine mod_lfff::get_potential_field_potential (ixil, ixol, potential, x, zshift)
 
subroutine mod_lfff::get_potential_field_potential_sphere (ixil, x, potential, nth, nph, magnetogram, theta, phi, r_sphere)
 
subroutine mod_lfff::potential_field_energy_mg (benergy)
 get potential magnetic field energy given normal B on all boundaries
 
subroutine mod_lfff::get_potential_field_potential_mg ()
 Solve Poisson equation of scalar potential using multigrid solver.
 
subroutine mod_lfff::multigrid_bc (box, nc, iv, nb, bc_type, bc)
 To set boundary condition on physical boundaries for mg Poisson solver.
 
subroutine mod_lfff::init_lfff_2d (bn_bottom, nx, qalpha, qy0, qtop_closed, qy_top, flux_treatment, nmodes_keep)
 
subroutine mod_lfff::calc_lfff_2d (ixil, ixol, x, bf)
 B from the stored modes at arbitrary points; Bf(:,:,1:3)=(Bx,By,Bz=alpha*A)
 

Variables

double precision, save mod_lfff::bzmax
 
double precision, save mod_lfff::darea
 
double precision, dimension(:,:), allocatable, save mod_lfff::bz0
 
double precision, dimension(:), allocatable, save mod_lfff::xa1
 
double precision, dimension(:), allocatable, save mod_lfff::xa2
 
integer, save mod_lfff::nx1
 
integer, save mod_lfff::nx2
 
double precision, parameter mod_lfff::lfff_mode_tolerance =1.d-12
 
double precision, parameter mod_lfff::lfff_resonance_tolerance =1.d-10
 
double precision, parameter mod_lfff::lfff_flux_balance_tolerance =1.d-8
 
double precision, dimension(:), allocatable, save mod_lfff::l2d_br
 
double precision, dimension(:), allocatable, save mod_lfff::l2d_bi
 
double precision, dimension(:), allocatable, save mod_lfff::l2d_k
 
double precision, save mod_lfff::l2d_b0
 
double precision, save mod_lfff::l2d_alpha
 
double precision, save mod_lfff::l2d_y0
 
double precision, save mod_lfff::l2d_ytop
 
integer, save mod_lfff::l2d_nm
 
logical, save mod_lfff::l2d_closed
 
logical, save mod_lfff::l2d_ready =.false.