freegs.optimise

freegs.optimise#

Routines for optimising equilibria These make use of the generic “optimiser” routines

Copyright 2019 Ben Dudson, University of York. Email: benjamin.dudson@york.ac.uk

This file is part of FreeGS.

FreeGS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

FreeGS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FreeGS. If not, see <http://www.gnu.org/licenses/>.

Functions

max_abs_coil_current(eq)

Given an equilibrium, return the maximum absolute coil current

max_coil_force(eq)

no_wall_intersection(eq)

Prevent intersection of LCFS with walls by returning inf if intersections are found

optimise(eq, controls, measure[, maxgen, N, ...])

Use Differential Evolution to optimise an Equilibrium https://en.wikipedia.org/wiki/Differential_evolution

weighted_sum(*args)

Combine measures together

Classes

CoilHeight(label[, minimum, maximum])

A control to modify the height of a specified coil

CoilRadius(label[, minimum, maximum])

A control to modify the radius of a specified coil

PlotMonitor()

Plot the best solution at the end of each generation, saves the plot to a PNG file.