bluemira.equilibria.optimisation.problem._tikhonov ================================================== .. py:module:: bluemira.equilibria.optimisation.problem._tikhonov Classes ------- .. autoapisummary:: bluemira.equilibria.optimisation.problem._tikhonov.TikhonovCurrentCOP bluemira.equilibria.optimisation.problem._tikhonov.UnconstrainedTikhonovCurrentGradientCOP Module Contents --------------- .. py:class:: TikhonovCurrentCOP(eq: bluemira.equilibria.equilibrium.Equilibrium, targets: bluemira.equilibria.optimisation.constraints.MagneticConstraintSet, gamma: float, opt_algorithm: bluemira.optimisation.AlgorithmType = Algorithm.SLSQP, opt_conditions: dict[str, float | int] | None = None, opt_parameters: dict[str, float] | None = None, max_currents: numpy.typing.ArrayLike | 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._tikhonov.TikhonovCurrentCOP :parts: 1 :private-bases: Coilset OptimisationProblem for coil currents subject to maximum current bounds. Coilset currents optimised using objectives.regularised_lsq_objective as objective function. :param eq: Equilibrium object (used to update magnetic field targets) with Coilset to optimise. :param targets: Set of magnetic field targets to use in objective function. :param gamma: Tikhonov regularisation parameter in units of [A⁻¹]. :param opt_algorithm: Optimiser algorithm :param opt_conditions: optimiser conditions for defaults see :class:`~bluemira.optimisation._algorithm.AlgorithDefaultTolerances` along with `max_eval=100` :param opt_parameters: optimisation parameters :param max_currents: Maximum allowed current for each independent coil current in coilset [A]. If specified as a float, the float will set the maximum allowed current for all coils. :param constraints: Optional list of UpdatableConstraint objects storing information about constraints that must be satisfied during the coilset optimisation, to be provided to the optimiser. .. py:attribute:: gamma .. py:method:: optimise(x0=None, *, fixed_coils=True, keep_history: bool = False, check_constraints: bool = False, verbose: bool = False) -> bluemira.equilibria.optimisation.problem.base.CoilsetOptimiserResult Solve the optimisation problem :param fixed_coils: Whether or not to update to coilset response matrices :returns: Optimised CoilSet :rtype: coilset .. py:class:: UnconstrainedTikhonovCurrentGradientCOP(eq: bluemira.equilibria.equilibrium.Equilibrium, targets: bluemira.equilibria.optimisation.constraints.MagneticConstraintSet, gamma: float, opt_algorithm: bluemira.optimisation.AlgorithmType = Algorithm.SLSQP, opt_conditions: dict[str, float | int] | None = None, opt_parameters: dict[str, float] | None = None, max_currents: numpy.typing.ArrayLike | None = None) Bases: :py:obj:`bluemira.equilibria.optimisation.problem.base.EqCoilsetOptimisationProblem` .. autoapi-inheritance-diagram:: bluemira.equilibria.optimisation.problem._tikhonov.UnconstrainedTikhonovCurrentGradientCOP :parts: 1 :private-bases: Unbounded, unconstrained, analytically optimised current gradient vector for minimal error to the L2-norm of a set of magnetic constraints (used here as targets). This is useful for getting a preliminary Equilibrium :param eq: Equilibrium object (used to update magnetic field targets) with Coilset to optimise. :param targets: Set of magnetic constraints to minimise the error for :param gamma: Tikhonov regularisation parameter [1/A] .. py:attribute:: gamma .. py:method:: optimise(**_) -> bluemira.equilibria.optimisation.problem.base.CoilsetOptimiserResult Optimise the prescribed problem. .. rubric:: Notes The weight vector is used to scale the response matrix and constraint vector. The weights are assumed to be uncorrelated, such that the weight matrix W_ij used to define (for example) the least-squares objective function (Ax - b)ᵀ W (Ax - b), is diagonal, such that weights[i] = w[i] = sqrt(W[i,i]).