HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpHydraulicMultiPhaseFlow.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
24#ifndef _GEMA_PLUGIN_HYDRAULIC_MULTIPHASEFLOW_H_
25#define _GEMA_PLUGIN_HYDRAULIC_MULTIPHASEFLOW_H_
26
27#include <gmpFemPhysicsCommon.h>
28#include <gmpHydraulic.h>
29
30#include <gmMathUtils.h>
31#include <gmTrace.h>
32
33class GmGaussAccessor;
34
37class GMP_HYDRAULIC_PHYSICS_API_EXPORT GmpHydraulicMultiPhaseFlow : public GmpHydraulic
38{
39public:
40 // constructor
41 GmpHydraulicMultiPhaseFlow(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
42 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
43 // destructor
45
46
47 // set physic map
48 virtual const QVariantMap* physicsMetaDataMap();
49
50 virtual GmpFemPhysics::FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
51
52 virtual bool fixedNodalForcesBc(QVector<int>& nodes, QVector<int>&dof, QVector<double>& values) const;
53
54 virtual bool fixedNodalDofsBc (QVector<int>& nodes, QVector<int>&dof, QVector<double>& values, bool* constantValues) const;
55
56 // See comments on the base class
57 virtual bool calcDerivedResults(bool nonLinearSolver);
58
59 virtual void fillStorageCompMatrix(const GmElement* e, const GmVector* coord, int ip,
60 GmMatrix& Sww, GmMatrix& Swc, GmMatrix& Scw, GmMatrix& Scc, const GmVector& N, double c) const;
61
62 virtual void fillFlowMatrix(const GmElement* e, const GmVector* coord, int ip, GmMatrix& Kc, GmMatrix& Kwc,
63 GmMatrix& Kcc, const GmMatrix& Bp, double c) const;
64
65 virtual void fillElementFluidPorePressure(const GmElement* e, GmVector& Pce) const;
66
67 virtual void FillDofIndexPosition(const GmElement* e, QVector<int>& iPe, QVector<int>& iPfe) const;
68
69 virtual void fillDampingMatrix(const GmElement* e, GmMatrix& C, const GmMatrix& Sww, const GmMatrix& Swc, const GmMatrix& Scw, const GmMatrix& Scc, const QVector<int>& iPw, const QVector<int>& iPc) const;
70
71 virtual void fillStiffnessMatrix(const GmElement* e, GmMatrix& K, const GmMatrix& Kww, const GmMatrix& Kwc, const GmMatrix& Kcc, const QVector<int>& iPw, const QVector<int>& iPc) const;
72
73 virtual void fillInternalForceVector(const GmElement* e, GmVector& Fi, const GmMatrix& Kww, const GmMatrix& Kwc, const GmMatrix& Kcc, const GmVector& Pw, const GmVector& Pc, const QVector<int>& iPw, const QVector<int>& iPc) const;
74
75 virtual void gravitySupplyFluid(const GmElement* e, const GmVector* coord, int ip, GmVector& gFp, GmVector& gFpc, const GmMatrix& Bp, double c);
76
77protected:
78 // See comments on the base class
79 virtual const GmElementDof* dofMapping(GmCellType type) const;
80
83 {
85
86 // --- NO ADDING BELOW THIS LINE
88 };
89
92 {
93 FIXED_PC_BC_ID = GmpHydraulic::NUM_BC_IDS,
95
96 // --- NO ADDING BELOW THIS LINE
98 };
99
102 {
105
106 // --- NO ADDING BELOW THIS LINE
108 };
109
110};
111
112#endif
Basic class for the hydraulic physics plugin object.
Definition gmpHydraulic.h:39
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc velocity and flow on nodes and/or Gauss points.
Definition gmpHydraulic.cpp:515
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the single Hydraulics attribute map, built when the function is called for th...
Definition gmpHydraulic.cpp:62
virtual void fillFlowMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Kc, const GmMatrix &Bp, double c) const
Calculates the flow stiffness matrix due to permeability contribution or permeability matrix for elem...
Definition gmpHydraulic.cpp:464
@ 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
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 gmpHydraulic.cpp:388
virtual void fillStorageCompMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &N, double c)
Calculates the stiffness matrix of "storage / compressibility" for element 'e' at the given integrati...
Definition gmpHydraulic.cpp:421
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 gmpHydraulic.cpp:381
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic element.
Definition gmpHydraulic.cpp:236
@ NUM_BCV_IDS
The number of boundary conditions value ids above.
Definition gmpHydraulic.h:211
Basic class for the standard hydraulic physics plugin object.
Definition gmpHydraulicMultiPhaseFlow.h:38
MultiPhaseBoundaryConditionIds
IDs for accepted boundary condition types.
Definition gmpHydraulicMultiPhaseFlow.h:92
@ NUM_BC_IDS
The number of boundary conditions ids above.
Definition gmpHydraulicMultiPhaseFlow.h:97
@ FIXED_QC_BC_ID
Id for fixed node gas flow boundary condition.
Definition gmpHydraulicMultiPhaseFlow.h:94
MultiPhaseStateVarIds
IDs fo physics state vars.
Definition gmpHydraulicMultiPhaseFlow.h:83
@ NUM_STATEVAR_IDS
The number of property ids above.
Definition gmpHydraulicMultiPhaseFlow.h:87
MultiPhaseBoundaryConditionValueIds
IDs for property values from accepted boundary condition types.
Definition gmpHydraulicMultiPhaseFlow.h:102
@ BC_QWC_ID
Nodal pore flow for fixed node gas pore flow boundary condition.
Definition gmpHydraulicMultiPhaseFlow.h:104
@ NUM_BCV_IDS
The number of boundary conditions value ids above.
Definition gmpHydraulicMultiPhaseFlow.h:107
GmCellType
arma::mat GmMatrix
arma::vec GmVector
Declaration of the gmpHydraulic classes.