v0.14.0 |
Implementation of spherical arc-length method. More...
#include <users_modules/basic_finite_elements/src/ArcLengthTools.hpp>
Public Member Functions | |
DEPRECATED | SphericalArcLengthControl (ArcLengthCtx *arc_ptr_raw) |
SphericalArcLengthControl (boost::shared_ptr< ArcLengthCtx > &arc_ptr) | |
virtual | ~SphericalArcLengthControl () |
MoFEMErrorCode | preProcess () |
MoFEMErrorCode | operator() () |
MoFEMErrorCode | postProcess () |
virtual double | calculateLambdaInt () |
Calculate f_lambda(dx,lambda) More... | |
virtual MoFEMErrorCode | calculateDb () |
Calculate db. More... | |
virtual MoFEMErrorCode | calculateDxAndDlambda (Vec x) |
virtual MoFEMErrorCode | calculateInitDlambda (double *dlambda) |
virtual MoFEMErrorCode | setDlambdaToX (Vec x, double dlambda) |
Public Attributes | |
ArcLengthCtx * | arcPtrRaw |
Private Attributes | |
boost::shared_ptr< ArcLengthCtx > | arcPtr |
Implementation of spherical arc-length method.
\[ \alpha \| \Delta\mathbf{x} \|^2 + \Delta\lambda^2 \beta^2 \| \mathbf{F}_\lambda \|^2 = s^2 \]
This is particular implementation of ArcLength control, i.e. spherical arc length control. If beta is set to 0 and alpha is non-zero it is cylindrical arc-length control. Works well with general problem with non-linear geometry. It not guarantee dissipative loading path in case of physical nonlinearities.
Definition at line 374 of file ArcLengthTools.hpp.
SphericalArcLengthControl::SphericalArcLengthControl | ( | ArcLengthCtx * | arc_ptr_raw | ) |
Definition at line 661 of file ArcLengthTools.cpp.
SphericalArcLengthControl::SphericalArcLengthControl | ( | boost::shared_ptr< ArcLengthCtx > & | arc_ptr | ) |
Definition at line 664 of file ArcLengthTools.cpp.
|
virtual |
Definition at line 668 of file ArcLengthTools.cpp.
|
virtual |
Calculate db.
\[ \textrm{d}\mathbf{b} = 2 \alpha \Delta\mathbf{x} \]
Definition at line 691 of file ArcLengthTools.cpp.
|
virtual |
Definition at line 742 of file ArcLengthTools.cpp.
|
virtual |
Definition at line 769 of file ArcLengthTools.cpp.
|
virtual |
Calculate f_lambda(dx,lambda)
\[ f_\lambda(\Delta\mathbf{x},\lambda) = \alpha \| \Delta\mathbf{x} \|^2 + \Delta\lambda^2 \beta^2 \| \mathbf{F}_\lambda \|^2 \]
Definition at line 685 of file ArcLengthTools.cpp.
MoFEMErrorCode SphericalArcLengthControl::operator() | ( | ) |
Definition at line 698 of file ArcLengthTools.cpp.
MoFEMErrorCode SphericalArcLengthControl::postProcess | ( | ) |
Definition at line 720 of file ArcLengthTools.cpp.
MoFEMErrorCode SphericalArcLengthControl::preProcess | ( | ) |
Definition at line 670 of file ArcLengthTools.cpp.
|
virtual |
Definition at line 783 of file ArcLengthTools.cpp.
|
private |
Definition at line 412 of file ArcLengthTools.hpp.
ArcLengthCtx* SphericalArcLengthControl::arcPtrRaw |
Definition at line 376 of file ArcLengthTools.hpp.