Class Penalty1DBipower

Inheritance Relationships

Base Type

Class Documentation

class Mechatronix::Penalty1DBipower : public Mechatronix::PenaltyBarrier1D

Penalty BiPower.

Public Functions

inline explicit Penalty1DBipower(string const &name)

Construct the penalty.

void setup(real_type epsilon, real_type n)

Set parameter for the penalty of type Bipower: \( p(x) = \epsilon x^2 + (1-\epsilon) x^n \)

Parameters
  • epsilon[in] the regularization parameter \( \epsilon \)

  • n[in] the exponent \( n \)

virtual void setup(GenericContainer const &gc) override

Set parameter for the penalty of type Bipower: \( p(x) = \epsilon x^2 + (1-\epsilon) x^n \)

The generic container gc must contain

  • ”subType” the sub type of the wall of the penalty

  • ”tolerance” the tolerance

  • ”epsilon” the regularization parameter \( \epsilon \)

  • “n” the exponent \( n \)

  • “active” a boolean true/false

virtual real_type operator()(real_type x) const override

Evaluate: \( p(x) = \epsilon x^2 + (1-\epsilon) x^n \)

virtual real_type D(real_type x) const override

Evaluate: \( p'(x) = 2\epsilon x + n(1-\epsilon) x^{n-1} \).

virtual real_type DD(real_type x) const override

Evaluate: \( p''(x) = 2\epsilon + n(n-1)(1-\epsilon) x^{n-2} \).

virtual string info() const override

print information about penalty