bluemira.equilibria.optimisation.harmonics.harmonics_constraints
Harmonics constraint functions.
Classes
Spherical harmonic constraints for the desired core plasma |
|
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.UpdateableConstraintSpherical 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:
- Return type:
numpy.typing.NDArray[numpy.float64]
- f_constraint() bluemira.equilibria.optimisation.harmonics.harmonics_constraint_functions.SphericalHarmonicConstraintFunction
Constraint function.
- 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.UpdateableConstraintToroidal 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
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:
- 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.
- plot(ax)
Plot the constrained region onto an Axes.
- __len__() int
Length of TH constraint.
- Return type:
int