HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpHydraulicInterface.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_INTERFACE_H_
25#define _GEMA_PLUGIN_HYDRAULIC_INTERFACE_H_
26
27
28#include <gmpFemPhysicsCommon.h>
29#include "gmpHydraulic.h"
30#include <gmTrace.h>
31
32class GmGaussAccessor;
33
34
38{
39public:
40 // constructor
41 GmpHydraulicInterface(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
42 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
43
44 // destructor
45 virtual ~GmpHydraulicInterface();
46
47 virtual const QVariantMap* physicsMetaDataMap();
48 virtual bool checkAndLoadAttributeAccessors(LuaTable& nodeTable, LuaTable& cellTable, LuaTable& gaussTable);
49 virtual bool beforeElementStiffnessLoop(const GmpFemMatrixSet& elemMatrices, const GmpFemVectorSet& elemVectors);
50 virtual GmpFemPhysics::FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
51 virtual bool calcDerivedResults(bool nonLinearSolver);
52
53 // See comments on the base class
54 virtual bool addStateItemsToGroup(GmStateDump* state, bool fixedHint, int groupId);
55
58 virtual void fillStorageCompMatrix(const GmElement* e, const GmVector* coord, int ip, GmMatrix& Sc, const GmVector& N, double c);
59
62 virtual void fillFlowMatrix(const GmElement* e, GmMatrix& Kc, const GmMatrix& Bp, const GmVector& flowParam, const GmVector& N, double c) const;
63
66 virtual bool setInitialConditions() const;
67
70 virtual void fillElementPorePressure(const GmElement* e, GmVector& pe);
71
73 //virtual bool fillHydConductivityParameters(const GmElement* e, GmVector& flowParam, const GmVector* coord, int i);
74
75protected:
76 virtual const GmElementDof* dofMapping(GmCellType type) const;
77
78};
79
80#endif
Basic class for the hydraulic physics plugin object.
Definition gmpHydraulic.h:39
Basic class for the hydraulic interface element plugin object.
Definition gmpHydraulicInterface.h:38
virtual bool setInitialConditions() const
sets the initial conditions for hydraulic interface models.
Definition gmpHydraulicInterface.cpp:660
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc velocity and flow on nodes and/or Gauss points.
Definition gmpHydraulicInterface.cpp:702
virtual void fillElementPorePressure(const GmElement *e, GmVector &pe)
Given an element, fills the vector pe with nodal pore pressure.
Definition gmpHydraulicInterface.cpp:311
virtual ~GmpHydraulicInterface()
Destructor.
Definition gmpHydraulicInterface.cpp:52
virtual const GmElementDof * dofMapping(GmCellType type) const
Returns the hydraulic conductivity parameters: [kl, Lkt, Lkb].
Definition gmpHydraulicInterface.cpp:102
virtual bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Reimplementation of the common function to set initial gauss attributes.
Definition gmpHydraulicInterface.cpp:155
virtual void fillFlowMatrix(const GmElement *e, GmMatrix &Kc, const GmMatrix &Bp, const GmVector &flowParam, const GmVector &N, double c) const
Calculates the flow stiffness matrix according to the cubic law.
Definition gmpHydraulicInterface.cpp:460
virtual GmpFemPhysics::FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic Interface element.
Definition gmpHydraulicInterface.cpp:175
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the hydraulic interface attribute map, built when the function is called for ...
Definition gmpHydraulicInterface.cpp:59
virtual void fillStorageCompMatrix(const GmElement *e, const GmVector *coord, int ip, GmMatrix &Sc, const GmVector &N, double c)
Calculates the compressibility matrix inside the fracture.
Definition gmpHydraulicInterface.cpp:332
GmCellType
arma::mat GmMatrix
arma::vec GmVector
Declaration of the gmpHydraulic classes.