24 #ifndef ASLDISTANCEFUNCTION_H 25 #define ASLDISTANCEFUNCTION_H 27 #include <acl/aclMath/aclVectorOfElementsDef.h> 28 #include <aslUtilities.h> 32 class KernelConfiguration;
37 template <
typename T>
class AVec;
40 class AbstractDataWithGhostNodes;
48 class DistanceFunction
53 virtual ~DistanceFunction();
61 class DistFBinaryOperation:
public DistanceFunction
64 SPDistanceFunction e1;
65 SPDistanceFunction e2;
67 DistFBinaryOperation(SPDistanceFunction a, SPDistanceFunction b);
71 class DistFUnaryOperation:
public DistanceFunction
74 SPDistanceFunction e1;
76 DistFUnaryOperation(SPDistanceFunction a);
80 class DistFOperationAnd:
public DistFBinaryOperation
83 DistFOperationAnd(SPDistanceFunction a, SPDistanceFunction b);
88 class DistFOperationOr:
public DistFBinaryOperation
91 DistFOperationOr(SPDistanceFunction a, SPDistanceFunction b);
96 class DistFOperationInversion:
public DistFUnaryOperation
99 DistFOperationInversion(SPDistanceFunction a);
105 class DistFSphere:
public DistanceFunction
111 DistFSphere(
double r,
const AVec<double> & c);
118 class DistFCylinder:
public DistanceFunction
130 DistFCylinder(
double r,
const AVec<double> & l,
const AVec<double> & c);
137 class DistFCone:
public DistanceFunction
149 DistFCone(
double th,
const AVec<double> & l,
const AVec<double> & a);
156 class DistFPlane:
public DistanceFunction
162 DistFPlane(AVec<double> n, AVec<double> p0);
169 class DistFNormalization:
public DistFUnaryOperation
174 static const double scaleFactor;
175 DistFNormalization(SPDistanceFunction a,
double dx);
181 class DataInterpolation:
public DistanceFunction
184 SPAbstractDataWithGhostNodes data;
187 DataInterpolation(SPAbstractDataWithGhostNodes d);
193 #endif // ASLDISTANCEFUNCTION Advanced Simulation Library.
Advanced Computational Language.
std::shared_ptr< DistanceFunction > SPDistanceFunction
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
The class represents several Element.
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes