|
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 |