FemProcess
The GeMA Fem Process Plugin
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
GmpFemPhysicsCoupled Class Reference

A class deriving from GmpFemPhysicsCommon that contains references for other physics objects that are used by this one to fill its simulation matrices. More...

#include <gmpFemPhysicsCoupled.h>

Inheritance diagram for GmpFemPhysicsCoupled:
Inheritance graph
[legend]
Collaboration diagram for GmpFemPhysicsCoupled:
Collaboration graph
[legend]

Public Member Functions

 GmpFemPhysicsCoupled (GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 Constructor with same parameters as GmpFemPhysicsCommon. Should be followed by calls to addPhysics() to setup the auxiliary physics objects.
 
virtual ~GmpFemPhysicsCoupled ()
 Destructor.
 
GmpFemPhysicsCommonaddPhysics (QString objTypeName)
 Creates a new physics object with the specified type, registers its existance and returns a pointer to the created object. More...
 
GmpFemPhysicsCommonaddPhysics (GmpFemPhysicsCommon *phys)
 Registers the provided physics inside the coupled physics list. More...
 
- Public Member Functions inherited from GmpFemPhysicsCommon
 GmpFemPhysicsCommon (GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger)
 Constructor. More...
 
virtual ~GmpFemPhysicsCommon ()
 Virtual destructor.
 
void printParameters (const GmLogCategory &logger)
 Asks the object to print its parameters using the provided logger.
 
virtual const QVariantMap * physicsMetaDataMap ()=0
 A virtual function that MUST be implemented by every derived class to return the map defining the physics behaviour and required state vars, attributes, properties and boundary conditions. More...
 
const QVariantattribute (int id) const
 Returns the value of the given attribute.
 
GmValueAccessornodeAc () const
 Returns the accessor for retrieving node coordinates.
 
int nodeDim () const
 Returns the node dimension (number of node coordinates)
 
bool isoParametric () const
 Is this an iso-parametric or a super-parametric element setting?
 
int svCount () const
 Returns the number of state vars supported by this physics.
 
GmValueAccessorsvAc (int id) const
 Returns the accessor for the given state var.
 
int baseDof (int id) const
 Returns the base dof for the given state var.
 
GmCellAccessorpropertyAc (int id) const
 Returns the accessor for the given cell property.
 
bool constantProperty (int id) const
 Returns true if the given cell property is not a function (so its value is unique for an element and does not need to be evaluated for each Gauss point)
 
GmValueAccessornodeAttrAc (int id) const
 Returns the accessor for the given node attribute.
 
GmGaussAccessorgaussAttrAc (int id) const
 Returns the accessor for the given Gauss attribute.
 
const GmBoundaryConditionboundaryCondition (int id) const
 Returns the boundary condition object for the given bc type id.
 
const GmContactBoundaryConditioncontactCondition (int id) const
 Returns the contact boundary condition object for the given bc type id.
 
GmBoundaryConditionAccessorbcAc (int id) const
 Returns the accessor for the given boundary condition value.
 
GmContactBoundaryConditionAccessorcontactAc (int id) const
 Returns the accessor for the given contact boundary condition value.
 
bool constantBc (int id) const
 Returns true if the given boundary condition property is not a function (so its value does not change over time)
 
bool constantContactBc (int id) const
 Returns true if the given contact boundary condition property is not a function (so its value does not change over time)
 
const QVector< const GmBoundaryCondition * > & calcBoundaryConditions () const
 Returns a list of boundary conditions that affect the matrix/vector calculations.
 
GmValueAccessorloadAc (int loadId) const
 Returns the accessor for retrieving external load nodal values for the given load type.
 
GmDiscontinuityAccessordiscontinuityAc (int discId) const
 Returns the accessor for retrieving discontinuity set property / cell attributes for the given id.
 
GmSegmentCell2DIntersectionCoordAccessordiscontinuity2dIntersectionCoordAc () const
 Returns the appropriate accessor for retrieving intersection coordinates for a 2d cell-discontinuity intersection segment.
 
GmValueAccessorcloneSvAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const
 Returns a NEW accessor to the same data referenced by id, but using a different unit. The unitSystemName should be the name used to define the unit in the unit system. If that entry is missing from the unit system table, returns the accessor in the default unit. More...
 
GmCellAccessorclonePropertyAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const
 See description in cloneSvAcWithDifferentUnit()
 
GmValueAccessorcloneNodeAttrAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const
 See description in cloneSvAcWithDifferentUnit()
 
GmGaussAccessorcloneGaussAttrAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const
 See description in cloneSvAcWithDifferentUnit()
 
const GmpFemPhysicsCommonMaterialmaterial (const GmElement *e) const
 Returns the material object associated with the given element or NULL if not found (emmiting a warning)
 
const QVector< GmpFemPhysicsCommonMaterial * > & materialList () const
 Returns the internal material list. It can contain NULL values if the material is not used by this physics instance.
 
bool calcDerivedResult (int recoveryMode, GmValueAccessor *nodeAc, GmGaussAccessor *gaussAc, int resultId=-1)
 Auxilliary function to help recovering derived results either on Gauss points or on element nodes (or both). More...
 
void fillElementNodeValues (const GmValueAccessor *ac, const GmElement *e, GmVector &v, int nv=-1) const
 Given an element, fills the vector v with nodal values from the given accessor. More...
 
bool fillMissingNodeValues (GmValueAccessor *ac)
 For a super-parametric analysis, only "linear" nodes are been calculated for the given variable. Fills the remaining node values with a linear interpolated value. Receives an accessor instead of a state var id to enable its use for aditional node attributes.
 
bool fillScalarFixedNodalBcLists (int bcId, int propertyId, int dofId, QList< int > &nodes, QList< int > &dof, QList< double > &values, bool *constantValues) const
 Auxiliary function that can be used to fill boundary condition lists returned by fixedNodalForcesBc() and fixedNodalDofsBc() for a scalar value associated with a scalar state variable (dof). More...
 
bool fillVectorFixedNodalBcLists (int bcId, int propertyId, int dofId, bool ignoreZeroValues, bool ignoreDefValues, QList< int > &nodes, QList< int > &dof, QList< double > &values, bool *constantValues) const
 Auxiliary function that can be used to fill boundary condition lists returned by fixedNodalForcesBc() and fixedNodalDofsBc() for a vector value associated with a vector state variable with the same dimension. More...
 
bool fillMultiScalarFixedNodalBcLists (int bcId, const QList< int > &propertyIds, int dofId, bool ignoreZeroValues, bool ignoreDefValues, QList< int > &nodes, QList< int > &dof, QList< double > &values, bool *constantValues) const
 Auxiliary function that can be used to fill boundary condition lists returned by fixedNodalForcesBc() and fixedNodalDofsBc() for a set of scalar values associated with a vector state variable whose dimension is equal to the number of scalar values. More...
 
virtual void calcElementDerivedResultAtPoints (const GmElement *e, int resultId, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &result)
 Virtual function called by calcDerivedResult() to evaluate results for an element directly at the provided points, which typically are node coordinates or Gauss points. More...
 
virtual bool checkLoadedData ()
 Additional checking function, called after all attributes and accessors from physicsMetaDataMap() have already been loaded and validated. Should be implemented in derived classes for conducting additional checks that can't be expressed by the options on the tables in physicsMetaDataMap().
 
void addMaterialTranslation (const char *modelName, const char *physicsName, int modelIndex, bool defaultMaterial)
 Adds a new entry in the material translation map. More...
 
GmpFemPhysicsCommonMaterialmaterial (QString modelName) const
 Given a material model name, registered with a call to addMaterialTranslation, returns the associated physics material (or NULL for unregistered materials). More...
 
- Public Member Functions inherited from GmpFemPhysics
 GmpFemPhysics (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
 Constructor. More...
 
virtual ~GmpFemPhysics ()
 Virtual destructor.
 
GmElementMeshmesh () const
 Returns the element mesh that this physics object is tied to.
 
const GmCellGroupSetmeshGroupSet () const
 Returns the element group set used to traverse mesh elements belonging to the element groups that together define the physics spatial domain. More...
 
int numSupportedExternalLoads () const
 Returns the number of supported external load types by this physics. Based on the list returned by supportedExternalLoads()
 
const GmCellGroupSetexternalLoadGroupSet (int loadId) const
 Returns the element group set used to traverse mesh elements tied to the given external loads id. More...
 
const QMap< QString, const GmBoundaryCondition * > & boundaryConditions () const
 Returns a reference to the map storing contact boundary conditions associated to this physics, keyed by bc type.
 
const QMap< QString, const GmContactBoundaryCondition * > & contactBoundaryConditions () const
 
GmDiscontinuitySetdiscontinuitySet () const
 Returns the associated discontinuity set, NULL if there is none.
 
virtual bool checkPhysicsDependencies (const QList< GmpFemPhysics * > &physicsList, int index)
 A function called by the Fem solver, at its initialization, to let a physics check that it is compatible with the remaining physics used by the solver. More...
 
virtual bool dofByElement (bool *fixed=NULL, bool *addOnly=NULL, bool *trackChanges=NULL) const
 Returns false if degrees of freedom are mapped to nodes depending only on the element type, or true if elements of the same type can have different dof mappings. More...
 
virtual const GmElementDofdofMapping (const GmElement *e) const
 Returns the mapping of node degrees of freedom for the given element or NULL if this physics object does not know how to handle it. More...
 
virtual void afterElementStiffnessLoop ()
 Method called by the Fem process to notify the physical object that the assembly process has ended.
 
virtual FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)=0
 Method called by the FEM process, during the global matrix / vector assembly procedure to ask a physics object for the local contribution of the element 'e'. More...
 
virtual FemResultType fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Method called by the FEM process in a similar way as the call to fillElementData() for the physics to supply local element matrix and/or vector contributions due to the supplied boundary condition. More...
 
virtual bool fixedNodalForcesBc (QList< int > &nodes, QList< int > &dof, QList< double > &values) const
 Method called by the FEM process asking the physics to provide prescribed nodal force values that will be added to the global force vector f (the f vector in the global equation K.u = f). More...
 
virtual bool fixedNodalDofsBc (QList< int > &nodes, QList< int > &dof, QList< double > &values, bool *constantValues) const
 Method called by the FEM process asking the physics to provide fixed dof (state variable) values used to remove degrees of freedom from the system. Those fixed values correspond to fixed u values in the global equation K.u = f. More...
 
virtual FemResultType fillContactData (const GmContactBoundaryCondition *cbc, int bcIndex1, int bcIndex2, GmMatrixDof &dofMap, GmpFemMatrixSet &matrixSet, GmpFemVectorSet &vecSet)
 Method called by the FEM process in a similar way as the call to fillElementData() for the physics to supply local matrix and vector contributions due to the supplied contact pair. More...
 
virtual FemResultType fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors)
 Method called by the FEM process in a similar way as the call to fillElementData() for the physics to supply local element vector contributions due to the supplied external load. More...
 
