32 template<
class Po
int,
class Po
intRef>
45 const scalar fac = 1 + tol;
63 scalar radiusSqr =
magSqr(ctr - a_);
67 radiusSqr < minRadiusSqr
73 minRadiusSqr = radiusSqr;
78 scalar radiusSqr =
magSqr(ctr - a_);
82 radiusSqr < minRadiusSqr
88 minRadiusSqr = radiusSqr;
93 scalar radiusSqr =
magSqr(ctr - a_);
97 radiusSqr < minRadiusSqr
103 minRadiusSqr = radiusSqr;
108 scalar radiusSqr =
magSqr(ctr - b_);
112 radiusSqr < minRadiusSqr
118 minRadiusSqr = radiusSqr;
127 point ctr = 0.5*(a_ + b_);
128 scalar radiusSqr =
magSqr(a_ - ctr);
129 scalar testRadSrq = facSqr*radiusSqr;
133 radiusSqr < minRadiusSqr
134 &&
magSqr(c_-ctr) <= testRadSrq
135 &&
magSqr(d_-ctr) <= testRadSrq)
139 minRadiusSqr = radiusSqr;
145 point ctr = 0.5*(a_ + c_);
146 scalar radiusSqr =
magSqr(a_ - ctr);
147 scalar testRadSrq = facSqr*radiusSqr;
151 radiusSqr < minRadiusSqr
152 &&
magSqr(b_-ctr) <= testRadSrq
153 &&
magSqr(d_-ctr) <= testRadSrq
158 minRadiusSqr = radiusSqr;
164 point ctr = 0.5*(a_ + d_);
165 scalar radiusSqr =
magSqr(a_ - ctr);
166 scalar testRadSrq = facSqr*radiusSqr;
170 radiusSqr < minRadiusSqr
171 &&
magSqr(b_-ctr) <= testRadSrq
172 &&
magSqr(c_-ctr) <= testRadSrq
177 minRadiusSqr = radiusSqr;
183 point ctr = 0.5*(b_ + c_);
184 scalar radiusSqr =
magSqr(b_ - ctr);
185 scalar testRadSrq = facSqr*radiusSqr;
189 radiusSqr < minRadiusSqr
190 &&
magSqr(a_-ctr) <= testRadSrq
191 &&
magSqr(d_-ctr) <= testRadSrq
196 minRadiusSqr = radiusSqr;
202 point ctr = 0.5*(b_ + d_);
203 scalar radiusSqr =
magSqr(b_ - ctr);
204 scalar testRadSrq = facSqr*radiusSqr;
208 radiusSqr < minRadiusSqr
209 &&
magSqr(a_-ctr) <= testRadSrq
210 &&
magSqr(c_-ctr) <= testRadSrq)
214 minRadiusSqr = radiusSqr;
220 point ctr = 0.5*(c_ + d_);
221 scalar radiusSqr =
magSqr(c_ - ctr);
222 scalar testRadSrq = facSqr*radiusSqr;
226 radiusSqr < minRadiusSqr
227 &&
magSqr(a_-ctr) <= testRadSrq
228 &&
magSqr(b_-ctr) <= testRadSrq
233 minRadiusSqr = radiusSqr;
244 template<
class Po
int,
class Po
intRef>
258 buffer[0] = (1.0/9.0)*
magSqr(Sa())/magVol;
259 buffer[1] = (1.0/9.0)*
magSqr(Sb())/magVol;
260 buffer[2] = (1.0/9.0)*
magSqr(Sc())/magVol;
261 buffer[3] = (1.0/9.0)*
magSqr(Sd())/magVol;
265 template<
class Po
int,
class Po
intRef>
286 buffer[0] = (1.0/9.0)*(sa & sb)/magVol;
287 buffer[1] = (1.0/9.0)*(sa & sc)/magVol;
288 buffer[2] = (1.0/9.0)*(sa & sd)/magVol;
289 buffer[3] = (1.0/9.0)*(sd & sb)/magVol;
290 buffer[4] = (1.0/9.0)*(sb & sc)/magVol;
291 buffer[5] = (1.0/9.0)*(sd & sc)/magVol;
295 template<
class Po
int,
class Po
intRef>
306 buffer[0] = (1.0/9.0)*
sqr(Sa())/magVol;
307 buffer[1] = (1.0/9.0)*
sqr(Sb())/magVol;
308 buffer[2] = (1.0/9.0)*
sqr(Sc())/magVol;
309 buffer[3] = (1.0/9.0)*
sqr(Sd())/magVol;
313 template<
class Po
int,
class Po
intRef>
330 buffer[0] = (1.0/9.0)*(sa * sb)/magVol;
331 buffer[1] = (1.0/9.0)*(sa * sc)/magVol;
332 buffer[2] = (1.0/9.0)*(sa * sd)/magVol;
333 buffer[3] = (1.0/9.0)*(sd * sb)/magVol;
334 buffer[4] = (1.0/9.0)*(sb * sc)/magVol;
335 buffer[5] = (1.0/9.0)*(sd * sc)/magVol;
339 template<
class Po
int,
class Po
intRef>
pointHit containmentSphere(const scalar tol) const
Return (min)containment sphere, i.e. the smallest sphere with.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
void gradNiSquared(scalarField &buffer) const
Fill buffer with shape function products.
dimensionedScalar sqrt(const dimensionedScalar &ds)
A bounding box defined in terms of the points at its extremities.
const dimensionedScalar & c
Speed of light in a vacuum.
void setDistance(const scalar d)
const dimensionedScalar & b
Wien displacement law constant: default SI units: [m K].
void gradNiGradNi(tensorField &buffer) const
This class describes the interaction of a face and a point. It carries the info of a successful hit a...
void setMiss(const bool eligible)
dimensioned< scalar > magSqr(const dimensioned< Type > &)
const Point & rawPoint() const
Return point with no checking.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
boundBox bounds() const
Calculate the bounding box.
void gradNiGradNj(tensorField &buffer) const
triangle< point, const point & > triPointRef
dimensioned< scalar > mag(const dimensioned< Type > &)
void gradNiDotGradNj(scalarField &buffer) const
void setPoint(const Point &p)