def METHOD_NAME(self, **_) -> CoilsetOptimiserResult:
    """
    Run the optimisation.
    Returns
    -------
    The result of the optimisation.
    """
    # Get initial state and apply region mapping to coil positions.
    initial_state, _ = self.read_coilset_state(self.coilset, self.scale)
    initial_x, initial_z, initial_currents = np.array_split(initial_state, 3)
    initial_mapped_positions = self.position_mapper.to_L(initial_x, initial_z)
    eq_constraints, ineq_constraints = self._make_numerical_constraints()
    opt_result = METHOD_NAME(
        f_objective=self.objective,
        x0=np.concatenate((initial_mapped_positions, initial_currents)),
        opt_conditions=self.opt_conditions,
        algorithm=self.opt_algorithm,
        eq_constraints=eq_constraints,
        ineq_constraints=ineq_constraints,
    )
    self.set_coilset_state(self.coilset, opt_result.x, self.scale)
    return CoilsetOptimiserResult.from_opt_result(self.coilset, opt_result)