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"
29 #include "aslFDElasticity.h"
30 #include "utilities/aslUValue.h"
31 
32 namespace asl
33 {
34 
36 
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:
104  FDPoroElasticity(Data d, Data pl, Param bM,
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
SPDataWithGhostNodesACLData Data
void setNSubsteps(unsigned int n)
defaul value 10
std::shared_ptr< FDPoroElasticity > SPFDPoroElasticity
Advanced Simulation Library.
Definition: aslDataInc.h:30
virtual void init()
Builds the necesery internal data and kernels.
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
Data getLiquidPressureData() const
abstract class for elasticity solver
Numerical method which computes homogenious isotropic poro-elasticity equation.
virtual void execute()
Executes the numerical procedure.
Updatable value. This class stores value and its TimeStamp.
Definition: aslBasicBC.h:41
The class represents several Element.
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d, SPDataWithGhostNodesACLData pl, double bM, double sM, double k, const VectorTemplate *vT)
Defines set of vectros with several properties.
Definition: aslTemplates.h:87