![]() |
FemProcess
The GeMA Fem Process Plugin
|
Basic class for solving Non linear FEM problems. More...
#include <gmpFemStaticNonLinearSolver.h>


Public Member Functions | |
| GmpFemStaticNonLinearSolver (GmElementMesh *, GmSimulationData *, const QVector< GmpFemPhysics * > &, GmNumSolver *, const GmpFemSolverOptions &, const GmLogCategory &) | |
| void | enableFastUpdate (bool mode) |
| virtual bool | runStep (double dt, double *newt, bool *conv, double *err, int *niter, bool eval=false) |
Public Member Functions inherited from GmpFemNonLinearSolver | |
| GmpFemNonLinearSolver (GmElementMesh *, GmSimulationData *, const QVector< GmpFemPhysics * > &, GmNumSolver *, const GmpFemSolverOptions &, const GmLogCategory &) | |
| void | enableFastUpdate (bool mode) |
| virtual bool | init () |
| Prepares the solver for assembling matrices by creating the assembler object and allocating the needed memory. This operations only need to be done once if the solver is used in a loop. | |
| virtual bool | initResultAttributes (int fatherItemId) |
| Creates the solver tracking attributes + report. | |
| bool | initReport (GmRunProgressStats *ps) |
| Creates the solver report. | |
| virtual bool | geostatic (QString svId="u", QString gaId="Em") |
| The geostatic implementation (femNLSolver.geostatic) This function manages the geostatic process. | |
| virtual bool | checkTimeStep (double dt) |
| void | initializeProgress (solverState &sS, GmRunProgress &ps) |
Public Member Functions inherited from GmpFemSolver | |
| GmpFemSolver (GmElementMesh *mesh, GmSimulationData *simulation, const QVector< GmpFemPhysics * > &physics, GmNumSolver *solver, const GmpFemSolverOptions &options, const GmLogCategory &logger) | |
| Constructor. Expects to receive as parameters the mesh we are acting upon, the list of physics objects that will cooperate to create the global stiffness matrix and the solver used to solve the resulting linear system. | |
| virtual | ~GmpFemSolver (void) |
| Destructor. | |
| bool | run () |
| Execute the process. Returns true on success. | |
| bool | calcLinearResidual (double *rnorm, double *maxNodeDiff, double *avgNodeDiff) |
| When solving a non linear system by repeated iterations, this function aims to calculate the residual of the actual solution. | |
| void | setMatrixCombinerObject (const GmpFemAssemblerMatrixCombiner *combiner) |
| Sets the combiner object that will be used by the assembler to merge elemental data from multiple matrices (eg. C and K) into an equivalent matrix. | |
| void | setVectorCombinerObject (const GmpFemAssemblerVectorCombiner *combiner) |
| Sets the combiner objects that will be used by the assembler to merge elemental data from multiple vectors (eg. Fe and Fi) into an equivalent vector. | |
| 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 assembler. See the documentation of GmpFemAssembler::update() for more details. | |
| virtual bool | stateAboutToBeSaved (GmStateDump *state) |
| virtual bool | stateSaved (GmStateDump *state) |
| virtual bool | stateAboutToBeLoaded (GmStateDump *state) |
| virtual bool | stateLoaded (GmStateDump *state) |
| Informs physics objects that a load operation was completed giving them an opportunity to adjust its state in case the loaded data is not exactly what the internal state needs to be. It will also call derivedResults() so that previous results can be recovered. In that call, the nonLinearSolver parameter is obtained from the stateLoadedCalcDerivedResultsNonLinear() virtual function. | |
Public Member Functions inherited from QObject | |
| virtual const QMetaObject * | metaObject () const const |
| QObject (QObject *parent) | |
| virtual bool | event (QEvent *e) |
| virtual bool | eventFilter (QObject *watched, QEvent *event) |
| QString | objectName () const const |
| void | setObjectName (const QString &name) |
| bool | isWidgetType () const const |
| bool | isWindowType () const const |
| bool | signalsBlocked () const const |
| bool | blockSignals (bool block) |
| QThread * | thread () const const |
| void | moveToThread (QThread *targetThread) |
| int | startTimer (int interval, Qt::TimerType timerType) |
| int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
| void | killTimer (int id) |
| T | findChild (const QString &name, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
| QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
| const QObjectList & | children () const const |
| void | setParent (QObject *parent) |
| void | installEventFilter (QObject *filterObj) |
| void | removeEventFilter (QObject *obj) |
| QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
| bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
| bool | disconnect (const QObject *receiver, const char *method) const const |
| void | dumpObjectTree () |
| void | dumpObjectInfo () |
| void | dumpObjectTree () const const |
| void | dumpObjectInfo () const const |
| bool | setProperty (const char *name, const QVariant &value) |
| QVariant | property (const char *name) const const |
| QList< QByteArray > | dynamicPropertyNames () const const |
| void | destroyed (QObject *obj) |
| void | objectNameChanged (const QString &objectName) |
| QObject * | parent () const const |
| bool | inherits (const char *className) const const |
| void | deleteLater () |
| Q_DISABLE_COPY (Class) | |
| Q_DISABLE_MOVE (Class) | |
| Q_DISABLE_COPY_MOVE (Class) | |
| T | qobject_cast (QObject *object) |
| T | qobject_cast (const QObject *object) |
| T | qFindChild (const QObject *obj, const QString &name) |
| QList< T > | qFindChildren (const QObject *obj, const QString &name) |
| QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
| Q_CLASSINFO (Name, Value) | |
| Q_INTERFACES (...) | |
| Q_PROPERTY (...) | |
| Q_ENUMS (...) | |
| Q_FLAGS (...) | |
| Q_ENUM (...) | |
| Q_FLAG (...) | |
| Q_ENUM_NS (...) | |
| Q_FLAG_NS (...) | |
| Q_OBJECT Q_OBJECT | |
| Q_GADGET Q_GADGET | |
| Q_NAMESPACE Q_NAMESPACE | |
| Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
| Q_SIGNALS Q_SIGNALS | |
| Q_SIGNAL Q_SIGNAL | |
| Q_SLOTS Q_SLOTS | |
| Q_SLOT Q_SLOT | |
| Q_EMIT Q_EMIT | |
| Q_INVOKABLE Q_INVOKABLE | |
| Q_REVISION Q_REVISION | |
| Q_SET_OBJECT_NAME (Object) | |
| QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
Public Member Functions inherited from GmGroupDumpItem | |
Protected Member Functions | |
| virtual bool | addStateItemsToGroup (GmStateDump *state, int groupId) |
| Adds to 'state' the data items that should be saved for this FEM process. Should probably be overridden by derived classes to add their own requirements. | |
| virtual bool | fillStateControlMapData (QVariantMap *map) |
| Method called for filling the state dump control registered in addStateItemsToGroup() | |
| virtual bool | stateControlMapDataLoaded (QVariantMap *map) |
| Method called when the state dump control registered in addStateItemsToGroup() has been loaded. | |
| virtual bool | stateLoadedCalcDerivedResultsNonLinear () |
| Returns the value of the "nonLinearSolver" parameter that will be passed to the calcDerivedResults() call from the standard implementation of stateLoaded() | |
| virtual bool | fillStateControlMapDataStaticSolver (QVariantMap *map) |
| Virtual method to fill the map with the needed continuation method data. | |
| virtual bool | stateControlMapDataLoadedStaticSolver (QVariantMap *map) |
| Virtual method to Load the scalar attributes needed by continuation method. | |
| virtual bool | fillStateControlMapDataTransientSolver (QVariantMap *map) |
| Virtual method to load the scalar attributes needed by transient solver. | |
| virtual bool | stateControlMapDataLoadedTransientSolver (QVariantMap *map) |
| Virtual method to fill the map with the needed transient solver data. | |
| virtual bool | initElementSets (GmNumSolver *) |
| Helper function used to initialize the matrix / vector sets with the definition of the needed types and also the relationships of those sets with the assembler. | |
| virtual void | setElementSets (bool, bool, bool, bool, bool) |
| virtual bool | applyFixedBoundaryConditions (int *) |
| Apply Dirichlet (fixed) boundary conditions to the global equation system. | |
| virtual bool | convergenceN (GmVector &erL, GmRunProgress *rp=NULL) const |
| analysis | |
| virtual void | update () |
| virtual bool | maxVal (GmVector &array, const GmVector &) const |
| Maximun value of the array. | |
| virtual void | saveInternalForceAttributes (GmVector &dv) |
| Adaptative time increment based on abaqus std. | |
| virtual void | setLoad () |
| virtual void | setState () |
| virtual GmpFemPhysics::FemResultType | updateResidualForceAndStiffnessMatrix (double l) |
| Updates the stiffness matrix. | |
| virtual GmpFemPhysics::FemResultType | fillStiffnessMatrixBroyden () |
| Evaluates the stiffness matrix using Broyden's method. | |
| virtual double | loadPredictor () |
| Load predictor strategies. | |
| virtual double | loadCorrector () |
| Load corrector strategy. | |
| virtual bool | staticLinearSolver (double step, double *newt, bool *conv, double *err, int *niter, bool eval) |
| virtual bool | staticSolver (double step, double *newt, bool *conv, double *err, int *niter, bool eval) |
| The NLSolver.stepStaticNL() static solver implementation. | |
Protected Member Functions inherited from GmpFemNonLinearSolver | |
| virtual bool | prepareNonLinearSolverStep (solverState &sS, GmRunProgress &ps) |
| virtual bool | assembleInitialSystem (const double &) |
| virtual bool | solveInitialSystem (solverState &sS, GmRunProgress &ps) |
| virtual bool | assembleIterationSystem (const double &) |
| virtual bool | solveNewtonRaphson (GmRunProgress &ps, double &dt, const double &t, double *newt) |
| virtual bool | applyTimeDiscretization () |
| virtual bool | intialFixedBoundaryConditions (int *) |
| virtual bool | applyNonzeroFixedBCsbyModification (int *) |
| virtual bool | isTransient () const |
| virtual bool | isNonlinear () const |
| virtual bool | convergence () const |
| analysis | |
| virtual bool | convergenceDC (GmVector &er) const |
| virtual void | restore () |
| virtual bool | loadError (GmVector &er) const |
| virtual bool | dispError (GmVector &er) const |
| virtual bool | velocityError (GmVector &er) const |
| virtual bool | fluxError (GmVector &er) const |
| virtual bool | fluxMagnitude (GmVector &qa) const |
| virtual bool | convergenceStep (unsigned &attempt, unsigned &incT, double, double) |
| Step convergence. | |
| virtual bool | maxErr (GmVector, double &ermax, double &tolmax) |
| Maximun erro in the current itarion. | |
| virtual bool | phygroupName (int &kgroup, QString var) const |
| Physical group. | |
| virtual bool | divergingIncrement (unsigned iter, double tolmax, double ermax, double &ermax_1, double &ermax_2) |
| diverging Increment | |
| virtual bool | adaptativeTimeAbqs (bool conv, unsigned iter, double dt, double &newdt, double errmax, unsigned inc, bool iter4) |
| Adaptative time increment based on abaqus std. | |
| virtual bool | adaptativeTime (bool conv, int iter, double dt, double &newdt, double err, double tol) |
| Adaptative time increment. | |
| virtual void | setTime () |
| virtual void | setTransientSystem (double) |
| evaluates transient system | |
| virtual bool | getLinearSystem (double dt) |
| evaluates the linear system | |
| virtual bool | getSystemRHSVector (double dt) |
| Computes the right-hand side vector (RHS) for the nonlinear system RHS is saved in the vector _r. | |
| virtual bool | getSystemResidualVector (double dt) |
| Computes the residual vector of the nonlinear system. | |
| virtual bool | solveLinearSystem () |
| Solve the linear system according to the adopted nonlinear scheme. | |
| bool | applyDirichletBoundaryConditions () |
| virtual double | evalLocalError (GmVector, GmVector) |
| calc local error | |
| virtual double | evalTimeIncrementSize (unsigned, double, double, GmVector &) |
| calc time increment size | |
| virtual bool | transientSolver (double dt, double *newt, bool *conv, double *err, int *niter, bool eval) |
| The transient nonlinear implementation (femNLSolver.transient) This function manages the transient step. | |
| virtual bool | transientLocalSolver (double dt, double *newt, bool *conv, double *err, int *niter, bool eval) |
| The transient nonlinear implementation (femNLSolver.transient) This function manages the transient step. | |
| virtual bool | iterativeSolver (double dt, double *newt, bool *conv, double *err, int *niter, bool eval) |
| The transient nonlinear implementation (femNLSolver.transient) This function manages the transient step. | |
| virtual bool | stepStandardDc (double dt, double *newt, bool *conv, double *err, int *niter, bool eval) |
| The transient nonlinear implementation (femNLSolver.transient) This function manages the transient step. | |
Protected Member Functions inherited from GmpFemSolver | |
| bool | initSolver (GmpFemAssembler::FixedDofMode assemblerMode, bool assemblerReverseMapping, bool enableFastUpdate) |
| Basic implementation of the init function receiving as parameters the configuration options that are sent to the assembler. | |
| virtual void | intLinearSolverPrintOptions () |
| Register print options with the numeric solver. Must be done AFTER registering result attributes. This enables printing of the linear system of equations. | |
| virtual bool | cleanup () |
| Deallocates memory and sets allocated resources to NULL. As a convenience, returns false. | |
| GmpFemPhysics::FemResultType | prepareMatrices (bool skipFixedBcs=false) |
| Auxiliary function used to fill the K, and f matrices / vectors along with any other matrices/vectors stored in _matSet and _vecSet. | |
| GmpFemPhysics::FemResultType | saveElementData (int iter) |
| Auxiliary function used to save to the configured file data from the set of element matrices and vectors. In this process, physics are called again to fill element matrices and vectors (according to the active matrices and vectors in _vecSet and _matSet) but the results are NOT added to the global matrices. | |
| bool | solveLinearSystem (bool xFilled) |
| Solves the linear system K.x = f taking K and f from the single equivalent matrix/vector or from matrix K / vector f, depending on the assembler configuration. Results are saved in _x. Prints the used matrices / result as configured in _printOptions. | |
| double | timeConvert (double val) |
| Auxiliary function created for being used by derived classes that converts a time value given in the current simulation time unit and returns that value converted to the physics expected unit. | |
| GmpFemPhysics::FemResultType | traverseElements () |
| Fills the stiffness matrix _K and the force vector _f by traversing elements asking physics for the local element matrix / force vector. | |
| GmpFemPhysics::FemResultType | traverseBoundaryElements () |
| Similar to traverseElements(), this function steps through each element that belongs to an edge or face boundary condition, asking physics for additional contributions to the stiffness matrix _K and the force vector _f. | |
| GmpFemPhysics::FemResultType | traverseExternalLoads () |
| Similar to traverseElements(), this function steps through each element associated to an external load force, asking physics for additional contributions to the force vector _f. | |
| GmpFemPhysics::FemResultType | traverseContactBoundaries () |
| Similar to traverseElements(), this function steps through each possible contact from the given contact boundary conditions and asks the physics for additional contributions to the solver matrices and vectors. This is different from the other element based loops since the returned matrices are not restricted to a single element, but can combine nodes from several ones. | |
| GmpFemPhysics::FemResultType | traverseElementsForSaving (FILE *f, int iter) |
| Similar to traverseElements() but instead of adding the elements to the assembler, saves the element data to the given file. | |
| GmpFemPhysics::FemResultType | fillElementData (const GmElement *e, int physIndex) |
| Helper function used by traverseElements() to get data for a single element calling phys->fillElementData() | |
| GmpFemPhysics::FemResultType | fillElementBoundaryData (const GmElement *e, int physIndex, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, const GmCellBoundary *b) |
| Helper function used by traverseBoundaryElements() to get data for a single element calling phys->fillElementDataForBc() | |
| GmpFemPhysics::FemResultType | fillElementDataForLoads (const GmElement *e, int physIndex, int loadIndex) |
| Helper function used by traverseExternalLoads() to get data for phys->fillElementDataForLoads() | |
| GmpFemPhysics::FemResultType | fillContactData (GmMatrixDof &localDofMap, const GmContactBoundaryCondition *cbc, int physIndex, int index1, int index2) |
| Helper function used by traverseContactBoundaries() to get data for a single contact pair calling phys->fillContactData() | |
| bool | addFixedForces () |
| Adds fixed nodal forces, as seen by each physics, to the global vector _f. | |
| bool | collectFixedBcs (QVector< bool > &fixedRows, QVector< double > &fixedValues, QVector< int > &dofIndex) |
| Fills the set of vectors received as parameters with the complete set of fixed boundary conditions, as seen by the full set of physics in use, checking for possible conflicts in conditions. | |
| virtual void | collectGlobalContactPairs (const GmContactBoundaryCondition *cbc, QVector< QPair< int, int > > &contactPairs) |
| Global search rule used to define contact surfaces. Should be implemented to allow global contact conditions, filling contactPairs with the indices in cbc of the in-contact surfaces. | |
| void | printElementData (const GmElement *e, int ndof, const int *dofMapping, const GmpFemPhysics *p, const GmBoundaryCondition *bc=NULL, const GmContactBoundaryCondition *cbc=NULL, int loadId1=-1, int id2=-1) |
| Print element dof mapping, local matrices and vectors depending on the current solver print options. | |
| void | printGlobalData () |
| Print global matrices and vectors after assembling. Notice that the linear system print options are handled directly by the solver. | |
Protected Member Functions inherited from QObject | |
| QObject * | sender () const const |
| int | senderSignalIndex () const const |
| int | receivers (const char *signal) const const |
| bool | isSignalConnected (const QMetaMethod &signal) const const |
| virtual void | timerEvent (QTimerEvent *event) |
| virtual void | childEvent (QChildEvent *event) |
| virtual void | customEvent (QEvent *event) |
| virtual void | connectNotify (const QMetaMethod &signal) |
| virtual void | disconnectNotify (const QMetaMethod &signal) |
Protected Attributes | |
| double | _dl |
| double | _ddl |
| double | _tin |
Protected Attributes inherited from GmpFemNonLinearSolver | |
| double | _dl |
| double | _dl0 |
| double | _ddl |
| double | _Lold |
| double | _tin |
| double | _dt |
| double | _oldIter |
| double | _hlast |
| unsigned | _attempt = 0 |
| unsigned | _ninc = 0 |
| counter of consecutive converged increments | |
| unsigned | _incT = 0 |
| counter of consecutive increments, i, and if no cut-back within those increments | |
| bool | _iter4old = false |
| corresponding to True If no more than IG iterations are required in two consecutive increments | |
| GmVector | _v |
| GmVector | _dx |
| GmVector | _dv |
| GmVector | _xold |
| GmVector | _vold |
| GmVector | _dxt |
| GmVector | _ddx |
| GmVector | _ddxt |
| GmVector | _ddxr |
| GmVector | _FeGs |
| GmVector | _r0 |
| GmVector | _qta |
| An overall time-averaged value of the typical flux for field α so far during this step including the current increment. | |
| GmVector | _qtamax |
| The time-averaged value of the largest flux corresponding to the field αduring this step, excluding the current increment. | |
| QVector< int > | _fixedDof |
| bool | _fastUpdate |
| bool | _hasUnanamedDofs |
| Set to true if there are dofs that belong to the 'unnamed' group. | |
| TrackItemState | _td |
| The "track data" object, controlling time & simulation progress tracking. | |
Protected Attributes inherited from GmpFemSolver | |
| int | _solverId |
| A unique index for this solver object used by the result attribute auto prefix feature. | |
| GmElementMesh * | _mesh |
| Mesh with the nodes and cells data. | |
| GmSimulationData * | _simulation |
| Simulation Data. | |
| QVector< GmpFemPhysics * > | _physicsList |
| List of physics that will cooperate to generate the system response. | |
| GmNumSolverPrinter * | _solver |
| Wrapper over the numeric solver that will be used to solve the set of linear equations. | |
| const GmLogCategory & | _logger |
| Logger for eventual messages. | |
| QMutex | _printMutex |
| Mutex for serializing calls to printElementData when traversing elements in parallel. | |
| bool | _enabledWarn [NumDisabledWarnings] |
| Vector storing which warnings are enabled. | |
| GmpFemSolverOptions | _solverOptions |
| The set of solver options. | |
| UnitConverter * | _timeConv |
| Unit converter from the currentTimeUnit to the physics unit. Used only by derived solvers. | |
| GmpFemAssembler * | _assembler |
| Assembler used for adding element contributions to vectors and matrices. | |
| const GmpFemAssemblerMatrixCombiner * | _matCombiner |
| The combiner object used with the assembler to merge data from multiple elemental matrices. | |
| const GmpFemAssemblerVectorCombiner * | _vecCombiner |
| The combiner object used with the assembler to merge data from multiple elemental vectors. | |
| GmpFemVectorSet | _vecSet |
| Set of global/element vectors filled by physics. | |
| GmpFemMatrixSet | _matSet |
| Set of global/element matrices filled by physics. | |
| GmVector | _x |
| State vector. | |
| GmVector | _r |
| Residual vector. | |
| unsigned | _preCount |
| Number of times that prepareMatrices() was called. | |
| unsigned | _runCount |
| Number of times that run() was called. | |
| QVariantMap | _controlMap |
| Variant map used for storing dump control data for the solver. | |
| bool | _parallelAssembler |
| Can we do the assembling steps in parallel? | |
| int | _ntasks |
| int | _nworkers |
| GmTaskManager::CellPartitionStrategy | _strategy |
| int | _iterAttr = -1 |
| The "fem:iter" LOCAL item attribute id. | |
| int | _iterErrAttr = -1 |
| The "fem:iterErr" LOCAL item attribute id. | |
| int | _femItem = -1 |
| The "fem" track item. | |
| int | _prepareItem = -1 |
| The "fem.prepare" track item. | |
| int | _physicsItem = -1 |
| The "fem.prepare.physics" track item. | |
| int | _fixedBcItem = -1 |
| The "fem.prepare.fixedBC" track item. | |
| int | _fixedForcesItem = -1 |
| The "fem.prepare.fixedForces" track item. | |
| int | _assemblerItem = -1 |
| The "fem.prepare.assembler" track item. | |
| int | _physicsBeforeLoopItem = -1 |
| The "fem.prepare.physics.beforeLoop" track item. | |
| int | _physicsfillElemDataItem = -1 |
| The "fem.prepare.physics.fillElemData" track item. | |
| int | _physicsfillElemDataBcItem = -1 |
| The "fem.prepare.physics.fillElemDataBC" track item. | |
| int | _physicsfillElemDataExtLoadsItem = -1 |
| The "fem.prepare.physics.fillElemDataExtLoads" track item. | |
| int | _physicsfillContactDataItem = -1 |
| The "fem.prepare.physics.fillContactData" track item. | |
| int | _physicsAfterLoopItem = -1 |
| The "fem.prepare.physics.afterLoop" track item. | |
| int | _assemblerBeginItem = -1 |
| The "fem.prepare.assembler.begin" track item. | |
| int | _assemblerAddItem = -1 |
| The "fem.prepare.assembler.add" track item. | |
| int | _assemblerEndItem = -1 |
| The "fem.prepare.assembler.end" track item. | |
| int | _assemblerT1Item = -1 |
| The "fem.prepare.assembler.traverseElements" track item. | |
| int | _assemblerT2Item = -1 |
| The "fem.prepare.assembler.traverseLoads" track item. | |
| int | _assemblerT3Item = -1 |
| The "fem.prepare.assembler.traverseBElements" track item. | |
| int | _assemblerT4Item = -1 |
| The "fem.prepare.assembler.traverseCBoundaries" track item. | |
Additional Inherited Members | |
Public Types inherited from QObject | |
| typedef | QObjectList |
Static Public Member Functions inherited from QObject | |
| QString | tr (const char *sourceText, const char *disambiguation, int n) |
| QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
| QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
| QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
| bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
| bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
| bool | disconnect (const QMetaObject::Connection &connection) |
| bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
Protected Types inherited from GmpFemSolver | |
| enum | DisabledWarnings { PrescribedForceForInvalidDof , PrescribedForceForFixedDof , FixedBcForInvalidDof , ConflictingFixedBcValue , NumDisabledWarnings } |
| Enums describing the set of warnings that can be disabled by simulation options. More... | |
Protected Slots inherited from GmpFemSolver | |
| virtual void | meshChanged () |
| Slot called when the underlying mesh has been changed. | |
Properties inherited from QObject | |
| objectName | |
Basic class for solving Non linear FEM problems.
|
protectedvirtual |
Adds to 'state' the data items that should be saved for this FEM process. Should probably be overridden by derived classes to add their own requirements.
Auxiliar variant map dump item that notifies us for loading and saving data to the map
< Our "father" solver object
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Apply Dirichlet (fixed) boundary conditions to the global equation system.
Apply boundary conditions, clearing rows and columns in the stiffness matrix and adjusting the global force vector as needed.
Follows the procedures described by Fellipa in sections 3.6.1 and 3.6.2 (pages 3-12 and 3-13). Our algorithm does the same thing as the one presented in figure 21.5 (page 21-7), but in a different way (hopefully more clear).
Returns in numFixed the number of degrees of freedom "removed" from the system.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
analysis
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Method called for filling the state dump control registered in addStateItemsToGroup()
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Virtual method to fill the map with the needed continuation method data.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Virtual method to load the scalar attributes needed by transient solver.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Evaluates the stiffness matrix using Broyden's method.
Evaluates stiffness matrix and internal forces using Broyden's method.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Helper function used to initialize the matrix / vector sets with the definition of the needed types and also the relationships of those sets with the assembler.
In a nutshell, this function is responsible for calling the initTypes() methods from matrix and vector sets. It is also its responsibility to call other configuration functions such as GmpFemMatrixSet::setTransposedDofVector(), GmpFemVectorSet::addTransposedDofVector() and GmpFemVectorSet::addSavedDofVector() as needed to drive the method that will be used by the assembler.
This is the function to be reimplemented when a different solver driver needs to ask elements for additional matrices / vectors.
Returns false on errors.
Reimplemented from GmpFemNonLinearSolver.
|
virtual |
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Adaptative time increment based on abaqus std.
Adaptative time increment Save internal force attibutes such as Reaction and Volume flux
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Method called when the state dump control registered in addStateItemsToGroup() has been loaded.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Virtual method to Load the scalar attributes needed by continuation method.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Virtual method to fill the map with the needed transient solver data.
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Returns the value of the "nonLinearSolver" parameter that will be passed to the calcDerivedResults() call from the standard implementation of stateLoaded()
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
The NLSolver.stepStaticNL() static solver implementation.
This function expects to receive as parameters: 1) The current step 2) A pointer for the new load factor -> returns new load factor
|
protectedvirtual |
Reimplemented from GmpFemNonLinearSolver.
|
protectedvirtual |
Updates the stiffness matrix.
Updates stiffness matrix for static nonlinear solver.
Reimplemented from GmpFemNonLinearSolver.