DESC icon indicating copy to clipboard operation
DESC copied to clipboard

Coils

Open f0uriest opened this issue 1 year ago • 0 comments

Basics:

  • each coil/curve has its own parameterization, knows how to compute basic stuff (position along coil etc)
  • base class takes care of more general derived quantities
  • make general compute method for coils with default grid/transform or user supplied (so we can use different grids for different objectives
  • Objectives are bound to certain coils/coilsets/equilibria with build method
  • Objective.compute uses bound coil methods to actually compute stuff
  • Throw error if objectives not built before optimization - should throw deprecation warning now
  • coils each have params method to get single vector of all their parameters
  • also have method to parse their own params into sub-vectors (eg x -> Rn, Zn, current)
  • move Objective.parse_args to Equilibrium as a way for it to unpack its own arguments
  • Objective.parse_args should only split full x into pieces for each optimizeable object - equilibirum, coils etc take it from there
  • All coils must be in a single overall Coilset (coilset can be made up of sub-coilsets)
  • Coilset defines unique ordering for coils, allowing us to line up coils in state vector with constraints that apply to them.

TODO:

  • [x] #513
  • [x] #560
  • [x] #561
  • [x] #559
  • [x] #496

f0uriest avatar Apr 27 '23 13:04 f0uriest