1#ifndef LIPSCHITZCONSTANTS_HH
2#define LIPSCHITZCONSTANTS_HH
6 template <
class,
int>
class FieldVector;
7 template <
class,
class>
class Matrix;
19 void setFirstOrder(
double norm_dx_,
double thetaC_,
double modelError_);
39 double lowFactor = 1e-4;
40 double highFactor = 1e3;
41 double modelError = 0;
46 double secondOrderEstimate = 0;
47 bool secondOrderUsed =
false;
49 bool firstEstimate =
true;
56 void update(
double newOmega,
bool lock =
false);
61 double lowFactor = 1e-3, highFactor = 1e3;
63 bool firstEstimate =
true;
void update(double newOmega, bool lock=false)
ConstraintD1LipschitzConstant(int verbose_, double initialOmega=1e-3)
LagrangianD2LipschitzConstant & operator=(LagrangianD2LipschitzConstant const &)=default
void setSecondOrder(double secondOrderEstimate_=0.0)
void setFirstOrder(double norm_dx_, double thetaC_, double modelError_)
bool isPositiveDefinite() const
LagrangianD2LipschitzConstant(int verbose_, double initialOmega=1e-3)
void update(bool doLock)
compute robust value for omegaL
bool highRoundOffError(bool hasNormalDirection, double epsilon)
decide whether their might be high round off error
LagrangianD2LipschitzConstant(LagrangianD2LipschitzConstant const &)=default