Go to the documentation of this file.
100 #ifndef coordinateSystem_H
101 #define coordinateSystem_H
120 class coordinateSystem;
121 class objectRegistry;
123 namespace coordSystem
172 template<
class Po
intField>
176 template<
class Po
intField>
180 template<
class Po
intField>
184 template<
class RetType,
class Type,
class BinaryOp>
193 template<
class RetType,
class Po
intField,
class Type,
class BinaryOp>
196 const PointField& global,
202 template<
class RetType,
class Po
intField,
class Type,
class BinaryOp>
205 const PointField& global,
440 virtual bool valid()
const
464 virtual const string&
note()
const
476 virtual const tensor&
R()
const
509 virtual string&
note()
522 virtual void clear();
648 #undef defineCoordinateSystemTransform
649 #define defineCoordinateSystemTransform(Op, RetType, Type) \
652 virtual RetType Op(const Type& input) const; \
655 virtual tmp<Field<RetType>> Op(const UList<Type>& input) const; \
658 virtual RetType Op(const point& global, const Type& input) const; \
661 virtual tmp<Field<RetType>> Op \
663 const UList<point>& global, \
668 virtual tmp<Field<RetType>> Op \
670 const pointUIndList& global, \
675 virtual tmp<Field<RetType>> Op \
677 const UList<point>& global, \
678 const UList<Type>& input \
682 virtual tmp<Field<RetType>> Op \
684 const pointUIndList& global, \
685 const UList<Type>& input \
713 #undef defineCoordinateSystemTransform
722 bool operator!=(
const coordinateSystem& a,
const coordinateSystem&
b);
725 Ostream&
operator<<(Ostream&
os,
const coordinateSystem& csys);
point globalPosition(const point &local) const
From local coordinate position to global (cartesian) position.
static autoPtr< T > New(Args &&... args)
Construct autoPtr of T with forwarding arguments.
virtual const vector e3() const
The local Cartesian z-axis in global coordinates.
string note_
An optional note describing the coordinate system.
SphericalTensor< scalar > sphericalTensor
SphericalTensor of scalars, i.e. SphericalTensor<scalar>.
vector localVector(const vector &global) const
From global (cartesian) to local vector components.
virtual symmTensor transformPrincipal(const vector &input) const
With constant rotation tensor.
A class for handling words, derived from Foam::string.
virtual void clear()
Reset origin and rotation to an identity coordinateSystem.
A class for managing temporary objects.
virtual const word & name() const
Return the name.
const word dictName("faMeshDefinition")
void operator=(const coordinateSystem &csys)
Copy assignment.
static coordinateSystem dummy_
Dummy coordinate system for suppressed manipulation.
tmp< pointField > invTransformPointImpl(const PointField &global) const
Implementation for transformPosition() methods.
tmp< Field< RetType > > oneToOneImpl(const PointField &global, const UList< Type > &input, const BinaryOp &bop) const
Use position-dependent transform tensors for multiple inputs.
Vector< Cmpt > cy() const
Extract vector for column 1.
virtual ~coordinateSystem()=default
Destructor.
virtual const coordinateRotation & rotation() const
The rotation specification.
Registry of regIOobjects.
bool operator!=(const eddy &a, const eddy &b)
virtual const point & origin() const
Return origin.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
virtual scalar invTransform(const scalar &input) const
With constant rotation tensor.
virtual bool uniform() const
True if the rotation tensor is uniform for all locations.
tmp< pointField > transformPointImpl(const PointField &localCart) const
Implementation for transformPoint() methods.
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
virtual const vector e2() const
The local Cartesian y-axis in global coordinates.
Vector< Cmpt > cz() const
Extract vector for column 2.
User specification of a coordinate rotation.
vector globalVector(const vector &local) const
From local to global (cartesian) vector components.
static autoPtr< coordinateSystem > New(word modelType, const objectRegistry &obr, const dictionary &dict)
virtual string & note()
Edit access to optional note.
SymmTensor< scalar > symmTensor
SymmTensor of scalars, i.e. SymmTensor<scalar>.
virtual bool valid() const
Considered valid if it has a specification.
word name_
The name of the coordinate system (optional)
static tmp< Field< RetType > > manyTimesImpl(const tensor &tt, const UList< Type > &input, const BinaryOp &bop)
Apply single transform tensor for multiple inputs.
TypeName("coordinateSystem")
Runtime type information.
tmp< pointField > globalPosition(const pointField &local) const
From local coordinate position to global (cartesian) position.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
autoPtr< coordinateRotation > spec_
User specification of the coordinate rotation.
virtual vector globalToLocal(const vector &global, bool translate) const
tmp< Field< RetType > > oneToManyImpl(const PointField &global, const Type &input, const BinaryOp &bop) const
Use position-dependent transform tensors for single input.
Vector< scalar > vector
A scalar version of the templated Vector.
#define defineCoordinateSystemTransform(Op, RetType, Type)
virtual scalar transform(const scalar &input) const
With constant rotation tensor.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
declareRunTimeSelectionTable(autoPtr, coordinateSystem, dictionary,(const dictionary &dict),(dict))
tensor rot_
The rotation tensor.
Vector< Cmpt > cx() const
Extract vector for column 0.
point origin_
The coordinate system origin.
coordinateSystem()
Default construct. This is an identity coordinate system.
void assign(const dictionary &dict)
Assign from dictionary content.
point localPosition(const point &global) const
From global (cartesian) position to local coordinate position.
static Istream & input(Istream &is, IntRange< T > &range)
tmp< vectorField > globalVector(const vectorField &local) const
From local to global (cartesian) vector components.
virtual void write(Ostream &os) const
Write.
tmp< tensorField > rotationsImpl(const PointField &global) const
Implementation for R() methods.
virtual vector localToGlobal(const vector &local, bool translate) const
A List with indirect addressing.
virtual const vector e1() const
The local Cartesian x-axis in global coordinates.
point invTransformPoint(const point &global) const
Remove origin offset and inverse transform point.
virtual void rename(const word &newName)
Rename.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Helper for construction of coordinateSystem PtrList.
virtual const string & note() const
Return the optional note.
autoPtr< coordinateSystem > operator()(Istream &is) const
virtual autoPtr< coordinateSystem > clone() const
Return clone.
A coordinate system forward to a global coordinate system that is normally provided by the constant/c...
Tensor< scalar > tensor
Tensor of scalars, i.e. Tensor<scalar>.
tmp< vectorField > localVector(const vectorField &global) const
From global (cartesian) to local vector components.
point transformPoint(const point &localCart) const
Transform point and add origin offset.
virtual void writeEntry(const word &keyword, Ostream &os) const
Write dictionary entry.
tmp< pointField > localPosition(const pointField &global) const
From global (cartesian) position to local coordinate position.
Base class for coordinate system specification, the default coordinate system type is cartesian .
virtual point & origin()
Edit access to origin.
virtual const tensor & R() const
Return const reference to the rotation tensor.