bluemira.equilibria.optimisation.harmonics.harmonics_constraints

Harmonics constraint functions.

Classes

SphericalHarmonicConstraint

Spherical harmonic constraints for the desired core plasma

ToroidalHarmonicConstraint

Toroidal harmonic constraints for the desired core plasma

Module Contents

class bluemira.equilibria.optimisation.harmonics.harmonics_constraints.SphericalHarmonicConstraint(ref_harmonics: numpy.typing.NDArray[numpy.float64], r_t: float, sh_coil_names: list, tolerance: float | numpy.typing.NDArray | None = None, smallest_tol: float = 1e-06, constraint_type: str = 'equality', *, invert: bool = False)

Bases: bluemira.equilibria.optimisation.constraints.UpdateableConstraint

Inheritance diagram of bluemira.equilibria.optimisation.harmonics.harmonics_constraints.SphericalHarmonicConstraint

Spherical harmonic constraints for the desired core plasma of a spherical tokamak equilibria.

Parameters:
  • ref_harmonics (numpy.typing.NDArray[numpy.float64]) – Initial harmonic amplitudes obtained from desired core plasma (Returned by spherical_harmonic_approximation)

  • r_t (float) – (Returned by spherical_harmonic_approximation)

  • sh_coil_names (list) – Names of the coils to use with SH approximation (Returned by spherical_harmonic_approximation)

  • tolerance (float | numpy.typing.NDArray | None) – Tolerance with which the constraint(s) will be met

  • smallest_tol (float)

  • constraint_type (str)

  • invert (bool)

constraint_type = 'equality'
tolerance = None
target_harmonics
max_degree
invert = False
sh_coil_names
r_t
_args
property control_coil_names

The names of the allowed control coils when using the SH approximation constraints.

prepare(equilibrium: bluemira.equilibria.equilibrium.Equilibrium, *, I_not_dI=False, fixed_coils=False)

Prepare the constraint for use in an equilibrium optimisation problem.

Raises:

ValueError – Constraint requires fixed coils

Parameters:

equilibrium (bluemira.equilibria.equilibrium.Equilibrium)

control_response(coilset: bluemira.equilibria.coils.CoilSet) numpy.ndarray

Calculate control response of a CoilSet to the constraint.

Returns:

The coil harmonic amplitude matrix

Parameters:

coilset (bluemira.equilibria.coils.CoilSet)

Return type:

numpy.ndarray

evaluate(_eq: bluemira.equilibria.equilibrium.Equilibrium) numpy.typing.NDArray[numpy.float64]

Calculate the value of the constraint in an Equilibrium.

Parameters:

_eq (bluemira.equilibria.equilibrium.Equilibrium)

Return type:

numpy.typing.NDArray[numpy.float64]

f_constraint() bluemira.equilibria.optimisation.harmonics.harmonics_constraint_functions.SphericalHarmonicConstraintFunction

Constraint function.

Return type:

bluemira.equilibria.optimisation.harmonics.harmonics_constraint_functions.SphericalHarmonicConstraintFunction

plot(ax)

Plot the constraint onto an Axes.

class bluemira.equilibria.optimisation.harmonics.harmonics_constraints.ToroidalHarmonicConstraint(th_result: bluemira.equilibria.optimisation.harmonics.toroidal_harmonics_approx_functions.ToroidalHarmonicsSelectionResult, relative_tolerance_cos: float | numpy.typing.NDArray[numpy.float64] = 0.001, relative_tolerance_sin: float | numpy.typing.NDArray[numpy.float64] = 0.001, constraint_type: str = 'equality', weights: float | numpy.ndarray = 1.0)

Bases: bluemira.equilibria.optimisation.constraints.UpdateableConstraint

Inheritance diagram of bluemira.equilibria.optimisation.harmonics.harmonics_constraints.ToroidalHarmonicConstraint

Toroidal harmonic constraints for the desired core plasma of a conventional aspect ratio stokamak equilibria.

Parameters:
  • ref_harmonics – Initial harmonic amplitudes obtained from desired core plasma (Returned by toroidal_harmonic_approximation)

  • th_params – ToroidalHarmonicsParams dataclass containing necessary parameters for use in TH approximation

  • tolerance – Tolerance with which the constraint(s) will be met

  • th_result (bluemira.equilibria.optimisation.harmonics.toroidal_harmonics_approx_functions.ToroidalHarmonicsSelectionResult)

  • relative_tolerance_cos (float | numpy.typing.NDArray[numpy.float64])

  • relative_tolerance_sin (float | numpy.typing.NDArray[numpy.float64])

  • constraint_type (str)

  • weights (float | numpy.ndarray)

constraint_type = 'equality'
cos_degrees_chosen
sin_degrees_chosen
th_params
target_value
weights = 1.0
_args
property control_coil_names

The names of the allowed control coils when using the TH approximation constraints.

prepare(equilibrium: bluemira.equilibria.equilibrium.Equilibrium, *, I_not_dI=False, fixed_coils=True)

Prepare the constraint for use in an equilibrium optimisation problem.

Raises:

ValueError – Constraint requires fixed coils

Parameters:

equilibrium (bluemira.equilibria.equilibrium.Equilibrium)

control_response(coilset: bluemira.equilibria.coils.CoilSet) numpy.ndarray

Calculate control response of a CoilSet to the constraint.

Returns:

The coil harmonic amplitude matrix

Parameters:

coilset (bluemira.equilibria.coils.CoilSet)

Return type:

numpy.ndarray

evaluate(_eq: bluemira.equilibria.equilibrium.Equilibrium) tuple[numpy.typing.NDArray[numpy.float64], numpy.typing.NDArray[numpy.float64]]

Calculate the value of the constraint in an Equilibrium.

Parameters:

_eq (bluemira.equilibria.equilibrium.Equilibrium)

Return type:

tuple[numpy.typing.NDArray[numpy.float64], numpy.typing.NDArray[numpy.float64]]

f_constraint() bluemira.equilibria.optimisation.harmonics.harmonics_constraint_functions.ToroidalHarmonicConstraintFunction

Constraint function.

Return type:

bluemira.equilibria.optimisation.harmonics.harmonics_constraint_functions.ToroidalHarmonicConstraintFunction

plot(ax)

Plot the constrained region onto an Axes.

__len__() int

Length of TH constraint.

Return type:

int