![]() |
FemProcess
The GeMA Fem Process Plugin
|
Basic class for the FEM Process plugin object. More...
#include <gmpFemProcess.h>
Public Member Functions | |
GmpFemProcess (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
Constructor. Will be called by the plugin loading code. | |
virtual | ~GmpFemProcess () |
Destructor. | |
virtual const char * | pluginName () const |
virtual const char * | pluginType () const |
virtual void | loadFunctions (LuaTable &table) |
virtual QStringList | functionList () const |
![]() | |
GmProcess (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
virtual const char * | pluginCategory () const |
virtual bool | loadPrivateData (LuaTable &table) |
virtual void | printParameters (const GmLogCategory &logger) |
![]() | |
GmPluginObject (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
QString | id () const |
QString | description () const |
QString | pluginTypeName () const |
Static Public Member Functions | |
static int | parseSolverParameters (lua_State *L, GmSimulationData *simData, QString fname, GmElementMesh *&emesh, QList< GmpFemPhysics * > &physics, GmNumSolver *&solver, GmpFemSolverOptions *solverOptions) |
Parses the set of user parameters, detailed in the solve() method documentation, filling the supplied parameters. On errors, this function calls luaL_error and does not return. On success it returns 0. | |
Private Member Functions | |
GmProcessMethodRedirector< GmpFemProcess >::MethodRegistry * | processMethodTable () const |
Returns the table storing the process exported function names / methods. | |
int | solve (lua_State *L) |
The fem.solve() process implementation. More... | |
int | initLinearSolver (lua_State *L) |
Creates and initializes a linear fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call. On success, returns a opaque solver object. More... | |
int | linearStep (lua_State *L) |
Runs a new step of the linear solver created by the call to initLinearSolver(). See comments o that function for the intended use case. More... | |
int | linearResidual (lua_State *L) |
Calculates the error residual associated with the last linear step calculated by a call to linearStep(). See comments on initLinearSolver() for the intended use case. More... | |
int | NLSolveRun (lua_State *L) |
int | NLSolveInit (lua_State *L) |
int | NLSolveStep (lua_State *L) |
int | NLgeostatic (lua_State *L) |
Runs a Geostatic step to initialize the in-situ conditions. More... | |
int | solverInit (lua_State *L) |
Creates and initializes a nonlinear static fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call plus a parameter defining if the problem is nonlinear or not. On success, returns a opaque solver object. More... | |
int | solverStep (lua_State *L) |
Runs a new step of the nonLinearSolver created by the call to init(). See comments on that function for the intended use case. More... | |
int | geostatic (lua_State *L) |
Runs a Geostatic step to initialize the in-situ conditions. | |
int | initTransientSolver (lua_State *L) |
Creates and initializes a transient fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call plus a parameter defining if the problem is nonlinear or not. On success, returns a opaque solver object. More... | |
int | transientStep (lua_State *L) |
Runs a new step of the transient solver created by the call to initTransientSolver(). See comments on that function for the intended use case. More... | |
int | transientLinearStep (lua_State *L) |
Runs a new step of the transient solver created by the call to initTransientSolver(). See comments on that function for the intended use case. More... | |
int | transientLinearResidual (lua_State *L) |
Calculates the error residual associated with the last linear step calculated by a call to transientLinearStep(). See comments on initTransientSolver() for the intended use case. More... | |
int | release (lua_State *L) |
Releases the fem object created by any of the init functions. | |
int | update (lua_State *L) |
Updates the fem assembler. Expects as parameters the fem object plus either a string with a single update flag or a table with multiple update flags. If the second parameter is empty, a full update will be done. Accepted flags are: 'nodesAdded', 'dofsAdded', 'dofsRemoved', 'elementsAdded', 'elementsRemoved', 'fixedBcsUpdate', 'fixedBcsChanged', 'fixedBcsAll', 'fixedBcsKeepold'. | |
Additional Inherited Members | |
![]() | |
void | registerFunctions (LuaTable &table, typename GmProcessMethodRedirector< T >::MethodRegistry *methods, bool enableLogging=true) |
QStringList | buildFunctionList (typename GmProcessMethodRedirector< T >::MethodRegistry *methods) const |
![]() | |
virtual const GmLogCategory & | logger () const |
GmSimulationData * | simulationData () const |
Basic class for the FEM Process plugin object.
|
private |
Creates and initializes a linear fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call. On success, returns a opaque solver object.
Intended use:
|
private |
Creates and initializes a transient fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call plus a parameter defining if the problem is nonlinear or not. On success, returns a opaque solver object.
Intended use:
|
private |
Calculates the error residual associated with the last linear step calculated by a call to linearStep(). See comments on initLinearSolver() for the intended use case.
Expects to receive as first parameter the solver created by initLinearSolver().
This function returns the L2 norm of the residual vector. If a second parameter is present and true, it also returns the maximum and the average values among each of the values in the residual vector. The default is false since this option only makes sense if all degrees of freedom in the result space are comparable.
|
private |
Runs a new step of the linear solver created by the call to initLinearSolver(). See comments o that function for the intended use case.
Expects to receive as parameter the solver created by initLinearSolver().
|
private |
Runs a Geostatic step to initialize the in-situ conditions.
|
private |
The fem.solve() process implementation.
This function expects to receive as parameters in the Lua stack:
1) A string with the physical method id or a table with multiple method ids. All methods must share the same mesh 2) A string with the solver id that will be used to solve the linear system 3) An optional table with several different solver options regarding printing intermediate matrices and the mode used to handle dofs
|
private |
Creates and initializes a nonlinear static fem solver, intended to be used on a loop as described bellow. Receives the same set of parameters of the solve() call plus a parameter defining if the problem is nonlinear or not. On success, returns a opaque solver object.
Intended use:
|
private |
Runs a new step of the nonLinearSolver created by the call to init(). See comments on that function for the intended use case.
Expects to receive as parameter the solver created by init() + the time step For solvers created with nonlinear = false only.
|
private |
Calculates the error residual associated with the last linear step calculated by a call to transientLinearStep(). See comments on initTransientSolver() for the intended use case.
Expects to receive as first parameter the solver created by initTransientSolver().
This function returns the L2 norm of the residual vector. If a second parameter is present and true, it also returns the maximum and the average values among each of the values in the residual vector. The default is false since this option only makes sense if all degrees of freedom in the result space are comparable.
|
private |
Runs a new step of the transient solver created by the call to initTransientSolver(). See comments on that function for the intended use case.
Expects to receive as parameter the solver created by initTransientSolver() + the time step + the current nonlinear iteartion number. For solvers created with nonlinear = true only.
|
private |
Runs a new step of the transient solver created by the call to initTransientSolver(). See comments on that function for the intended use case.
Expects to receive as parameter the solver created by initTransientSolver() + the time step For solvers created with nonlinear = false only.