ChemicalFemPhysics
The GeMA Standard Chemical FEM Physics Plugin
Loading...
Searching...
No Matches
GmpFixedReaction Class Reference

Extends the basic chemical physics transport equation by providing a fixed reaction rate. More...

#include <gmpFixedReaction.h>

Inheritance diagram for GmpFixedReaction:
Collaboration diagram for GmpFixedReaction:

Public Member Functions

 GmpFixedReaction (GmSimulationData *simulation, QString id, QString description, const GmLogCategory &logger)
 Basic constructor. Will be called by the physics factory.
 
virtual ~GmpFixedReaction ()
 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 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 FemResultType fillElementData (const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
 Fills the element stiffness matrix for element 'e' with diffusive and convective terms. Calls the virtual function reactionRate() for filling the external forces().
 
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 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  FixedReactionPhysicsAttributeIds { MULTI_REACTION_ID = GmpChemicalFemPhysics::NUM_ATTRIBUTE_IDS , NUM_ATTRIBUTE_IDS }
 Additional IDs for physics attributes. More...
 
enum  FixedReactionElementPropertyIds { R_ID = GmpChemicalFemPhysics::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 GmpChemicalFemPhysics

Additional Inherited Members

- Protected Attributes inherited from GmpChemicalFemPhysics
GmVector _data
 Save alkalinity data for boundary condition.
 
GmVector _Cglobal
 

Detailed Description

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.

Member Enumeration Documentation

◆ FixedReactionElementPropertyIds

Additional IDs for physics element properties.

Enumerator
R_ID 

Id for retrieving the reaction rate coefficient accessor.

◆ FixedReactionPhysicsAttributeIds

Additional IDs for physics attributes.

Enumerator
MULTI_REACTION_ID 

Id for retrieving the multiReaction physics attribute.

NUM_ATTRIBUTE_IDS 

The number of attribute ids above.

Member Function Documentation

◆ checkLoadedData()

bool GmpFixedReaction::checkLoadedData ( )
virtual

Checks that the dimension of the reactionRate property is correct.

Reimplemented from GmpChemicalFemPhysics.

◆ physicsMetaDataMap()

const QVariantMap * GmpFixedReaction::physicsMetaDataMap ( )
virtual

Returns a pointer to the physics attribute map, built when the function is called for the first time.

Reimplemented from GmpChemicalFemPhysics.

Reimplemented in GmpChemicalFixedEmbeddedFracture.

◆ reactionRate()

bool GmpFixedReaction::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 )
protectedvirtual

Reaction rate term based on a fixed element property. See the parameters description on the base class.

Implements GmpChemicalFemPhysics.


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