ASL  0.1.7
Advanced Simulation Library
aslFDElasticityBC.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 ASLFDELASTICITYBC_H
25 #define ASLFDELASTICITYBC_H
26 
27 #include "aslBCond.h"
28 #include "acl/aclMath/aclVectorOfElementsDef.h"
29 
30 namespace acl{
31  class Kernel;
32  typedef std::shared_ptr<Kernel> SPKernel;
33 }
34 
35 namespace asl
36 {
37  class ElasticityCommonA;
38  typedef std::shared_ptr<ElasticityCommonA> SPElasticityCommonA;
39  class FDElasticityIncompressibleStatic;
40  typedef std::shared_ptr<FDElasticityIncompressibleStatic> SPFDElasticityIncompressibleStatic;
41  class FDElasticityRelaxation;
42  typedef std::shared_ptr<FDElasticityRelaxation> SPFDElasticityRelaxation;
43  class FDElasticity2;
44  typedef std::shared_ptr<FDElasticity2> SPFDElasticity2;
45 
47 
50  class BCRigidWall:public BCond
51  {
52  protected:
53  std::unique_ptr<acl::Kernel> kernel;
55  public:
57  virtual void execute();
58  virtual void init();
59  };
60 
62 
67  const std::vector<SlicesNames> & sl);
68 
70 
73  class BCRigidWallRelaxation:public BCond
74  {
75  protected:
76  std::unique_ptr<acl::Kernel> kernel;
79  public:
82  virtual void execute();
83  virtual void init();
84  };
85 
87 
92  const std::vector<SlicesNames> & sl);
93 
95 
100  const std::vector<SlicesNames> & sl);
101 
103 
108  const AVec<> & u0,
109  const std::vector<SlicesNames> & sl);
110 
112 
117  const AVec<> & u0,
118  const std::vector<SlicesNames> & sl);
119 
121 
124  class BCFreeSurface:public BCond
125  {
126  protected:
127  std::unique_ptr<acl::Kernel> kernel;
128  FDElasticityIncompressibleStatic* num;
129  public:
130  BCFreeSurface(FDElasticityIncompressibleStatic* nm);
131  virtual void execute();
132  virtual void init();
133  };
134 
136 
142  class BCFreeSurface2:public BCond
143  {
144  protected:
145  std::unique_ptr<acl::Kernel> kernel;
147  public:
149  ~BCFreeSurface2();
150  virtual void execute();
151  virtual void init();
152  };
153 
155 
194  class BCZeroStressMap: public BCondWithMap
195  {
196  protected:
201  public:
206  const VectorTemplate *const t);
207  ~BCZeroStressMap();
208  virtual void execute();
209  virtual void init();
210  };
211 
213 
218 
219 
221 
224 // SPNumMethod generateBCZeroStress(SPFDElasticityIncompressibleStatic nm,
225 // SPAbstractDataWithGhostNodes map);
226 
228 
231 // SPNumMethod generateBCZeroStress(SPFDElasticityRelaxation nm,
232 // SPAbstractDataWithGhostNodes map);
233 
235 
240 
242 
247 
249 
252  class BCImposedDisplacementVelocityValue:public BCond
253  {
254  protected:
255  std::unique_ptr<acl::Kernel> kernel;
257  AVec<double> displacement;
258  bool bDisplacement;
259  AVec<double> velocity;
260  bool bVelocity;
261  bool initialized;
262  public:
264  virtual void execute();
265  virtual void init();
266  void setDisplacement(AVec<double> d);
267  void setVelocity(AVec<double> v);
268  };
269 
271 
274  class BCAccelerationSource2: public BCond
275  {
276  protected:
277  std::unique_ptr<acl::Kernel> kernel;
278  FDElasticity2* num;
280  bool initialized;
281  public:
282  BCAccelerationSource2(FDElasticity2* nm);
283  virtual void execute();
284  virtual void init();
285  void setAcceleration(AVec<double> a);
286  };
287 
288 } //asl
289 
290 #endif //ASLFDELASTICITYBC_H
asl::BCFreeSurface::execute
virtual void execute()
Executes the numerical procedure.
asl::BCZeroStressMap::~BCZeroStressMap
~BCZeroStressMap()
asl::BCFreeSurface2::init
virtual void init()
Builds the necesery internal data and kernels.
asl::SPNumMethod
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
asl::BCAccelerationSource2::execute
virtual void execute()
Executes the numerical procedure.
asl::SPBCond
std::shared_ptr< BCond > SPBCond
Definition: aslBCond.h:88
asl::BCImposedDisplacementVelocityValue::setVelocity
void setVelocity(AVec< double > v)
asl::BCImposedDisplacementVelocityValue::displacement
AVec< double > displacement
Definition: aslFDElasticityBC.h:257
asl::BCRigidWall::BCRigidWall
BCRigidWall(SPFDElasticityIncompressibleStatic nm)
asl::BCFreeSurface2::execute
virtual void execute()
Executes the numerical procedure.
asl::SPElasticityCommonA
std::shared_ptr< ElasticityCommonA > SPElasticityCommonA
Definition: aslFDElasticityBC.h:37
asl::BCRigidWallRelaxation::BCRigidWallRelaxation
BCRigidWallRelaxation(SPFDElasticityRelaxation nm)
asl::BCImposedDisplacementVelocityValue::execute
virtual void execute()
Executes the numerical procedure.
acl::SPKernel
std::shared_ptr< Kernel > SPKernel
Definition: aclKernelMerger.h:34
asl::generateBCZeroStress
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
asl::BCRigidWall::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCImposedDisplacementVelocityValue::setDisplacement
void setDisplacement(AVec< double > d)
asl::BCFreeSurface::init
virtual void init()
Builds the necesery internal data and kernels.
asl::SPFDElasticityIncompressibleStatic
std::shared_ptr< FDElasticityIncompressibleStatic > SPFDElasticityIncompressibleStatic
Definition: aslFDElasticity.h:120
asl::BCAccelerationSource2::setAcceleration
void setAcceleration(AVec< double > a)
asl::BCAccelerationSource2::BCAccelerationSource2
BCAccelerationSource2(FDElasticity2 *nm)
asl::BCRigidWall::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:53
asl::BCZeroStressMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCRigidWallRelaxation::value
acl::VectorOfElements value
Definition: aslFDElasticityBC.h:78
aslBCond.h
asl::BCRigidWallRelaxation::execute
virtual void execute()
Executes the numerical procedure.
asl::BCRigidWallRelaxation::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCZeroStressMap::mu
acl::VectorOfElements mu
Definition: aslFDElasticityBC.h:199
asl::BCImposedDisplacementVelocityValue::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCFreeSurface::num
FDElasticityIncompressibleStatic * num
Definition: aslFDElasticityBC.h:128
asl::BCZeroStressMap::BCZeroStressMap
BCZeroStressMap(SPAbstractDataWithGhostNodes displacement, acl::VectorOfElements lambda, acl::VectorOfElements mu, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
asl::BCImposedDisplacementVelocityValue::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:255
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:91
asl::BCAccelerationSource2::acceleration
acl::VectorOfElements acceleration
Definition: aslFDElasticityBC.h:279
asl::BCFreeSurface2::~BCFreeSurface2
~BCFreeSurface2()
asl::BCRigidWall::num
SPFDElasticityIncompressibleStatic num
Definition: aslFDElasticityBC.h:54
asl::BCondWithMap::map
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
asl::BCImposedDisplacementVelocityValue::num
SPFDElasticityIncompressibleStatic num
Definition: aslFDElasticityBC.h:256
asl::BCRigidWallRelaxation::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:76
asl::BCZeroStressMap::lambda
acl::VectorOfElements lambda
Definition: aslFDElasticityBC.h:198
asl::generateBCRigidWall
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
asl::SPFDElasticity2
std::shared_ptr< FDElasticity2 > SPFDElasticity2
Definition: aslFDElasticity.h:193
asl::BCZeroStressMap::kernel
acl::SPKernel kernel
Definition: aslFDElasticityBC.h:200
asl::BCFreeSurface::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:127
asl::BCAccelerationSource2::initialized
bool initialized
Definition: aslFDElasticityBC.h:280
asl::BCImposedDisplacementVelocityValue::bVelocity
bool bVelocity
Definition: aslFDElasticityBC.h:260
asl::BCImposedDisplacementVelocityValue::initialized
bool initialized
Definition: aslFDElasticityBC.h:261
asl::BCZeroStressMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::SPFDElasticityRelaxation
std::shared_ptr< FDElasticityRelaxation > SPFDElasticityRelaxation
Definition: aslFDElasticity.h:154
asl::BCFreeSurface2::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:145
asl::BCAccelerationSource2::init
virtual void init()
Builds the necesery internal data and kernels.
asl::generateBCZeroStressP
SPNumMethod generateBCZeroStressP(SPFDElasticityIncompressibleStatic nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
asl::BCAccelerationSource2::num
FDElasticity2 * num
Definition: aslFDElasticityBC.h:278
asl::BCRigidWall::execute
virtual void execute()
Executes the numerical procedure.
asl::BCFreeSurface::BCFreeSurface
BCFreeSurface(FDElasticityIncompressibleStatic *nm)
asl::BCImposedDisplacementVelocityValue::velocity
AVec< double > velocity
Definition: aslFDElasticityBC.h:259
asl::BCFreeSurface2::BCFreeSurface2
BCFreeSurface2(SPFDElasticity2 nm)
asl::BCZeroStressMap::displacement
SPAbstractDataWithGhostNodes displacement
Definition: aslFDElasticityBC.h:197
acl::map
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
asl::BCImposedDisplacementVelocityValue::bDisplacement
bool bDisplacement
Definition: aslFDElasticityBC.h:258
asl::BCRigidWallRelaxation::num
SPFDElasticityRelaxation num
Definition: aslFDElasticityBC.h:77
asl::BCFreeSurface2::num
SPFDElasticity2 num
Definition: aslFDElasticityBC.h:146
asl::BCImposedDisplacementVelocityValue::BCImposedDisplacementVelocityValue
BCImposedDisplacementVelocityValue(SPFDElasticityIncompressibleStatic nm)
asl::BCAccelerationSource2::kernel
std::unique_ptr< acl::Kernel > kernel
Definition: aslFDElasticityBC.h:277
asl::AVec<>
asl
Advanced Simulation Library.
Definition: aslDataInc.h:30
acl
Advanced Computational Language.
Definition: acl.h:40
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50