24 #ifndef _GEMA_PLUGIN_FEM_NLSOLVER_H_ 25 #define _GEMA_PLUGIN_FEM_NLSOLVER_H_ 41 void enableFastUpdate(
bool mode) { _fastUpdate = mode; }
48 virtual bool runStep(
double dt,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval=
false);
59 virtual bool fillStateControlMapDataStaticSolver(QVariantMap* map);
61 virtual bool stateControlMapDataLoadedStaticSolver(QVariantMap* map);
63 virtual bool fillStateControlMapDataTransientSolver(QVariantMap* map);
65 virtual bool stateControlMapDataLoadedTransientSolver(QVariantMap* map);
70 virtual void setElementSets(
bool,
bool,
bool,
bool,
bool);
72 virtual bool IntialFixedBoundaryConditions(
int*);
73 virtual bool applyNonzeroFixedBCsbyModification(
int*);
74 virtual bool isDynamic()
const;
75 virtual bool isNonlinear()
const;
78 virtual bool convergence()
const;
80 virtual bool convergenceDC(
GmVector& _er)
const;
82 virtual void restore();
88 virtual bool LoadError(
GmVector& _er)
const;
89 virtual bool DispError(
GmVector& _er)
const;
90 virtual bool VelocityError(
GmVector& _er)
const;
91 virtual bool FluxError(
GmVector& _er)
const;
92 virtual bool FluxMagnitude(
GmVector& _qa)
const;
95 virtual bool MaxErr(
GmVector,
double& ermax,
double &tolmax);
99 virtual bool PhygroupName(
int & kgroup,
QString var)
const;
101 virtual bool divergingIncrement(
double ermax,
double& ermax_1,
double& ermax_2);
103 virtual bool adaptativeTimeAbqs(
bool conv,
int iter,
double dt,
double& newdt,
double errmax,
int inc,
bool iter4);
105 virtual bool adaptativeTime(
bool conv,
int iter,
double dt,
double& newdt,
double err,
double tol);
107 virtual void saveInternalForceAttributes(
GmVector& dv);
109 virtual void setLoad();
110 virtual void setTime();
111 virtual void setState();
113 virtual void setTransientSystem(
double);
114 virtual void setTransientSystem2(
double);
127 virtual double evalTimeIncrementSize(
int,
double,
double,
GmVector&);
131 virtual double loadPredictor();
133 virtual double loadCorrector();
136 virtual bool staticLinearSolver(
double step,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval);
137 virtual bool staticSolver(
double step,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval);
138 virtual bool transientSolver(
double dt,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval);
139 virtual bool transientLinearSolver(
double);
140 virtual bool iterativeSolver(
double dt,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval);
143 virtual bool stepStandardDc(
double dt,
double* newt,
bool* conv,
double* err,
int* niter,
bool eval);
144 virtual bool stepTransientNonlinearAut(
double dt,
double* newt);
145 virtual bool stepNonlinearAut(
double dt,
double* newt);
153 double _attempt = 0.0;
162 bool _iter4old =
false;
virtual bool fillStateControlMapData(QVariantMap *map)
Method called for filling the state dump control regustered in addStateItemsToGroup()
Definition: gmpFemSolver.cpp:1964
Definition: gmpFemSolverOptions.h:38
virtual bool stateLoadedCalcDerivedResultsNonLinear()
Returns the value of the "nonLinearSolver" parameter that will be passed to the calcDerivedResults() ...
Definition: gmpFemSolver.h:115
FemResultType
Result type for local matrix calculation methods.
Definition: gmpFemPhysics.h:49
Basic class for the FEM solving process.
Definition: gmpFemSolver.h:51
virtual bool init()
Prepares the solver for assembling matrices by creating the assembler object and allocating the neede...
Definition: gmpFemSolver.cpp:137
Declaration of the GmpFemSolver class.
virtual bool initElementSets(GmNumSolver *solver)
Helpper function used to initialize the matrix / vector sets with the definition of the needed types ...
Definition: gmpFemSolver.cpp:450
Declaration of the GmpFemSolverOptions class.
bool update(int mode, QString &err)
Informs the solver of an external change in model dofs, elements or BCs that must be forwarded to the...
Definition: gmpFemSolver.cpp:346
virtual bool stateControlMapDataLoaded(QVariantMap *map)
Method called when the state dump control registered in addStateItemsToGroup() has been loaded.
Definition: gmpFemSolver.cpp:1985
virtual bool applyFixedBoundaryConditions(int *numFixed)
Apply Dirichlet (fixed) boundary conditions to the global equation system.
Definition: gmpFemSolver.cpp:1561
Basic class for solving Non linear FEM problems.
Definition: gmpFemNLSolver.h:31
virtual bool addStateItemsToGroup(GmStateDump *state, int groupId)
Adds to 'state' the data items that should be saved for this FEM process. Should probably be override...
Definition: gmpFemSolver.cpp:1885
GmVector _qta
An overall time-averaged value of the typical flux for field α so far during this step including the ...
Definition: gmpFemNLSolver.h:182
GmVector _qtamax
The time-averaged value of the largest flux corresponding to the field αduring this step,...
Definition: gmpFemNLSolver.h:183