diff --git a/src/combustionModels/psiCombustionModel/psiCombustionModels.C b/src/combustionModels/psiCombustionModel/psiCombustionModels.C index 925dd612cd2b665a2beb69e491db0feee86afd8a..e8d96e9b63f7b54495820a30c3cceb50d4d50869 100644 --- a/src/combustionModels/psiCombustionModel/psiCombustionModels.C +++ b/src/combustionModels/psiCombustionModel/psiCombustionModels.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,9 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "makeCombustionTypes.H" - #include "psiCombustionModel.H" -#include "PaSR.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C index 5a81174d840967daba454a4979d2102d01f53d94..5764676b2a896686cbf4a85d6faf8605b1807608 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/advective/advectiveFvPatchField.C @@ -45,7 +45,7 @@ Foam::advectiveFvPatchField<Type>::advectiveFvPatchField phiName_("phi"), rhoName_("rho"), fieldInf_(pTraits<Type>::zero), - lInf_(0.0) + lInf_(-GREAT) { this->refValue() = pTraits<Type>::zero; this->refGrad() = pTraits<Type>::zero; @@ -82,7 +82,7 @@ Foam::advectiveFvPatchField<Type>::advectiveFvPatchField phiName_(dict.lookupOrDefault<word>("phi", "phi")), rhoName_(dict.lookupOrDefault<word>("rho", "rho")), fieldInf_(pTraits<Type>::zero), - lInf_(0.0) + lInf_(-GREAT) { if (dict.found("value")) { @@ -110,9 +110,13 @@ Foam::advectiveFvPatchField<Type>::advectiveFvPatchField ( "advectiveFvPatchField<Type>::" "advectiveFvPatchField" - "(const fvPatch&, const Field<Type>&, const dictionary&)", + "(" + "const fvPatch&, " + "const DimensionedField<Type, volMesh>&, " + "const dictionary&" + ")", dict - ) << "unphysical lInf specified (lInf < 0)\n" + ) << "unphysical lInf specified (lInf < 0)" << nl << " on patch " << this->patch().name() << " of field " << this->dimensionedInternalField().name() << " in file " << this->dimensionedInternalField().objectPath() @@ -217,7 +221,7 @@ void Foam::advectiveFvPatchField<Type>::updateCoeffs() // Non-reflecting outflow boundary // If lInf_ defined setup relaxation to the value fieldInf_. - if (lInf_ > SMALL) + if (lInf_ > 0) { // Calculate the field relaxation coefficient k (See notes) const scalarField k(w*deltaT/lInf_); @@ -248,12 +252,10 @@ void Foam::advectiveFvPatchField<Type>::updateCoeffs() } else { - FatalErrorIn - ( - "advectiveFvPatchField<Type>::updateCoeffs()" - ) << " Unsupported temporal differencing scheme : " - << ddtScheme - << "\n on patch " << this->patch().name() + FatalErrorIn("advectiveFvPatchField<Type>::updateCoeffs()") + << " Unsupported temporal differencing scheme : " + << ddtScheme << nl + << " on patch " << this->patch().name() << " of field " << this->dimensionedInternalField().name() << " in file " << this->dimensionedInternalField().objectPath() << exit(FatalError); @@ -304,21 +306,13 @@ void Foam::advectiveFvPatchField<Type>::write(Ostream& os) const { fvPatchField<Type>::write(os); - if (phiName_ != "phi") - { - os.writeKeyword("phi") << phiName_ << token::END_STATEMENT << nl; - } - if (rhoName_ != "rho") - { - os.writeKeyword("rho") << rhoName_ << token::END_STATEMENT << nl; - } + this->template writeEntryIfDifferent<word>(os, "phi", "phi", phiName_); + this->template writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_); - if (lInf_ > SMALL) + if (lInf_ > 0) { - os.writeKeyword("fieldInf") << fieldInf_ - << token::END_STATEMENT << nl; - os.writeKeyword("lInf") << lInf_ - << token::END_STATEMENT << nl; + os.writeKeyword("fieldInf") << fieldInf_ << token::END_STATEMENT << nl; + os.writeKeyword("lInf") << lInf_ << token::END_STATEMENT << nl; } this->writeEntry("value", os); diff --git a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H index 7526271e4510b8fb07c9bc1ce028f6788d52def7..423bd87160e544e2cb9cc86ed4f49eaf28e18ea7 100644 --- a/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H +++ b/src/lagrangian/dsmc/clouds/Templates/DsmcCloud/DsmcCloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -424,9 +424,6 @@ public: // Check - //- Total mass injected - inline scalar massInjected() const; - //- Total mass in system inline scalar massInSystem() const; diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index fd32ff790c1588264fdfec315a2f1d0edc1d0465..7225347e605f989d4ebd5448cf2affeb587edd08 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -456,8 +456,8 @@ public: // Check - //- Total mass injected - inline scalar massInjected() const; + //- Total number of parcels + inline label nParcels() const; //- Total mass in system inline scalar massInSystem() const; diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H index 94b95168a50643e0420476fefca2efae8651fe52..ab0e7ed940587014b345ede6e14d34103450bf01 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -227,6 +227,13 @@ Foam::KinematicCloud<CloudType>::UIntegrator() const } +template<class CloudType> +inline Foam::label Foam::KinematicCloud<CloudType>::nParcels() const +{ + return this->size(); +} + + template<class CloudType> inline Foam::scalar Foam::KinematicCloud<CloudType>::massInSystem() const { diff --git a/src/lagrangian/intermediate/clouds/baseClasses/kinematicCloud/kinematicCloud.H b/src/lagrangian/intermediate/clouds/baseClasses/kinematicCloud/kinematicCloud.H index 3f5bd469d1ee7f08c592e5330feab8c1803d6152..01c80c16e21ee5a1bc8c8a518b8a7addeb37e6a0 100644 --- a/src/lagrangian/intermediate/clouds/baseClasses/kinematicCloud/kinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/baseClasses/kinematicCloud/kinematicCloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -36,6 +36,7 @@ SourceFiles #define kinematicCloud_H #include "typeInfo.H" +#include "volFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -68,6 +69,50 @@ public: kinematicCloud(); + // Member functions + + // Check + + //- Number of parcels + virtual label nParcels() const = 0; + + //- Total mass in system + virtual scalar massInSystem() const = 0; + + //- Total linear momentum of the system + virtual vector linearMomentumOfSystem() const = 0; + + //- Total linear kinetic energy in the system + virtual scalar linearKineticEnergyOfSystem() const = 0; + + //- Total rotational kinetic energy in the system + virtual scalar rotationalKineticEnergyOfSystem() const = 0; + + //- Penetration for percentage of the current total mass +// virtual scalar penetration(const scalar& prc) const = 0; + + //- Mean diameter Dij + virtual scalar Dij(const label i, const label j) const = 0; + + //- Max diameter + virtual scalar Dmax() const = 0; + + + // Fields + + //- Return the particle volume fraction field + // Note: for particles belonging to this cloud only + virtual const tmp<volScalarField> theta() const = 0; + + //- Return the particle mass fraction field + // Note: for particles belonging to this cloud only + virtual const tmp<volScalarField> alpha() const = 0; + + //- Return the particle effective density field + // Note: for particles belonging to this cloud only + virtual const tmp<volScalarField> rhoEff() const = 0; + + //- Destructor virtual ~kinematicCloud(); }; diff --git a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C index ab18fad6e27e28ef6957442b03edccb32f306200..27f1c4fbc09415cac199bcc3320b1aa2a2e0945f 100644 --- a/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C +++ b/src/parallel/decompose/decompositionMethods/decompositionMethod/decompositionMethod.C @@ -46,7 +46,13 @@ Foam::autoPtr<Foam::decompositionMethod> Foam::decompositionMethod::New const dictionary& decompositionDict ) { - const word methodType(decompositionDict.lookup("method")); + word methodType(decompositionDict.lookup("method")); + + if (methodType == "scotch" && Pstream::parRun()) + { + methodType = "ptscotch"; + } + Info<< "Selecting decompositionMethod " << methodType << endl; diff --git a/src/postProcessing/functionObjects/Allwmake b/src/postProcessing/functionObjects/Allwmake index e62cdf86c7e8c936c4097a85752f4a9f139cd762..343d2bafc4e5c46fceab300981f7b2635b0c1d5b 100755 --- a/src/postProcessing/functionObjects/Allwmake +++ b/src/postProcessing/functionObjects/Allwmake @@ -3,11 +3,12 @@ cd ${0%/*} || exit 1 # run from this directory makeType=${1:-libso} set -x +wmake $makeType cloud wmake $makeType field wmake $makeType forces wmake $makeType IO -wmake $makeType utilities wmake $makeType jobControl wmake $makeType systemCall +wmake $makeType utilities # ----------------------------------------------------------------- end-of-file diff --git a/src/postProcessing/functionObjects/cloud/Make/files b/src/postProcessing/functionObjects/cloud/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..e8515a0937acb1256b26696bbae4fd16aee6eef5 --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/Make/files @@ -0,0 +1,4 @@ +cloudInfo/cloudInfo.C +cloudInfo/cloudInfoFunctionObject.C + +LIB = $(FOAM_LIBBIN)/libcloudFunctionObjects diff --git a/src/postProcessing/functionObjects/cloud/Make/options b/src/postProcessing/functionObjects/cloud/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..7699961acc4188d6fdd0df6f9798f19d339fcef9 --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/Make/options @@ -0,0 +1,9 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/lagrangian/basic/lnInclude \ + -I$(LIB_SRC)/lagrangian/intermediate/lnInclude + +LIB_LIBS = \ + -lfiniteVolume \ + -llagrangian \ + -llagrangianIntermediate diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/IOcloudInfo.H b/src/postProcessing/functionObjects/cloud/cloudInfo/IOcloudInfo.H new file mode 100644 index 0000000000000000000000000000000000000000..6e0eda072a8b3f03951f5dd7f09591c561646c1c --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/IOcloudInfo.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOcloudInfo + +Description + Instance of the generic IOOutputFilter for cloudInfo. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOcloudInfo_H +#define IOcloudInfo_H + +#include "cloudInfo.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<cloudInfo> IOcloudInfo; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C new file mode 100644 index 0000000000000000000000000000000000000000..6c5c6c5af436c9be599ef792403b8179de8bdd73 --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.C @@ -0,0 +1,183 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "cloudInfo.H" +#include "dictionary.H" +#include "kinematicCloud.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::cloudInfo, 0); + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void Foam::cloudInfo::makeFiles() +{ + if (debug) + { + Info<< "Creating cloudInfo output files." << endl; + } + + outputFilePtr_.clear(); + outputFilePtr_.setSize(cloudSet_.size()); + + if (Pstream::master()) + { + label i = 0; + forAllConstIter(wordHashSet, cloudSet_, iter) + { + const word& cloudName = iter.key(); + fileName cloudInfoDir(obr_.time().path()); + word timeName = Foam::name(obr_.time().startTime().value()); + + if (Pstream::parRun()) + { + // Put in undecomposed case (Note: gives problems for + // distributed data running) + cloudInfoDir = cloudInfoDir/".."/name_/timeName; + } + else + { + cloudInfoDir = cloudInfoDir/name_/timeName; + } + + // Create directory if does not exist + mkDir(cloudInfoDir); + + // Open new files at start up + outputFilePtr_.set + ( + i, + new OFstream(cloudInfoDir/(cloudName + ".dat")) + ); + + // Add headers + outputFilePtr_[i] + << "# Time" << tab << "nParcels" << tab << "mass" << endl; + + i++; + } + } +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::cloudInfo::cloudInfo +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + cloudSet_(), + outputFilePtr_() +{ + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::cloudInfo::~cloudInfo() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::cloudInfo::read(const dictionary& dict) +{ + if (active_) + { + cloudSet_.insert(wordList(dict.lookup("clouds"))); + + Info<< type() << ": "; + if (cloudSet_.size()) + { + Info<< "applying to clouds:" << nl; + forAllConstIter(wordHashSet, cloudSet_, iter) + { + Info<< " " << iter.key() << nl; + } + Info<< endl; + + makeFiles(); + } + else + { + Info<< "no clouds to be processed" << nl << endl; + } + } +} + + +void Foam::cloudInfo::execute() +{ + // Do nothing +} + + +void Foam::cloudInfo::end() +{ + // Do nothing +} + + +void Foam::cloudInfo::write() +{ + if (active_) + { + label i = 0; + forAllConstIter(wordHashSet, cloudSet_, iter) + { + const word& cloudName = iter.key(); + + const kinematicCloud& cloud = + obr_.lookupObject<kinematicCloud>(cloudName); + + label nParcels = returnReduce(cloud.nParcels(), sumOp<label>()); + scalar massInSystem = + returnReduce(cloud.massInSystem(), sumOp<scalar>()); + + if (Pstream::master()) + { + outputFilePtr_[i] + << obr_.time().value() << token::TAB + << nParcels << token::TAB + << massInSystem << endl; + } + + i++; + } + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H new file mode 100644 index 0000000000000000000000000000000000000000..04e6468d689e85af78d75e53c48b0e5531a6c010 --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfo.H @@ -0,0 +1,157 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::cloudInfo + +Description + Outputs cloud information to file + + Currently outputs: + - total current number of parcels + - total current mass of parcels + +SourceFiles + cloudInfo.C + IOcloudInfo.H + +\*---------------------------------------------------------------------------*/ + +#ifndef cloudInfo_H +#define cloudInfo_H + +#include "OFstream.H" +#include "PtrList.H" +#include "pointFieldFwd.H" +#include "volFields.H" +#include "surfaceFields.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; + +/*---------------------------------------------------------------------------*\ + Class cloudInfo Declaration +\*---------------------------------------------------------------------------*/ + +class cloudInfo +{ +protected: + + // Protected data + + //- Name of this set of cloudInfo object + word name_; + + const objectRegistry& obr_; + + //- on/off switch + bool active_; + + //- Clouds to process + wordHashSet cloudSet_; + + //- Output file pointers + PtrList<OFstream> outputFilePtr_; + + + // Protected Member Functions + + //- If the output file has not been created create it + void makeFiles(); + + //- Disallow default bitwise copy construct + cloudInfo(const cloudInfo&); + + //- Disallow default bitwise assignment + void operator=(const cloudInfo&); + + +public: + + //- Runtime type information + TypeName("cloudInfo"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + cloudInfo + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~cloudInfo(); + + + // Member Functions + + //- Return name of the cloudInfo object + virtual const word& name() const + { + return name_; + } + + //- Read the field min/max data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.C b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..8197da4ec8037cbfcea805511aa58ec59c41a94b --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "cloudInfoFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(cloudInfoFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + cloudInfoFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.H b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..3d85754fceb28ff62ce226939b144d61f3cab493 --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/cloudInfoFunctionObject.H @@ -0,0 +1,54 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::cloudInfoFunctionObject + +Description + FunctionObject wrapper around cloudInfo to allow them to be created via + the functions entry within controlDict. + +SourceFiles + cloudInfoFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef cloudInfoFunctionObject_H +#define cloudInfoFunctionObject_H + +#include "cloudInfo.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<cloudInfo> + cloudInfoFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/cloud/cloudInfo/postProcessingDict b/src/postProcessing/functionObjects/cloud/cloudInfo/postProcessingDict new file mode 100644 index 0000000000000000000000000000000000000000..da6d02204cdd4937e8ec72ff67917dddc30a599b --- /dev/null +++ b/src/postProcessing/functionObjects/cloud/cloudInfo/postProcessingDict @@ -0,0 +1,31 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object postProcessingDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +functions +{ + cloudInfo1 + { + type cloudInfo; + functionObjectLibs ("libcloudFunctionObjects.so"); + enabled true; + outputControl timeStep; + outputInterval 1; + + clouds (myCloud1); + } +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C index 3ce1fd2f11846f96ad10c616fcc11fc1ddc9053f..d01d17e986c6179c3f0eb352f434d16ab6b51a57 100644 --- a/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C +++ b/src/postProcessing/functionObjects/forces/forceCoeffs/forceCoeffs.C @@ -137,9 +137,11 @@ void Foam::forceCoeffs::write() if (log_) { Info<< "forceCoeffs output:" << nl - << " Cd = " << Cd << nl - << " Cl = " << Cl << nl - << " Cm = " << Cm << nl + << " Cm = " << Cm << nl + << " Cd = " << Cd << nl + << " Cl = " << Cl << nl + << " Cl(f) = " << Cl/2.0 - Cm << nl + << " Cl(r) = " << Cl/2.0 + Cm << nl << endl; } }