ASL  0.1.7
Advanced Simulation Library
aslFDPoroElasticityBC.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 ASLFDPOROELASTICITYBC_H
25 #define ASLFDPOROELASTICITYBC_H
26 
27 #include "aslBCond.h"
29 
30 namespace acl{
31  class Kernel;
32 }
33 
34 namespace asl
35 {
36  class FDPoroElasticity;
37  typedef std::shared_ptr<FDPoroElasticity> SPFDPoroElasticity;
38  class DistanceFunction;
39  typedef std::shared_ptr<DistanceFunction> SPDistanceFunction;
40  class PositionFunction;
41  typedef std::shared_ptr<PositionFunction> SPPositionFunction;
42 
44 
48  {
49  protected:
50  std::unique_ptr<acl::Kernel> kernel;
53  public:
57  virtual void execute();
58  virtual void init();
59  };
60 
62 
66  {
67  protected:
68  std::unique_ptr<acl::Kernel> kernel;
71  public:
76  virtual void execute();
77  virtual void init();
78  };
79 
80  void addBCRigidWall(std::vector<SPNumMethod> & bcList,
82  const std::vector<SlicesNames> & sl);
83 
85 
88  void addBCZeroStress(std::vector<SPNumMethod> & bcList,
91 
93 
100  void addBCZeroStress(std::vector<SPNumMethod> & bcList,
104 
105 
109  void addBCRigidWallDF(std::vector<SPNumMethod> & bcList,
111  SPDistanceFunction rw,
113 
118  void addBCRigidWallDF(std::vector<SPNumMethod> & bcList,
122 
123 
124 } //asl
125 
126 #endif //ASLFDPOROELASTICITYBC_H
The class represents several Element.
Bondary condition corresponding to a rigid wall ( and )
std::unique_ptr< acl::Kernel > kernel
virtual void init()
Builds the necesery internal data and kernels.
SPDistanceFunction rWall
SPFDPoroElasticity num
BCRigidWallDF(SPFDPoroElasticity nm, SPDistanceFunction rw, SPAbstractDataWithGhostNodes map)
virtual void execute()
Executes the numerical procedure.
Bondary condition corresponding to a rigid wall ( and )
virtual void init()
Builds the necesery internal data and kernels.
BCRigidWallPoroElasticity(SPFDPoroElasticity nm, acl::VectorOfElements v)
BCRigidWallPoroElasticity(SPFDPoroElasticity nm)
std::unique_ptr< acl::Kernel > kernel
virtual void execute()
Executes the numerical procedure.
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:59
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:101
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
void addBCZeroStress(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to pressure.
void addBCRigidWallDF(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, SPDistanceFunction rw, SPAbstractDataWithGhostNodes map)
std::shared_ptr< DistanceFunction > SPDistanceFunction
Definition: aslGeomInc.h:44
std::shared_ptr< PositionFunction > SPPositionFunction
Advanced Computational Language.
Definition: acl.h:41
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
Advanced Simulation Library.
Definition: aslDataInc.h:31
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
std::shared_ptr< FDPoroElasticity > SPFDPoroElasticity
void addBCRigidWall(std::vector< SPNumMethod > &bcList, SPFDPoroElasticity nm, const std::vector< SlicesNames > &sl)