![]() |
ChemicalFemPhysics
The GeMA Standard Chemical FEM Physics Plugin
|
Extends the basic chemical physics transport equation by providing a fixed reaction rate. More...
#include <gmpPipeFixedReaction.h>


Public Member Functions | |
| GmpPipeFixedReaction (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
| Basic constructor. Will be called by the physics factory. | |
| virtual | ~GmpPipeFixedReaction () |
| Destructor. | |
| virtual const char * | pluginType () const |
| virtual const QVariantMap * | physicsMetaDataMap () |
| Returns a pointer to the physics attribute map, built when the function is called for the first time. | |
| virtual bool | checkLoadedData () |
| Checks that the dimension of the reactionRate property is correct. | |
Public Member Functions inherited from GmpChemicalPipe | |
| GmpChemicalPipe (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
| virtual | ~GmpChemicalPipe () |
| Destructor. | |
| virtual bool | checkAndLoadAttributeAccessors (LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable) |
| Reimplementation of the common function to set initial gauss attributes. | |
| virtual GmpFemPhysics::FemResultType | fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element matrices and vectors for a generic Pipe element. | |
| virtual FemResultType | fillElementDataForBc (const GmElement *e, const GmBoundaryCondition *bc, int bcIndex, int bcListIndex, int border, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors) |
| Fills the element force vector elemF for element 'e', taking into account fixed flux boundary conditions. | |
| 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 concentrations | |
| virtual bool | setInitialGaussAttributes () const |
| sets the initial value of hydraulic gauss attributes. | |
| virtual double | pipeSize (const GmElement *e, int i, GmVector &ip) |
Public Member Functions inherited from GmpChemicalFemPhysics | |
| GmpChemicalFemPhysics (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger) | |
| Constructor. Will be called by the plugin loading code. | |
| virtual | ~GmpChemicalFemPhysics () |
| Destructor. | |
| virtual const char * | pluginName () const |
| virtual bool | fillFixedNodalDofsBCAlkalinity (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| See comments on base class. Fills vectors with prescribed node concentrations. | |
| virtual bool | fillFixedNodalDofsBCbasalt (QVector< int > &nodes, QVector< int > &dof, QVector< double > &values, bool *constantValues) const |
| virtual bool | calcDerivedResults (bool nonLinearSolver) |
| Calc velocity and flow on nodes and/or Gauss points. | |
Protected Types | |
| enum | FixedReactionElementPropertyIds { R_ID = GmpChemicalPipe::NUM_PROPERTY_IDS } |
| Additional IDs for physics element properties. More... | |
Protected Types inherited from GmpChemicalFemPhysics | |
| enum | PhysicsAttributeIds { ISOPARAMETRIC_ID , MULTI_DISPERSION_ID , MULTI_RETARDATION_ID , ALKALINITY_ID , BASALTRXN_ID , NUM_ATTRIBUTE_IDS } |
| IDs for physics attributes. More... | |
| enum | StateVarIds { C_ID } |
| IDs fo physics state vars. More... | |
| enum | NodeAttributeIds { NUM_NA_IDS } |
| IDs for physics node attributes. More... | |
| enum | GaussAttributeIds { V_GA_ID , NUM_GA_IDS } |
| IDs for physics Gauss attributes. More... | |
| enum | ElementPropertyIds { D_ID , K_ID , V_ID , PHI_ID , THICKNESS_ID , NUM_PROPERTY_IDS } |
| IDs for physics element properties. More... | |
| enum | BoundaryConditionIds { PRESCRIBED_C_BC_ID , PRESCRIBED_FLUX_BC_ID , PRESCRIBED_MIXED_BC_ID , PRESCRIBED_CN_BC_ID , NUM_BC_IDS } |
| IDs for accepted boundary condition types. More... | |
| enum | BoundaryConditionValueIds { BC_C_ID , BC_CN_ID , BC_Q_ID , BC_QDIR_ID , BC_MX_ID , NUM_BCV_IDS } |
| IDs for property values from accepted boundary condition types. More... | |
Protected Member Functions | |
| virtual bool | reactionRate (const GmElement *e, const GmVector *ip, int ipIndex, const GmVector &N, const GmVector &C, double wtJ, GmVector &elemFe, GmMatrix &elemK, bool needsFe, bool needsK) |
| Reaction rate term based on a fixed element property. See the parameters description on the base class. | |
Protected Member Functions inherited from GmpChemicalPipe | |
| virtual const GmElementDof * | dofMapping (GmCellType type) const |
Protected Member Functions inherited from GmpChemicalFemPhysics | |
Additional Inherited Members | |
Public Types inherited from GmpChemicalPipe | |
| enum | PhysicsAttributeIds { MULTI_REACTION_ID = GmpChemicalFemPhysics::NUM_ATTRIBUTE_IDS } |
| Additional IDs for physics attributes. More... | |
| enum | ElementPropertyIds { Dp_ID = GmpChemicalFemPhysics::ElementPropertyIds::NUM_PROPERTY_IDS , NUM_PROPERTY_IDS } |
| IDs for physics element properties. More... | |
| enum | PipeGaussAttributeIds { Dp_GA_ID = GmpChemicalFemPhysics::NUM_GA_IDS , DpOLD_GA_ID , NUM_GA_IDS } |
| enum | BoundaryConditionIds { PRESCRIBED_C_BC_PIPE_ID = GmpChemicalFemPhysics::NUM_BC_IDS , PRESCRIBED_FLUX_BC_PIPE_ID , PRESCRIBED_MIXED_BC_PIPE_ID , NUM_BC_IDS } |
| IDs for accepted boundary condition types. More... | |
| enum | BoundaryConditionValueIds { BC_C_VAL_ID = GmpChemicalFemPhysics::NUM_BCV_IDS , BC_Q_VAL_ID , BC_MX_VAL_ID , BC_C_PIPE_ID , BC_Q_PIPE_ID , BC_MX_PIPE_ID , NUM_BCV_IDS } |
| IDs for property values from accepted boundary condition types. More... | |
Protected Attributes inherited from GmpChemicalFemPhysics | |
| GmVector | _data |
| Save alkalinity data for boundary condition. | |
| GmVector | _Cglobal |
Extends the basic chemical physics transport equation by providing a fixed reaction rate.
Reaction rate is based on an element material property called R [mol/(m3.s)]. Accepts either a single value or multiple values for multi-species analysis (a single value can be given even on multi-species scenarios, depending on the multiReaction parameter value).
The basic discretization for reaction rate term is:
wtJ = w * t * detJ (integration point weight * elem width if 2D * Jacobian determinat)
elemFe += N * (wtJ * R[s]);
In this implementation, there is no coupling between each species and those calculation could be done completely independently.
|
protected |
|
virtual |
Checks that the dimension of the reactionRate property is correct.
Reimplemented from GmpChemicalPipe.
|
virtual |
Returns a pointer to the physics attribute map, built when the function is called for the first time.
Reimplemented from GmpChemicalPipe.
|
protectedvirtual |
Reaction rate term based on a fixed element property. See the parameters description on the base class.
Implements GmpChemicalFemPhysics.