![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
Optimized 2D Newton-Raphson solvers with strict convergence criteria. More...
Namespaces | |
| namespace | MathSys |
| Shared types for specialized small-dimension Newton solvers. | |
| namespace | MathSys::detail |
Functions | |
| bool | MathSys::detail::IsOptionsValid (const NewtonOptions &theOptions) |
| Check that NewtonOptions fields are positive and valid. | |
| bool | MathSys::detail::IsBoundsValid2D (const NewtonBoundsN< 2 > &theBounds) |
| Check that NewtonBoundsN<2> has valid (min <= max) ranges. | |
| double | MathSys::detail::MaxDomainSize2D (const NewtonBoundsN< 2 > &theBounds) |
| Return the largest domain extent across both dimensions (min 1.0). | |
| void | MathSys::detail::Clamp2D (std::array< double, 2 > &theX, const NewtonBoundsN< 2 > &theBounds, bool theUseSoftBounds, double theSoftExtRatio) |
| Clamp solution array to bounds, optionally extending by soft-bounds ratio. | |
| bool | MathSys::detail::SolveSymmetric2x2SVD (double theJ11, double theJ12, double theJ22, double theF1, double theF2, double &theDU, double &theDV, double theTol=1.0e-15) |
| Solve 2x2 symmetric system using eigenvalue decomposition (SVD fallback). More robust than Cramer's rule for ill-conditioned matrices. | |
| template<typename Function > | |
| NewtonResultN< 2 > | MathSys::Solve2D (const Function &theFunc, const std::array< double, 2 > &theX0, const NewtonBoundsN< 2 > &theBounds, const NewtonOptions &theOptions=NewtonOptions()) |
| Solve a general 2x2 nonlinear system by Newton iteration. Function contract: bool operator()(double u, double v,
double f[2], double j[2][2]) const;. | |
| template<typename Function > | |
| NewtonResultN< 2 > | MathSys::Solve2DSymmetric (const Function &theFunc, const std::array< double, 2 > &theX0, const NewtonBoundsN< 2 > &theBounds, const NewtonOptions &theOptions=NewtonOptions()) |
| Solve a 2x2 system with symmetric Jacobian by robust Newton iteration. Function contract: bool ValueAndJacobian(double u, double v,
double& f1, double& f2,
double& j11, double& j12, double& j22) const; bool Value(double u, double v, double& f1, double& f2) const; // required if line search is enabled. | |
Variables | |
| constexpr double | MathSys::detail::THE_SINGULAR_DET_TOL = 1.0e-25 |
| constexpr double | MathSys::detail::THE_CRITICAL_GRAD_SQ = 1.0e-60 |
| constexpr int | MathSys::detail::THE_LINE_SEARCH_MAX = 8 |
| constexpr double | MathSys::detail::THE_ARMIJO_C1 = 1.0e-4 |
Optimized 2D Newton-Raphson solvers with strict convergence criteria.
Specifically optimized for 2D problems like: