bluemira.equilibria.optimisation.problem._breakdown =================================================== .. py:module:: bluemira.equilibria.optimisation.problem._breakdown Classes ------- .. autoapisummary:: bluemira.equilibria.optimisation.problem._breakdown.BreakdownZoneStrategy bluemira.equilibria.optimisation.problem._breakdown.CircularZoneStrategy bluemira.equilibria.optimisation.problem._breakdown.InboardBreakdownZoneStrategy bluemira.equilibria.optimisation.problem._breakdown.OutboardBreakdownZoneStrategy bluemira.equilibria.optimisation.problem._breakdown.InputBreakdownZoneStrategy bluemira.equilibria.optimisation.problem._breakdown.BreakdownCOP Module Contents --------------- .. py:class:: BreakdownZoneStrategy(R_0, A, tk_sol, **kwargs) Bases: :py:obj:`abc.ABC` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.BreakdownZoneStrategy :parts: 1 :private-bases: Abstract base class for the definition of a breakdown zone strategy. :param R_0: Major radius of the reference plasma :param A: Aspect ratio of the reference plasma :param tk_sol: Thickness of the scrape-off layer .. py:attribute:: R_0 .. py:attribute:: A .. py:attribute:: tk_sol .. py:property:: breakdown_point :type: tuple[float, float] :abstractmethod: The location of the breakdown point. :returns: * *x_c* -- Radial coordinate of the breakdown point * *z_c* -- Vertical coordinate of the breakdown point .. py:property:: breakdown_radius :type: float :abstractmethod: The radius of the breakdown zone. .. py:method:: calculate_zone_points(n_points: int) -> tuple[numpy.ndarray, numpy.ndarray] :abstractmethod: Calculate the discretised set of points representing the breakdown zone. .. py:class:: CircularZoneStrategy(R_0, A, tk_sol, **kwargs) Bases: :py:obj:`BreakdownZoneStrategy` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.CircularZoneStrategy :parts: 1 :private-bases: Circular breakdown zone strategy. .. py:method:: calculate_zone_points(n_points: int) -> tuple[numpy.ndarray, numpy.ndarray] Calculate the discretised set of points representing the breakdown zone. :returns: * *x* -- The x coordinates of the zone * *z* -- The z coordinates of the zone .. py:class:: InboardBreakdownZoneStrategy(R_0, A, tk_sol, **kwargs) Bases: :py:obj:`CircularZoneStrategy` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.InboardBreakdownZoneStrategy :parts: 1 :private-bases: Inboard breakdown zone strategy. .. py:property:: breakdown_point :type: tuple[float, float] The location of the breakdown point. :returns: * *x_c* -- Radial coordinate of the breakdown point * *z_c* -- Vertical coordinate of the breakdown point .. py:property:: breakdown_radius :type: float The radius of the breakdown zone. .. py:class:: OutboardBreakdownZoneStrategy(R_0, A, tk_sol, **kwargs) Bases: :py:obj:`CircularZoneStrategy` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.OutboardBreakdownZoneStrategy :parts: 1 :private-bases: Outboard breakdown zone strategy. .. py:property:: breakdown_point :type: tuple[float, float] The location of the breakdown point. :returns: * *x_c* -- Radial coordinate of the breakdown point * *z_c* -- Vertical coordinate of the breakdown point .. py:property:: breakdown_radius :type: float The radius of the breakdown zone. .. py:class:: InputBreakdownZoneStrategy(x_c, z_c, r_c) Bases: :py:obj:`CircularZoneStrategy` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.InputBreakdownZoneStrategy :parts: 1 :private-bases: User input breakdown zone strategy. .. py:attribute:: x_c .. py:attribute:: z_c .. py:attribute:: r_c .. py:property:: breakdown_point :type: tuple[float, float] The location of the breakdown point. :returns: * *x_c* -- Radial coordinate of the breakdown point * *z_c* -- Vertical coordinate of the breakdown point .. py:property:: breakdown_radius :type: float The radius of the breakdown zone. .. py:class:: BreakdownCOP(breakdown: bluemira.equilibria.equilibrium.Breakdown, breakdown_strategy: BreakdownZoneStrategy, B_stray_max: float, B_stray_con_tol: float, n_B_stray_points: int, max_currents: numpy.typing.ArrayLike | None = None, opt_algorithm: bluemira.optimisation.AlgorithmType = Algorithm.SLSQP, opt_conditions: dict[str, float | int] | None = None, constraints: list[bluemira.equilibria.optimisation.constraints.UpdateableConstraint] | None = None) Bases: :py:obj:`bluemira.equilibria.optimisation.problem.base.EqCoilsetOptimisationProblem` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._breakdown.BreakdownCOP :parts: 1 :private-bases: Coilset optimisation problem for the premagnetisation / breakdown phase. .. py:attribute:: _args .. py:method:: optimise(x0=None, *, fixed_coils: bool = True, keep_history: bool = False, check_constraints: bool = False, verbose: bool = False) Solve the optimisation problem.