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

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

#include <gmpPipeFixedReaction.h>

Inheritance diagram for GmpPipeFixedReaction:
Collaboration diagram for GmpPipeFixedReaction:

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 GmElementDofdofMapping (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
 

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.

Member Function Documentation

◆ checkLoadedData()

bool GmpPipeFixedReaction::checkLoadedData ( )
virtual

Checks that the dimension of the reactionRate property is correct.

Reimplemented from GmpChemicalPipe.

◆ physicsMetaDataMap()

const QVariantMap * GmpPipeFixedReaction::physicsMetaDataMap ( )
virtual

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

Reimplemented from GmpChemicalPipe.

◆ reactionRate()

bool GmpPipeFixedReaction::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: