diff --git a/bin/foamEtcFile b/bin/foamEtcFile index 7cea635885645ae3ad6f712d477b15415ea2ee5a..5bae566b55a1509d8f2f65048882fe0b7af41f7b 100755 --- a/bin/foamEtcFile +++ b/bin/foamEtcFile @@ -195,9 +195,10 @@ done # done -# Save the essential bits of information: +# Save the essential bits of information +# silently remove leading ~OpenFOAM/ (used in Foam::findEtcFile) nArgs=$# -fileName="$1" +fileName="${1#~OpenFOAM/}" # Define the various places to be searched: unset dirList diff --git a/bin/tools/pre-commit-hook b/bin/tools/pre-commit-hook new file mode 100755 index 0000000000000000000000000000000000000000..9b5a394fde108a8c2f93f5e922d6fc105c92be7d --- /dev/null +++ b/bin/tools/pre-commit-hook @@ -0,0 +1,223 @@ +#!/bin/bash +#---------------------------------*- sh -*------------------------------------- +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. +# \\/ 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/>. +# +# Script +# pre-commit-hook +# +# Description +# pre-commit hook for git. +# Copy or link this file as ".git/hooks/pre-commit" +# +# Eg, +# ( +# cd $WM_PROJECT_DIR/.git/hooks && +# ln -sf ../../bin/tools/pre-commit-hook pre-commit +# ) +# +# Hook receives: empty +# +# Checks for +# - illegal code, e.g. <TAB> +# - copyright is current, e.g. if present, contains XXX-<current-year> +# - columns greater than 80 for *.[CH] files +# +# Note +# Using "git commit --no-verify" it is possible to override the hook. +# +#------------------------------------------------------------------------------ +die() +{ + echo 'pre-commit hook failure' 1>&2 + echo '-----------------------' 1>&2 + echo '' 1>&2 + echo "$@" 1>&2 + exit 1 +} + +#----------------------------------------------------------------------------- +# Check content that will be added by this commit. + +if git rev-parse --verify -q HEAD > /dev/null +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 +fi + +# list of all files +fileList=$(git diff-index --name-only $against --) +unset badFiles + +# join list of files with this amount of space +Indent=" " + +# +# report bad files and die if there are any +# +dieOnBadFiles() +{ + if [ -n "$badFiles" ] + then + echo 'pre-commit hook failure' 1>&2 + echo '-----------------------' 1>&2 + echo "$@" 1>&2 + echo '' 1>&2 + echo "File(s):" 1>&2 + echo "$badFiles" 1>&2 + echo '' 1>&2 + exit 1 + fi +} + + +# +# check for bad strings, characters, etc +# +checkIllegalCode() +{ + reBad="(N""abla|"$'\t'"|"$'\r\n'")" + msgBad="N""abla, <TAB>, or DOS-style line ending" + + badFiles=$( + for f in $fileList + do + # parse line numbers from this: + # path/fileName:<lineNr>: contents + lines=$(git grep --cached -n -E -e "$reBad" -- "$f" | + sed -e 's@^[^:]*:\([0-9]*\):.*@\1@' | + tr '\n' ' ' + ) + [ -n "$lines" ] && echo "$Indent$f -- lines: $lines" + done + ) + + dieOnBadFiles "Remove/correct bad '$msgBad' references" +} + + +# +# check that OpenCFD copyright is current +# +checkCopyright() +{ + year=$(date +%Y) + + badFiles=$( + for f in $fileList + do + # parse line numbers from this: + # path/fileName:<lineNr>: contents + # for Copyright lines without the current year + lines=$(git grep --cached -n -e Copyright -- "$f" | + sed -n \ + -e '/OpenCFD/{ ' \ + -e "/$year/b" \ + -e 's@^[^:]*:\([0-9]*\):.*@\1@p }' | + tr '\n' ' ' + ) + [ -n "$lines" ] && echo "$Indent$f -- lines: $lines" + done + ) + + dieOnBadFiles "Update copyright year, e.g. XXXX-$year" +} + + +# +# limit line length to 80-columns +# +checkLineLength() +{ + badFiles=$( + for f in $fileList + do + # limit to *.[CH] files + case "$f" in + (*.[CH]) + # parse line numbers from this: + # path/fileName:<lineNr>: contents + lines=$(git grep --cached -n -e ".\{81,\}" -- "$f" | + sed -e 's@^[^:]*:\([0-9]*\):.*@\1@' | + tr '\n' ' ' + ) + [ -n "$lines" ] && echo "$Indent$f -- lines: $lines" + ;; + esac + done + ) + + dieOnBadFiles "Limit code to 80 columns before pushing" +} + + +# +# limit line length to 80-columns, except C++ comment lines +# +checkLineLengthNonComments() +{ + badFiles=$( + for f in $fileList + do + # limit to *.[CH] files + case "$f" in + (*.[CH]) + # parse line numbers from this (strip comment lines): + # path/fileName:<lineNr>: contents + lines=$(git grep --cached -n -e ".\{81,\}" -- "$f" | + sed -n \ + -e '\@^[^:]*:[^:]*: *//.*@b' \ + -e 's@^[^:]*:\([0-9]*\):.*@\1@p' | + tr '\n' ' ' + ) + [ -n "$lines" ] && echo "$Indent$f -- lines: $lines" + ;; + esac + done + ) + + dieOnBadFiles "Limit code to 80 columns before pushing" +} + + + +# do all checks +# ~~~~~~~~~~~~~ + +# builtin whitespace check to avoid trailing space, including CR-LF endings +bad=$(git diff-index --cached --check $against --) || die "$bad" + +# check for illegal code, e.g. <TAB>, etc +checkIllegalCode + +# ensure OpenCFD copyright contains correct year +checkCopyright + +# ensure code conforms to 80 columns max +checkLineLength + + +exit 0 + +#------------------------------------------------------------------------------ diff --git a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.C b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.C index 745c66c58d1b80f2d3364aa170f57232f4b4881d..b7aef808507a2b3ca8794b4955551f6e5b06ab2a 100644 --- a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.C +++ b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,6 +27,7 @@ License #include "fvMesh.H" #include "fvMatrices.H" #include "geometricOneField.H" +#include "stringListOps.H" // * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * * // @@ -62,15 +63,15 @@ void Foam::porousZone::adjustNegativeResistance(dimensionedVector& resist) Foam::porousZone::porousZone ( - const word& name, + const keyType& key, const fvMesh& mesh, const dictionary& dict ) : - name_(name), + key_(key), mesh_(mesh), dict_(dict), - cellZoneID_(mesh_.cellZones().findZoneID(name)), + cellZoneIds_(0), coordSys_(dict, mesh), porosity_(1), intensity_(0), @@ -80,9 +81,27 @@ Foam::porousZone::porousZone D_("D", dimensionSet(0, -2, 0, 0, 0), tensor::zero), F_("F", dimensionSet(0, -1, 0, 0, 0), tensor::zero) { - Info<< "Creating porous zone: " << name_ << endl; + Info<< "Creating porous zone: " << key_ << endl; - bool foundZone = (cellZoneID_ != -1); + if (key_.isPattern()) + { + cellZoneIds_ = findStrings + ( + key_, + mesh_.cellZones().names() + ); + } + else + { + const label zoneId = mesh_.cellZones().findZoneID(key_); + if (zoneId != -1) + { + cellZoneIds_.setSize(1); + cellZoneIds_[0] = zoneId; + } + } + + bool foundZone = !cellZoneIds_.empty(); reduce(foundZone, orOp<bool>()); if (!foundZone && Pstream::master()) @@ -90,8 +109,8 @@ Foam::porousZone::porousZone FatalErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)" - ) << "cannot find porous cellZone " << name_ + "(const keyType&, const fvMesh&, const dictionary&)" + ) << "cannot find porous cellZone " << key_ << exit(FatalError); } @@ -106,7 +125,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "out-of-range porosity value " << porosity_ @@ -123,7 +142,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "out-of-range turbulent intensity value " << intensity_ @@ -140,7 +159,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "out-of-range turbulent length scale " << mixingLength_ @@ -169,7 +188,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "incorrect dimensions for d: " << d.dimensions() << " should be " << D_.dimensions() @@ -192,7 +211,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "incorrect dimensions for f: " << f.dimensions() << " should be " << F_.dimensions() @@ -220,7 +239,7 @@ Foam::porousZone::porousZone FatalIOErrorIn ( "Foam::porousZone::porousZone" - "(const fvMesh&, const word&, const dictionary&)", + "(const keyType&, const fvMesh&, const dictionary&)", dict_ ) << "neither powerLaw (C0/C1) " "nor Darcy-Forchheimer law (d/f) specified" @@ -239,7 +258,7 @@ Foam::porousZone::porousZone void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const { - if (cellZoneID_ == -1) + if (cellZoneIds_.empty()) { return; } @@ -250,7 +269,6 @@ void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const compressible = true; } - const labelList& cells = mesh_.cellZones()[cellZoneID_]; const scalarField& V = mesh_.V(); scalarField& Udiag = UEqn.diag(); vectorField& Usource = UEqn.source(); @@ -263,7 +281,6 @@ void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const addPowerLawResistance ( Udiag, - cells, V, mesh_.lookupObject<volScalarField>("rho"), U @@ -274,7 +291,6 @@ void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const addPowerLawResistance ( Udiag, - cells, V, geometricOneField(), U @@ -293,7 +309,6 @@ void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const ( Udiag, Usource, - cells, V, mesh_.lookupObject<volScalarField>("rho"), mesh_.lookupObject<volScalarField>("mu"), @@ -306,7 +321,6 @@ void Foam::porousZone::addResistance(fvVectorMatrix& UEqn) const ( Udiag, Usource, - cells, V, geometricOneField(), mesh_.lookupObject<volScalarField>("nu"), @@ -324,7 +338,7 @@ void Foam::porousZone::addResistance bool correctAUprocBC ) const { - if (cellZoneID_ == -1) + if (cellZoneIds_.empty()) { return; } @@ -335,7 +349,6 @@ void Foam::porousZone::addResistance compressible = true; } - const labelList& cells = mesh_.cellZones()[cellZoneID_]; const vectorField& U = UEqn.psi(); if (C0_ > VSMALL) @@ -345,7 +358,6 @@ void Foam::porousZone::addResistance addPowerLawResistance ( AU, - cells, mesh_.lookupObject<volScalarField>("rho"), U ); @@ -355,7 +367,6 @@ void Foam::porousZone::addResistance addPowerLawResistance ( AU, - cells, geometricOneField(), U ); @@ -372,7 +383,6 @@ void Foam::porousZone::addResistance addViscousInertialResistance ( AU, - cells, mesh_.lookupObject<volScalarField>("rho"), mesh_.lookupObject<volScalarField>("mu"), U @@ -383,7 +393,6 @@ void Foam::porousZone::addResistance addViscousInertialResistance ( AU, - cells, geometricOneField(), mesh_.lookupObject<volScalarField>("nu"), U diff --git a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H index 59a83a24a57c88af4e3fa3213f5c726aaab67f05..6bd909143c2962a4c69dc16dccfd00b08b6d2e23 100644 --- a/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H +++ b/src/finiteVolume/cfdTools/general/porousMedia/porousZone.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -110,8 +110,8 @@ class porousZone { // Private data - //- Name of this zone - word name_; + //- Name of this zone, or a regular expression + keyType key_; //- Reference to the finite volume mesh this zone is part of const fvMesh& mesh_; @@ -119,8 +119,8 @@ class porousZone //- Dictionary containing the parameters dictionary dict_; - //- Cell zone ID - label cellZoneID_; + //- Cell zone Ids + labelList cellZoneIds_; //- Coordinate system used for the zone (Cartesian) coordinateSystem coordSys_; @@ -159,7 +159,6 @@ class porousZone void addPowerLawResistance ( scalarField& Udiag, - const labelList& cells, const scalarField& V, const RhoFieldType& rho, const vectorField& U @@ -171,7 +170,6 @@ class porousZone ( scalarField& Udiag, vectorField& Usource, - const labelList& cells, const scalarField& V, const RhoFieldType& rho, const scalarField& mu, @@ -184,7 +182,6 @@ class porousZone void addPowerLawResistance ( tensorField& AU, - const labelList& cells, const RhoFieldType& rho, const vectorField& U ) const; @@ -194,7 +191,6 @@ class porousZone void addViscousInertialResistance ( tensorField& AU, - const labelList& cells, const RhoFieldType& rho, const scalarField& mu, const vectorField& U @@ -213,7 +209,7 @@ public: // Constructors //- Construct from components - porousZone(const word& name, const fvMesh&, const dictionary&); + porousZone(const keyType& key, const fvMesh&, const dictionary&); //- Return clone autoPtr<porousZone> clone() const @@ -237,10 +233,10 @@ public: autoPtr<porousZone> operator()(Istream& is) const { - word name(is); + keyType key(is); dictionary dict(is); - return autoPtr<porousZone>(new porousZone(name, mesh_, dict)); + return autoPtr<porousZone>(new porousZone(key, mesh_, dict)); } }; @@ -255,9 +251,9 @@ public: // Access //- cellZone name - const word& zoneName() const + const keyType& zoneName() const { - return name_; + return key_; } //- Return mesh @@ -266,10 +262,10 @@ public: return mesh_; } - //- cellZone number - label zoneId() const + //- cellZone numbers + const labelList& zoneIds() const { - return cellZoneID_; + return cellZoneIds_; } //- dictionary values used for the porousZone diff --git a/src/finiteVolume/cfdTools/general/porousMedia/porousZoneTemplates.C b/src/finiteVolume/cfdTools/general/porousMedia/porousZoneTemplates.C index 46a60ca7824b3e3c63d7466a3aa5cd460efb7d4b..4e72859f8005338cd0bd7b148a9284e0a89267d2 100644 --- a/src/finiteVolume/cfdTools/general/porousMedia/porousZoneTemplates.C +++ b/src/finiteVolume/cfdTools/general/porousMedia/porousZoneTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,12 +33,15 @@ void Foam::porousZone::modifyDdt(fvMatrix<Type>& m) const { if (porosity_ < 1) { - const labelList& cells = mesh_.cellZones()[cellZoneID_]; - - forAll(cells, i) + forAll(cellZoneIds_, zoneI) { - m.diag()[cells[i]] *= porosity_; - m.source()[cells[i]] *= porosity_; + const labelList& cells = mesh_.cellZones()[cellZoneIds_[zoneI]]; + + forAll(cells, i) + { + m.diag()[cells[i]] *= porosity_; + m.source()[cells[i]] *= porosity_; + } } } } @@ -48,7 +51,6 @@ template<class RhoFieldType> void Foam::porousZone::addPowerLawResistance ( scalarField& Udiag, - const labelList& cells, const scalarField& V, const RhoFieldType& rho, const vectorField& U @@ -57,10 +59,15 @@ void Foam::porousZone::addPowerLawResistance const scalar C0 = C0_; const scalar C1m1b2 = (C1_ - 1.0)/2.0; - forAll(cells, i) + forAll(cellZoneIds_, zoneI) { - Udiag[cells[i]] += + const labelList& cells = mesh_.cellZones()[cellZoneIds_[zoneI]]; + + forAll(cells, i) + { + Udiag[cells[i]] += V[cells[i]]*rho[cells[i]]*C0*pow(magSqr(U[cells[i]]), C1m1b2); + } } } @@ -70,7 +77,6 @@ void Foam::porousZone::addViscousInertialResistance ( scalarField& Udiag, vectorField& Usource, - const labelList& cells, const scalarField& V, const RhoFieldType& rho, const scalarField& mu, @@ -80,14 +86,21 @@ void Foam::porousZone::addViscousInertialResistance const tensor& D = D_.value(); const tensor& F = F_.value(); - forAll(cells, i) + forAll(cellZoneIds_, zoneI) { - tensor dragCoeff = mu[cells[i]]*D + (rho[cells[i]]*mag(U[cells[i]]))*F; - scalar isoDragCoeff = tr(dragCoeff); + const labelList& cells = mesh_.cellZones()[cellZoneIds_[zoneI]]; + + forAll(cells, i) + { + const tensor dragCoeff = mu[cells[i]]*D + + (rho[cells[i]]*mag(U[cells[i]]))*F; - Udiag[cells[i]] += V[cells[i]]*isoDragCoeff; - Usource[cells[i]] -= - V[cells[i]]*((dragCoeff - I*isoDragCoeff) & U[cells[i]]); + const scalar isoDragCoeff = tr(dragCoeff); + + Udiag[cells[i]] += V[cells[i]]*isoDragCoeff; + Usource[cells[i]] -= + V[cells[i]]*((dragCoeff - I*isoDragCoeff) & U[cells[i]]); + } } } @@ -96,7 +109,6 @@ template<class RhoFieldType> void Foam::porousZone::addPowerLawResistance ( tensorField& AU, - const labelList& cells, const RhoFieldType& rho, const vectorField& U ) const @@ -104,10 +116,15 @@ void Foam::porousZone::addPowerLawResistance const scalar C0 = C0_; const scalar C1m1b2 = (C1_ - 1.0)/2.0; - forAll(cells, i) + forAll(cellZoneIds_, zoneI) { - AU[cells[i]] = AU[cells[i]] - + I*(rho[cells[i]]*C0*pow(magSqr(U[cells[i]]), C1m1b2)); + const labelList& cells = mesh_.cellZones()[cellZoneIds_[zoneI]]; + + forAll(cells, i) + { + AU[cells[i]] = AU[cells[i]] + + I*(rho[cells[i]]*C0*pow(magSqr(U[cells[i]]), C1m1b2)); + } } } @@ -116,7 +133,6 @@ template<class RhoFieldType> void Foam::porousZone::addViscousInertialResistance ( tensorField& AU, - const labelList& cells, const RhoFieldType& rho, const scalarField& mu, const vectorField& U @@ -125,9 +141,14 @@ void Foam::porousZone::addViscousInertialResistance const tensor& D = D_.value(); const tensor& F = F_.value(); - forAll(cells, i) + forAll(cellZoneIds_, zoneI) { - AU[cells[i]] += mu[cells[i]]*D + (rho[cells[i]]*mag(U[cells[i]]))*F; + const labelList& cells = mesh_.cellZones()[cellZoneIds_[zoneI]]; + + forAll(cells, i) + { + AU[cells[i]] += mu[cells[i]]*D + (rho[cells[i]]*mag(U[cells[i]]))*F; + } } } diff --git a/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/atomizationModel/newAtomizationModel.C b/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/atomizationModel/newAtomizationModel.C deleted file mode 100644 index 5304ea008dee4f3b45ee00f1d894858a72981435..0000000000000000000000000000000000000000 --- a/src/lagrangian/dieselSpray/spraySubModels/atomizationModel/atomizationModel/newAtomizationModel.C +++ /dev/null @@ -1,74 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. - \\/ 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 "error.H" -#include "atomizationModel.H" -#include "LISA.H" -#include "noAtomization.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -autoPtr<atomizationModel> atomizationModel::New -( - const dictionary& dict, - spray& sm -) -{ - word atomizationModelType - ( - dict.lookup("atomizationModel") - ); - - Info<< "Selecting atomizationModel " - << atomizationModelType << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(atomizationModelType); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalError - << "atomizationModel::New(const dictionary&, const spray&) : " << endl - << " unknown atomizationModelType type " - << atomizationModelType - << ", constructor not in hash table" << endl << endl - << " Valid atomizationModel types are :" << endl; - Info<< dictionaryConstructorTablePtr_->sortedToc() << abort(FatalError); - } - - return autoPtr<atomizationModel>(cstrIter()(dict, sm)); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.C index 47db7f93da23e80bbba0e1135b042d49faae400d..5f22f047508c1e411408b97d005a76fed8c0b705 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.C @@ -59,6 +59,6 @@ Foam::CollisionModel<CloudType>::~CollisionModel() // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "NewCollisionModel.C" +#include "CollisionModelNew.C" // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H index cbce0ee43acc85e130ea867c751128a69a7be97f..fc6f9a488694e2b5e59bdc861cf3dbfb68d5a00a 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModel.H @@ -29,7 +29,7 @@ Description SourceFiles CollisionModel.C - NewCollisionModel.C + CollisionModelNew.C \*---------------------------------------------------------------------------*/ diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/NewCollisionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModelNew.C similarity index 100% rename from src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/NewCollisionModel.C rename to src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/CollisionModel/CollisionModelNew.C diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.C index 79adb906c17fffba5ba372f8d1c00c2f2958c438..cbd869d8223fc7bb112c3a3721c5499367993af2 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.C @@ -75,6 +75,6 @@ Foam::PairModel<CloudType>::coeffDict() const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "NewPairModel.C" +#include "PairModelNew.C" // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.H b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.H index b5b36fdb68b8e5542ea1d93d6c15e48fbf48f09e..bbfb8f4aecbe179259b6a27cc37d07fec2988f43 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModel.H @@ -29,7 +29,7 @@ Description SourceFiles PairModel.C - NewPairModel.C + PairModelNew.C \*---------------------------------------------------------------------------*/ diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/NewPairModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModelNew.C similarity index 100% rename from src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/NewPairModel.C rename to src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairModel/PairModelNew.C diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.C index d25cc29c6ab630d0b331a25d5e4aa6eccd62073f..a26f9b1e113f9919222b7f3b7b4f0d4fa548624f 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.C +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.C @@ -83,6 +83,6 @@ Foam::WallModel<CloudType>::coeffDict() const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#include "NewWallModel.C" +#include "WallModelNew.C" // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.H b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.H index 392825f8297802f68e2ceefdb756e2a52e9e4df2..3d6a6cfcf12bcaacc2c68780a3fee9fb7d866e05 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModel.H @@ -29,7 +29,7 @@ Description SourceFiles WallModel.C - NewWallModel.C + WallModelNew.C \*---------------------------------------------------------------------------*/ diff --git a/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/NewWallModel.C b/src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModelNew.C similarity index 100% rename from src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/NewWallModel.C rename to src/lagrangian/intermediate/submodels/Kinematic/CollisionModel/PairCollision/WallModel/WallModel/WallModelNew.C diff --git a/src/meshTools/coordinateSystems/coordinateSystem.C b/src/meshTools/coordinateSystems/coordinateSystem.C index 8e5fc7bceb1f84344b25e36aa6ff1ec71d9aa22e..0a5fe400f7e7270d4d2a8cfb00174a142f06b4c2 100644 --- a/src/meshTools/coordinateSystems/coordinateSystem.C +++ b/src/meshTools/coordinateSystems/coordinateSystem.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -136,37 +136,36 @@ Foam::coordinateSystem::coordinateSystem { const entry* entryPtr = dict.lookupEntryPtr(typeName_(), false, false); - // a simple entry is a lookup into global coordinateSystems + // non-dictionary entry is a lookup into global coordinateSystems if (entryPtr && !entryPtr->isDict()) { - word csName; - entryPtr->stream() >> csName; + keyType key(entryPtr->stream()); - const coordinateSystems& csLst = coordinateSystems::New(obr); + const coordinateSystems& lst = coordinateSystems::New(obr); + const label id = lst.find(key); - label csId = csLst.find(csName); if (debug) { Info<< "coordinateSystem::coordinateSystem" "(const dictionary&, const objectRegistry&):" << nl << "using global coordinate system: " - << csName << "=" << csId << endl; + << key << "=" << id << endl; } - if (csId < 0) + if (id < 0) { FatalErrorIn ( "coordinateSystem::coordinateSystem" "(const dictionary&, const objectRegistry&)" - ) << "could not find coordinate system: " << csName << nl - << "available coordinate systems: " << csLst.toc() << nl << nl + ) << "could not find coordinate system: " << key << nl + << "available coordinate systems: " << lst.toc() << nl << nl << exit(FatalError); } // copy coordinateSystem, but assign the name as the typeName // to avoid strange things in writeDict() - operator=(csLst[csId]); + operator=(lst[id]); name_ = typeName_(); } else diff --git a/src/meshTools/coordinateSystems/coordinateSystem.H b/src/meshTools/coordinateSystems/coordinateSystem.H index e2a8f47affb10754916a6ad4504c1d754e039b9f..11a48d6eb772b7806c57281174ede70bf1a93f4b 100644 --- a/src/meshTools/coordinateSystems/coordinateSystem.H +++ b/src/meshTools/coordinateSystems/coordinateSystem.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/meshTools/coordinateSystems/coordinateSystems.C b/src/meshTools/coordinateSystems/coordinateSystems.C index 28632d0ae0aa1293eb128bc8688f9dd0bbac2052..4d829004081944a70489299514b6517118260a20 100644 --- a/src/meshTools/coordinateSystems/coordinateSystems.C +++ b/src/meshTools/coordinateSystems/coordinateSystems.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,7 @@ License #include "coordinateSystems.H" #include "IOPtrList.H" #include "Time.H" +#include "stringListOps.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -97,13 +98,25 @@ const Foam::coordinateSystems& Foam::coordinateSystems::New // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::label Foam::coordinateSystems::find(const word& keyword) const +Foam::label Foam::coordinateSystems::find(const keyType& key) const { - forAll(*this, i) + if (key.isPattern()) { - if (keyword == operator[](i).name()) + labelList allFound = findAll(key); + // return first element + if (!allFound.empty()) { - return i; + return allFound[0]; + } + } + else + { + forAll(*this, i) + { + if (key == operator[](i).name()) + { + return i; + } } } @@ -111,9 +124,34 @@ Foam::label Foam::coordinateSystems::find(const word& keyword) const } -bool Foam::coordinateSystems::found(const word& keyword) const +Foam::labelList Foam::coordinateSystems::findAll(const keyType& key) const +{ + labelList allFound; + if (key.isPattern()) + { + allFound = findStrings(key, toc()); + } + else + { + allFound.setSize(size()); + label nFound = 0; + forAll(*this, i) + { + if (key == operator[](i).name()) + { + allFound[nFound++] = i; + } + } + allFound.setSize(nFound); + } + + return allFound; +} + + +bool Foam::coordinateSystems::found(const keyType& key) const { - return find(keyword) >= 0; + return find(key) >= 0; } diff --git a/src/meshTools/coordinateSystems/coordinateSystems.H b/src/meshTools/coordinateSystems/coordinateSystems.H index 60bd169ba0de9aa8407b1f1ada61b0639df4f2b6..2976a6f94efa48a726a39946bf87cb88843b12f0 100644 --- a/src/meshTools/coordinateSystems/coordinateSystems.H +++ b/src/meshTools/coordinateSystems/coordinateSystems.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -97,11 +97,14 @@ public: // Member Functions - //- Find and return index for a given keyword, returns -1 if not found - label find(const word& key) const; + //- Find and return index for the first match, returns -1 if not found + label find(const keyType& key) const; - //- Search for given keyword - bool found(const word& keyword) const; + //- Find and return indices for all matches + labelList findAll(const keyType& key) const; + + //- Search for given key + bool found(const keyType& key) const; //- Return the table of contents (list of all keywords) wordList toc() const; diff --git a/src/thermophysicalModels/basicSolidThermo/Make/files b/src/thermophysicalModels/basicSolidThermo/Make/files index f7f64d01d21c1bd4184502453288301f27abbfd0..e550ce20352aba5e8072c26af063a839b4c53f8b 100644 --- a/src/thermophysicalModels/basicSolidThermo/Make/files +++ b/src/thermophysicalModels/basicSolidThermo/Make/files @@ -1,7 +1,7 @@ constSolidThermo/constSolidThermo.C directionalSolidThermo/directionalSolidThermo.C basicSolidThermo/basicSolidThermo.C -basicSolidThermo/newBasicSolidThermo.C +basicSolidThermo/basicSolidThermoNew.C interpolatedSolidThermo/interpolatedSolidThermo.C LIB = $(FOAM_LIBBIN)/libbasicSolidThermo diff --git a/src/thermophysicalModels/basicSolidThermo/basicSolidThermo/newBasicSolidThermo.C b/src/thermophysicalModels/basicSolidThermo/basicSolidThermo/basicSolidThermoNew.C similarity index 100% rename from src/thermophysicalModels/basicSolidThermo/basicSolidThermo/newBasicSolidThermo.C rename to src/thermophysicalModels/basicSolidThermo/basicSolidThermo/basicSolidThermoNew.C diff --git a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.C b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.C index 322260c6439980cb193434b76b405d9c4d47e0ec..df6a32d84b65cbda8d872056cdf78890bbdcb049 100644 --- a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.C +++ b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,12 +32,12 @@ License Foam::thermalPorousZone::thermalPorousZone ( - const word& name, + const keyType& key, const fvMesh& mesh, const dictionary& dict ) : - porousZone(name, mesh, dict), + porousZone(key, mesh, dict), T_("T", dimTemperature, -GREAT) { if (const dictionary* dictPtr = dict.subDictPtr("thermalModel")) @@ -53,11 +53,7 @@ Foam::thermalPorousZone::thermalPorousZone FatalIOErrorIn ( "thermalPorousZone::thermalPorousZone" - "(" - "const word& name, " - "const fvMesh& mesh, " - "const dictionary& dict" - ")", + "(const keyType&, const fvMesh&, const dictionary&)", *dictPtr ) << "thermalModel " << thermalModel << " is not supported" << nl << " Supported thermalModels are: fixedTemperature" @@ -76,23 +72,28 @@ void Foam::thermalPorousZone::addEnthalpySource fvScalarMatrix& hEqn ) const { - if (zoneId() == -1 || T_.value() < 0.0) + const labelList& zones = this->zoneIds(); + if (zones.empty() || T_.value() < 0.0) { return; } - const labelList& cells = mesh().cellZones()[zoneId()]; const scalarField& V = mesh().V(); scalarField& hDiag = hEqn.diag(); scalarField& hSource = hEqn.source(); - scalarField hZone = thermo.h(scalarField(cells.size(), T_.value()), cells); - scalar rate = 1e6; + // TODO: generalize for non-fixedTemperature methods + const scalar rate = 1e6; - forAll(cells, i) + forAll(zones, zoneI) { - hDiag[cells[i]] += rate*V[cells[i]]*rho[cells[i]]; - hSource[cells[i]] += rate*V[cells[i]]*rho[cells[i]]*hZone[i]; + const labelList& cells = mesh().cellZones()[zones[zoneI]]; + + forAll(cells, i) + { + hDiag[cells[i]] += rate*V[cells[i]]*rho[cells[i]]; + hSource[cells[i]] += rate*V[cells[i]]*rho[cells[i]]*T_.value(); + } } } diff --git a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.H b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.H index f3cf5b339665ae889d4500ed6b058120eff4d0d4..7278f4ec980fc6f6f9d9280a26f2e87346c67438 100644 --- a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.H +++ b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZone.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,7 +33,6 @@ See Also SourceFiles thermalPorousZone.C - thermalPorousZoneTemplates.C \*---------------------------------------------------------------------------*/ @@ -76,7 +75,7 @@ public: // Constructors //- Construct from components - thermalPorousZone(const word& name, const fvMesh&, const dictionary&); + thermalPorousZone(const keyType& key, const fvMesh&, const dictionary&); //- Return clone autoPtr<thermalPorousZone> clone() const @@ -101,12 +100,12 @@ public: autoPtr<thermalPorousZone> operator()(Istream& is) const { - word name(is); + keyType key(is); dictionary dict(is); return autoPtr<thermalPorousZone> ( - new thermalPorousZone(name, mesh_, dict) + new thermalPorousZone(key, mesh_, dict) ); } }; @@ -149,12 +148,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#ifdef NoRepository -//# include "thermalPorousZoneTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #endif // ************************************************************************* // diff --git a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZoneTemplates.C b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZoneTemplates.C deleted file mode 100644 index 261abb18e958ccc160b67f5c73116a3e6a221a96..0000000000000000000000000000000000000000 --- a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZoneTemplates.C +++ /dev/null @@ -1,79 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ 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 "porousZone.H" -#include "fvMesh.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class RhoFieldType> -void Foam::porousZone::addPowerLawResistance -( - scalarField& Udiag, - const labelList& cells, - const scalarField& V, - const RhoFieldType& rho, - const vectorField& U -) const -{ - const scalar C0 = C0_; - const scalar C1m1b2 = (C1_ - 1.0)/2.0; - - forAll(cells, i) - { - Udiag[cells[i]] += - V[cells[i]]*rho[cells[i]]*C0*pow(magSqr(U[cells[i]]), C1m1b2); - } -} - - -template<class RhoFieldType> -void Foam::porousZone::addViscousInertialResistance -( - scalarField& Udiag, - vectorField& Usource, - const labelList& cells, - const scalarField& V, - const RhoFieldType& rho, - const scalarField& mu, - const vectorField& U -) const -{ - const tensor& D = D_.value(); - const tensor& F = F_.value(); - - forAll(cells, i) - { - tensor dragCoeff = mu[cells[i]]*D + (rho[cells[i]]*mag(U[cells[i]]))*F; - scalar isoDragCoeff = tr(dragCoeff); - - Udiag[cells[i]] += V[cells[i]]*isoDragCoeff; - Usource[cells[i]] -= - V[cells[i]]*((dragCoeff - I*isoDragCoeff) & U[cells[i]]); - } -} - - -// ************************************************************************* // diff --git a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.C b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.C index a98b0e064ccb8f79024d0bd607b8c9cd9daaf2a2..c35bd5c0dd6d273d22a162331acd596e170bb626 100644 --- a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.C +++ b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.H b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.H index e696f2bb5b4aa7a18629ddcf25395c0c71315e9e..5d72c6f90e37524a521a24223e732f7100c96125 100644 --- a/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.H +++ b/src/thermophysicalModels/thermalPorousZone/thermalPorousZone/thermalPorousZones.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -46,7 +46,11 @@ Description d d [0 -2 0 0 0] (-1000 -1000 0.50753e+08); f f [0 -1 0 0 0] (-1000 -1000 12.83); } - Temperature [0 0 1 0 0] 600; + thermalModel + { + type fixedTemperature; + T T [0 0 1 0 0] 600; + } } ) @endverbatim @@ -69,7 +73,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class thermalPorousZones Declaration + Class thermalPorousZones Declaration \*---------------------------------------------------------------------------*/ class thermalPorousZones