38 template<
class Form,
class Cmpt,
int nCmpt>
43 template<
class Form,
class Cmpt,
int nCmpt>
53 template<
class Form,
class Cmpt,
int nCmpt>
54 template<
class Form2,
class Cmpt2>
66 template<
class Form,
class Cmpt,
int nCmpt>
73 template<
class Form,
class Cmpt,
int nCmpt>
84 "VectorSpace<Form, Cmpt, nCmpt>::component(direction) const" 85 ) <<
"index out of range" 94 template<
class Form,
class Cmpt,
int nCmpt>
103 FatalErrorIn(
"VectorSpace<Form, Cmpt, nCmpt>::component(direction)")
104 <<
"index out of range" 113 template<
class Form,
class Cmpt,
int nCmpt>
125 "VectorSpace<Form, Cmpt, nCmpt>::component(Cmpt&, direction) const" 126 ) <<
"index out of range" 135 template<
class Form,
class Cmpt,
int nCmpt>
147 "VectorSpace<Form, Cmpt, nCmpt>::" 148 "replace(direction, const Cmpt&) const" 149 ) <<
"index out of range" 160 template<
class Form,
class Cmpt,
int nCmpt>
161 inline const Cmpt& VectorSpace<Form, Cmpt, nCmpt>::operator[]
171 "VectorSpace<Form, Cmpt, nCmpt>::operator[](direction d) const" 172 ) <<
"index out of range" 181 template<
class Form,
class Cmpt,
int nCmpt>
182 inline Cmpt& VectorSpace<Form, Cmpt, nCmpt>::operator[]
190 FatalErrorIn(
"VectorSpace<Form, Cmpt, nCmpt>::operator[](direction d)")
191 <<
"index out of range" 200 template<
class Form,
class Cmpt,
int nCmpt>
201 inline void VectorSpace<Form, Cmpt, nCmpt>::operator=
210 template<
class Form,
class Cmpt,
int nCmpt>
211 inline void VectorSpace<Form, Cmpt, nCmpt>::operator+=
220 template<
class Form,
class Cmpt,
int nCmpt>
221 inline void VectorSpace<Form, Cmpt, nCmpt>::operator-=
230 template<
class Form,
class Cmpt,
int nCmpt>
231 inline void VectorSpace<Form, Cmpt, nCmpt>::operator*=
240 template<
class Form,
class Cmpt,
int nCmpt>
241 inline void VectorSpace<Form, Cmpt, nCmpt>::operator/=
252 template<
class Form,
class Cmpt,
int nCmpt>
263 template<
class Form,
class Cmpt,
int nCmpt>
277 template<
class Form,
class Cmpt,
int nCmpt>
289 template<
class Form,
class Cmpt,
int nCmpt>
297 return static_cast<const Form&
>(v);
302 template<
class Form,
class Cmpt,
int nCmpt>
310 return sqr(static_cast<const Form&>(v));
314 template<
class Form,
class Cmpt,
int nCmpt>
326 template<
class Form,
class Cmpt,
int nCmpt>
336 template<
class Form,
class Cmpt,
int nCmpt>
349 template<
class Form,
class Cmpt,
int nCmpt>
362 template<
class Form,
class Cmpt,
int nCmpt>
375 template<
class Form,
class Cmpt,
int nCmpt>
388 template<
class Form,
class Cmpt,
int nCmpt>
394 Cmpt cMax = vs.
v_[0];
400 template<
class Form,
class Cmpt,
int nCmpt>
406 Cmpt cMin = vs.
v_[0];
412 template<
class Form,
class Cmpt,
int nCmpt>
424 template<
class Form,
class Cmpt,
int nCmpt>
433 template<
class Form,
class Cmpt,
int nCmpt>
439 Cmpt product = vs.
v_[0];
445 template<
class Form,
class Cmpt,
int nCmpt>
457 template<
class Form,
class Cmpt,
int nCmpt>
470 template<
class Form,
class Cmpt,
int nCmpt>
483 template<
class Form,
class Cmpt,
int nCmpt>
497 inline Type
dot(
const scalar
s,
const Type& t)
504 inline Type
dot(
const Type& t,
const scalar
s)
512 class Form1,
class Cmpt1,
int nCmpt1,
513 class Form2,
class Cmpt2,
int nCmpt2
521 return static_cast<const Form1&
>(t1) & static_cast<const Form2&>(t2);
527 template<
class Form,
class Cmpt,
int nCmpt>
528 inline Form
operator-
539 template<
class Form,
class Cmpt,
int nCmpt>
540 inline Form
operator+
551 template<
class Form,
class Cmpt,
int nCmpt>
552 inline Form
operator-
564 template<
class Form,
class Cmpt,
int nCmpt>
565 inline Form
operator*
577 template<
class Form,
class Cmpt,
int nCmpt>
578 inline Form
operator*
590 template<
class Form,
class Cmpt,
int nCmpt>
591 inline Form
operator/
630 template<
class Form,
class Cmpt,
int nCmpt>
631 inline Cmpt
operator&&
637 Cmpt ddProd = vs1.
v_[0]*vs2.
v_[0];
638 for (
int i=1; i<nCmpt; ++i)
640 ddProd += vs1.
v_[i]*vs2.
v_[i];
646 template<
class Form,
class Cmpt,
int nCmpt>
647 inline bool operator==
654 for (
int i=0; i<nCmpt; ++i)
656 if (!(eq &= (
equal(vs1.
v_[i], vs2.
v_[i]))))
break;
662 template<
class Form,
class Cmpt,
int nCmpt>
663 inline bool operator!=
669 return !(vs1 == vs2);
673 template<
class Form,
class Cmpt,
int nCmpt>
674 inline bool operator>
681 for (
int i=0; i<nCmpt; ++i)
683 if (!(gt &= vs1.
v_[i] > vs2.
v_[i]))
break;
689 template<
class Form,
class Cmpt,
int nCmpt>
690 inline bool operator<
697 for (
int i=0; i<nCmpt; ++i)
699 if (!(lt &= vs1.
v_[i] < vs2.
v_[i]))
break;
705 template<
class Form,
class Cmpt,
int nCmpt>
706 inline bool operator>=
716 template<
class Form,
class Cmpt,
int nCmpt>
717 inline bool operator<=
dimensionedScalar sqrt(const dimensionedScalar &ds)
label size() const
Return the number of elements in the VectorSpace = nCmpt.
static void opVS(V &vs, const V1 &vs1, const S &s, Op o)
Scalar cmptPow(const Scalar s1, const Scalar s2)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject( name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE ))
dimensioned< scalar > mag(const dimensioned< Type > &)
Scalar minMod(const Scalar s1, const Scalar s2)
static void eqOpS(V &vs, const S &s, EqOp eo)
const Cmpt & component(const direction) const
dimensioned< scalar > magSqr(const dimensioned< Type > &)
label & setComponent(label &l, const direction)
void cmptMax(FieldField< Field, typename FieldField< Field, Type >::cmptType > &cf, const FieldField< Field, Type > &f)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
typeOfRank< typename pTraits< arg1 >::cmptType, int(pTraits< arg1 >::rank)+int(pTraits< arg2 >::rank)-2 >::type type
void cmptMin(FieldField< Field, typename FieldField< Field, Type >::cmptType > &cf, const FieldField< Field, Type > &f)
static void op(V &vs, const V1 &vs1, const V1 &vs2, Op o)
Traits classes for inner and outer products of primitives.
void dot(FieldField< Field1, typename innerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
dimensioned< Type > cmptDivide(const dimensioned< Type > &, const dimensioned< Type > &)
Cmpt v_[nCmpt]
The components of this vector space.
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
VectorSpace()
Construct null.
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
void replace(const direction, const Cmpt &)
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
errorManip< error > abort(error &err)
static void opSV(V &vs, const S &s, const V1 &vs1, Op o)
#define FatalErrorIn(functionName)
Report an error message using Foam::FatalError.
tmp< DimensionedField< scalar, GeoMesh > > stabilise(const DimensionedField< scalar, GeoMesh > &dsf, const dimensioned< scalar > &ds)
Cmpt cmptSum(const VectorSpace< Form, Cmpt, nCmpt > &vs)
Traits class for primitives.
dimensioned< Type > cmptMultiply(const dimensioned< Type > &, const dimensioned< Type > &)
Cmpt cmptProduct(const VectorSpace< Form, Cmpt, nCmpt > &vs)
void cmptMag(FieldField< Field, Type > &cf, const FieldField< Field, Type > &f)
static void eqOp(V1 &vs1, const V2 &vs2, EqOp eo)
const dimensionedScalar c
Speed of light in a vacuum.
tmp< DimensionedField< typename DimensionedField< Type, GeoMesh >::cmptType, GeoMesh >> cmptAv(const DimensionedField< Type, GeoMesh > &df)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Combination-Reduction operation for a parallel run.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
bool equal(const T &s1, const T &s2)
static void SeqOp(S &s, const V &vs, EqOp eo)
symmTypeOfRank< typename pTraits< arg1 >::cmptType, arg2 *int(pTraits< arg1 >::rank) >::type type