FemProcess
The GeMA Fem Process Plugin
Public Types | Public Member Functions | Public Attributes | Private Member Functions | List of all members
GmpFemSolverOptions Class Reference
Collaboration diagram for GmpFemSolverOptions:
Collaboration graph
[legend]

Public Types

enum  AssemblerMode { automatic, noDofHandling, removeDof }
 Assembler mode.
 
enum  SolverType {
  staticLinear, staticSolver, transientLinear, transientSolver,
  transientNonlinearDc, transientAutomaticTimeStep, staticAutomaticStep, hydraulicFract,
  transientIterative, dynamicLinear, dynamicSolver, state
}
 Solver type.
 
enum  ConvergenceCriterion { load, displacement, velocity, flux }
 Convergence criterion options.
 
enum  IncrementStrategy {
  loadControlIncrement, displacementControlIncrement, cylindricalArcLengthIncrement, sphericalArcLengthIncrement,
  dissipatedEnergyIncrement, combinedArcDissipatedEnergyIncrement, strainControlIncrement, elementControlIncrement,
  externalWorkIncrement, prescribedDisplacementIncrement
}
 Increment strategy options - NL static solver.
 
enum  IterationStrategy {
  loadControl, displacementControl, linearArcLength, cylindricalArcLength,
  sphericalArcLength, dissipatedEnergy, combinedArcDissipatedEnergy, elementControl,
  strainControl, minimalNorm, orthogonalResidue, prescribedDisplacement
}
 Iteration strategy options - NL static solver.
 
enum  NewtonRaphsonMode { full, modified, broyden, bfgs }
 Newton Raphson optios.
 
enum  GeostaticType { none, fixedNode, selfWeight }
 Geostatic type options.
 
enum  CouplingStrategy { fully, iterative }
 Coupling strategy options.
 
enum  LinearTransientMethods { Implicit, RK2, RK4, RK6 }
 
enum  ReductionMethod { NoReduction, GuyanReduction }
 
enum  TimeIncrementMethod { userDefined, rate_based, maxIncrementTransientVar }
 
enum  ElementSaveOptions {
  saveIteration = 0x0001, savePhysicsId = 0x0002, savePhysicsHeader = 0x0004, saveDofMap = 0x0008,
  saveDofValues = 0x0010, saveFeVector = 0x0020, saveFiVector = 0x0040, saveKMatrix = 0x0080,
  saveCMatrix = 0x0100, saveMMatrix = 0x0200
}
 
enum  AccurateMethod { firstOrder, secondOrder }
 

Public Member Functions

 GmpFemSolverOptions ()
 Constructor.
 
void loadFromTable (LuaTable &optionsTable, GmSimulationData *simData)
 Load options from the given Lua table. On errors raises an error through luaL_error(), without returning.
 

Public Attributes

unsigned _printOptions
 Print options flags defining what information should be logged by the solver.
 
int _printFieldWidth
 Format parameter used together with _printOptions: The matrix column minimum width.
 
char _printFormat
 Format parameter used together with _printOptions: The format type f' or 'g'.
 
int _printPrecision
 Format parameter used together with _printOptions: The number of decimal places.
 
int _mtnWorkers
 The number of worker threads. See GmTaskManager::runParallelCellLoop()
 
int _mtnTasks
 The number of tasks. See GmTaskManager::runParallelCellLoop()
 
GmTaskManager::CellPartitionStrategy _mtStrategy
 The cell partitioning strategy. See GmTaskManager::runParallelCellLoop()
 
AssemblerMode _assemblerDofMode
 Dof handling mode for the assembler.
 
QString _resultAttributePrefix
 The prefix used for result attributes reistered by the solver.
 
SolverType _type
 Solver option defining the analysis type.
 
IncrementStrategy _incrementStrategy
 
IterationStrategy _iterationStrategy
 
NewtonRaphsonMode _newtonRaphsonMode
 
GeostaticType _geostaticType
 
CouplingStrategy _couplingStrategy
 
ReductionMethod _reductionMethod
 
LinearTransientMethods _linearTransientMethod
 
TimeIncrementMethod _timeIncrementMethod
 
AccurateMethod _Order
 
unsigned _stepsMax
 Solver option defining the maximum step number.
 
unsigned _attemptsMax
 Solver option defining the maximum number of attempts.
 
unsigned _iterationsMax
 Solver option defining the maximum number of iterations.
 
unsigned _iterationsDesired
 Solver option defining the desired number of iterations.
 
unsigned _convergenceCriterion
 
QVector< double > _tolerance
 Solver option defining the tolerance.
 
QVector< int > _dispControlData
 Solver option defining the node, degree of fredom.
 
double _loadOld
 Solver option defining the old load factor.
 
double _loadNew
 Solver option defining the new load factor.
 
double _loadMax
 Solver option defining the maximum load factor.
 
double _loadIncrement
 Solver option defining the load increment.
 
double _loadMinIncrement
 Solver option defining the minimum load increment.
 
double _loadMaxIncrement
 Solver option defining the maximum load increment.
 
bool _loadAdjustStep
 Solver option defining the adaptative load increment.
 
double _minDissipatedEnergy
 Solver option defining the minimum dissipated energy.
 
double _initialEnergyIncrement
 Solver option defining the initial energy increment.
 
bool _normalFlow
 Solver option defining the normal flow technique.
 
bool _crackTracking
 Solver option defining the crack tracking algorithm.
 
double _timeOld
 
double _timeNew
 
double _timeMax
 Solver option defining the total time of analisys.
 
double _timeIncrement
 Solver option defining the initial time increment.
 
double _timeMinIncrement
 Solver option defining the minimum time increment.
 
double _timeMaxIncrement
 Solver option defining the maximum time increment.
 
double _integrationScheme
 Solver option defining the time integration scheme.
 
bool _timeAdjustStep
 
double _iterationTolerance
 Solver option defining the iteration tolerance.
 
double _integrationTolerance
 Solver option defining the time integration tolerance.
 
double _transientVariableChange
 Solver option defining the máx allowable transient variable change per increment.
 
bool _skipLocalError
 Solver option defining the local integration error control (yes/no)
 
bool _resetDisplacement
 Solver option defining the reset displacement (yes/no)
 
unsigned _iterationsL
 Solver option defining number of iterations after which the size of the subsequent increment will be reduced.
 
unsigned _iterationsG
 Solver option defining number of maximum number of iterations allowed in two consecutive increments for the size of the next increment to be increased.
 
bool _timeControl
 Solver option defining the time increment control (yes/no)
 
unsigned _incrementsT
 Solver option defining consecutive increments if no cut-back has occurred to allow a time increment increase.
 
double _DeltaG
 Solver option defining time increment factor for proposed new time.
 
double _DeltaM
 Solver option defining time increment factor for current time.
 
double _DeltaB
 Solver option defining Cutback factor for the next increment if more than IL iterations were needed in the current increment.
 
double _DeltaF
 Solver option defining Cutback factor if the solution seems to diverge.
 
bool _saveElementData
 Should we save element data to an aux file?
 
QString _saveElementDataFileMask
 The mask with the save element data file name. If it contains a XXXXXX substring, it will be replaced by an iteration number.
 
unsigned _saveElementOptions
 An or of ElementSaveOptions values defining which data should be saved for each element.
 

Private Member Functions

const char ** asssemblerModeOptions ()
 Returns a NULL terminated vector with the available options for the mode used by the assembler.
 
const char ** solverTypeOptions ()
 Returns a NULL terminated vector with the available options for the solver type.
 
const char ** newtonRaphsonModeOptions ()
 Returns a NULL terminated vector with the available options for the Newton Raphson mode.
 
const char ** incrementStrategyOptions ()
 Returns a NULL terminated vector with the available options for the increment strategy.
 
const char ** iterationStrategyOptions ()
 Returns a NULL terminated vector with the available options for the iteration strategy.
 
const char ** integrationSchemeOptions ()
 Returns a NULL terminated vector with the available options for the time integration scheme.
 
const char ** geostaticTypeOptions ()
 Returns a NULL terminated vector with the available options for the geostatic type.
 
const char ** couplingStrategyOptions ()
 Returns a NULL terminated vector with the available options for the coupling strategy.
 
const char ** convergenceCriterionOptions ()
 Returns a NULL terminated vector with the available options for the convergence criteria.
 
const char ** transientLinearOptions ()
 Returns a NULL terminated vector with the available options for the coupling strategy.
 
const char ** reductionMethodOptions ()
 Returns a NULL terminated vector with the available options for the coupling strategy.
 
const char ** timeIncrementAdaptativeOptions ()
 Returns a NULL terminated vector with the available options for the convergence criteria.
 
const char ** AccurateMethodOptions ()
 Returns a NULL terminated vector with the available options for the Accurate Method.
 
void setAsssemblerMode (int index)
 
void setSolverType (int index)
 
void setNewtonRaphsonMode (int index)
 
void setIncrementStrategy (int index)
 
void setIterationStrategy (int index)
 
void setIntegrationScheme (int index)
 Updates the integration shcema from an index compatible with integrationSchemeOptions()
 
void setGeostaticType (int index)
 
void setCouplingStrategy (int index)
 
void setLinearTransient (int index)
 
void setReductionMethod (int index)
 
void setTimeIncrementStrategy (int index)
 
void setAccurateMethod (int index)
 

Member Enumeration Documentation

◆ ElementSaveOptions

Enumerator
saveIteration 

Should we save the iteration id before the physics blocks??

savePhysicsId 

Should we save the physics id before each physics header?

savePhysicsHeader 

Should we add column headers before saving the physics data?

saveDofMap 

Should we save the dof map column?

saveDofValues 

Should we save dof values?

saveFeVector 

Should we save the Fe vector values, IF IT WAS CALCULATED by the physics?

saveFiVector 

Should we save the Fi vector values, IF IT WAS CALCULATED by the physics?

saveKMatrix 

Should we save the K matrix values, IF IT WAS CALCULATED by the physics?

saveCMatrix 

Should we save the C matrix values, IF IT WAS CALCULATED by the physics?

saveMMatrix 

Should we save the M matrix values, IF IT WAS CALCULATED by the physics?


The documentation for this class was generated from the following files: