54#define _IFT_NRSolver_Name "nrsolver"
55#define _IFT_NRSolver_maxiter "maxiter"
56#define _IFT_NRSolver_miniterations "miniter"
57#define _IFT_NRSolver_minsteplength "minsteplength"
58#define _IFT_NRSolver_manrmsteps "manrmsteps"
59#define _IFT_NRSolver_lstype "lstype"
60#define _IFT_NRSolver_ddm "ddm"
61#define _IFT_NRSolver_ddv "ddv"
62#define _IFT_NRSolver_ddfunc "ddltf"
63#define _IFT_NRSolver_linesearch "linesearch"
64#define _IFT_NRSolver_rtolv "rtolv"
65#define _IFT_NRSolver_rtolf "rtolf"
66#define _IFT_NRSolver_rtold "rtold"
67#define _IFT_NRSolver_calcstiffbeforeres "calcstiffbeforeres"
68#define _IFT_NRSolver_constrainedNRalpha "constrainednralpha"
69#define _IFT_NRSolver_constrainedNRminiter "constrainednrminiter"
70#define _IFT_NRSolver_maxinc "maxinc"
71#define _IFT_NRSolver_forceScale "forcescale"
72#define _IFT_NRSolver_forceScaleDofs "forcescaledofs"
73#define _IFT_NRSolver_solutionDependentExternalForces "soldepextforces"
204 void initPrescribedEqs();
205 void applyConstraintsToStiffness(
SparseMtrx &k);
207 referenceLoadInputModeType rlm,
TimeStep *tStep);
214 double RRT,
const FloatArray &internalForcesEBENorm,
int nite,
bool &errorOutOfRange);
NRSolver(Domain *d, EngngModel *m)
FloatArray lastReactions
Computed reactions. They are stored in order to print them in printState method.
int constrainedNRminiter
Minimum number of iterations before constraint is activated.
FloatArray prescribedDofsValues
Array of prescribed values.
SparseMtrx::SparseMtrxVersionType smConstraintVersion
sparse matrix version, used to control constrains application to stiffness
std ::unique_ptr< LineSearchNM > linesearchSolver
Line search solver.
void reinitialize() override
LinSystSolverType solverType
linear system solver ID
int prescribedDisplacementTF
Load Time Function of prescribed values.
std ::unique_ptr< SparseLinearSystemNM > linSolver
linear system solver
const char * giveClassName() const override
virtual const char * giveInputRecordName() const
ConvergedReason solve(SparseMtrx &k, FloatArray &R, FloatArray *R0, FloatArray &X, FloatArray &dX, FloatArray &F, const FloatArray &internalForcesEBENorm, double &l, referenceLoadInputModeType rlm, int &nite, TimeStep *) override
double constrainedNRalpha
Scale factor for dX, dX_new = alpha * dX.
void setDomain(Domain *d) override
IntArray prescribedDofs
Array of pairs identifying prescribed dofs (node, dof).
int numberOfPrescribedDofs
number of prescribed displacement
IntArray prescribedEqs
Array of prescribed equations.
FloatArray rtold
Relative iterative displacement change tolerance for each group.
nrsolver_ModeType NR_OldMode
bool solutionDependentExternalForcesFlag
Solution dependent external forces - updating then each NR iteration.
std ::map< int, double > dg_forceScale
Optional user supplied scale of forces used in convergence check.
bool prescribedEqsInitFlag
Flag indicating that prescribedEqs were initialized.
FloatArray rtolf
Relative unbalanced force tolerance for each group.
bool lsFlag
Flag indicating whether to use line-search.
void initializeFrom(InputRecord &ir) override
bool mCalcStiffBeforeRes
Flag indicating if the stiffness should be evaluated before the residual in the first iteration.
nrsolver_ModeType NR_Mode
FloatArray forceErrVecOld
void printState(FILE *outputStream) override
bool constrainedNRFlag
Flag indicating whether to use constrained Newton.
Domain * domain
Pointer to domain.
SparseNonLinearSystemNM(Domain *d, EngngModel *m)
Constructor.
referenceLoadInputModeType
#define _IFT_NRSolver_Name