ASL 0.1.7
Advanced Simulation Library
Loading...
Searching...
No Matches
aslDistanceFunction.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 ASLDISTANCEFUNCTION_H
25#define ASLDISTANCEFUNCTION_H
26
27#include <acl/aclMath/aclVectorOfElementsDef.h>
28#include <aslUtilities.h>
29
30namespace acl
31{
32 class KernelConfiguration;
33}
34
35namespace asl {
36
37 template <typename T> class AVec;
38 class Block;
39
40 class AbstractDataWithGhostNodes;
41 typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
42
45
48 class DistanceFunction
49 {
50 protected:
52 public:
55 };
56
58 typedef std::shared_ptr<DistanceFunction> SPDistanceFunction;
59
62 {
63 protected:
66 public:
68 };
69
72 {
73 protected:
75 public:
77 };
78
81 {
82 public:
85 };
86
89 {
90 public:
93 };
94
97 {
98 public:
101 };
102
103
105 class DistFSphere: public DistanceFunction
106 {
107 private:
110 public:
111 DistFSphere(double r, const AVec<double> & c);
113 };
114
116
118 class DistFCylinder: public DistanceFunction
119 {
120 private:
122 acl::VectorOfElements orientation;
124 public:
130 DistFCylinder(double r, const AVec<double> & l, const AVec<double> & c);
132 };
133
135
137 class DistFCone: public DistanceFunction
138 {
139 private:
140 acl::VectorOfElements tanTheta;
141 acl::VectorOfElements orientation;
143 public:
149 DistFCone(double th, const AVec<double> & l, const AVec<double> & a);
151 };
152
154
156 class DistFPlane: public DistanceFunction
157 {
158 private:
161 public:
164 };
165
166
170 {
171 protected:
173 public:
174 static const double scaleFactor;
177 };
178
182 {
183 protected:
185
186 public:
189 };
190
191} // asl
192
193#endif // ASLDISTANCEFUNCTION
The class represents several Element.
DataInterpolation(SPAbstractDataWithGhostNodes d)
SPAbstractDataWithGhostNodes data
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFBinaryOperation(SPDistanceFunction a, SPDistanceFunction b)
DistFCone(double th, const AVec< double > &l, const AVec< double > &a)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFCylinder(double r, const AVec< double > &l, const AVec< double > &c)
DistFNormalization(SPDistanceFunction a, double dx)
static const double scaleFactor
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
acl::VectorOfElements factor
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFOperationAnd(SPDistanceFunction a, SPDistanceFunction b)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFOperationInversion(SPDistanceFunction a)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFOperationOr(SPDistanceFunction a, SPDistanceFunction b)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFPlane(AVec< double > n, AVec< double > p0)
DistFSphere(double r, const AVec< double > &c)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)
DistFUnaryOperation(SPDistanceFunction a)
virtual acl::VectorOfElements getDistance(const acl::VectorOfElements &pos)=0
virtual ~DistanceFunction()
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
std::shared_ptr< DistanceFunction > SPDistanceFunction
Definition aslGeomInc.h:45
Advanced Computational Language.
Definition acl.h:41
Advanced Simulation Library.
Definition aslDataInc.h:31
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes