Skip to content

Releases: PrincetonUniversity/FOCUS

New cost functions in coil complexity and coil-coil separation

09 Jul 14:57
370e8ca
Compare
Choose a tag to compare

(Please update the develop branch)

Updates:

  • A new cost function on the so-called "Nissin" coil complexity has been implemented. For details, please check this documentation.
  • A new cost function on the coil-coil separation has been (re-)implemented. Please check here.
  • The curvature function has been revised. Please check here.
  • There is also a cost function on the coil torsion, but documentation is underway.
  • A new example of ATEN using the new cost functions has been prepared. Please check the example folder.
  • The screen output has been re-organized. If you want to see the evolution of each cost function, please use IsQuiet = -2/-1.
  • Some bugs have been fixed.

Some notes:

  • The input namelist has been modified. A quick way to get a template of the latest namelist is to run xfocus -i. You can also have a look at input.html.
  • Because of using exponential functions, the curvature, torsion, and nissin constrained functions might cause an error of floating-point-overflow (observed with Intel compilers). Please revised the corresponding exponential factors.
  • According to @thomasgbkruger, the new functions will tend to use a relatively high resolution for coils.

Thanks to @thomasgbkruger for the contribution!

Curvature metric implemented and python wrapper provided

29 Apr 14:11
3190d2d
Compare
Choose a tag to compare

Two major updates:

  1. The coil curvature penalty function has been implemented, see #51 .
  2. Python wrapper using f90wrap has been utilized. Documentation is limited but will be provided in the future.

Two main bug fix:

  1. Fixed the stellarator symmetry bug for Nfp>3.
  2. Fixed the coil-surface separation calculation.

Other minor updates:

  • Two more examples are provided.
  • Temporarily fixed writing updated plasma boundary.

Stellarator symmetry enabled and separate limiter surface

04 Feb 04:59
9042f49
Compare
Choose a tag to compare

It has been a long time since the last release (v0.5.3), although the version number has been keeping evolving. If you have missed all the changes, please check the full list here.

Here is a brief summary of major changes by chronological order.

  • Field-line tracing (in vacuum) and rotational transform calculation were available as post-processing. #25
  • 1/R toroidal field and vertical field were available as a special coil type.
  • Added magnetic dipole as a new coil type (recommend to use the dipole branch directly).
  • Added flexible interface for I/O, now can specify file names for all the inputs.
  • Added new function for writing MGRID file.
  • Added different normalization for Bn harmonics. #40
  • Allowed to specify a limiter surface for coil-surface separation. #17
  • Allowed for specifying stellarator symmetry and debugged the toroidal periodicity. #46
  • Many bug fixes.

Add SPEC interface and enable Bn normalization

29 Nov 21:07
ae1c128
Compare
Choose a tag to compare

Main changes:

  1. Add SPEC interface for future free-boundary SPEC calculations (case_postproc=2).
  2. Enable Bn normalized to mod B (case_bnormal=1).
  3. Fix several bugs.

Levenberg-Marquardt optimizer and new diagnostic terms available

09 Jul 22:27
8a6f31a
Compare
Choose a tag to compare

Please view #21 for more details.

  1. Levenberg-Marquardt algorithm is now available.
    Levenberg-Marquardt algorithm is one of the most famous minimization algorithms. The calculation of chi-squared and the packing of jacobian are different from the present optimization algorithms (DF, CG). Please view lmalg.pdf
  2. More diagnostic terms in diagnos.h.
    • calculate the overlap rate between the present Bn harmonics and the target harmonics
    • compute a coil importance array (coil_importance in hdf5 file) for each coil
  3. Several bugs are fixed.
    • add warnings about reset weights below machine precision
    • fix nfp reset issue
    • decompose Bn from coils only
    • update ellipse example

Coil-surface separation and organize the repository structure

08 May 18:26
7710a31
Compare
Choose a tag to compare

Related pull request #20 , please view for more details.

  • Repository structure #19
  • Coil-surface separation #17

NAG dependance and other bugs fixed

29 Mar 17:07
7721192
Compare
Choose a tag to compare

In th past half year, no big changes have been made. Basically, this version is bugs fixing. For more details please view #16.

The first tag

23 Jul 04:18
Compare
Choose a tag to compare
The first tag Pre-release
Pre-release

Begin to use tag for better controlling the versions. This is the v0.1.0. Updates are copied from previous issues.

updates on 07/22/2017

  • add version tag in both git and the code hdf5 output file;
  • add exit option when CG line search not converge;
  • add LHD helical coil case in examples;
  • update coil.py;

updates on 07/20/2017

  • Add options to freely control the optimization focus : currents or geometries
  • Add additional criteria to exit optimizations
  • Replace the repeated output information in CG
  • fixed other minor stuffs

updates on 07/18/2017

  • Transplant coil diagnostic subroutine
  • Implement plasma and coil periodicity
  • Minor improvements

update nots on 06/26/2017

  • current availability

    • coil representation
      Fourier series.
    • optimizers
      Differential Flow and Nonlinear Conjugate Gradient method.
    • cost functions
      Bn surface integral; Bn Fourier spectrum (in VMEC polar coordinate); toroidal magnetic flux; coil length.
    • post-processers
      OMFIT FOCUS Interface (if you are interested, please contact Dr. Nikolas Logan). There are also some scripts in the python package coil.py.
  • examples
    Two illustrating cases, designing modular coils for l=2 rotating ellipse and designing RMP coils for DIII-D are placed in examples.

  • I/O related
    The input files needed for a run are listed here, while you can also find detailed explanations of each variable in initial.pdf.

  • plotting
    There are 14 plotting functions in coilpy. For time reasons, I haven't written detailed instructions. But you are free to explore the functions.