VMEC 8.52
3D Equilibrium solver with nested flux surfaces.
|
▼ src | |
► data | |
► NESTOR | |
add_fluxes.f90 | Add the magnetic fluxes to the tangential derivatives of \(\lambda\) to arrive at the contravariant magnetic field components \(B^\theta\) and \(B^\zeta\) |
alias.f90 | Fourier-space bandpass filter on constraint force for spectral condensation |
allocate_funct3d.f90 | Allocate arrays required in funct3d() |
allocate_ns.f90 | Allocate arrays depending on the number of flux surfaces ns |
allocate_nunv.f90 | Allocate arrays depending on the number of Fourier coefficients nunv |
aspectratio.f90 | Compute aspect-ratio (independent of elongation): \(A = <R>/\sqrt{<a b>}\) |
bcovar.f90 | Compute the covariant components of the magnetic field \(B_\theta\), \(B_\zeta\) |
bextrema.f90 | Computes minimum and maximum \(|\mathbf{B}|\) along \(\zeta\) between two angle lines ( \(\theta = 0, \pi\)) |
bss.f90 | Computes br, bphi, bz, bsubs on half-radial mesh |
calc_fbal.f90 | Compute flux-surface averaged radial force balance \(\nabla p\, - <\mathbf{j} \times \mathbf{B}>\) |
convert.f90 | Convert internal mode representation to standard form for output (coefficients of cos(mu-nv), sin(mu-nv) without internal mscale , nscale norms) |
dbgout.f90 | |
elongation.f90 | Compute Waist thickness and height in \(\varphi = 0, \pi\) symmetry planes |
eqfor.f90 | Basis physics analysis and evaluaton of force balance. This is where most of the contents of the threed1 output file is computed |
eqsolve.f90 | Iteratively evolve the Fourier coefficients that specify the equilibrium |
evolve.f90 | Take a single time step in Fourier space to evolve the Fourier coefficients describing the equilibrium towards force balance |
explore_spline_akima.f90 | |
fext_fft.f90 | Fourier transforms |
fileout.f90 | Write the output files |
fixaray.f90 | Allocate and fill some fixed-size arrays (only depending on Fourier resolution) |
flip_theta.f90 | Flip the definition of the poloidal angle in the user-provided initial guess for the LCFS geometry |
forces.f90 | Compute the real-space MHD forces |
free_mem_funct3d.f90 | Free memory required by funct3d() |
free_mem_ns.f90 | Free memory depending on the number of flux surfaces ns |
free_mem_nunv.f90 | Free arrays depending on the number of Fourier coefficients nunv |
freeb_data.f90 | Write out edge values of fields |
fsym_fft.f90 | Fourier transforms |
fsym_invfft.f90 | Extends function from ntheta2 to ntheta3 range |
funct3d.f90 | Evaluate the three-dimensional MHD energy functional. Think of this as the "forward model" that tells you the MHD forces in Fourier space given the Fourier coefficients of the flux surface geometry |
functions.f | This module containes functions used by the profiles |
getbsubs.f90 | Solves the radial force balance \(\mathbf{B} \cdot B_s = F_s\) for \(B_s\) in real space using collocation |
getcurmid.f90 | Get current at midplane (?) |
getfsq.f90 | Compute total force residual on flux surfaces |
guess_axis.f90 | Computes guess for magnetic axis if user guess leads to initial sign change of Jacobian |
heading.f90 | Open output files and print banner message at the top |
initialize_radial.f90 | Allocates memory for radial arrays and initializes radial profiles |
interp.f90 | Interpolate \(R\), \(Z\) and \(\lambda\) on full grid |
jacobian.f90 | Evaulate the Jacobian of the transform from flux- to cylindrical coordinates |
jxbforce.f90 | Program for computing local \(\mathbf{K} \times \mathbf{B} = \nabla p\) force balance |
lamcal.f90 | Normalization parameters for \(\lambda\) |
line_segment.f | This module containes code to create a profile constructed of line segments |
magnetic_fluxes.f90 | Compute toroidal and poloidal magnetic flux profiles |
mercier.f90 | Evaluate the Mercier stability criterion |
mgrid_mod.f | |
open_output_files.f90 | Open output files |
parse_extension.f | Parse the first command-line argument into a filename |
precondn.f90 | Compute preconditioning matrix elements for \(R\), \(Z\) force |
printout.f90 | Print iteration progress to screen and threed1 output file |
profil1d.f90 | Compute phip and iota profiles on full grid |
profil3d.f90 | Compute three-dimensional profiles of flux-surface geometry etc |
profile_functions.f | Parameterizations of profiles for rotational transform, toroidal current and pressure/mass |
read_indata.f90 | Read the INDATA namelist from a given input file |
read_wout_mod.f | Reading of wout VMEC output file |
readin.f90 | Read the input file |
reset_params.f90 | Reset some flow-control parameters to their default values |
residue.f90 | Compute invariant residuals |
residue_con.f90 | Compute invariant residuals |
residue_mhd.f90 | Compute invariant residuals |
restart_iter.f90 | Save current or restore previous good state vector and reduce time step |
safe_open_mod.f | Fault-tolerant file opening routines |
scalfor.f90 | Build forces from different contributions |
solver.f90 | Solve a linear system of equations using dgesv |
spectrum.f90 | Compute the spectral width of the surface geometry Fourier coefficients |
spline_akima.f | |
spline_akima_int.f | |
spline_cubic.f | |
spline_cubic_int.f | |
symforce.f90 | Symmetrize forces on restricted \(\theta\) interval \((0 \leq \theta \leq \pi \) so cos, sin integrals can be performed |
symoutput.f90 | Symmetrize some quantities so that they can be output (?) |
symrzl.f90 | Symmetrize \(R\), \(Z\) and \(\lambda\) |
tolower.f90 | Convert a string to lower case |
tomnsp.f90 | Fourier-transform forces from real space to Fourier space |
tomnsp_con.f90 | Fourier-transform forces from real space to Fourier space |
totzsp.f90 | Inverse-Fourier-transform geometry from Fourier space to real space |
tridslv.f90 | Solve a tridiagonal system of equations |
vmec.f90 | Main program of VMEC |
wrout.f90 | Write the output files of VMEC |