25#ifndef _GEMA_PLUGIN_HYDRAULIC_BRINKMANFLOW_H_
26#define _GEMA_PLUGIN_HYDRAULIC_BRINKMANFLOW_H_
29#include <gmpFemPhysicsCommon.h>
42 const GmpFemPhysicsCommonMaterialFactory* matFactory,
const GmLogCategory& logger);
50 virtual bool beforeElementStiffnessLoop(
const GmpFemMatrixSet& elemMatrices,
const GmpFemVectorSet& elemVectors);
53 virtual GmpFemPhysics::FemResultType
fillElementData(
const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
80 int border, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
Dual flow hydraulic 2D & 3D for Quad, Tri, Hex and Tet.
Definition gmpHydraulicBrinkmanFlow.h:38
QMap< int, double > _bcData
List with bc Data.
Definition gmpHydraulicBrinkmanFlow.h:141
virtual bool fillFixedNodalPressureBcLists(int dofId, QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const
Fills fixed pressure boundary conditions.
Definition gmpHydraulicBrinkmanFlow.cpp:392
virtual GmpFemPhysics::FemResultType fillPressureValues(const GmElement *e, double press, int border)
Fills pressure values for fixed pressure boundary conditions.
Definition gmpHydraulicBrinkmanFlow.cpp:320
void clearBcData()
Returns the bc value or NULL.
Definition gmpHydraulicBrinkmanFlow.h:100
void addBCData(int id, double value)
Adds bc node.
Definition gmpHydraulicBrinkmanFlow.h:91
virtual void fillDampingMatrix(const GmElement *e, GmMatrix &C, const GmMatrix &Sc, const QVector< int > &iVe) const
Fills the Damping matrix with the computed "storage/compressibility" Matrizes Returns C = Sc + Sfc,...
Definition gmpHydraulicBrinkmanFlow.cpp:878
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc velocity and flow on nodes and/or Gauss points.
Definition gmpHydraulicBrinkmanFlow.cpp:1037
virtual void fillStorageCompMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &N, double c)
Calculates the storage matrix for element 'e' at the given integration point (coord,...
Definition gmpHydraulicBrinkmanFlow.cpp:725
virtual void fillInternalForceVector(const GmElement *e, GmVector &Fi, const GmMatrix &Ac, const GmMatrix &Cm, const GmVector &pe, const GmVector &vfe, const QVector< int > &iVe, const QVector< int > &iPe) const
Fills the Internal force vector for both fluids Returns fi = Kc*pe + Kfc*pfe, where: Kc is the permea...
Definition gmpHydraulicBrinkmanFlow.cpp:952
virtual void FillDofIndexPosition(const GmElement *e, QVector< int > &iPe, QVector< int > &iPfe)
Fills the position index of the two hydraulic degrees of freedom. the implementation supports order o...
Definition gmpHydraulicBrinkmanFlow.cpp:987
virtual void fillFluidConservMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Cm, const GmMatrix &Bp, const GmMatrix &Np, double c) const
Calculates the fluid conserving matrix due to permeability contribution or permeability matrix for el...
Definition gmpHydraulicBrinkmanFlow.cpp:823
virtual void fillStiffnessMatrix(const GmElement *e, GmMatrix &K, const GmMatrix &Ac, const GmMatrix &Cm, const QVector< int > &iVe, const QVector< int > &iPe) const
Fills the Stiffness matrix with the computed "permeability" Matrizes Returns K = Kc + Kfc,...
Definition gmpHydraulicBrinkmanFlow.cpp:911
virtual void fillFluidMomentMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Ac, const GmMatrix &Bp, const GmMatrix &N, double c)
Calculates the flow stiffness matrix of fluid 2 due to permeability contribution or permeability matr...
Definition gmpHydraulicBrinkmanFlow.cpp:766
virtual GmpFemPhysics::FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic dual flow element.
Definition gmpHydraulicBrinkmanFlow.cpp:480
BrinkmanBoundaryConditionIds
IDs for accepted boundary condition types.
Definition gmpHydraulicBrinkmanFlow.h:121
@ NUM_BC_IDS
The number of boundary conditions ids above.
Definition gmpHydraulicBrinkmanFlow.h:125
@ FIXED_VF_BC_ID
Id for fixed node velocity boundary condition.
Definition gmpHydraulicBrinkmanFlow.h:122
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 pore pressures.
Definition gmpHydraulicBrinkmanFlow.cpp:109
virtual QList< int > nodeIds() const
Returns the node indexes.
Definition gmpHydraulicBrinkmanFlow.h:97
virtual double bcData(int id) const
Returns the bc value or NULL.
Definition gmpHydraulicBrinkmanFlow.h:94
virtual ~GmpHydraulicBrinkmanFlow()
Destructor.
Definition gmpHydraulicBrinkmanFlow.cpp:49
virtual int numBCData() const
returns number of fixed P bc data
Definition gmpHydraulicBrinkmanFlow.h:88
BrinkmanStateVarIds
IDs fo physics state vars.
Definition gmpHydraulicBrinkmanFlow.h:111
@ PL_BC_ID
Id for pressure load boundary condition.
Definition gmpHydraulicBrinkmanFlow.h:113
@ VF_ID
Id for retrieving the accessor to the fracture pore pressure state var.
Definition gmpHydraulicBrinkmanFlow.h:112
@ NUM_STATEVAR_IDS
The number of property ids above.
Definition gmpHydraulicBrinkmanFlow.h:116
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the brinkman attribute map, built when the function is called for the first t...
Definition gmpHydraulicBrinkmanFlow.cpp:56
virtual void fillElementVelocities(const GmElement *e, GmVector &Vfe)
Given an element, fills the vector vfe with nodal velocities. The vector should have size equal to di...
Definition gmpHydraulicBrinkmanFlow.cpp:637
virtual GmpFemPhysics::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',...
Definition gmpHydraulicBrinkmanFlow.cpp:156
BrinkmanBoundaryConditionValueIds
IDs for property values from accepted boundary condition types.
Definition gmpHydraulicBrinkmanFlow.h:130
@ NUM_BCV_IDS
The number of boundary conditions value ids above.
Definition gmpHydraulicBrinkmanFlow.h:137
@ BC_VX_ID
Nodal velocity for fixed node velocity boundary condition.
Definition gmpHydraulicBrinkmanFlow.h:131
@ BC_PL_ID
edge pressure load boundary condition
Definition gmpHydraulicBrinkmanFlow.h:134
@ BC_VY_ID
Nodal velocity for fixed node velocity boundary condition.
Definition gmpHydraulicBrinkmanFlow.h:132
@ BC_VZ_ID
Nodal velocity for fixed node velocity boundary condition.
Definition gmpHydraulicBrinkmanFlow.h:133
virtual bool fixedNodalForcesBc(QVector< int > &nodes, QVector< int > &dof, QVector< double > &values) const
See comments on base class. Fills vectors with prescribed nodal forces - flow.
Definition gmpHydraulicBrinkmanFlow.cpp:646
Basic class for the hydraulic physics plugin object.
Definition gmpHydraulic.h:39
@ NUM_BC_IDS
The number of boundary conditions ids above.
Definition gmpHydraulic.h:200
@ NUM_STATEVAR_IDS
The number of property ids above.
Definition gmpHydraulic.h:147
@ NUM_BCV_IDS
The number of boundary conditions value ids above.
Definition gmpHydraulic.h:211
Declaration of the gmpHydraulic classes.
QList< Key > uniqueKeys() const const
QMap::iterator insert(const Key &key, const T &value)
const T value(const Key &key, const T &defaultValue) const const