24#ifndef _GEMA_PLUGIN_CHEMICAL_INTERFACE_H_
25#define _GEMA_PLUGIN_CHEMICAL_INTERFACE_H_
28#include <gmpFemPhysicsCommon.h>
29#include <gmpFemPhysicsCommonMaterial.h>
70 virtual const char* pluginType()
const {
return "interface"; }
74 virtual GmpFemPhysics::FemResultType
fillElementData(
const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
77 int border, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
86 double phi,
double k,
double c)
const;
91 const GmVector& N,
double phi,
double c,
int ns);
108 if (iOpenAcc == NULL)
112 return iOpenAcc->scalarValueAt(e, coord, ip);
Basic class for chemical fem physics. Treats the diffusion and convective terms of the transport equa...
Definition gmpChemicalFemPhysics.h:35
@ NUM_BCV_IDS
The number of BC ids above.
Definition gmpChemicalFemPhysics.h:145
@ NUM_PROPERTY_IDS
The number of property ids above.
Definition gmpChemicalFemPhysics.h:120
@ NUM_BC_IDS
The number of BC ids above.
Definition gmpChemicalFemPhysics.h:132
@ NUM_GA_IDS
The number of gauss attribute ids above.
Definition gmpChemicalFemPhysics.h:107
Basic class for the hydraulic interface element plugin object.
Definition gmpChemicalInterface.h:40
virtual bool setInitialConditions() const
sets the initial value of chemical gauss attributes.
Definition gmpChemicalInterface.cpp:1006
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the chemical interface attribute map, built when the function is called for t...
Definition gmpChemicalInterface.cpp:56
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc velocity and flow on nodes and/or Gauss points.
Definition gmpChemicalInterface.cpp:1057
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
Definition gmpChemicalInterface.cpp:370
virtual double initiallyOpenElem(const GmElement *e, const GmVector *coord, int ip) const
Returns the initially open element
Definition gmpChemicalInterface.h:103
void fillMiddleCoordinates(const GmElement *e, const GmMatrix &Xnode, GmMatrix &MX) const
Computes the coordinate at the middle plane of the interface element . Given an element 'e' and the n...
Definition gmpChemicalInterface.cpp:703
InterfaceGaussAttributeIds
Definition gmpChemicalInterface.h:59
@ An_GA_ID
Base Id for Gauss attribute(s) used to store the normal aperture.
Definition gmpChemicalInterface.h:60
@ NUM_GA_IDS
The number of property ids above.
Definition gmpChemicalInterface.h:64
virtual bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Reimplementation of the common function to set initial gauss attributes.
Definition gmpChemicalInterface.cpp:137
InterfacePropertyIds
IDs for physics element properties.
Definition gmpChemicalInterface.h:50
@ IOPEN_ID
Id for retrieving the initially open element accessor.
Definition gmpChemicalInterface.h:51
@ NUM_PROPER_IDS
The number of property ids above.
Definition gmpChemicalInterface.h:55
BoundaryConditionIds
IDs for accepted boundary condition types.
Definition gmpChemicalInterface.h:117
@ FIXED_C_BC_INT_ID
Id for prescribed concentration boundary condition on cell.
Definition gmpChemicalInterface.h:118
@ FIXED_CF_BC_INT_ID
Id for prescribed flux boundary condition on cell.
Definition gmpChemicalInterface.h:119
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 conditi...
Definition gmpChemicalInterface.cpp:156
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 clas...
Definition gmpChemicalInterface.cpp:676
virtual void fillElementConcentration(const GmElement *e, GmVector &pe)
Given an element, fills the vector pe with nodal pore pressure.
Definition gmpChemicalInterface.cpp:691
virtual GmpFemPhysics::FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic Interface element.
Definition gmpChemicalInterface.cpp:450
BoundaryConditionValueIds
IDs for property values from accepted boundary condition types.
Definition gmpChemicalInterface.h:125
@ BC_C_INT_ID
Nodal concentration for fixed concentration boundary condition on cell.
Definition gmpChemicalInterface.h:126
@ BC_Q_POS_ID
BC Id for edge/face on cell where is fixed the flux.
Definition gmpChemicalInterface.h:130
@ BC_Q_INT_ID
Concentration flux for fixed concentration flux boundary condition on cell.
Definition gmpChemicalInterface.h:127
@ BC_C_POS_ID
BC Id for edge/face on cell where is fixed the concentration.
Definition gmpChemicalInterface.h:129
virtual void fillStorageCompMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &N, double phi, double k, double c) const
Calculates the compressibility matrix inside the fracture.
Definition gmpChemicalInterface.cpp:771
virtual void fillDiffusionMatrix(const GmElement *e, GmMatrix &Kc, const GmMatrix &Bp, const GmMatrix &D, const GmVector &v, const GmVector &N, double phi, double c, int ns)
Calculates the flow stiffness matrix according to the cubic law.
Definition gmpChemicalInterface.cpp:857
virtual ~GmpChemicalInterface()
Destructor.
Definition gmpChemicalInterface.cpp:49
Declaration of the GmpChemicalFemPhysics classes.