diff --git a/src/meshTools/PatchFunction1/MappedFile/MappedFile.C b/src/meshTools/PatchFunction1/MappedFile/MappedFile.C index 99ed8c3e9be7b930420692cf37e4b8ea92593d8e..d8115a31e7efbe1278713968855dd35244e198c0 100644 --- a/src/meshTools/PatchFunction1/MappedFile/MappedFile.C +++ b/src/meshTools/PatchFunction1/MappedFile/MappedFile.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018 OpenCFD Ltd. + Copyright (C) 2018-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -63,7 +63,17 @@ Foam::PatchFunction1Types::MappedFile<Type>::MappedFile endSampleTime_(-1), endSampledValues_(0), endAverage_(Zero), - offset_() + offset_(), + readFormat_ + ( + IOstreamOption::formatNames.getOrDefault + ( + "format", + dict, + IOstreamOption::ASCII, + true // Failsafe behaviour + ) + ) { if (dict.found("offset")) { @@ -117,7 +127,17 @@ Foam::PatchFunction1Types::MappedFile<Type>::MappedFile endSampleTime_(-1), endSampledValues_(0), endAverage_(Zero), - offset_() + offset_(), + readFormat_ + ( + IOstreamOption::formatNames.getOrDefault + ( + "format", + dict, + IOstreamOption::ASCII, + true // Failsafe behaviour + ) + ) { if (dict.found("offset")) { @@ -158,7 +178,8 @@ Foam::PatchFunction1Types::MappedFile<Type>::MappedFile endSampleTime_(ut.endSampleTime_), endSampledValues_(ut.endSampledValues_), endAverage_(ut.endAverage_), - offset_(ut.offset_.clone()) + offset_(ut.offset_.clone()), + readFormat_(ut.readFormat_) {} @@ -184,7 +205,8 @@ Foam::PatchFunction1Types::MappedFile<Type>::MappedFile endSampleTime_(ut.endSampleTime_), endSampledValues_(ut.endSampledValues_), endAverage_(ut.endAverage_), - offset_(ut.offset_.clone()) + offset_(ut.offset_.clone()), + readFormat_(ut.readFormat_) {} @@ -384,13 +406,13 @@ void Foam::PatchFunction1Types::MappedFile<Type>::checkTable if (setAverage_) { - AverageField<Type> avals((IFstream(valsFile)())); + AverageField<Type> avals((IFstream(valsFile, readFormat_)())); vals = avals; startAverage_ = avals.average(); } else { - IFstream(valsFile)() >> vals; + IFstream(valsFile, readFormat_)() >> vals; } if (vals.size() != mapperPtr_().sourceSize()) @@ -445,13 +467,13 @@ void Foam::PatchFunction1Types::MappedFile<Type>::checkTable if (setAverage_) { - AverageField<Type> avals((IFstream(valsFile)())); + AverageField<Type> avals((IFstream(valsFile, readFormat_)())); vals = avals; endAverage_ = avals.average(); } else { - IFstream(valsFile)() >> vals; + IFstream(valsFile, readFormat_)() >> vals; } if (vals.size() != mapperPtr_().sourceSize()) diff --git a/src/meshTools/PatchFunction1/MappedFile/MappedFile.H b/src/meshTools/PatchFunction1/MappedFile/MappedFile.H index f798654232b1477d8ecb936577dcb689ec655699..3728e17413cf431dd56caa509729d898f0809fd0 100644 --- a/src/meshTools/PatchFunction1/MappedFile/MappedFile.H +++ b/src/meshTools/PatchFunction1/MappedFile/MappedFile.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2018 OpenCFD Ltd. + Copyright (C) 2018-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -102,6 +102,9 @@ class MappedFile //- Time varying offset values to interpolated data autoPtr<Function1<Type>> offset_; + + //- Read option for data (default: IOstream::ASCII) + IOstream::streamFormat readFormat_; // Private Member Functions diff --git a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C index 5c02c4027bb1396fd962ed7523a8aff88cc284c6..656c8b1385aa80c63af58e49412006748b9feb18 100644 --- a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C +++ b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015 OpenFOAM Foundation - Copyright (C) 2015-2019 OpenCFD Ltd. + Copyright (C) 2015-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -45,6 +45,7 @@ namespace surfaceWriters { defineTypeName(boundaryDataWriter); addToRunTimeSelectionTable(surfaceWriter, boundaryDataWriter, word); + addToRunTimeSelectionTable(surfaceWriter, boundaryDataWriter, wordDict); } } @@ -53,7 +54,8 @@ namespace surfaceWriters Foam::surfaceWriters::boundaryDataWriter::boundaryDataWriter() : - surfaceWriter() + surfaceWriter(), + writeFormat_(IOstream::ASCII) {} @@ -62,7 +64,17 @@ Foam::surfaceWriters::boundaryDataWriter::boundaryDataWriter const dictionary& options ) : - surfaceWriter(options) + surfaceWriter(options), + writeFormat_ + ( + IOstreamOption::formatNames.getOrDefault + ( + "format", + options, + IOstreamOption::ASCII, + true // Failsafe behaviour + ) + ) {} @@ -243,7 +255,7 @@ Foam::fileName Foam::surfaceWriters::boundaryDataWriter::writeTemplate // Write field - OFstream(outputFile)() << tfield(); + OFstream(outputFile, writeFormat_)() << tfield(); } wroteGeom_ = true; diff --git a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.H b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.H index 4acf33378487ab97fa5ef28d92665cbe989e4388..8c4f1eee484778fadee268dfd5911e32a211a66e 100644 --- a/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.H +++ b/src/surfMesh/writers/boundaryData/boundaryDataSurfaceWriter.H @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2015-2019 OpenCFD Ltd. + Copyright (C) 2015-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -38,7 +38,15 @@ Description { type surfaces; surfaceFormat boundaryData; + format binary; fields ( p ); + formatOptions + { + boundaryData + { + format binary; + } + } surfaces ( outlet @@ -114,6 +122,9 @@ class boundaryDataWriter public surfaceWriter { // Private Member Functions + + //- Write option (default: IOstream::ASCII) + IOstream::streamFormat writeFormat_; //- Templated write field operation template<class Type> diff --git a/tutorials/compressible/acousticFoam/obliqueAirJet/case_init/system/controlDict b/tutorials/compressible/acousticFoam/obliqueAirJet/case_init/system/controlDict index 9ecba15585382d2bebfdba01d2725bd2f2b4edff..3101837dd2f595f8b7227841ba87f145cae315ab 100644 --- a/tutorials/compressible/acousticFoam/obliqueAirJet/case_init/system/controlDict +++ b/tutorials/compressible/acousticFoam/obliqueAirJet/case_init/system/controlDict @@ -64,15 +64,22 @@ functions ( p ); + formatOptions + { + boundaryData + { + format binary; + } + } surfaces - ( + { window { type patch; patches (window); interpolate false; } - ); + } } } diff --git a/tutorials/compressible/acousticFoam/obliqueAirJet/fullCase/system/faOptions b/tutorials/compressible/acousticFoam/obliqueAirJet/fullCase/system/faOptions index cd9683753f7f17f19ccac0ceae24081f2148ce07..e80a0bafc1d72fac4b64ec113d3921b3f37d37ac 100644 --- a/tutorials/compressible/acousticFoam/obliqueAirJet/fullCase/system/faOptions +++ b/tutorials/compressible/acousticFoam/obliqueAirJet/fullCase/system/faOptions @@ -24,6 +24,7 @@ pressure duration 0.03; region vibrationShell; selectionMode all; + format binary; } //************************************************************************** //