Class PenaltyBarrierU_base

Inheritance Relationships

Derived Types

Class Documentation

class Mechatronix::PenaltyBarrierU_base

Base class for controls.

This virtual class is the base definition of all controls classes.

Subclassed by Mechatronix::PenaltyBarrierU_bipower, Mechatronix::PenaltyBarrierU_cos_logarithmic, Mechatronix::PenaltyBarrierU_cubic, Mechatronix::PenaltyBarrierU_hyperbolic, Mechatronix::PenaltyBarrierU_logarithmic, Mechatronix::PenaltyBarrierU_parabola, Mechatronix::PenaltyBarrierU_quadratic, Mechatronix::PenaltyBarrierU_quadratic_bis, Mechatronix::PenaltyBarrierU_quartic, Mechatronix::PenaltyBarrierU_tan2

Public Functions

PenaltyBarrierU_base(string const &name, string const &kind)

base constrol penalty constructor

virtual ~PenaltyBarrierU_base()

base constrol penalty destructor

void save(string const &fname) const

Save for plotting the penalty and its derivative.

void setupBase(real_type _epsilon, real_type _tolerance)

setup basic parameters \( h \) (Tolerance) and \( \epsilon \) (Epsi)

virtual string info() const
inline void info(ostream_type &stream) const
virtual real_type eval(real_type) const = 0

evaluate penalty value

virtual real_type eval_D(real_type) const = 0

evaluate penalty first derivative

virtual real_type eval_DD(real_type) const = 0

evaluate penalty second derivative

virtual real_type solve(real_type) const = 0

solve \( p'(z) = r \)

virtual void setup(real_type epsilon, real_type tolerance) = 0
inline void update_epsilon(real_type epsilon)

change the epsilon of the control, used in the continuation

inline void update_tolerance(real_type tolerance)

change the tolerance of the control, used in the continuation

inline virtual void check_range_throw(real_type, real_type, real_type) const

check if value of the control is in the correct range

inline virtual bool check_range(real_type, real_type, real_type) const
real_type operator()(real_type x, real_type a, real_type b) const

evaluate \( P(x,a,b) = p((2x-(a+b))/(b-a)) \)

real_type D_1(real_type x, real_type a, real_type b) const

evaluate \( \displaystyle\frac{\partial}{\partial_x} P(x,a,b) \)

real_type D_2(real_type x, real_type a, real_type b) const

evaluate \( \partial_a P(x,a,b) \)

real_type D_3(real_type x, real_type a, real_type b) const

evaluate \( \partial_b P(x,a,b) \)

real_type D_1_1(real_type x, real_type a, real_type b) const

evaluate \( \partial^{(2)}_x P(x,a,b) \)

real_type D_1_2(real_type x, real_type a, real_type b) const

evaluate \( \displaystyle\frac{\partial}{\partial_x}\partial_a P(x,a,b) \)

real_type D_1_3(real_type x, real_type a, real_type b) const

evaluate \( \displaystyle\frac{\partial}{\partial_x}\partial_b P(x,a,b) \)

real_type D_2_2(real_type x, real_type a, real_type b) const

evaluate \( \partial^{(2)}_a P(x,a,b) \)

real_type D_2_3(real_type x, real_type a, real_type b) const

evaluate \( \partial_a\partial_b P(x,a,b) \)

real_type D_3_3(real_type x, real_type a, real_type b) const

evaluate \( \partial^{(2)}_b P(x,a,b) \)

real_type solveStandard(real_type RHS, real_type x_guess) const

solve \( p'(x) = R \)

Given penalty \( p(z) \) solve the problem \( p'(z)=r \) by Newton method.

real_type solve(real_type RHS, real_type a, real_type b) const

solve \( P'(x,a,b) = R \)

Given penalty \( p(z) \) solve the problem \( p'\left(\frac{2x-(a+b)}{b-a}\right)=\frac{(b-a)r}{2}\).

real_type solve_rhs(real_type RHS, real_type a, real_type b) const

given \( P'(x(R,a,b),a,b) = R \) compute \( \partial_R x(R,a,b) \)

real_type solve_a(real_type RHS, real_type a, real_type b) const

given \( P'(x(R,a,b),a,b) = R \) compute \( \partial_a x(R,a,b) \)

real_type solve_b(real_type RHS, real_type a, real_type b) const

given \( P'(x(R,a,b),a,b) = R \) compute \( \partial_b x(R,a,b) \)

Protected Attributes

string const m_name

penalty name

string const m_kind

kind of penalty

real_type m_h

general parameter for all control penalties

real_type m_epsilon

general parameter for all control penalties