ASL  0.1.7
Advanced Simulation Library
aslFDPoroElasticity.h
Go to the documentation of this file.
1 /*
2  * Advanced Simulation Library <http://asl.org.il>
3  *
4  * Copyright 2015 Avtech Scientific <http://avtechscientific.com>
5  *
6  *
7  * This file is part of Advanced Simulation Library (ASL).
8  *
9  * ASL is free software: you can redistribute it and/or modify it
10  * under the terms of the GNU Affero General Public License as
11  * published by the Free Software Foundation, version 3 of the License.
12  *
13  * ASL is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Affero General Public License for more details.
17  *
18  * You should have received a copy of the GNU Affero General Public License
19  * along with ASL. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 
24 #ifndef ASLFDPOROELASTICITY_H
25 #define ASLFDPOROELASTICITY_H
26 
27 #include "aslNumMethod.h"
28 #include "acl/aclMath/aclVectorOfElementsDef.h"
29 #include "aslFDElasticity.h"
30 #include "utilities/aslUValue.h"
31 
32 namespace asl
33 {
34 
36 
82  class FDPoroElasticity: public ElasticityCommonA
83  {
84  private:
85  Data pressureData;
86  Data pressureInternalData;
87  Data pressureLiquidData;
88  Data pressureLiquidInternalData;
89 
90  Param hydraulicCondactivity;
91  Param compresibility;
92  Param nSubsteps;
93 
94  public:
105  Param sM, Param k,
106  const VectorTemplate* vT);
108 
109  virtual void init();
110  virtual void execute();
111 
112  inline Data getPressureData() const;
113  inline Data getLiquidPressureData() const;
114 
116  void setNSubsteps(unsigned int n);
117  };
118 
119  typedef std::shared_ptr<FDPoroElasticity> SPFDPoroElasticity;
120 
131  double bM,
132  double sM,
133  double k,
134  const VectorTemplate* vT);
135 
144  template <typename T>
147  UValue<T> bM,
148  UValue<T> sM,
149  UValue<T> k,
150  const VectorTemplate* vT);
151 
152 //-------------------------IMPLEMENTATION------------------------
153 
155  {
156  return pressureData;
157  }
158 
160  {
161  return pressureLiquidData;
162  }
163 
164 } // asl
165 #endif // ASLFDELASTICITY_H
The class represents several Element.
SPDataWithGhostNodesACLData Data
virtual void init()
Builds the necesery internal data and kernels.
Data getLiquidPressureData() const
void setNSubsteps(unsigned int n)
defaul value 10
virtual void execute()
Executes the numerical procedure.
FDPoroElasticity(Data d, Data pl, Param bM, Param sM, Param k, const VectorTemplate *vT)
Data getLiquidPressureData() const
Data getPressureData() const
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
Advanced Simulation Library.
Definition: aslDataInc.h:31
std::shared_ptr< FDPoroElasticity > SPFDPoroElasticity
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d, SPDataWithGhostNodesACLData pl, double bM, double sM, double k, const VectorTemplate *vT)
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47