ASL 0.1.7
Advanced Simulation Library
Loading...
Searching...
No Matches
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
30namespace acl{
31 class Kernel;
32 typedef std::shared_ptr<Kernel> SPKernel;
33}
34
35namespace 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;
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
194 class BCZeroStressMap: public BCondWithMap
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;
258 bool bDisplacement;
260 bool bVelocity;
261 bool initialized;
262 public:
264 virtual void execute();
265 virtual void init();
268 };
269
271
274 class BCAccelerationSource2: public BCond
275 {
276 protected:
277 std::unique_ptr<acl::Kernel> kernel;
280 bool initialized;
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 ( )
virtual void execute()
Executes the numerical procedure.
BCFreeSurface2(SPFDElasticity2 nm)
virtual void init()
Builds the necesery internal data and kernels.
std::unique_ptr< acl::Kernel > kernel
Bondary condition corresponding to a free surface ( and )
virtual void execute()
Executes the numerical procedure.
std::unique_ptr< acl::Kernel > kernel
FDElasticityIncompressibleStatic * num
BCFreeSurface(FDElasticityIncompressibleStatic *nm)
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.
SPFDElasticityIncompressibleStatic num
std::unique_ptr< acl::Kernel > kernel
BCRigidWall(SPFDElasticityIncompressibleStatic nm)
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)
SPFDElasticityRelaxation num
virtual void execute()
Executes the numerical procedure.
virtual void init()
Builds the necesery internal data and kernels.
std::unique_ptr< acl::Kernel > kernel
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.
Defines set of vectros with several properties.
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
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< Kernel > SPKernel
Advanced Simulation Library.
Definition aslDataInc.h:31
SPBCond generateBCRigidWall(SPFDElasticityIncompressibleStatic nm, const std::vector< SlicesNames > &sl)
Bondary condition corresponding to a rigid wall ( and )
std::shared_ptr< FDElasticity2 > SPFDElasticity2
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
std::shared_ptr< NumMethod > SPNumMethod
std::shared_ptr< ElasticityCommonA > SPElasticityCommonA
std::shared_ptr< FDElasticityIncompressibleStatic > SPFDElasticityIncompressibleStatic
std::shared_ptr< BCond > SPBCond
Definition aslBCond.h:88
std::shared_ptr< FDElasticityRelaxation > SPFDElasticityRelaxation