![]() |
ThermoFemPhysics
The GeMA Thermo FEM Physics Plugin
|
Basic class for the standard heat physics plugin object. More...
#include <gmpThermoFemPhysics.h>


Public Types | |
| enum | PhysicsAttributeIds { ISOPARAMETRIC_ID , HAS_ELEMENT_GENERATION_ID , HF_MODE_ID , HF_DIRECT_ID } |
| IDs for physics attributes. More... | |
| enum | StateVarIds { T_ID } |
| IDs fo physics state vars. More... | |
| enum | NodeAttributeIds { Q_NA_ID } |
| IDs for physics node attributes. More... | |
| enum | GaussAttributeIds { Q_GA_ID } |
| IDs for physics Gauss attributes. More... | |
| enum | ElementPropertyIds { K_ID , THICKNESS_ID , G_ID , RHO_ID , CP_ID , NUM_PROPER_IDS } |
| IDs for physics element properties. More... | |
| enum | BoundaryConditionIds { FIXED_T_BC_ID , FIXED_HF_BC_ID , CONVECTIVE_BC_ID , POINT_GENERATION_BC_ID } |
| IDs for accepted boundary condition types. More... | |
| enum | BoundaryConditionValueIds { BC_T_ID , BC_Q_ID , BC_QDIR_ID , BC_H_ID , BC_TA_ID , BC_G_ID , BC_POS_ID } |
| IDs for property values from accepted boundary condition types. More... | |
Public Types inherited from GmpFemPhysicsCommon | |
| enum | DiscSetRequiredMode |
| enum | DerivedResultsRecoveryMode |
| typedef TList< Attribute > | AttributeList |
| typedef TList< Value > | ValueList |
Public Types inherited from GmpFemPhysics | |
| enum | FemResultType |
| enum | FemSupportedParallelMethods |
Public Member Functions | |
| GmpThermoFemPhysics (const char *pluginType, GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
| Constructor. Will be called by the plugin loading code. | |
| virtual | ~GmpThermoFemPhysics () |
| Destructor. | |
| virtual const char * | pluginName () const |
| virtual const char * | pluginType () const |
| virtual const QVariantMap * | physicsMetaDataMap () |
| Returns a pointer to the single Thermo Physics attribute map, built when the function is called for the first time. | |
| virtual bool | beforeElementStiffnessLoop (const GmpFemMatrixSet &elemMatrices, const GmpFemVectorSet &elemVectors) |
| virtual FemResultType | fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element stiffness matrix elemK for element 'e' taking into account only the conductivityy contribution. Other boundary condition contributions will be delayed until calls to fillElementDataForBc(). If internal heat generation is enabled, also calculates and fills elemF with the internal heat generation contribution to the load vector. | |
| virtual FemResultType | fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element stiffness matrix elemK and/or the force vector elemF for element 'e', taking into account convective heat transfer, fixed heat flux and/or point generation boundary conditions, as indicated by the bc parameter. | |
| virtual bool | fixedNodalDofsBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| See comments on base class. Fills vectors with prescribed node temperatures. | |
| virtual bool | calcDerivedResults (bool nonLinearSolver) |
| Calc heat flux on nodes and/or Gauss points. | |
| virtual bool | supportsStateDumping () |
| Tell the world that the temperature physics supports state dumping. | |
| void | fillConductivityMatrix (GmMatrix &K, const GmElement *e, const GmVector *ip, int ipIndex) |
| Fills the conductivity matrix _kMat evaluating accessor at the integration point ip of element e (ncoord can be NULL if accessors do not accept user functions), taking in consideration that the accessor might return scalars or vectors. | |
Public Member Functions inherited from GmpFemPhysicsCommon | |
| GmpFemPhysicsCommon (GmSimulationData *simulation, QString id, QString description, const GmpFemPhysicsCommonMaterialFactory *matFactory, const GmLogCategory &logger) | |
| void | printParameters (const GmLogCategory &logger) |
| const QVariant & | attribute (int id) const |
| GmValueAccessor * | nodeAc () const |
| int | nodeDim () const |
| bool | isoParametric () const |
| int | svCount () const |
| GmValueAccessor * | svAc (int id) const |
| int | baseDof (int id) const |
| GmCellAccessor * | propertyAc (int id) const |
| bool | constantProperty (int id) const |
| GmValueAccessor * | nodeAttrAc (int id) const |
| GmCellAccessor * | cellAttrAc (int id) const |
| GmGaussAccessor * | gaussAttrAc (int id) const |
| const GmBoundaryCondition * | boundaryCondition (int id) const |
| const GmContactBoundaryCondition * | contactCondition (int id) const |
| GmBoundaryConditionAccessor * | bcAc (int id) const |
| GmContactBoundaryConditionAccessor * | contactAc (int id) const |
| bool | constantBc (int id) const |
| bool | constantContactBc (int id) const |
| const QVector< const GmBoundaryCondition * > & | calcBoundaryConditions () const |
| GmValueAccessor * | loadAc (int loadId) const |
| GmDiscontinuityAccessor * | discontinuityAc (int discId) const |
| GmSegmentCell2DIntersectionCoordAccessor * | discontinuity2dIntersectionCoordAc () const |
| GmValueAccessor * | cloneSvAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const |
| GmCellAccessor * | clonePropertyAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const |
| GmValueAccessor * | cloneNodeAttrAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const |
| GmCellAccessor * | cloneCellAttrAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const |
| GmGaussAccessor * | cloneGaussAttrAcWithDifferentUnit (int id, QString unitSystemName, QString defUnit) const |
| const GmpFemPhysicsCommonMaterial * | material (const GmElement *e) const |
| const QVector< GmpFemPhysicsCommonMaterial * > & | materialList () const |
| bool | calcDerivedResult (int recoveryMode, GmValueAccessor *nodeAc, GmGaussAccessor *gaussAc, int resultId=-1) |
| void | fillElementNodeValues (const GmValueAccessor *ac, const GmElement *e, GmVector &v, int nv=-1) const |
| bool | fillMissingNodeValues (GmValueAccessor *ac) |
| bool | fillScalarFixedNodalBcLists (int bcId, int propertyId, int dofId, QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| bool | fillVectorFixedNodalBcLists (int bcId, int propertyId, int dofId, bool ignoreZeroValues, bool ignoreDefValues, QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| bool | fillMultiScalarFixedNodalBcLists (int bcId, const QVector< int > &propertyIds, int dofId, bool ignoreZeroValues, bool ignoreDefValues, QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| virtual bool | checkLoadedData () |
| void | addMaterialTranslation (const char *modelName, const char *physicsName, int modelIndex, bool defaultMaterial) |
| GmpFemPhysicsCommonMaterial * | material (QString modelName) const |
Public Member Functions inherited from GmpFemPhysics | |
| GmpFemPhysics (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
| GmElementMesh * | mesh () const |
| const GmCellGroupSet * | meshGroupSet () const |
| int | numSupportedExternalLoads () const |
| const GmCellGroupSet * | externalLoadGroupSet (int loadId) const |
| const QMap< QString, const GmBoundaryCondition * > & | boundaryConditions () const |
| GmDiscontinuitySet * | discontinuitySet () const |
| virtual bool | checkPhysicsDependencies (const QVector< GmpFemPhysics * > &physicsList, int index) |
| virtual bool | dofByElement (bool *fixed=NULL, bool *addOnly=NULL, bool *trackChanges=NULL) const |
| virtual const GmElementDof * | dofMapping (const GmElement *e) const |
| virtual void | afterElementStiffnessLoop () |
| virtual bool | fixedNodalForcesBc (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const |
| virtual FemResultType | fillContactData (const GmContactBoundaryCondition *cbc, int bcIndex1, int bcIndex2, GmMatrixDof &dofMap, GmpFemMatrixSet &matrixSet, GmpFemVectorSet &vecSet) |
| virtual FemResultType | fillElementDataForLoads (const GmElement *e, int loadId, GmpFemVectorSet &elemVectors) |
| virtual bool | addStateItemsToGroup (GmStateDump *state, bool fixedHint, int groupId) |
| virtual bool | fillStateControlMapData (QVariantMap *map) |
| virtual bool | stateControlMapDataLoaded (QVariantMap *map) |
| virtual bool | stateAboutToBeSaved (GmStateDump *state) |
| virtual bool | stateSaved (GmStateDump *state) |
| virtual bool | stateAboutToBeLoaded (GmStateDump *state) |
| virtual bool | stateLoaded (GmStateDump *state) |
| virtual QList< int > | changedElements () const |
| virtual void | clearChangedElements () |
| const GmIntegrationRule * | elementIntegrationRule (GmCellType type) const |
| const GmBorderIntegrationRule * | borderIntegrationRule (GmCellType type, int borderIndex) const |
| const GmBorderIntegrationRule * | faceIntegrationRule (GmCellType type, int faceIndex) const |
| const GmBorderIntegrationRule * | edgeIntegrationRule (GmCellType type) const |
| int | integrationRuleSet () const |
| bool | setIntegrationRuleSet (int ruleSet) |
| virtual bool | loadPrivateData (LuaTable &table) |
Protected Member Functions | |
| virtual void | calcElementDerivedResultAtPoints (const GmElement *e, int resultId, const GmMatrix &evalPoints, bool evalAtIp, GmMatrix &result) |
| The virtual function used by calcDerivedResults() to effectivelly calculate the heat flux at the given evaluation points. | |
| virtual bool | isAxisymmetric () |
| Returns TRUE only for axisymmetric models. | |
| virtual double | axisymmetricFactor (const GmElement *e, const GmMatrix &X, const GmVector &N) const =0 |
| Returns the factor that should be applied when using axis symetric elements. 1.0 for other etypes. | |
Protected Member Functions inherited from GmpFemPhysicsCommon | |
| virtual bool | supportsCellType (GmCellType type) const |
| virtual bool | supportsParallel (FemSupportedParallelMethods methodType) const |
| virtual const GmElementDof * | dofMapping (GmCellType type) const |
| virtual Unit | dofUnit (int dof) const |
| virtual Unit | timeUnit () const |
| virtual GmVector | timeSim () const |
| virtual const QList< QPair< int, GmValueAccessor * > > & | dofForceAttributes () const |
| virtual const QStringList & | supportedBcTypes () const |
| virtual const QStringList & | supportedContactBcTypes () const |
| virtual bool | bcAffectsCalc (const GmBoundaryCondition *bc) const |
| virtual const QStringList & | supportedExternalLoads () const |
| virtual bool | checkAndLoadPrivateData (LuaTable &table) |
| virtual bool | checkMeshDimension (int ndim) |
| virtual bool | checkAndLoadDofMapping (LuaTable &table) |
| virtual bool | checkAndLoadPropertyAccessors (LuaTable &table) |
| virtual bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable) |
| virtual bool | checkAndLoadExternalLoadAccessors (LuaTable &loadsTable) |
| virtual bool | checkAndLoadBcAccessors () |
| virtual bool | checkAndLoadContactBcAccessors () |
| virtual bool | checkAndLoadDiscontinuitySetAccessors (LuaTable &table) |
| QString | accessorNameList (const QVector< T * > list) const |
| bool | checkAndLoadPropertyAccessorsAux (LuaTable &table, const QList< Value > &defList, QVector< GmCellAccessor * > &accessors, QVector< bool > &constants) |
| 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)) |
| bool | checkAndLoadNodeAttributeAccessors (LuaTable &table, const QList< Value > &naList, QVector< GmValueAccessor * > &accessors, GmpFemPhysicsCommonMaterial *m=NULL) |
| bool | checkAndLoadCellAttributeAccessors (LuaTable &table, const QList< Value > &caList, QVector< GmCellAccessor * > &accessors, GmpFemPhysicsCommonMaterial *m=NULL) |
| bool | checkAndLoadGaussAttributeAccessors (LuaTable &table, const QList< Value > &gaList, QVector< GmGaussAccessor * > &accessors, GmpFemPhysicsCommonMaterial *m=NULL) |
| bool | checkAndLoadSavedGaussAttributes (const QList< int > &attrIdList, QString prefix, int numGaussAttributes, QVector< int > &savedIdList) |
| bool | createMaterials (LuaTable &table) |
| bool | loadAttributes (LuaTable &table) |
| void | loadUnitSystemData (LuaTable &table) |
| QString | getUnit (QString id, QString defUnit) const |
| bool | loadAdditionalPrivateData (LuaTable &table, GmpFemPhysicsData &elemData) |
| bool | loadNodeData (LuaTable &table, GmpFemPhysicsData &elemData) |
| bool | loadElementData (LuaTable &table, GmpFemPhysicsData &elemData) |
| bool | loadNeuralNetworkData (LuaTable &table, const char *name, GmpFemNeuralNetwork *netData) |
Protected Member Functions inherited from GmpFemPhysics | |
| GmGaussAccessor * | gaussAttributeAccessor (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) |
| virtual GmGaussAccessor * | createGaussAttributeAccessor (GmElementMesh *mesh, QString id, int snum, bool locked, Unit desiredUnit, const GmLogCategory &logger) const |
Private Attributes | |
| const char * | _pluginType |
| The plugin type name. | |
| bool | _hasElementGeneration |
| Should we enable heat sources on elements (does not affect point generation sources)? | |
Basic class for the standard heat physics plugin object.
IDs for property values from accepted boundary condition types.
IDs for physics element properties.
IDs for physics attributes.
|
virtual |
Reimplemented from GmpFemPhysics.
|
virtual |
Calc heat flux on nodes and/or Gauss points.
Reimplemented from GmpFemPhysics.
Reimplemented in GmpThermoInterface.
|
protectedvirtual |
The virtual function used by calcDerivedResults() to effectivelly calculate the heat flux at the given evaluation points.
See the base class for a parameter description.
The heat flux value is given by qx = -k dT/dx. The vector with partial temperature derivatives can be calculated as B.T.
Reimplemented from GmpFemPhysicsCommon.
|
virtual |
Fills the element stiffness matrix elemK for element 'e' taking into account only the conductivityy contribution. Other boundary condition contributions will be delayed until calls to fillElementDataForBc(). If internal heat generation is enabled, also calculates and fills elemF with the internal heat generation contribution to the load vector.
Reference: "Fundamentals of the Finite Element Method for Heat and Fluid Flow", Lewis et al, section 3.4.1, equations 3.260 and 3.261
If requested in the matrix set, the function can also fill a heat capacity matrix used in transiente analysis (see chapter 6, equation 6.21 on th eprevious book reference).
Implements GmpFemPhysics.
Reimplemented in GmpThermoInterface.
|
virtual |
Fills the element stiffness matrix elemK and/or the force vector elemF for element 'e', taking into account convective heat transfer, fixed heat flux and/or point generation boundary conditions, as indicated by the bc parameter.
Reference: "Fundamentals of the Finite Element Method for Heat and Fluid Flow", Lewis et al, section 3.4.1, equations 3.260 and 3.261
Reimplemented from GmpFemPhysics.
|
virtual |
See comments on base class. Fills vectors with prescribed node temperatures.
Reimplemented from GmpFemPhysics.
|
virtual |
Returns a pointer to the single Thermo Physics attribute map, built when the function is called for the first time.
Implements GmpFemPhysicsCommon.
Reimplemented in GmpThermoInterface.
|
inlinevirtual |
Tell the world that the temperature physics supports state dumping.
There is no need to save any additional state, so the additional stateXXX() methods are not needed.
Reimplemented from GmpFemPhysics.