virtual bool calcDerivedResults (bool nonLinearSolver)
 Method called after the the system solution asking each physics to calculate derived results based on the solution (which has already been saved to the appropriate state variables) More...
 
virtual bool supportsStateDumping ()
 Method called by the solver to check if this physics supports state dumping and restoring. For this to be true, the physics must be able to save all its needed internal state upon a dump and recover it later using the next virtual calls.
 
virtual bool addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId)
 Initialization method, called once, allowing the object to add its state items to the given group of the sate dump object. More...
 
virtual bool fillStateControlMapData (QVariantMap *map)
 Virtual method called just before the solver control map is saved to the state. Should be used to fill the map with the needed physics data. Returning false aborts the operation.
 
virtual bool stateControlMapDataLoaded (QVariantMap *map)
 Virtual method called just after the solver control map was loaded from the state. Should be used to load map data into the physics. Differently from stateLoaded(), which is called after the whole dump file was processed, this method is called just after the control map was read, and before any other solve dump items are read. Returning false aborts the operation.
 
virtual bool stateAboutToBeSaved (GmStateDump *state)
 Virtual method called just before starting a save operation on the given state. Returning false aborts the operation.
 
virtual bool stateSaved (GmStateDump *state)
 Virtual method called just after succesfully completing a save operation on the given state. Returning false aborts the operation.
 
