HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpHydraulicPipe.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
25#ifndef _GEMA_PLUGIN_HYDRAULIC_PIPE_H_
26#define _GEMA_PLUGIN_HYDRAULIC_PIPE_H_
27
28
29#include <gmpFemPhysicsCommon.h>
30#include "gmpHydraulic.h"
31#include <gmTrace.h>
32
33class GmGaussAccessor;
34
35
39{
40public:
41 // constructor
42 GmpHydraulicPipe(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
43 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
44
45 // destructor
46 virtual ~GmpHydraulicPipe();
47
49 {
51 DpOLD_GA_ID,
52
53 // --- NO ADDING BELOW THIS LINE
55 };
56
57 virtual const QVariantMap* physicsMetaDataMap();
58 virtual bool checkAndLoadAttributeAccessors(LuaTable& nodeTable, LuaTable& cellTable, LuaTable& gaussTable);
59 virtual bool beforeElementStiffnessLoop(const GmpFemMatrixSet& elemMatrices, const GmpFemVectorSet& elemVectors);
60 virtual GmpFemPhysics::FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
61 virtual bool calcDerivedResults(bool nonLinearSolver);
62
63 // Comments on the base class
64 virtual double fillBpMatrix(const GmShape* shape, const GmVector& ncoord, const GmMatrix& X, const GmVector& N, const GmMatrix& J, GmMatrix& Bp) ;
65
68 virtual void fillStorageCompMatrix(const GmElement* e, GmMatrix& Sc, double& Mfw, const GmVector& Np, double c) const;
69
72 virtual void fillFlowMatrix(const GmElement* e, GmMatrix& Kc, const GmMatrix& Bp, double kl, const GmVector& N, double c) const;
73
76 //virtual bool setInitialGaussAttributes(const GmElement* e, const GmVector* coord, int ip) const;
77 virtual bool setInitialGaussAttributes() const;
78
81 virtual void fillElementPorePressure(const GmElement* e, GmVector& pe);
82
83protected:
84 virtual const GmElementDof* dofMapping(GmCellType type) const;
85};
86
87#endif
Basic class for the hydraulic physics plugin object.
Definition gmpHydraulic.h:39
@ NUM_GA_IDS
The number of Gauss attribute ids above.
Definition gmpHydraulic.h:178
Basic class for the hydraulic interface element plugin object.
Definition gmpHydraulicPipe.h:39
PipeGaussAttributeIds
Definition gmpHydraulicPipe.h:49
@ NUM_GA_IDS
The number of property ids above.
Definition gmpHydraulicPipe.h:54
@ Dp_GA_ID
Base Id for Gauss attribute(s) used to store the pipe diameter.
Definition gmpHydraulicPipe.h:50
virtual ~GmpHydraulicPipe()
Destructor.
Definition gmpHydraulicPipe.cpp:56
virtual bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Reimplementation of the common function to set initial gauss attributes.
Definition gmpHydraulicPipe.cpp:126
virtual double fillBpMatrix(const GmShape *shape, const GmVector &ncoord, const GmMatrix &X, const GmVector &N, const GmMatrix &J, GmMatrix &Bp)
Given a point 'ncoord', the element coordinate matrix 'X', the point shape functions 'N' and the tran...
Definition gmpHydraulicPipe.cpp:142
virtual void fillElementPorePressure(const GmElement *e, GmVector &pe)
Given an element, fills the vector pe with nodal pore pressure.
Definition gmpHydraulicPipe.cpp:347
virtual GmpFemPhysics::FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic Pipe element.
Definition gmpHydraulicPipe.cpp:153
virtual void fillFlowMatrix(const GmElement *e, GmMatrix &Kc, const GmMatrix &Bp, double kl, const GmVector &N, double c) const
Calculates the flow stiffness matrix according to the cubic law.
Definition gmpHydraulicPipe.cpp:396
virtual bool calcDerivedResults(bool nonLinearSolver)
Calc velocity and flow on nodes and/or Gauss points.
Definition gmpHydraulicPipe.cpp:453
virtual const QVariantMap * physicsMetaDataMap()
Returns a reference for the Hydraulic Pipe attribute map, built when the function is called for the f...
Definition gmpHydraulicPipe.cpp:63
virtual bool setInitialGaussAttributes() const
sets the initial value of hydraulic gauss attributes.
Definition gmpHydraulicPipe.cpp:415
virtual void fillStorageCompMatrix(const GmElement *e, GmMatrix &Sc, double &Mfw, const GmVector &Np, double c) const
Calculates the compressibility matrix inside the fracture.
Definition gmpHydraulicPipe.cpp:366
GmCellType
arma::mat GmMatrix
arma::vec GmVector
Declaration of the gmpHydraulic classes.