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 {
37  class ElasticityCommonA;
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:
150  virtual void execute();
151  virtual void init();
152  };
153 
155 
195  {
196  protected:
201  public:
206  const VectorTemplate *const t);
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();
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
The class represents several Element.
Bondary condition local force(acceleration)
virtual void execute()
Executes the numerical procedure.
acl::VectorOfElements acceleration
virtual void init()
Builds the necesery internal data and kernels.
BCAccelerationSource2(FDElasticity2 *nm)
void setAcceleration(AVec< double > a)
std::unique_ptr< acl::Kernel > kernel
Bondary condition corresponding to a free surface ( )
std::unique_ptr< acl::Kernel > kernel
virtual void execute()
Executes the numerical procedure.
BCFreeSurface2(SPFDElasticity2 nm)
virtual void init()
Builds the necesery internal data and kernels.
Bondary condition corresponding to a free surface ( and )
virtual void execute()
Executes the numerical procedure.
FDElasticityIncompressibleStatic * num
BCFreeSurface(FDElasticityIncompressibleStatic *nm)
std::unique_ptr< acl::Kernel > kernel
virtual void init()
Builds the necesery internal data and kernels.
Bondary condition set given values to displacement/velocity.
std::unique_ptr< acl::Kernel > kernel
virtual void init()
Builds the necesery internal data and kernels.
void setDisplacement(AVec< double > d)
BCImposedDisplacementVelocityValue(SPFDElasticityIncompressibleStatic nm)
SPFDElasticityIncompressibleStatic num
virtual void execute()
Executes the numerical procedure.
Bondary condition corresponding to a rigid wall ( and )
SPFDElasticityIncompressibleStatic num
BCRigidWall(SPFDElasticityIncompressibleStatic nm)
std::unique_ptr< acl::Kernel > kernel
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
Bondary condition corresponding to a rigid wall ( and )
acl::VectorOfElements value
BCRigidWallRelaxation(SPFDElasticityRelaxation nm, acl::VectorOfElements v)
std::unique_ptr< acl::Kernel > kernel
SPFDElasticityRelaxation num
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
BCRigidWallRelaxation(SPFDElasticityRelaxation nm)
Bondary condition corresponding to a free surface.
SPAbstractDataWithGhostNodes displacement
acl::VectorOfElements lambda
BCZeroStressMap(SPAbstractDataWithGhostNodes displacement, acl::VectorOfElements lambda, acl::VectorOfElements mu, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
acl::VectorOfElements mu
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
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
Numerical method which computes homogenious isotropic elasticity equation.
Numerical method which computes homogenious isotropic elasticity equation.
Numerical method which computes homogenious isotropic elasticity equation.
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
SPNumMethod generateBCZeroStressP(SPFDElasticityIncompressibleStatic nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
SPNumMethod generateBCZeroStress(SPElasticityCommonA nm, SPAbstractDataWithGhostNodes map)
Bondary condition set given values to displacement/velocity.
Advanced Computational Language.
Definition: acl.h:41
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
std::shared_ptr< Kernel > SPKernel
Advanced Simulation Library.
Definition: aslDataInc.h:31
std::shared_ptr< ElasticityCommonA > SPElasticityCommonA
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
std::shared_ptr< BCond > SPBCond
Definition: aslBCond.h:88
std::shared_ptr< FDElasticity2 > SPFDElasticity2
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
std::shared_ptr< FDElasticityIncompressibleStatic > SPFDElasticityIncompressibleStatic
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
std::shared_ptr< FDElasticityRelaxation > SPFDElasticityRelaxation