virtual bool stateAboutToBeLoaded (GmStateDump *state)
 Virtual method called just before starting a load operation on the given state. Returning false aborts the operation.
 
virtual bool stateLoaded (GmStateDump *state)
 Virtual method called just after succesfully completing a load operation on the given state. Returning false aborts the operation.
 
virtual QList< int > changedElements () const
 Method called by the assembler to obtain the list of elements that had their dofs changed since the physics was created or the last call to clearChangedElements(). In the list, elements are represented by their ids. More...
 
virtual void clearChangedElements ()
 Method called by the assembler to clear the internal list used to track dof changes. See comments on changedElements().
 
const GmIntegrationRuleelementIntegrationRule (GmCellType type) const
 Returns the integration rule associated with the received element type.
 
const GmBorderIntegrationRuleborderIntegrationRule (GmCellType type, int borderIndex) const
 Returns the integration rule associated with a border (face / edge) of the received element type. More...
 
const GmBorderIntegrationRulefaceIntegrationRule (GmCellType type, int faceIndex) const
 Returns the face integration rule associated with the received element type.
 
const GmBorderIntegrationRuleedgeIntegrationRule (GmCellType type) const
 Returns the edge integration rule associated with the received element type.
 
int integrationRuleSet () const
 Returns the integration rule set in use by this physics object.
 
bool setIntegrationRuleSet (int ruleSet)
 Sets the integration rule set used by this physics. Returns true if the named ruleSet doesn't exists in the mesh.
 
virtual bool loadPrivateData (LuaTable &table)
 Reimplements loadPrivateData() to parse attributes common to all FEM physics objects, calling an extra set of virtual functions as needed. More...
 
- Public Member Functions inherited from GmPhysics
 GmPhysics (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
 
virtual const char * pluginCategory () const
 
GmCellAccessorpropertyAccessor (GmCellMesh *mesh, QString stdPropertyName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool canBeFunction=true, bool ignoreWarnings=false)
 
GmCellAccessorextPropertyAccessor (GmCellMesh *mesh, QString stdPropertyName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool canBeFunction=true, bool ignoreWarnings=false)
 
GmDiscontinuityAccessordiscontinuityPropertyAccessor (GmDiscontinuitySet *discSet, QString stdPropertyName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool ignoreWarnings=false)
 
GmDiscontinuityAccessorextDiscontinuityPropertyAccessor (GmDiscontinuitySet *discSet, QString stdPropertyName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool ignoreWarnings=false)
 
- Public Member Functions inherited from GmPluginObject
 GmPluginObject (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
 
QString id () const
 
QString description () const
 
QString pluginTypeName () const
 
virtual const char * pluginName () const=0
 
virtual const char * pluginType () const=0
 

Protected Member Functions

virtual bool checkAndLoadPrivateData (LuaTable &table)
 Reimplements standard checkAndLoadPrivateData() to also initialize auxiliar physics.
 
virtual bool checkAndLoadDofMapping (LuaTable &table)
 Reimplements standard checkAndLoadDofMapping() to also initialize auxiliar physics.
 
virtual bool checkAndLoadPropertyAccessors (LuaTable &table)
 Reimplements standard checkAndLoadPropertyAccessors() to also initialize auxiliar physics.
 
virtual bool checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &gaussTable)
 Reimplements standard checkAndLoadAttributeAccessors() to also initialize auxiliar physics.
 
virtual bool checkAndLoadBcAccessors ()
 Reimplements standard checkAndLoadBcAccessors() to also initialize auxiliar physics.
 
virtual bool checkAndLoadContactBcAccessors ()
 Reimplements standard checkAndLoadContactBcAccessors() to also initialize auxiliar physics.
 
virtual bool beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors)
 Reimplements standard beforeElementStiffnessLoop() to also initialize auxiliar physics.
 
- Protected Member Functions inherited from GmpFemPhysicsCommon
virtual bool supportsCellType (GmCellType type) const
 Returns true if the type is supported by this physics object. More...
 
virtual bool supportsParallel (FemSupportedParallelMethods methodType) const
 Returns true if this physics object supports multiple calls in parallel (by multiple threads) to the referenced method. Returns false otherwise.
 
virtual const GmElementDofdofMapping (GmCellType type) const
 Returns the list of node dofs for the given type based on the the "stateVars" entry of the physics description map. The order of state vars in the map defines the order that they should appear in local matrices. More...
 
virtual Unit dofUnit (int dof) const
 Returns the unit in which the dof is calculated by the physics based on the supplied unit on the "stateVars" entry of the physics description map.
 
virtual Unit timeUnit () const
 Returns the unit in which the physics handles time. Returns Unit() if not relevant to the physics.
 
virtual const QList< QPair< int, GmValueAccessor * > > & dofForceAttributes () const
 Returns a list that associates degrees of freedom handled by this physics with their associated force attributes. More...
 
virtual const QStringListsupportedBcTypes () const
 A list with names for the known boundary condition types supported by this physics. More...
 
virtual const QStringListsupportedContactBcTypes () const
 A list with names for the known contact boundary condition types supported by this physics. More...
 
virtual bool bcAffectsCalc (const GmBoundaryCondition *bc) const
 Returns true if the given boundary condition affects the element matrix/vector calculations as specified in the "bc" entries of the physics description map.
 
virtual const QStringListsupportedExternalLoads () const
 A list with names for the known external load conditions supported by this physics. More...
 
virtual bool checkMeshDimension (int ndim)
 Checks that the mesh dimension agrees with the value given in the "dimension" entry of the physics description map.
 
virtual bool checkAndLoadExternalLoadAccessors (LuaTable &loadsTable)
 Check and load external load node accessors for the values described in the "externalLoads" entry of the physics description map.
 
virtual bool checkAndLoadDiscontinuitySetAccessors (LuaTable &table)
 Check discontinuity set existance against the dsMode and dsElements attributes. Also loads discontinuity accessors for discontinuity set properties. More...
 
template<class T >
QString accessorNameList (const QVector< T * > list) const
 Helper function to return a string with the names and units of the accessors in the given vector.
 
bool checkAndLoadPropertyAccessorsAux (LuaTable &table, const QList< Value > &defList, QVector< GmCellAccessor * > &accessors, QVector< bool > &constants)
 An auxilliary function that does the job for checkAndLoadPropertyAccessors() storing the accessors at the provided vectors.
 
template<class T , class Ac >
bool checkAndLoadBcAccessorsAux (QString attrName, QString msgPrefix, QMap< QString, const T * > &bcMap, QVector< const T * > &boundaryConditions, QVector< Ac * > &bcAccessors, QVector< bool > &constantBcValues, QStringList &boundaryConditionTypes, QVector< const T * > *calcBoundaryConditions, Ac *(GmPhysics::*acGetFn)(const T *, QString, QString, Unit, bool, int, int, int, bool, bool))
 Aux function implementing the body of both checkAndLoadBcAccessors() and checkAndLoadContactBcAccessors()
 
bool checkAndLoadNodeAttributeAccessors (LuaTable &table, const QList< Value > &naList, QVector< GmValueAccessor * > &accessors, GmpFemPhysicsCommonMaterial *m=NULL)
 An auxilliary function that does the job of loading node attribute accessors for checkAndLoadAttributeAccessors(), storing the accessors at the provided vector. It will also accept state vars instead of node attributes!
 
bool checkAndLoadGaussAttributeAccessors (LuaTable &table, const QList< Value > &gaList, QVector< GmGaussAccessor * > &accessors, GmpFemPhysicsCommonMaterial *m=NULL)
 An auxilliary function that does the job of loading Gauss attribute accessors for checkAndLoadAttributeAccessors(), storing the accessors at the provided vector.
 
bool checkAndLoadSavedGaussAttributes (const QList< int > &attrIdList, QString prefix, int numGaussAttributes, QVector< int > &savedIdList)
 Check and load saved gauss attribute ids for the values described in the "savedGaussAttributes" entry of the physics/material description map.
 
bool createMaterials (LuaTable &table)
 If this physics uses material objects, loads the set of requested materials from the table pointed to by the "materialTable" attribute. Checks that the requested materials exist and creates them. More...
 
bool loadAttributes (LuaTable &table)
 Loads physics attribute values from the given Lua table.
 
void loadUnitSystemData (LuaTable &table)
 Loads the user unit system definition from subtable "unitSystem" if "userUnitSystem" is set to true.
 
QString getUnit (QString id, QString defUnit) const
 If there is no user unit system, returns defUnit. If there is a user unit system, looks for the id in the unit system. If found, returns that unit (emits a warning if the found unit is incompatible with defUnit). If not found, emits a warning and returns an empty unit.
 
bool loadAdditionalPrivateData (LuaTable &table, GmpFemPhysicsData &elemData)
 This function is called by checkAndLoadPrivateData() to load additional data required by composite and embedded fracture formulations. More...
 
bool loadNodeData (LuaTable &table, GmpFemPhysicsData &elemData)
 This function is called by loadAdditionalPrivateData() to load additional nodes. If errors are found that prevent the use of the physics object, this function should return false. More...
 
bool loadElementData (LuaTable &table, GmpFemPhysicsData &elemData)
 This function is called by loadAdditionalPrivateData() to load embedded element Data. If errors are found that prevent the use of the physics object, this function should return false. More...
 
bool loadNeuralNetworkData (LuaTable &table, const char *name, GmpFemNeuralNetwork *netData)
 This function is called by checkAndLoadPrivateData() to load neural network data required by em physics and materials. More...
 
- Protected Member Functions inherited from GmpFemPhysics
GmGaussAccessorgaussAttributeAccessor (GmElementMesh *mesh, QString stdAttributeName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, int history=-1, bool canBeFunction=true, bool create=false, QString createFormat="", int createHistory=-1, bool ignoreWarnings=false)
 Similar to GmPhysics::propertyAccessor() returning a Gauss point attribute. The history parameter defines a restriction on the attribute history value (a -1 means that any history type is allowed). If the last parameter (create) is true, the attribute is required and if not found in the mesh, it will be created by the function (and its numeric format will be set to the value given by createFormat if not empty, using createHistory states) More...
 
virtual GmGaussAccessorcreateGaussAttributeAccessor (GmElementMesh *mesh, QString id, int snum, bool locked, Unit desiredUnit, const GmLogCategory &logger) const
 A virtual function called by gaussAttributeAccessor() to get the returned Gauss accessor. Exists to allow derived classes to work with a different accessor class derived from GmGaussAccessor. This is particulary important for the XFem plugin.
 
- Protected Member Functions inherited from GmPhysics
GmCellAccessorelementAttributeAccessor (GmCellMesh *mesh, QString stdAttributeName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, int history=-1, bool canBeFunction=true, bool create=false, QString createFormat="", int createHistory=-1, bool ignoreWarnings=false)
 
GmValueAccessornodeAttributeAccessor (GmCellMesh *mesh, QString stdAttributeName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, int history=-1, bool canBeFunction=true, bool create=false, QString createFormat="", int createHistory=-1, bool ignoreWarnings=false)
 
GmValueAccessornodeDataAccessor (GmCellMesh *mesh, QString stdAttributeName, QString msgDescription, LuaTable &table, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, int history=-1, bool canBeFunction=true, bool ignoreWarnings=false)
 
GmBoundaryConditionAccessorboundaryAccessor (const GmBoundaryCondition *bc, QString stdPropertyName, QString msgDescription, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool canBeFunction=true, bool ignoreWarnings=false)
 
GmContactBoundaryConditionAccessorcontactAccessor (const GmContactBoundaryCondition *bc, QString stdPropertyName, QString msgDescription, Unit desiredUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool canBeFunction=true, bool ignoreWarnings=false)
 
QString dofFromStateVar (const GmCellMesh *mesh, QString stdStateVarName, QString msgDescription, LuaTable &table, QList< int > &dofList, Unit resultUnit, bool required, int type=-1, int nlin=-1, int ncol=-1, bool ignoreWarnings=false)
 
- Protected Member Functions inherited from GmPluginObject
virtual const GmLogCategorylogger () const
 
