diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C index 778d33871c..1d3172f2d8 100644 --- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C +++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.C @@ -164,19 +164,17 @@ void Foam::sampledSurfaces::write() writeGeometry(); } - const IOobjectList objects(mesh_, mesh_.time().timeName()); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); - - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); - sampleAndWrite(objects); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); + sampleAndWrite(mesh_); } } diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H index ebff3bd94d..15e34a7983 100644 --- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H +++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfaces.H @@ -158,9 +158,9 @@ class sampledSurfaces const GeometricField& ); - //- Sample and write all the fields of the given type + //- Sample and write all sampled fields template - void sampleAndWrite(const IOobjectList& allObjects); + void sampleAndWrite(const fvMesh&); //- Disallow default bitwise copy construct and assignment sampledSurfaces(const sampledSurfaces&); diff --git a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C index 46b39ccb61..f85f0e155d 100644 --- a/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C +++ b/src/sampling/sampledSurface/sampledSurfaces/sampledSurfacesTemplates.C @@ -166,40 +166,33 @@ void Foam::sampledSurfaces::sampleAndWrite template -void Foam::sampledSurfaces::sampleAndWrite(const IOobjectList& allObjects) +void Foam::sampledSurfaces::sampleAndWrite(const fvMesh& mesh) { - IOobjectList fields = allObjects.lookupClass(GeoField::typeName); - forAllConstIter(IOobjectList, fields, fieldIter) + forAll (fieldSelection_, fieldI) { - forAll (fieldSelection_, fieldI) - { - const wordRe field = fieldSelection_[fieldI]; - if (field.match(fieldIter()->name())) - { - if (Pstream::master() && verbose_) - { - Pout<< "sampleAndWrite: " << field << endl; - } + const wordRe field = fieldSelection_[fieldI]; - if (loadFromFiles_) - { - fieldIter()->readOpt() = IOobject::MUST_READ; - sampleAndWrite - ( - GeoField - ( - *fieldIter(), - mesh_ - ) - ); - } - else - { - sampleAndWrite - ( - mesh_.lookupObject(fieldIter()->name()) - ); - } + if (mesh.thisDb().foundObject(field)) + { + if (Pstream::master() && verbose_) + { + Pout<< "sampleAndWrite: " << field << endl; + } + + if (loadFromFiles_) + { + const GeoField& geoField = + mesh.thisDb().lookupObject(field); + + const_cast(geoField).readOpt() = IOobject::MUST_READ; + sampleAndWrite(geoField); + } + else + { + sampleAndWrite + ( + mesh.thisDb().lookupObject(field) + ); } } }