GIT: Resolve conflict with upstream merge from Foundation

This commit is contained in:
Andrew Heather
2015-12-07 17:07:20 +00:00
2154 changed files with 44622 additions and 24766 deletions

View File

@ -103,7 +103,7 @@ void Foam::partialWrite::read(const dictionary& dict)
if (writeInterval_ < 1)
{
FatalIOErrorIn("partialWrite::read(const dictionary&)", dict)
FatalIOErrorInFunction(dict)
<< "Illegal value for writeInterval " << writeInterval_
<< ". It should be >= 1."
<< exit(FatalIOError);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -31,7 +31,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(writeRegisteredObject, 0);
defineTypeNameAndDebug(writeRegisteredObject, 0);
}
@ -105,7 +105,7 @@ void Foam::writeRegisteredObject::write()
}
else
{
WarningIn("Foam::writeRegisteredObject::write()")
WarningInFunction
<< "Object " << objectNames_[i] << " not found in "
<< "database. Available objects:" << nl << obr_.sortedToc()
<< endl;

View File

@ -162,8 +162,9 @@ void Foam::cloudInfo::write()
if (Pstream::master())
{
writeTime(filePtrs_[cloudI]);
filePtrs_[cloudI]
<< obr_.time().value() << token::TAB
<< token::TAB
<< nParcels << token::TAB
<< massInSystem << token::TAB
<< Dmax << token::TAB

View File

@ -90,7 +90,7 @@ void Foam::fieldAverage::initialize()
{
if (!faItems_[fieldI].active())
{
WarningIn("void Foam::fieldAverage::initialize()")
WarningInFunction
<< "Field " << faItems_[fieldI].fieldName()
<< " not found in database for averaging";
}

View File

@ -166,10 +166,7 @@ void Foam::fieldAverage::addPrime2MeanField(const label fieldI)
if (!faItems_[fieldI].mean())
{
FatalErrorIn
(
"void Foam::fieldAverage::addPrime2MeanField(const label) const"
)
FatalErrorInFunction
<< "To calculate the prime-squared average, the "
<< "mean average must also be selected for field "
<< fieldName << nl << exit(FatalError);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -92,10 +92,8 @@ void Foam::fieldAverageItem::operator=(const fieldAverageItem& rhs)
// Check for assignment to self
if (this == &rhs)
{
FatalErrorIn
(
"Foam::fieldAverageItem::operator=(const Foam::fieldAverageItem&)"
) << "Attempted assignment to self" << nl
FatalErrorInFunction
<< "Attempted assignment to self" << nl
<< abort(FatalError);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -64,16 +64,8 @@ Foam::fieldCoordinateSystemTransform::fieldCoordinateSystemTransform
else
{
active_ = false;
WarningIn
(
"fieldCoordinateSystemTransform::fieldCoordinateSystemTransform"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
}

View File

@ -160,7 +160,8 @@ void Foam::fieldMinMax::write()
{
if (active_)
{
if (!writeLocation_) file()<< obr_.time().value();
if (!writeLocation_) writeTime(obr_.time().value());
if (log_) Info<< type() << " " << name_ << " output:" << nl;
forAll(fieldSet_, fieldI)

View File

@ -45,7 +45,7 @@ void Foam::fieldMinMax::output
if (writeLocation_)
{
file<< obr_.time().value();
writeTime(file());
writeTabbed(file, fieldName);
@ -278,14 +278,7 @@ void Foam::fieldMinMax::calcMinMaxFields
}
default:
{
FatalErrorIn
(
"Foam::fieldMinMax::calcMinMaxFields"
"("
"const word&, "
"const modeType&"
")"
)
FatalErrorInFunction
<< "Unknown min/max mode: " << modeTypeNames_[mode_]
<< exit(FatalError);
}

View File

@ -83,7 +83,7 @@ void Foam::fieldValues::cellSource::setCellZoneCells()
if (zoneId < 0)
{
FatalErrorIn("cellSource::cellSource::setCellZoneCells()")
FatalErrorInFunction
<< "Unknown cell zone name: " << sourceName_
<< ". Valid cell zones are: " << mesh().cellZones().names()
<< nl << exit(FatalError);
@ -103,7 +103,7 @@ void Foam::fieldValues::cellSource::setCellZoneCells()
default:
{
FatalErrorIn("cellSource::setCellZoneCells()")
FatalErrorInFunction
<< "Unknown source type. Valid source types are:"
<< sourceTypeNames_ << nl << exit(FatalError);
}
@ -130,10 +130,7 @@ void Foam::fieldValues::cellSource::initialise(const dictionary& dict)
if (nCells_ == 0)
{
WarningIn
(
"Foam::fieldValues::cellSource::initialise(const dictionary&)"
)
WarningInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Source has no cells - deactivating" << endl;
@ -237,7 +234,7 @@ void Foam::fieldValues::cellSource::write()
if (active_)
{
file() << obr_.time().value();
writeTime(file());
// Construct weight field. Note: zero size indicates unweighted
scalarField weightField;
@ -266,7 +263,7 @@ void Foam::fieldValues::cellSource::write()
if (!ok)
{
WarningIn("void Foam::fieldValues::cellSource::write()")
WarningInFunction
<< "Requested field " << fieldName
<< " not found in database and not processed"
<< endl;

View File

@ -58,15 +58,8 @@ Foam::tmp<Foam::Field<Type> > Foam::fieldValues::cellSource::setFieldValues
if (mustGet)
{
FatalErrorIn
(
"Foam::tmp<Foam::Field<Type> > "
"Foam::fieldValues::cellSource::setFieldValues"
"("
"const word&, "
"const bool"
") const"
) << "Field " << fieldName << " not found in database"
FatalErrorInFunction
<< "Field " << fieldName << " not found in database"
<< abort(FatalError);
}

View File

@ -90,7 +90,7 @@ void Foam::fieldValues::faceSource::setFaceZoneFaces()
if (zoneId < 0)
{
FatalErrorIn("faceSource::faceSource::setFaceZoneFaces()")
FatalErrorInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Unknown face zone name: " << sourceName_
@ -175,7 +175,7 @@ void Foam::fieldValues::faceSource::setPatchFaces()
if (patchId < 0)
{
FatalErrorIn("faceSource::constructFaceAddressing()")
FatalErrorInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Unknown patch name: " << sourceName_
@ -419,7 +419,7 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
}
default:
{
FatalErrorIn("faceSource::initialise()")
FatalErrorInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):"
<< nl << " Unknown source type. Valid source types are:"
@ -429,10 +429,7 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
if (nFaces_ == 0)
{
WarningIn
(
"Foam::fieldValues::faceSource::initialise(const dictionary&)"
)
WarningInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Source has no faces - deactivating" << endl;
@ -459,14 +456,7 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
if (source_ == stSampledSurface)
{
FatalIOErrorIn
(
"void Foam::fieldValues::faceSource::initialise"
"("
"const dictionary&"
")",
dict
)
FatalIOErrorInFunction(dict)
<< "Cannot use weightField for a sampledSurface"
<< exit(FatalIOError);
}
@ -482,14 +472,7 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
}
else
{
FatalIOErrorIn
(
"void Foam::fieldValues::faceSource::initialise"
"("
"const dictionary&"
")",
dict
)
FatalIOErrorInFunction(dict)
<< "Either weightField or orientedWeightField can be supplied, "
<< "but not both"
<< exit(FatalIOError);
@ -684,7 +667,7 @@ void Foam::fieldValues::faceSource::write()
surfacePtr_().update();
}
file() << obr_.time().value();
writeTime(file());
if (writeArea_)
{
@ -722,7 +705,7 @@ void Foam::fieldValues::faceSource::write()
if (!ok)
{
WarningIn("void Foam::fieldValues::faceSource::write()")
WarningInFunction
<< "Requested field " << fieldName
<< " not found in database and not processed"
<< endl;

View File

@ -110,16 +110,8 @@ Foam::tmp<Foam::Field<Type> > Foam::fieldValues::faceSource::setFieldValues
if (mustGet)
{
FatalErrorIn
(
"Foam::tmp<Foam::Field<Type> > "
"Foam::fieldValues::faceSource::setFieldValues"
"("
"const word&, "
"const bool, "
"const bool"
") const"
) << "Field " << fieldName << " not found in database"
FatalErrorInFunction
<< "Field " << fieldName << " not found in database"
<< abort(FatalError);
}
@ -150,16 +142,7 @@ Type Foam::fieldValues::faceSource::processSameTypeValues
}
case opSumDirection:
{
FatalErrorIn
(
"template<class Type>"
"Type Foam::fieldValues::faceSource::processSameTypeValues"
"("
"const Field<Type>&, "
"const vectorField&, "
"const scalarField&"
") const"
)
FatalErrorInFunction
<< "Operation " << operationTypeNames_[operation_]
<< " not available for values of type "
<< pTraits<Type>::typeName
@ -170,16 +153,7 @@ Type Foam::fieldValues::faceSource::processSameTypeValues
}
case opSumDirectionBalance:
{
FatalErrorIn
(
"template<class Type>"
"Type Foam::fieldValues::faceSource::processSameTypeValues"
"("
"const Field<Type>&, "
"const vectorField&, "
"const scalarField&"
") const"
)
FatalErrorInFunction
<< "Operation " << operationTypeNames_[operation_]
<< " not available for values of type "
<< pTraits<Type>::typeName
@ -401,14 +375,8 @@ Foam::tmp<Foam::Field<Type> > Foam::fieldValues::faceSource::filterField
}
else
{
FatalErrorIn
(
"fieldValues::faceSource::filterField"
"("
"const GeometricField<Type, fvPatchField, volMesh>&, "
"const bool"
") const"
) << type() << " " << name_ << ": "
FatalErrorInFunction
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):"
<< nl
<< " Unable to process internal faces for volume field "

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -48,16 +48,8 @@ Foam::autoPtr<Foam::fieldValue> Foam::fieldValue::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn
(
"fieldValue::New"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "Unknown " << typeName << " type "
FatalErrorInFunction
<< "Unknown " << typeName << " type "
<< modelType << nl << nl
<< "Valid " << typeName << " types are:" << nl
<< dictionaryConstructorTablePtr_->sortedToc()

View File

@ -168,7 +168,7 @@ void Foam::fieldValues::fieldValueDelta::execute()
source1Ptr_->write();
source2Ptr_->write();
file()<< obr_.time().value();
writeTime(file());
if (log_) Info << type() << " " << name_ << " output:" << endl;

View File

@ -77,20 +77,9 @@ void Foam::fieldValues::fieldValueDelta::apply
}
default:
{
FatalErrorIn
(
"void Foam::fieldValues::fieldValueDelta::applyOperation"
"("
"const word&, "
"const word&, "
"const word&, "
"const word&, "
"const word&"
"bool&"
") const"
)
<< "Operation not supported: "
<< opName
FatalErrorInFunction
<< "Unable to process operation "
<< operationTypeNames_[operation_]
<< abort(FatalError);
}
}

View File

@ -242,16 +242,8 @@ Foam::nearWallFields::nearWallFields
else
{
active_ = false;
WarningIn
(
"nearWallFields::nearWallFields"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -80,16 +80,8 @@ Foam::processorField::processorField
else
{
active_ = false;
WarningIn
(
"processorField::processorField"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -58,16 +58,8 @@ Foam::readFields::readFields
else
{
active_ = false;
WarningIn
(
"readFields::readFields"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
}

View File

@ -345,16 +345,8 @@ Foam::regionSizeDistribution::regionSizeDistribution
else
{
active_ = false;
WarningIn
(
"regionSizeDistribution::regionSizeDistribution"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -152,7 +152,7 @@ void Foam::streamLine::read(const dictionary& dict)
if (subCycling && fixedLength)
{
FatalIOErrorIn("streamLine::read(const dictionary&)", dict)
FatalIOErrorInFunction(dict)
<< "Cannot both specify automatic time stepping (through '"
<< "nSubCycle' specification) and fixed track length (through '"
<< "trackLength')"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -65,7 +65,7 @@ Foam::vector Foam::streamLineParticle::interpolateFields
{
if (cellI == -1)
{
FatalErrorIn("streamLineParticle::interpolateFields(..)")
FatalErrorInFunction
<< "Cell:" << cellI << abort(FatalError);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -57,16 +57,8 @@ Foam::surfaceInterpolateFields::surfaceInterpolateFields
else
{
active_ = false;
WarningIn
(
"surfaceInterpolateFields::surfaceInterpolateFields"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
}

View File

@ -39,7 +39,7 @@ Foam::edge Foam::wallBoundedParticle::currentEdge() const
{
if ((meshEdgeStart_ != -1) == (diagEdge_ != -1))
{
FatalErrorIn("wallBoundedParticle::currentEdge() const")
FatalErrorInFunction
<< "Particle:"
<< info()
<< "cannot both be on a mesh edge and a face-diagonal edge."
@ -93,11 +93,8 @@ void Foam::wallBoundedParticle::crossEdgeConnectedFace
}
else
{
FatalErrorIn
(
"wallBoundedParticle::crossEdgeConnectedFace"
"(const edge&)"
) << "Problem :"
FatalErrorInFunction
<< "Problem :"
<< " particle:"
<< info()
<< "face:" << tetFace()
@ -113,11 +110,8 @@ void Foam::wallBoundedParticle::crossEdgeConnectedFace
const edge eNew(f[meshEdgeStart_], f.nextLabel(meshEdgeStart_));
if (eNew != meshEdge)
{
FatalErrorIn
(
"wallBoundedParticle::crossEdgeConnectedFace"
"(const edge&)"
) << "Problem" << abort(FatalError);
FatalErrorInFunction
<< "Problem" << abort(FatalError);
}
}
@ -126,14 +120,14 @@ void Foam::wallBoundedParticle::crossDiagonalEdge()
{
if (diagEdge_ == -1)
{
FatalErrorIn("wallBoundedParticle::crossDiagonalEdge()")
FatalErrorInFunction
<< "Particle:"
<< info()
<< "not on a diagonal edge" << abort(FatalError);
}
if (meshEdgeStart_ != -1)
{
FatalErrorIn("wallBoundedParticle::crossDiagonalEdge()")
FatalErrorInFunction
<< "Particle:"
<< info()
<< "meshEdgeStart_:" << meshEdgeStart_ << abort(FatalError);
@ -156,7 +150,7 @@ void Foam::wallBoundedParticle::crossDiagonalEdge()
}
else
{
FatalErrorIn("wallBoundedParticle::crossDiagonalEdge()")
FatalErrorInFunction
<< "Particle:"
<< info()
<< "tetPt:" << tetPt()
@ -264,11 +258,8 @@ bool Foam::wallBoundedParticle::isTriAlongTrack
|| findIndex(triVerts, currentE[1]) == -1
)
{
FatalErrorIn
(
"wallBoundedParticle::isTriAlongTrack"
"(const point&)"
) << "Edge " << currentE << " not on triangle " << triVerts
FatalErrorInFunction
<< "Edge " << currentE << " not on triangle " << triVerts
<< info()
<< abort(FatalError);
}
@ -293,11 +284,8 @@ bool Foam::wallBoundedParticle::isTriAlongTrack
}
}
FatalErrorIn
(
"wallBoundedParticle::isTriAlongTrack"
"(const point&)"
) << "Problem" << abort(FatalError);
FatalErrorInFunction
<< "Problem" << abort(FatalError);
return false;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -206,11 +206,8 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
if (mesh_.isInternalFace(tetFace()))
{
FatalErrorIn
(
"wallBoundedParticle::trackToEdge"
"(TrackData&, const vector&)"
) << "Can only track on boundary faces."
FatalErrorInFunction
<< "Can only track on boundary faces."
<< " Face:" << tetFace()
<< " at:" << mesh_.faceCentres()[tetFace()]
<< abort(FatalError);
@ -286,7 +283,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
{
//Note: should not happen since boundary face so owner
//Pout<< "Real edge." << endl;
FatalErrorIn("shold not happend") << info()
FatalErrorInFunction
<< abort(FatalError);
diagEdge_ = -1;
@ -332,7 +329,7 @@ Foam::scalar Foam::wallBoundedParticle::trackToEdge
{
//Note: should not happen since boundary face so owner
//Pout<< "Real edge." << endl;
FatalErrorIn("shold not happend") << info()
FatalErrorInFunction
<< abort(FatalError);
diagEdge_ = -1;

View File

@ -275,7 +275,7 @@ void Foam::wallBoundedStreamLine::read(const dictionary& dict)
{
label nFaces = returnReduce(faces.size(), sumOp<label>());
WarningIn("wallBoundedStreamLine::read(const dictionary&)")
WarningInFunction
<< "Found " << nFaces
<<" faces with low quality or negative volume "
<< "decomposition tets. Writing to faceSet " << faces.name()
@ -314,10 +314,8 @@ void Foam::wallBoundedStreamLine::read(const dictionary& dict)
{
if (iter() != 2)
{
FatalErrorIn
(
"wallBoundedStreamLine::read(const dictionary&)"
) << "problem cell:" << cellI
FatalErrorInFunction
<< "problem cell:" << cellI
<< abort(FatalError);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -38,7 +38,7 @@ Foam::vector Foam::wallBoundedStreamLineParticle::interpolateFields
{
if (cellI == -1)
{
FatalErrorIn("wallBoundedStreamLineParticle::interpolateFields(..)")
FatalErrorInFunction
<< "Cell:" << cellI << abort(FatalError);
}

View File

@ -358,8 +358,9 @@ void Foam::forceCoeffs::execute()
if (writeToFile())
{
writeTime(coeffFilePtr_());
coeffFilePtr_()
<< obr_.time().value() << tab << CmTot << tab << CdTot
<< tab << CmTot << tab << CdTot
<< tab << ClTot << tab << ClfTot << tab << ClrTot << endl;

View File

@ -173,7 +173,7 @@ void Foam::forces::initialise()
if (!obr_.foundObject<volVectorField>(fDName_))
{
active_ = false;
WarningIn("void Foam::forces::initialise()")
WarningInFunction
<< "Could not find " << fDName_ << " in database." << nl
<< " De-activating forces."
<< endl;
@ -193,7 +193,7 @@ void Foam::forces::initialise()
{
active_ = false;
WarningIn("void Foam::forces::initialise()")
WarningInFunction
<< "Could not find " << UName_ << ", " << pName_;
if (rhoName_ != "rhoInf")
@ -370,7 +370,7 @@ Foam::tmp<Foam::volSymmTensorField> Foam::forces::devRhoReff() const
}
else
{
FatalErrorIn("forces::devRhoReff()")
FatalErrorInFunction
<< "No valid model for viscous stress calculation"
<< exit(FatalError);
@ -409,7 +409,7 @@ Foam::tmp<Foam::volScalarField> Foam::forces::mu() const
}
else
{
FatalErrorIn("forces::mu()")
FatalErrorInFunction
<< "No valid model for dynamic viscosity calculation"
<< exit(FatalError);
@ -456,7 +456,7 @@ Foam::scalar Foam::forces::rho(const volScalarField& p) const
{
if (rhoName_ != "rhoInf")
{
FatalErrorIn("forces::rho(const volScalarField& p)")
FatalErrorInFunction
<< "Dynamic pressure is expected but kinematic is provided."
<< exit(FatalError);
}
@ -690,7 +690,7 @@ void Foam::forces::writeBinnedForceMoment
Ostream& os = osPtr();
os << obr_.time().value();
writeTime(os);
forAll(f[0], i)
{
@ -1176,7 +1176,7 @@ void Foam::forces::calcForcesMoment()
if (models.empty())
{
WarningIn("void Foam::forces::calcForcesMoment()")
WarningInFunction
<< "Porosity effects requested, but no porosity models found "
<< "in the database"
<< endl;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(calcFvcDiv, 0);
defineTypeNameAndDebug(calcFvcDiv, 0);
}
@ -95,16 +95,8 @@ Foam::calcFvcDiv::calcFvcDiv
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"calcFvcDiv::calcFvcDiv"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating." << nl
WarningInFunction
<< "No fvMesh available, deactivating." << nl
<< endl;
}
@ -148,7 +140,7 @@ void Foam::calcFvcDiv::execute()
if (!processed)
{
WarningIn("void Foam::calcFvcDiv::write()")
WarningInFunction
<< "Unprocessed field " << fieldName_ << endl;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(calcFvcGrad, 0);
defineTypeNameAndDebug(calcFvcGrad, 0);
}
@ -57,16 +57,8 @@ Foam::calcFvcGrad::calcFvcGrad
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"calcFvcGrad::calcFvcGrad"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating." << nl
WarningInFunction
<< "No fvMesh available, deactivating." << nl
<< endl;
}
@ -110,7 +102,7 @@ void Foam::calcFvcGrad::execute()
if (!processed)
{
WarningIn("void Foam::calcFvcGrad::write()")
WarningInFunction
<< "Unprocessed field " << fieldName_ << endl;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(calcMag, 0);
defineTypeNameAndDebug(calcMag, 0);
}
@ -57,16 +57,8 @@ Foam::calcMag::calcMag
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"calcMag::calcMag"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating." << nl
WarningInFunction
<< "No fvMesh available, deactivating." << nl
<< endl;
}
@ -113,7 +105,7 @@ void Foam::calcMag::execute()
if (!processed)
{
WarningIn("void Foam::calcMag::write()")
WarningInFunction
<< "Unprocessed field " << fieldName_ << endl;
}
}

View File

@ -184,14 +184,8 @@ void Foam::externalCoupledTemperatureMixedFvPatchScalarField::writeData
}
else
{
FatalErrorIn
(
"void Foam::externalCoupledTemperatureMixedFvPatchScalarField::"
"transferData"
"("
"Ostream&"
") const"
) << "Condition requires either compressible turbulence and/or "
FatalErrorInFunction
<< "Condition requires either compressible turbulence and/or "
<< "thermo model to be available" << exit(FatalError);
}

View File

@ -32,21 +32,43 @@ Description
application. Values are transferred as plain text files, where OpenFOAM
data is written as:
# Patch: <patch name>
<magSf1> <value1> <qDot1> <htc1>
<magSf2> <value2> <qDot2> <htc2>
<magSf3> <value3> <qDot3> <htc2>
# Patch: \<patch name\>
\<magSf1\> \<value1\> \<qDot1\> \<htc1\>
\<magSf2\> \<value2\> \<qDot2\> \<htc2\>
\<magSf3\> \<value3\> \<qDot3\> \<htc2\>
...
<magSfN> <valueN> <qDotN> <htcN>
\<magSfN\> \<valueN\> \<qDotN\> \<htcN\>
and received as the constituent pieces of the `mixed' condition, i.e.
# Patch: <patch name>
<refValue1> <refGrad1> <valueFraction1>
<refValue2> <refGrad2> <valueFraction2>
<refValue3> <refGrad3> <valueFraction3>
...
<refValueN> <refGradN> <valueFractionN>
# Patch: \<patch name\>
\<value1\> \<gradient1\> \<valueFracion1\>
\<value2\> \<gradient2\> \<valueFracion2\>
\<value3\> \<gradient3\> \<valueFracion3\>
...
\<valueN\> \<gradientN\> \<valueFracionN\>
Data is sent/received as a single file for all patches from the directory
$FOAM_CASE/\<commsDir\>
At start-up, the boundary creates a lock file, i.e..
OpenFOAM.lock
... to signal the external source to wait. During the boundary condition
update, boundary values are written to file, e.g.
\<fileName\>.out
The lock file is then removed, instructing the external source to take
control of the program execution. When ready, the external program
should create the return values, e.g. to file
\<fileName\>.in
... and then re-instate the lock file. The boundary condition will then
read the return values, and pass program execution back to OpenFOAM.
To be used in combination with the externalCoupled functionObject.

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -70,13 +70,13 @@ void Foam::systemCall::read(const dictionary& dict)
if (executeCalls_.empty() && endCalls_.empty() && writeCalls_.empty())
{
WarningIn("Foam::system::read(const dictionary&)")
WarningInFunction
<< "no executeCalls, endCalls or writeCalls defined."
<< endl;
}
else if (!dynamicCode::allowSystemOperations)
{
FatalErrorIn("systemCall::read(const dictionary&)")
FatalErrorInFunction
<< "Executing user-supplied system calls is not enabled by "
<< "default because of " << nl
<< "security issues. If you trust the case you can enable this "

View File

@ -76,16 +76,8 @@ Foam::CourantNo::CourantNo
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"CourantNo::CourantNo"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -58,16 +58,8 @@ Foam::Lambda2::Lambda2
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"Lambda2::Lambda2"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}

View File

@ -1,5 +1,4 @@
EXE_INC = \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/DSMC/lnInclude \
-I$(LIB_SRC)/transportModels \

View File

@ -60,16 +60,8 @@ Foam::Peclet::Peclet
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"Peclet::Peclet"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}
@ -181,7 +173,7 @@ void Foam::Peclet::execute()
}
else
{
FatalErrorIn("void Foam::Peclet::execute()")
FatalErrorInFunction
<< "Unable to determine the viscosity"
<< exit(FatalError);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -57,16 +57,8 @@ Foam::Q::Q
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"Q::Q"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}

View File

@ -60,7 +60,7 @@ void Foam::blendingFactor::calc()
if (!isA<blendedSchemeBase<Type> >(interpScheme))
{
FatalErrorIn("void Foam::blendingFactor::execute()")
FatalErrorInFunction
<< interpScheme.typeName << " is not a blended scheme"
<< exit(FatalError);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -59,16 +59,8 @@ Foam::dsmcFields::dsmcFields
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"dsmcFields::dsmcFields"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -201,16 +201,8 @@ Foam::pressureTools::pressureTools
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"pressureTools::pressureTools"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}
@ -292,7 +284,7 @@ void Foam::pressureTools::read(const dictionary& dict)
if (mag(zeroCheck) < ROOTVSMALL)
{
WarningIn("void Foam::pressureTools::read(const dictionary&)")
WarningInFunction
<< type() << " " << name_ << ": "
<< "Coefficient calculation requested, but reference "
<< "pressure level is zero. Please check the supplied "

View File

@ -72,16 +72,8 @@ Foam::residuals::residuals
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"residuals::residuals"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
@ -115,21 +107,15 @@ void Foam::residuals::read(const dictionary& dict)
void Foam::residuals::execute()
{
// Do nothing - only valid on write
}
{}
void Foam::residuals::end()
{
// Do nothing - only valid on write
}
{}
void Foam::residuals::timeSet()
{
// Do nothing - only valid on write
}
{}
void Foam::residuals::write()
@ -138,7 +124,7 @@ void Foam::residuals::write()
{
if (Pstream::master())
{
file()<< obr_.time().value();
writeTime(file());
forAll(fieldSet_, fieldI)
{
@ -156,4 +142,5 @@ void Foam::residuals::write()
}
}
// ************************************************************************* //

View File

@ -115,6 +115,10 @@ protected:
//- Disallow default bitwise assignment
void operator=(const residuals&);
//- Output field header information
template<class Type>
void writeFileHeader(const word& fieldName);
//- Output file header information
virtual void writeFileHeader(Ostream& os) const;

View File

@ -42,9 +42,25 @@ void Foam::residuals::writeResidual(const word& fieldName)
if (solverDict.found(fieldName))
{
const List<solverPerformance> sp(solverDict.lookup(fieldName));
const scalar residual = sp.first().initialResidual();
file() << token::TAB << residual;
const List<SolverPerformance<Type> > sp
(
solverDict.lookup(fieldName)
);
const Type& residual = sp.first().initialResidual();
typename pTraits<Type>::labelType validComponents
(
mesh.validComponents<Type>()
);
for (direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
{
if (component(validComponents, cmpt) != -1)
{
file() << token::TAB << component(residual, cmpt);
}
}
}
}
}

View File

@ -315,7 +315,7 @@ void Foam::scalarTransport::execute()
}
else
{
FatalErrorIn("void Foam::scalarTransport::execute()")
FatalErrorInFunction
<< "Incompatible dimensions for phi: " << phi.dimensions() << nl
<< "Dimensions should be " << dimMass/dimTime << " or "
<< dimVolume/dimTime << endl;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -132,8 +132,8 @@ bool Foam::setTimeStepFunctionObject::read(const dictionary& dict)
|| !adjust
)
{
FatalIOErrorIn("setTimeStep::read(const dictionary&)", dict)
<< "'adjustTimeStep' must be set to true to enable external"
FatalIOErrorInFunction(dict)
<< "Need to have 'adjustTimeStep' true to enable external"
<< " timestep control" << exit(FatalIOError);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
@ -32,7 +32,7 @@ License
namespace Foam
{
defineTypeNameAndDebug(timeActivatedFileUpdate, 0);
defineTypeNameAndDebug(timeActivatedFileUpdate, 0);
}
@ -113,7 +113,7 @@ void Foam::timeActivatedFileUpdate::read(const dictionary& dict)
timeVsFile_[i].second() = timeVsFile_[i].second().expand();
if (!isFile(timeVsFile_[i].second()))
{
FatalErrorIn("timeActivatedFileUpdate::read(const dictionary&)")
FatalErrorInFunction
<< "File: " << timeVsFile_[i].second() << " not found"
<< nl << exit(FatalError);
}

View File

@ -80,7 +80,7 @@ bool Foam::turbulenceFields::compressible()
}
else
{
WarningIn("Foam::word& Foam::turbulenceFields::compressible() const")
WarningInFunction
<< "Turbulence model not found in database, deactivating";
active_ = false;
}
@ -113,16 +113,8 @@ Foam::turbulenceFields::turbulenceFields
else
{
active_ = false;
WarningIn
(
"turbulenceFields::turbulenceFields"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_
WarningInFunction
<< "No fvMesh available, deactivating " << name_
<< endl;
}
}
@ -226,7 +218,7 @@ void Foam::turbulenceFields::execute()
}
default:
{
FatalErrorIn("void Foam::turbulenceFields::execute()")
FatalErrorInFunction
<< "Invalid field selection" << abort(FatalError);
}
}
@ -274,7 +266,7 @@ void Foam::turbulenceFields::execute()
}
default:
{
FatalErrorIn("void Foam::turbulenceFields::execute()")
FatalErrorInFunction
<< "Invalid field selection" << abort(FatalError);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -46,14 +46,8 @@ void Foam::turbulenceFields::processField
}
else if (obr_.found(scopedName))
{
WarningIn
(
"void Foam::turbulenceFields::processField"
"("
"const word&, "
"const tmp<GeometricField<Type, fvPatchField, volMesh> >&"
")"
) << "Cannot store turbulence field " << scopedName
WarningInFunction
<< "Cannot store turbulence field " << scopedName
<< " since an object with that name already exists"
<< nl << endl;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2014 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2014-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -57,16 +57,8 @@ Foam::vorticity::vorticity
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"vorticity::vorticity"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}

View File

@ -109,16 +109,8 @@ Foam::wallShearStress::wallShearStress
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"wallShearStress::wallShearStress"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}
@ -211,7 +203,7 @@ void Foam::wallShearStress::read(const dictionary& dict)
}
else
{
WarningIn("void wallShearStress::read(const dictionary&)")
WarningInFunction
<< "Requested wall shear stress on non-wall boundary "
<< "type patch: " << pbm[patchI].name() << endl;
}
@ -260,7 +252,7 @@ void Foam::wallShearStress::execute()
}
else
{
FatalErrorIn("void Foam::wallShearStress::write()")
FatalErrorInFunction
<< "Unable to find turbulence model in the "
<< "database" << exit(FatalError);
}

View File

@ -72,16 +72,8 @@ Foam::yPlus::yPlus
if (!isA<fvMesh>(obr_))
{
active_ = false;
WarningIn
(
"yPlus::yPlus"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
) << "No fvMesh available, deactivating " << name_ << nl
WarningInFunction
<< "No fvMesh available, deactivating " << name_ << nl
<< endl;
}
@ -201,6 +193,7 @@ void Foam::yPlus::execute()
<< phi.dimensions() << nl
<< "Expected either " << dimMass/dimTime << " or "
<< dimVolume/dimTime << nl
<< "Unable to determine turbulence model type. "
<< "yPlus will not be calculated" << endl;
}
}

View File

@ -73,12 +73,14 @@ void Foam::yPlus::calcYPlus
<< " y+ : min = " << minYplus << ", max = " << maxYplus
<< ", average = " << avgYplus << nl;
file() << obr_.time().value()
writeTime(file());
file()
<< token::TAB << patch.name()
<< token::TAB << minYplus
<< token::TAB << maxYplus
<< token::TAB << avgYplus
<< endl;
}
}
else if (isA<wallFvPatch>(patch))
{
@ -95,20 +97,18 @@ void Foam::yPlus::calcYPlus
const scalar maxYplus = gMax(yPlusp);
const scalar avgYplus = gAverage(yPlusp);
if (Pstream::master())
{
if (log_) Info
<< " patch " << patch.name()
<< " y+ : min = " << minYplus << ", max = " << maxYplus
<< ", average = " << avgYplus << nl;
if (log_) Info
<< " patch " << patch.name()
<< " y+ : min = " << minYplus << ", max = " << maxYplus
<< ", average = " << avgYplus << nl;
file() << obr_.time().value()
<< token::TAB << patch.name()
<< token::TAB << minYplus
<< token::TAB << maxYplus
<< token::TAB << avgYplus
<< endl;
}
writeTime(file());
file()
<< token::TAB << patch.name()
<< token::TAB << minYplus
<< token::TAB << maxYplus
<< token::TAB << avgYplus
<< endl;
}
}
}