HydroFemPhysics
The GeMA Hydraulic FEM Physics Plugin
Loading...
Searching...
No Matches
gmpHydraulicEmbeddedFractureConductive.h
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_HYDRAULICS_EMBEDDED_FRACTURE_CONDUCTIVE_H_
26#define _GEMA_PLUGIN_HYDRAULICS_EMBEDDED_FRACTURE_CONDUCTIVE_H_
27
28
29#include "gmpHydraulicConfig.h"
30
31#include <gmpFemPhysicsCommon.h>
32#include <gmpFemPhysicsData.h>
33#include <gmpHydraulic.h>
34#include <gmGaussAccessor.h>
35#include <gmMathUtils.h>
36#include <gmDiscontinuitySet.h>
37#include <gmDiscontinuity.h>
39
40class GmGaussAccessor;
41
44class GMP_HYDRAULIC_PHYSICS_API_EXPORT GmpHydraulicEmbeddedFractureConductive : public GmpHydraulic
45{
46public:
47 // constructor
48 GmpHydraulicEmbeddedFractureConductive(const char* pluginType, GmSimulationData* simulation, QString id, QString description,
49 const GmpFemPhysicsCommonMaterialFactory* matFactory, const GmLogCategory& logger);
50 // destructor
52
53 // Comments on the base class
54 virtual const char* pluginType() const { return _pluginType; }
55
56 // Comments on the base class
57 virtual const QVariantMap* physicsMetaDataMap();
58
59 // Comments on the base class
60 bool checkAndLoadAttributeAccessors(LuaTable& nodeTable, LuaTable& cellTable, LuaTable& gaussTable);
61
62 // Comments on the base class
63 virtual bool checkAndLoadDiscontinuitySetAccessors(LuaTable& table);
64
65 // Comments on the base class
66 virtual FemResultType fillElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors);
67
68 // Fills nodal pressure of the discontinuity elements inside element e
69 virtual bool fillDiscontinuityInternalPressureNodalValues(GmElement* e, GmValueAccessor* nAc);
70
71 // Sets the initial conditions for hydraulic embedded fracture models.
72 virtual bool setInitialConditions();
73
74 // calculate derived results
75 virtual bool calcDerivedResults(bool nonLinear);
76
77 // Assemble the contribution of the discontinuity element
78 void assembleDiscontinuityElementMatrix(GmMatrix& Kg, const GmMatrix& Kl, const QVector<int>& dof) const;
79
80 // Fills the element matrices and vectors for a enriched element.
81 virtual FemResultType fillEnrichedElementData(const GmElement* e, GmpFemMatrixSet& elemMatrices, GmpFemVectorSet& elemVectors, int nDiscontinuities);
82
83 // Fills the element matrices and vectors of the discontinuity elements.
84 FemResultType fillDiscontinuitySetElementData(const GmElement* e, GmMatrix& Hd, GmMatrix& Sd, GmMatrix& Tcd, const QMap<int, int>& dNodesGlobalToLocal);
85
86 // Fills the element matrices and vectors of the continuum (Used by the hydro-mechanical physics).
87 FemResultType fillContinuumElementData(const GmElement* e, GmMatrix& Hcc, GmMatrix& Scc);
88private:
89 const char* _pluginType;
90};
91
92#endif
Basic class for the hydraulic physics plugin object.
Definition gmpHydraulicEmbeddedFractureConductive.h:45
const char * _pluginType
The plugin type name.
Definition gmpHydraulicEmbeddedFractureConductive.h:89
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
const char * _pluginType
The plugin type name.
Definition gmpHydraulic.h:224
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 bool checkAndLoadAttributeAccessors(LuaTable &nodeTable, LuaTable &cellTable, LuaTable &gaussTable)
Checks the loaded data.
Definition gmpHydraulic.cpp:219
virtual FemResultType fillElementData(const GmElement *e, GmpFemMatrixSet &elemMatrices, GmpFemVectorSet &elemVectors)
Fills the element matrices and vectors for a generic element.
Definition gmpHydraulic.cpp:236
arma::mat GmMatrix
Declaration of the gmpHydraulic classes.
Declaration of useful configuration definitions for the plugin library.