36#include "passivePositionParticleCloud.H"
40template<
class Container>
43 const IOobjectList& objects,
44 const wordRes& selectedFields
49 selectedFields.empty()
50 ? objects.names<Container>()
51 : objects.names<Container>(selectedFields)
70 const mapDistributeBase& map,
72 const IOobjectList& objects,
73 const wordRes& selectedFields
76 typedef IOField<Type> fieldType;
80 filterObjects<fieldType>
91 for (
const word& objectName : fieldNames)
107 Info<<
" Distributing lagrangian "
108 << fieldType::typeName <<
"s\n" <<
nl;
110 Info<<
" " << objectName <<
nl;
120 srcMesh_.time().timeName(),
130 map.distribute(
field);
133 const IOobject fieldIO
136 tgtMesh_.time().timeName(),
146 IOField<Type>(fieldIO, std::move(
field)).write();
148 else if (!reconstruct)
153 const fileName fldName(fieldIO.objectPath());
158 if (nFields && verbose_)
Info<<
endl;
166 const mapDistributeBase& map,
168 const IOobjectList& objects,
169 const wordRes& selectedFields
172 typedef CompactIOField<Field<Type>, Type> fieldType;
174 DynamicList<word> fieldNames;
178 filterObjects<fieldType>
188 filterObjects<IOField<Field<Type>>>
198 for (
const word& objectName : fieldNames)
214 Info<<
" Distributing lagrangian "
215 << fieldType::typeName <<
"s\n" <<
nl;
217 Info<<
" " << objectName <<
nl;
222 CompactIOField<Field<Type>, Type>
field
227 srcMesh_.time().timeName(),
238 map.distribute(
field);
241 const IOobject fieldIO
244 tgtMesh_.time().timeName(),
254 CompactIOField<Field<Type>, Type>
260 else if (!reconstruct)
265 const fileName fldName(fieldIO.objectPath());
270 if (nFields && verbose_)
Info<<
endl;
275template<
class Container>
278 const passivePositionParticleCloud& cloud,
279 const IOobjectList& objects,
280 const wordRes& selectedFields
283 const word fieldClassName(Container::typeName);
287 filterObjects<Container>
295 for (
const word& objectName : fieldNames)
301 Info<<
" Reading lagrangian "
302 << Container::typeName <<
"s\n" <<
nl;
304 Info<<
" " << objectName <<
nl;
309 Container* fieldPtr =
new Container
314 cloud.time().timeName(),
325 if (nFields && verbose_)
Info<<
endl;
330template<
class Container>
333 const mapDistributeBase& map,
334 passivePositionParticleCloud& cloud
337 HashTable<Container*>
fields
339 cloud.lookupClass<Container>()
347 Container&
field = *(iter.val());
363 Info<<
" Distributing lagrangian "
364 << Container::typeName <<
"s\n" <<
nl;
370 map.distribute(
field);
372 const IOobject fieldIO
375 tgtMesh_.time().timeName(),
385 Container(fieldIO, std::move(
field)).write();
387 else if (!reconstruct)
392 const fileName fldName(fieldIO.objectPath());
397 if (nFields && verbose_)
Info<<
endl;
static void combineGather(const List< commsStruct > &comms, T &value, const CombineOp &cop, const int tag, const label comm)
static void broadcast(Type &value, const label comm=UPstream::worldComm)
static const word prefix
The prefix to local: lagrangian.
Reads fields from the time directories and adds them to the mesh database for further post-processing...
static wordList filterObjects(const IOobjectList &objects, const wordRes &selectedFields=wordRes())
Pick up any fields of a given type.
label distributeStoredFields(const mapDistributeBase &map, passivePositionParticleCloud &cloud) const
Redistribute and write stored lagrangian fields.
label distributeFieldFields(const mapDistributeBase &map, const word &cloudName, const IOobjectList &objects, const wordRes &selectedFields=wordRes()) const
Read, redistribute and write all/selected lagrangian fieldFields.
label distributeFields(const mapDistributeBase &map, const word &cloudName, const IOobjectList &objects, const wordRes &selectedFields=wordRes()) const
Read, redistribute and write all/selected lagrangian fields.
splitCell * master() const
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > reconstruct(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
bool rm(const fileName &file)
Remove a file (or its gz equivalent), returning true if successful.
List< word > wordList
A List of words.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
void sort(UList< T > &list)
Sort the list.
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Reduce (copy) and return value.
constexpr char nl
The newline '\n' character (0x0a)
multivariateSurfaceInterpolationScheme< scalar >::fieldTable fields
#define forAllIters(container, iter)
Iterate across all elements in the container object.
const word cloudName(propsDict.get< word >("cloud"))