Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Functions | Variables
MathSys::detail Namespace Reference

Functions

bool IsOptionsValid (const NewtonOptions &theOptions)
 Check that NewtonOptions fields are positive and valid.
 
bool IsBoundsValid2D (const NewtonBoundsN< 2 > &theBounds)
 Check that NewtonBoundsN<2> has valid (min <= max) ranges.
 
double MaxDomainSize2D (const NewtonBoundsN< 2 > &theBounds)
 Return the largest domain extent across both dimensions (min 1.0).
 
void 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 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.
 
bool IsBoundsValid3D (const NewtonBoundsN< 3 > &theBounds)
 Check that NewtonBoundsN<3> has valid (min <= max) ranges.
 
bool IsOptionsValid3D (const NewtonOptions &theOptions)
 Check that NewtonOptions fields are positive and valid.
 
double MaxDomainSize3D (const NewtonBoundsN< 3 > &theBounds)
 Return the largest domain extent across all 3 dimensions (min 1.0).
 
void Clamp3D (std::array< double, 3 > &theX, const NewtonBoundsN< 3 > &theBounds, bool theUseSoftBounds, double theSoftExtRatio)
 Clamp solution array to bounds, optionally extending by soft-bounds ratio.
 
bool Solve3x3 (const double theJ[3][3], const double theF[3], double theDelta[3])
 Solve 3x3 linear system J*x = -F using Cramer's rule with cofactor expansion.
 
bool IsBoundsValid4D (const NewtonBoundsN< 4 > &theBounds)
 Check that NewtonBoundsN<4> has valid (min <= max) ranges.
 
bool IsOptionsValid4D (const NewtonOptions &theOptions)
 Check that NewtonOptions fields are positive and valid.
 
double MaxDomainSize4D (const NewtonBoundsN< 4 > &theBounds)
 Return the largest domain extent across all 4 dimensions (min 1.0).
 
void Clamp4D (std::array< double, 4 > &theX, const NewtonBoundsN< 4 > &theBounds, bool theUseSoftBounds, double theSoftExtRatio)
 Clamp solution array to bounds, optionally extending by soft-bounds ratio.
 
bool Solve4x4 (const double theJ[4][4], const double theF[4], double theDelta[4])
 Solve 4x4 linear system using Gaussian elimination with partial pivoting.
 

Variables

constexpr double THE_SINGULAR_DET_TOL = 1.0e-25
 
constexpr double THE_CRITICAL_GRAD_SQ = 1.0e-60
 
constexpr int THE_LINE_SEARCH_MAX = 8
 
constexpr double THE_ARMIJO_C1 = 1.0e-4
 

Function Documentation

◆ Clamp2D()

void MathSys::detail::Clamp2D ( std::array< double, 2 > & theX,
const NewtonBoundsN< 2 > & theBounds,
bool theUseSoftBounds,
double theSoftExtRatio )
inline

Clamp solution array to bounds, optionally extending by soft-bounds ratio.

◆ Clamp3D()

void MathSys::detail::Clamp3D ( std::array< double, 3 > & theX,
const NewtonBoundsN< 3 > & theBounds,
bool theUseSoftBounds,
double theSoftExtRatio )
inline

Clamp solution array to bounds, optionally extending by soft-bounds ratio.

◆ Clamp4D()

void MathSys::detail::Clamp4D ( std::array< double, 4 > & theX,
const NewtonBoundsN< 4 > & theBounds,
bool theUseSoftBounds,
double theSoftExtRatio )
inline

Clamp solution array to bounds, optionally extending by soft-bounds ratio.

◆ IsBoundsValid2D()

bool MathSys::detail::IsBoundsValid2D ( const NewtonBoundsN< 2 > & theBounds)
inline

Check that NewtonBoundsN<2> has valid (min <= max) ranges.

◆ IsBoundsValid3D()

bool MathSys::detail::IsBoundsValid3D ( const NewtonBoundsN< 3 > & theBounds)
inline

Check that NewtonBoundsN<3> has valid (min <= max) ranges.

◆ IsBoundsValid4D()

bool MathSys::detail::IsBoundsValid4D ( const NewtonBoundsN< 4 > & theBounds)
inline

Check that NewtonBoundsN<4> has valid (min <= max) ranges.

◆ IsOptionsValid()

bool MathSys::detail::IsOptionsValid ( const NewtonOptions & theOptions)
inline

Check that NewtonOptions fields are positive and valid.

◆ IsOptionsValid3D()

bool MathSys::detail::IsOptionsValid3D ( const NewtonOptions & theOptions)
inline

Check that NewtonOptions fields are positive and valid.

◆ IsOptionsValid4D()

bool MathSys::detail::IsOptionsValid4D ( const NewtonOptions & theOptions)
inline

Check that NewtonOptions fields are positive and valid.

◆ MaxDomainSize2D()

double MathSys::detail::MaxDomainSize2D ( const NewtonBoundsN< 2 > & theBounds)
inline

Return the largest domain extent across both dimensions (min 1.0).

◆ MaxDomainSize3D()

double MathSys::detail::MaxDomainSize3D ( const NewtonBoundsN< 3 > & theBounds)
inline

Return the largest domain extent across all 3 dimensions (min 1.0).

◆ MaxDomainSize4D()

double MathSys::detail::MaxDomainSize4D ( const NewtonBoundsN< 4 > & theBounds)
inline

Return the largest domain extent across all 4 dimensions (min 1.0).

◆ Solve3x3()

bool MathSys::detail::Solve3x3 ( const double theJ[3][3],
const double theF[3],
double theDelta[3] )
inline

Solve 3x3 linear system J*x = -F using Cramer's rule with cofactor expansion.

Parameters
[in]theJ3x3 Jacobian matrix
[in]theF3-element right-hand side
[out]theDelta3-element solution vector
Returns
true if system was solved successfully (non-singular)

◆ Solve4x4()

bool MathSys::detail::Solve4x4 ( const double theJ[4][4],
const double theF[4],
double theDelta[4] )
inline

Solve 4x4 linear system using Gaussian elimination with partial pivoting.

Parameters
[in]theJ4x4 Jacobian matrix
[in]theF4-element right-hand side
[out]theDelta4-element solution vector
Returns
true if system was solved successfully

◆ SolveSymmetric2x2SVD()

bool MathSys::detail::SolveSymmetric2x2SVD ( double theJ11,
double theJ12,
double theJ22,
double theF1,
double theF2,
double & theDU,
double & theDV,
double theTol = 1.0e-15 )
inline

Solve 2x2 symmetric system using eigenvalue decomposition (SVD fallback). More robust than Cramer's rule for ill-conditioned matrices.

Parameters
[in]theJ11,theJ12,theJ22symmetric Jacobian elements
[in]theF1,theF2right-hand side
[out]theDU,theDVsolution components
[in]theToltolerance for eigenvalue regularization
Returns
true if solution found

Variable Documentation

◆ THE_ARMIJO_C1

constexpr double MathSys::detail::THE_ARMIJO_C1 = 1.0e-4
constexpr

◆ THE_CRITICAL_GRAD_SQ

constexpr double MathSys::detail::THE_CRITICAL_GRAD_SQ = 1.0e-60
constexpr

◆ THE_LINE_SEARCH_MAX

constexpr int MathSys::detail::THE_LINE_SEARCH_MAX = 8
constexpr

◆ THE_SINGULAR_DET_TOL

constexpr double MathSys::detail::THE_SINGULAR_DET_TOL = 1.0e-25
constexpr