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"
29 
30 namespace acl{
31  class Kernel;
32  typedef std::shared_ptr<Kernel> SPKernel;
33 }
34 
35 namespace asl
36 {
38  typedef std::shared_ptr<ElasticityCommonA> SPElasticityCommonA;
40  typedef std::shared_ptr<FDElasticityIncompressibleStatic> SPFDElasticityIncompressibleStatic;
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 
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;
129  public:
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 
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 
253  {
254  protected:
255  std::unique_ptr<acl::Kernel> kernel;
260  bool bVelocity;
262  public:
264  virtual void execute();
265  virtual void init();
267  void setVelocity(AVec<double> v);
268  };
269 
271 
275  {
276  protected:
277  std::unique_ptr<acl::Kernel> kernel;
281  public:
283  virtual void execute();
284  virtual void init();
286  };
287 
288 } //asl
289 
290 #endif //ASLFDELASTICITYBC_H
Numerical method which computes homogenious isotropic elasticity equation.
Bondary condition set given values to displacement/velocity.
BCRigidWallRelaxation(SPFDElasticityRelaxation nm)
virtual void init()
Builds the necesery internal data and kernels.
void setAcceleration(AVec< double > a)
acl::VectorOfElements value
std::shared_ptr< ElasticityCommonA > SPElasticityCommonA
Advanced Simulation Library.
Definition: aslDataInc.h:30
Advanced Computational Language.
Definition: acl.h:40
std::shared_ptr< Kernel > SPKernel
Numerical method which computes homogenious isotropic elasticity equation.
SPFDElasticityIncompressibleStatic num
std::unique_ptr< acl::Kernel > kernel
virtual void execute()
Executes the numerical procedure.
std::shared_ptr< FDElasticityIncompressibleStatic > SPFDElasticityIncompressibleStatic
BCAccelerationSource2(FDElasticity2 *nm)
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:58
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
BCFreeSurface2(SPFDElasticity2 nm)
virtual void execute()
Executes the numerical procedure.
std::unique_ptr< acl::Kernel > kernel
abstract class for elasticity solver
BCImposedDisplacementVelocityValue(SPFDElasticityIncompressibleStatic nm)
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
virtual void execute()
Executes the numerical procedure.
Numerical method which computes homogenious isotropic elasticity equation.
virtual void execute()
Executes the numerical procedure.
FDElasticityIncompressibleStatic * num
std::shared_ptr< BCond > SPBCond
Definition: aslBCond.h:88
virtual void execute()
Executes the numerical procedure.
Bondary condition corresponding to a free surface.
acl::VectorOfElements lambda
virtual void init()
Builds the necesery internal data and kernels.
SPFDElasticityRelaxation num
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
SPAbstractDataWithGhostNodes displacement
SPFDElasticityIncompressibleStatic num
std::shared_ptr< FDElasticityRelaxation > SPFDElasticityRelaxation
Bondary condition corresponding to a free surface ( )
BCFreeSurface(FDElasticityIncompressibleStatic *nm)
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
std::shared_ptr< FDElasticity2 > SPFDElasticity2
The class represents several Element.
BCRigidWall(SPFDElasticityIncompressibleStatic nm)
virtual void init()
Builds the necesery internal data and kernels.
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
virtual void init()
Builds the necesery internal data and kernels.
virtual void init()
Builds the necesery internal data and kernels.
std::unique_ptr< acl::Kernel > kernel
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:100
SPNumMethod generateBCZeroStressP(SPFDElasticityIncompressibleStatic nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
void setDisplacement(AVec< double > d)
acl::VectorOfElements acceleration
virtual void execute()
Executes the numerical procedure.
Bondary condition corresponding to a free surface ( and )
std::unique_ptr< acl::Kernel > kernel
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
Bondary condition local force(acceleration)
std::unique_ptr< acl::Kernel > kernel
Defines set of vectros with several properties.
Definition: aslTemplates.h:87
std::unique_ptr< acl::Kernel > kernel
Bondary condition corresponding to a rigid wall ( and )
virtual void init()
Builds the necesery internal data and kernels.
acl::VectorOfElements mu
Bondary condition corresponding to a rigid wall ( and )
BCZeroStressMap(SPAbstractDataWithGhostNodes displacement, acl::VectorOfElements lambda, acl::VectorOfElements mu, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)