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{
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
65
67 const std::vector<SlicesNames> & sl);
68
70
85
87
90
92 const std::vector<SlicesNames> & sl);
93
95
98
100 const std::vector<SlicesNames> & sl);
101
103
106
108 const AVec<> & u0,
109 const std::vector<SlicesNames> & sl);
110
112
115
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
143 {
144 protected:
145 std::unique_ptr<acl::Kernel> kernel;
147 public:
150 virtual void execute();
151 virtual void init();
152 };
153
155
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
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
OpenCl Kernel generator.
Definition aclKernel.h:49
The class represents several Element.
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
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
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.
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.
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)
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.
BCond(const Block &b)
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition aslBCond.h:111
BCondWithMap(SPAbstractDataWithGhostNodes m, const VectorTemplate *const vt)
abstract class for elasticity solver
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.
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