VMEC 8.52
3D Equilibrium solver with nested flux surfaces.
Loading...
Searching...
No Matches
src Directory Reference

Directories

 data
 
 NESTOR
 

Files

 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.