|
OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
This base class is an abstraction/implementation for numerical method solving line search optimization problem. More...
#include <linesearch.h>
Inheritance diagram for oofem::LineSearchNM:
Collaboration diagram for oofem::LineSearchNM:Public Types | |
| enum | LS_status { ls_ok, ls_failed } |
Public Member Functions | |
| LineSearchNM (Domain *d, EngngModel *m) | |
| Constructor. More... | |
| virtual NM_Status | solve (FloatArray &r, FloatArray &dr, FloatArray &F, FloatArray &R, FloatArray *R0, IntArray &eqnmask, double lambda, double &etaValue, LS_status &status, TimeStep *tStep) |
Solves the line search optimization problem in the form of , The aim is to find so that the has decreased sufficiently. More... | |
| virtual IRResultType | initializeFrom (InputRecord *ir) |
| virtual const char * | giveClassName () const |
Public Member Functions inherited from oofem::NumericalMethod | |
| NumericalMethod (Domain *d, EngngModel *m) | |
| Constructor. More... | |
| virtual | ~NumericalMethod () |
| Destructor. More... | |
| EngngModel * | giveEngngModel () |
| virtual void | reinitialize () |
| Reinitializes the receiver. More... | |
| virtual void | setDomain (Domain *d) |
| virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
| virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Public Attributes | |
| int | max_iter |
| double | ls_tolerance |
| double | amplifFactor |
| double | maxEta |
| double | minEta |
| FloatArray | eta |
| FloatArray | prod |
Protected Member Functions | |
| void | search (int istep, FloatArray &prod, FloatArray &eta, double amp, double maxeta, double mineta, int &status) |
Additional Inherited Members | |
Protected Attributes inherited from oofem::NumericalMethod | |
| Domain * | domain |
| Pointer to domain. More... | |
| EngngModel * | engngModel |
| Pointer to engineering model. More... | |
This base class is an abstraction/implementation for numerical method solving line search optimization problem.
Definition at line 60 of file linesearch.h.
| Enumerator | |
|---|---|
| ls_ok | |
| ls_failed | |
Definition at line 63 of file linesearch.h.
| oofem::LineSearchNM::LineSearchNM | ( | Domain * | d, |
| EngngModel * | m | ||
| ) |
Constructor.
Definition at line 44 of file linesearch.C.
References amplifFactor, ls_tolerance, max_iter, maxEta, and minEta.
|
inlinevirtual |
Definition at line 95 of file linesearch.h.
|
virtual |
Reimplemented from oofem::NumericalMethod.
Definition at line 247 of file linesearch.C.
References _IFT_LineSearchNM_lsearchamp, _IFT_LineSearchNM_lsearchmaxeta, _IFT_LineSearchNM_lsearchtol, amplifFactor, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, ls_tolerance, and maxEta.
Referenced by oofem::NRSolver::initializeFrom().
|
protected |
Definition at line 160 of file linesearch.C.
References oofem::FloatArray::at(), and oofem::max().
Referenced by solve().
|
virtual |
Solves the line search optimization problem in the form of
, The aim is to find
so that the
has decreased sufficiently.
The total solution vector is updated at exit as well as InternalRhs vector.
| r | Old total solution. |
| dr | Increment of solution. |
| F | Old InternalRhs (real internal forces). |
| R | Reference incremental Rhs (incremental load). |
| R0 | Initial Rhs (initial load). |
| eqnmask | Equation numbers to mask out from computations. |
| lambda | Scaling of R. |
| etaValue | Reached eta value. |
| status | Linesearch status |
| tStep | Time step. |
Definition at line 55 of file linesearch.C.
References oofem::FloatArray::add(), amplifFactor, oofem::FloatArray::at(), oofem::NumericalMethod::domain, oofem::NumericalMethod::engngModel, eta, oofem::FloatArray::giveSize(), oofem::TimeStep::incrementStateCounter(), oofem::InternalRhs, ls_failed, ls_ok, ls_tolerance, max_iter, maxEta, minEta, NM_NoSuccess, NM_Success, OOFEM_LOG_DEBUG, prod, oofem::FloatArray::resize(), search(), oofem::FloatArray::times(), and oofem::EngngModel::updateComponent().
Referenced by oofem::NRSolver::solve().
| double oofem::LineSearchNM::amplifFactor |
Definition at line 67 of file linesearch.h.
Referenced by initializeFrom(), LineSearchNM(), and solve().
| FloatArray oofem::LineSearchNM::eta |
Definition at line 69 of file linesearch.h.
Referenced by solve().
| double oofem::LineSearchNM::ls_tolerance |
Definition at line 66 of file linesearch.h.
Referenced by initializeFrom(), LineSearchNM(), and solve().
| int oofem::LineSearchNM::max_iter |
Definition at line 65 of file linesearch.h.
Referenced by LineSearchNM(), and solve().
| double oofem::LineSearchNM::maxEta |
Definition at line 68 of file linesearch.h.
Referenced by initializeFrom(), LineSearchNM(), and solve().
| double oofem::LineSearchNM::minEta |
Definition at line 68 of file linesearch.h.
Referenced by LineSearchNM(), and solve().
| FloatArray oofem::LineSearchNM::prod |
Definition at line 70 of file linesearch.h.
Referenced by solve().