26#ifndef functionObjects_ITHACAforces_H
27#define functionObjects_ITHACAforces_H
29#include "fvMeshFunctionObject.H"
31#include "cartesianCS.H"
32#include "volFieldsFwd.H"
42namespace functionObjects
51 public fvMeshFunctionObject,
60 List<Field<vector >> force_;
63 List<Field<vector >> moment_;
68 autoPtr<OFstream> forceFilePtr_;
71 autoPtr<OFstream> momentFilePtr_;
74 autoPtr<OFstream> forceBinFilePtr_;
77 autoPtr<OFstream> momentBinFilePtr_;
80 autoPtr<OFstream> localForceFilePtr_;
83 autoPtr<OFstream> localMomentFilePtr_;
86 autoPtr<OFstream> localForceBinFilePtr_;
89 autoPtr<OFstream> localMomentBinFilePtr_;
95 labelHashSet patchSet_;
107 Switch directForceDensity_;
119 coordSystem::cartesian coordSys_;
143 List<point> binPoints_;
159 word fieldName(
const word& name)
const;
165 void writeIntegratedHeader(
const word& header, Ostream& os)
const;
168 void writeBinHeader(
const word& header, Ostream& os)
const;
174 void initialiseBins();
180 tmp<volSymmTensorField> devRhoReff()
const;
183 tmp<volScalarField> mu()
const;
186 tmp<volScalarField> rho()
const;
190 scalar rho(
const volScalarField& p)
const;
195 const vectorField& Md,
196 const vectorField& fN,
197 const vectorField& fT,
198 const vectorField& fP,
206 const vectorField& Md,
207 const vectorField& fN,
208 const vectorField& fT,
209 const vectorField& fP
215 const labelList& cellIDs,
216 const vectorField& Md,
217 const vectorField& fN,
218 const vectorField& fT,
219 const vectorField& fP
223 void writeIntegratedForceMoment
225 const string& descriptor,
226 const vectorField& fm0,
227 const vectorField& fm1,
228 const vectorField& fm2,
229 autoPtr<OFstream>& osPtr
236 void writeBinnedForceMoment
238 const List<Field<vector >>& fm,
239 autoPtr<OFstream>& osPtr
246 ITHACAforces(
const ITHACAforces&) =
delete;
249 void operator=(
const ITHACAforces&) =
delete;
255 TypeName(
"ITHACAforces");
265 const dictionary& dict,
266 const bool readFields =
true
273 const objectRegistry& obr,
274 const dictionary& dict,
275 const bool readFields =
true
280 virtual ~ITHACAforces();
286 virtual bool read(
const dictionary&);
289 virtual void calcForcesMoment();
292 virtual vector forceEff()
const;
295 virtual vector momentEff()
const;
298 virtual vector forceTau()
const;
301 virtual vector forcePressure()
const;
304 virtual bool execute();
307 virtual bool write();