GmSimulationDatasimulationData () const
 

Private Attributes

QVector< GmpFemPhysicsCommon * > _physList
 The set of auxiliar physics used by this one.
 

Additional Inherited Members

- Public Types inherited from GmpFemPhysicsCommon
enum  DiscSetRequiredMode { DS_IGNORED, DS_REQUIRED, DS_OPTIONAL }
 A QList<Bc> that can be implicitely converted to a QVariant. More...
 
enum  DerivedResultsRecoveryMode {
  RECOVER_AT_GAUSS = 0x01, RECOVER_AT_NODES = 0x02, DIRECT_NODE_EVAL = 0x04, ADD_RESULTS = 0x08,
  IP_ONLY = 0x10, GAUSS_FILLED = 0x20
}
 Enumeration used to specify the behavior of a call to calcDerivedResults() More...
 
typedef TList< int > IntList
 
typedef TList< AttributeAttributeList
 A QList<int> that can be implicitely converted to a QVariant.
 
typedef TList< ValueValueList
 A QList<Attribute> that can be implicitely converted to a QVariant.
 
typedef TList< BcBcList
 
- Public Types inherited from GmpFemPhysics
enum  FemResultType { FEM_RESULT_OK, FEM_ERROR_FI, FEM_ERROR }
 Result type for local matrix calculation methods. More...
 
enum  FemSupportedParallelMethods { FEM_PARALLEL_FILL_ELEMENT_DATA = 0x01 }
 Enum used to specify which physics plugin methods can be called in parallel. Values can be ored together. More...
 
- Static Public Member Functions inherited from GmpFemPhysicsCommon
template<class T >
static T listFromVariant (const QVariant &v)
 Auxiliary function returning a T list from a QVariant that contains either T or a T::listType.
 
static void fillMatrixFromPropertyAc (GmCellAccessor *ac, const GmElement *e, const GmVector *coord, int ip, GmMatrix &K)
 Given a property accessor that can hold either a scalar, a vector with size 'd' or a matrix with size 'd x d', where d is the problem dimension, fills the K matrix (also d x d). More...
 
- Protected Attributes inherited from GmpFemPhysicsCommon
GmElementDof_dofMap [GM_NUM_CELL_TYPES]
 The list with maps of dof per element type.
 
- Protected Attributes inherited from GmpFemPhysics
GmElementMesh_mesh
 The mesh that this physics is bound to.
 
const GmCellGroupSet_gs
 The element group set used to traverse the mesh elements that form the physics spatial domain.
 
int _intRuleSet
 The integration rule set used by this physics.
 
GmDiscontinuitySet_discSet
 The discontinuity set, NULL if none was associated.
 
QMap< QString, const GmBoundaryCondition * > _bcMap
 A map storing boundary conditions associated to this physics, keyed by bc type.
 
QMap< QString, const GmContactBoundaryCondition * > _cbcMap
 A map storing contact boundary conditions associated to this physics, keyed by bc type.
 
QVector< const GmCellGroupSet * > _externalLoadGroupSets
 Element group sets for each active external loads or NULL for inactive ones. Indexed in the same order as the names returned by supportedExternalLoads(). Contains NULL if an external load is not configured for this physics.
 

Detailed Description

A class deriving from GmpFemPhysicsCommon that contains references for other physics objects that are used by this one to fill its simulation matrices.

This class takes on the job of correctly initializing this worker physics when this physics is initialzed.

Member Function Documentation

◆ addPhysics() [1/2]

GmpFemPhysicsCommon * GmpFemPhysicsCoupled::addPhysics ( QString  objTypeName)

Creates a new physics object with the specified type, registers its existance and returns a pointer to the created object.

The object takes ownership of the created physics. The objTypeName string describes the physics objects that will be created in the usual 'pluginName.objType' format.

Returns NULL if there was an error instancing the desired physics object.

◆ addPhysics() [2/2]

GmpFemPhysicsCommon * GmpFemPhysicsCoupled::addPhysics ( GmpFemPhysicsCommon phys)

Registers the provided physics inside the coupled physics list.

The object takes ownership of the given physics. As a convenience, returns the received physics.


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