Go to the documentation of this file.
71 vector dir = cc[cellI] - origin_;
72 dir /=
mag(dir) + VSMALL;
84 vector dir = cc[cellI] - origin_;
85 dir /=
mag(dir) + VSMALL;
102 origin_(point::zero),
106 if (
dict.parent().found(
"origin"))
108 dict.parent().lookup(
"origin") >> origin_;
112 dict.lookup(
"e3") >> e3_;
156 <<
" cylindrical can not be constructed from dictionary "
157 <<
" use the construtctor : "
159 " const dictionary&, const objectRegistry&"
177 Rptr_(r.Rptr_, false),
207 vector dir = cc[cellI] - origin_;
208 dir /=
mag(dir) + VSMALL;
220 if (Rptr_->size() != vf.size())
223 <<
"vectorField st has different size to tensorField "
227 return (Rptr_() & vf);
244 return (Rptr_()[cmptI] & v);
253 return (Rptr_().
T() & vf);
270 return (Rptr_()[cmptI].
T() & v);
279 if (Rptr_->size() !=
tf.size())
282 <<
"tensorField st has different size to tensorField Tr"
285 return (Rptr_() &
tf & Rptr_().
T());
306 if (cellMap.
size() !=
tf.size())
309 <<
"tensorField tf has different size to tensorField Tr"
319 const label cellI = cellMap[i];
320 t[i] =
R[cellI] &
tf[i] & Rtr[cellI];
332 if (Rptr_->size() != vf.size())
335 <<
"tensorField vf has different size to tensorField Tr"
345 fld[i] = transformPrincipal(
R[i], vf[i]);
virtual tmp< symmTensorField > transformVector(const vectorField &vf) const
Transform vectorField using transformation tensorField and return.
Templated 3D tensor derived from VectorSpace adding construction from 9 components,...
virtual const tensor & R() const
Return local-to-global transformation tensor.
virtual tmp< tensorField > transformTensor(const tensorField &tf) const
Transform tensor field using transformation tensorField.
#define forAll(list, i)
Loop across all elements in list.
A class for managing temporary objects.
cylindrical(const dictionary &, const objectRegistry &)
Construct from dictionary and objectRegistry.
A coordinate rotation specified using global axis.
addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream)
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
A local coordinate rotation. The cell based rotational field can be created in two ways:
dimensioned< scalar > mag(const dimensioned< Type > &)
Mesh consisting of general polyhedral cells.
Field< symmTensor > symmTensorField
Specialisation of Field<T> for symmTensor.
virtual const tensor & R() const
Return local-to-global transformation tensor.
Registry of regIOobjects.
virtual void clear()
Reset rotation to an identity rotation.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
#define R(A, B, C, D, E, F, K, M)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
autoPtr< tensorField > Rptr_
AutoPtr to transformation tensor.
virtual tmp< vectorField > transform(const vectorField &tf) const
Transform vectorField using transformation tensor field.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Macros for easy insertion into run-time selection tables.
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){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
static const SymmTensor zero
errorManip< error > abort(error &err)
errorManipArg< error, int > exit(error &err, const int errNo=1)
const vectorField & cellCentres() const
virtual tmp< vectorField > invTransform(const vectorField &vf) const
Inverse transform vectorField using transformation tensor field.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Ostream & writeKeyword(const keyType &)
Write the keyword followed by an appropriate indentation.
void size(const label)
Override size to be inconsistent with allocated storage.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
defineTypeNameAndDebug(combustionModel, 0)
void init(const objectRegistry &obr, const List< label > &cells=List< label >())
Init transformation tensor field.
virtual void updateCells(const polyMesh &mesh, const labelList &cells)
Update the rotation for a list of cells.
virtual void write(Ostream &) const
Write.
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...