diff --git a/etc/codeTemplates/dynamicCode/Function1Template.C b/etc/codeTemplates/dynamicCode/Function1Template.C new file mode 100644 index 0000000000..d613a66129 --- /dev/null +++ b/etc/codeTemplates/dynamicCode/Function1Template.C @@ -0,0 +1,139 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) YEAR 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 . + +\*---------------------------------------------------------------------------*/ + +#include "Function1Template.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ +namespace Function1s +{ + defineTypeNameAndDebug(${typeName}Function1${TemplateType}, 0); +} + Function1<${TemplateType}>::adddictionaryConstructorToTable + ${typeName}Function1${TemplateType}ConstructorToTable_; +} + + +// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // + +extern "C" +{ + // dynamicCode: + // SHA1 = ${SHA1sum} + // + // Unique function name that can be checked if the correct library version + // has been loaded + void ${typeName}_${SHA1sum}(bool load) + { + if (load) + { + // code that can be explicitly executed after loading + } + else + { + // code that can be explicitly executed before unloading + } + } +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::Function1s::${typeName}Function1${TemplateType}:: +${typeName}Function1${TemplateType} +( + const word& entryName, + const dictionary& dict +) +: + FieldFunction1<${TemplateType}, ${typeName}Function1${TemplateType}> + ( + entryName + ) +{ + if (${verbose:-false}) + { + Info<< "Construct ${typeName} sha1: ${SHA1sum} from dictionary\n"; + } +} + + +Foam::Function1s::${typeName}Function1${TemplateType}:: +${typeName}Function1${TemplateType} +( + const ${typeName}Function1${TemplateType}& f1 +) +: + FieldFunction1<${TemplateType}, ${typeName}Function1${TemplateType}> + ( + f1 + ) +{ + if (${verbose:-false}) + { + Info<< "Construct ${typeName} sha1: ${SHA1sum} as copy\n"; + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::Function1s::${typeName}Function1${TemplateType}:: +~${typeName}Function1${TemplateType}() +{ + if (${verbose:-false}) + { + Info<< "Destroy ${typeName} sha1: ${SHA1sum}\n"; + } +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +Foam::${TemplateType} +Foam::Function1s::${typeName}Function1${TemplateType}::integrate +( + const scalar x1, + const scalar x2 +) const +{ + NotImplemented; + return pTraits<${TemplateType}>::zero; +} + + +void Foam::Function1s::${typeName}Function1${TemplateType}::writeData +( + Ostream& os +) const +{ + NotImplemented; +} + + +// ************************************************************************* i/ diff --git a/etc/codeTemplates/dynamicCode/Function1Template.H b/etc/codeTemplates/dynamicCode/Function1Template.H new file mode 100644 index 0000000000..d7da5a2139 --- /dev/null +++ b/etc/codeTemplates/dynamicCode/Function1Template.H @@ -0,0 +1,131 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) YEAR 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 . + +Description + Template for use with dynamic code generation of a Function1. + + - without state + +SourceFiles + Function1Template.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Function1Template_H +#define Function1Template_H + +#include "Function1.H" + +//{{{ begin codeInclude +${codeInclude} +//}}} end codeInclude + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace Function1s +{ + +/*---------------------------------------------------------------------------*\ + A templated Function1 +\*---------------------------------------------------------------------------*/ + +class ${typeName}Function1${TemplateType} +: + public FieldFunction1<${TemplateType}, ${typeName}Function1${TemplateType}> +{ + +public: + + // Runtime type information + TypeName("${typeName}"); + + + // Constructors + + //- Construct from entry name and dictionary + ${typeName}Function1${TemplateType} + ( + const word& entryName, + const dictionary& dict + ); + + //- Copy constructor + ${typeName}Function1${TemplateType} + ( + const ${typeName}Function1${TemplateType}& f1 + ); + + //- Construct and return a clone + virtual tmp> clone() const + { + return tmp> + ( + new ${typeName}Function1${TemplateType}(*this) + ); + } + + + //- Destructor + virtual ~${typeName}Function1${TemplateType}(); + + + // Member Functions + + //- Return constant value + inline virtual ${TemplateType} value(const scalar x) const + { +//{{{ begin code + ${code} +//}}} end code + } + + //- Integrate between two values + virtual ${TemplateType} integrate + ( + const scalar x1, + const scalar x2 + ) const; + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; + + + // Member Operators + + //- Disallow default bitwise assignment + void operator=(const ${typeName}Function1${TemplateType}&) = delete; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Function1s +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.C b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.C new file mode 100644 index 0000000000..10c3066dc9 --- /dev/null +++ b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.C @@ -0,0 +1,232 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2020 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 . + +\*---------------------------------------------------------------------------*/ + +#include "CodedFunction1.H" +#include "dynamicCode.H" +#include "dynamicCodeContext.H" + +// * * * * * * * * * * * * Private Static Data Members * * * * * * * * * * * // + +template +const Foam::wordList Foam::Function1s::Coded::codeKeys_ = + {"code", "codeInclude"}; + + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +template +const Foam::word Foam::Function1s::Coded::codeTemplateC = + "Function1Template.C"; + +template +const Foam::word Foam::Function1s::Coded::codeTemplateH = + "Function1Template.H"; + + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +template +void Foam::Function1s::Coded::prepare +( + dynamicCode& dynCode, + const dynamicCodeContext& context +) const +{ + dynCode.setFilterVariable("typeName", name_); + + // Set TemplateType filter variables + dynCode.setFilterVariable("TemplateType", pTraits::typeName); + + // Compile filtered C template + dynCode.addCompileFile(codeTemplateC); + + // Copy filtered H template + dynCode.addCopyFile(codeTemplateH); + + // debugging: make verbose + // dynCode.setFilterVariable("verbose", "true"); + // Info<<"compile " << name_ << " sha1: " + // << context.sha1() << endl; + + // define Make/options + dynCode.setMakeOptions + ( + "EXE_INC = -g \\\n" + + context.options() + + "\n\nLIB_LIBS = \\\n" + + " -lOpenFOAM \\\n" + + context.libs() + ); +} + + +template +Foam::string Foam::Function1s::Coded::description() const +{ + return "Function1 " + name_; +} + + +template +void Foam::Function1s::Coded::clearRedirect() const +{ + // Remove instantiation of Function1 provided by library + redirectFunction1Ptr_.clear(); +} + + +template +const Foam::dictionary& Foam::Function1s::Coded::codeDict() +const +{ + return dict_; +} + + +template +const Foam::wordList& Foam::Function1s::Coded::codeKeys() const +{ + return codeKeys_; +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +template +Foam::Function1s::Coded::Coded +( + const word& entryName, + const dictionary& dict +) +: + Function1(entryName), + dict_(dict), + name_ + ( + dict.found("redirectType") + ? dict.lookup("redirectType") + : dict.lookup("name") + ), + redirectFunction1Ptr_() +{ + updateLibrary(name_); + + dictionary redirectDict(dict_); + redirectDict.set(name_, name_); + redirectFunction1Ptr_ = Function1::New(name_, redirectDict); +} + + + +template +Foam::Function1s::Coded::Coded(const Coded& cf1) +: + Function1(cf1), + codedBase(), + dict_(cf1.dict_), + name_(cf1.name_) +{ + updateLibrary(name_); + + dictionary redirectDict(dict_); + redirectDict.set(name_, name_); + redirectFunction1Ptr_ = Function1::New(name_, redirectDict); +} + + +template +Foam::tmp> Foam::Function1s::Coded::clone() const +{ + return tmp>(new Coded(*this)); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +template +Foam::Function1s::Coded::~Coded() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +Foam::tmp> Foam::Function1s::Coded::value +( + const scalarField& x +) const +{ + return redirectFunction1Ptr_->value(x); +} + + +template +inline Type Foam::Function1s::Coded::integrate +( + const scalar x1, + const scalar x2 +) const +{ + NotImplemented; + return pTraits::zero; +} + + +template +Foam::tmp> Foam::Function1s::Coded::integrate +( + const scalarField& x1, + const scalarField& x2 +) const +{ + NotImplemented; + return tmp>(); +} + + +template +void Foam::Function1s::Coded::writeData(Ostream& os) const +{ + Function1::writeData(os); + os << token::END_STATEMENT << nl; + writeEntry(os, "name", name_); + + if (dict_.found("codeInclude")) + { + writeKeyword(os, "codeInclude"); + os.write(verbatimString(dict_["codeInclude"])) + << token::END_STATEMENT << nl; + } + + if (dict_.found("code")) + { + writeKeyword(os, "code"); + os.write(verbatimString(dict_["code"])) + << token::END_STATEMENT << nl; + } +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.H b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.H new file mode 100644 index 0000000000..b18a78ddba --- /dev/null +++ b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1.H @@ -0,0 +1,220 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2020 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 . + +Class + Foam::Function1s::Coded + +Description + Constructs on-the-fly a Function1 which is then used to evaluate. + +Usage + Example: + \verbatim + + { + type codedFixedValue; + value uniform 0; + name rampedFixedValue; // name of generated BC + + code + #{ + operator==(min(10, 0.1*this->db().time().value())); + #}; + + // codeInclude + //#{ + // #include "fvCFD.H" + //#}; + + // codeOptions + //#{ + // -I$(LIB_SRC)/finiteVolume/lnInclude + //#}; + } + \endverbatim + + A special form is if the 'code' section is not supplied. In this case + the code is read from a (runTimeModifiable!) dictionary system/codeDict + which would have a corresponding entry: + + \verbatim + + { + code + #{ + operator==(min(10, 0.1*this->db().time().value())); + #}; + } + \endverbatim + +See also + Foam::dynamicCode + Foam::functionEntries::codeStream + +SourceFiles + CodedI.H + Coded.C + +\*---------------------------------------------------------------------------*/ + +#ifndef CodedFunction1_H +#define CodedFunction1_H + +#include "Function1.H" +#include "codedBase.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace Function1s +{ + +/*---------------------------------------------------------------------------*\ + Class Coded Declaration +\*---------------------------------------------------------------------------*/ + +template +class Coded +: + public Function1, + public codedBase +{ + // Private static data + + //- The keywords associated with source code + static const wordList codeKeys_; + + + // Private Data + + //- Dictionary contents for the Function1 + const dictionary dict_; + + //- Name of the dynamically generated Function1 + const word name_; + + //- The dynamically generated Function1 pointer + mutable autoPtr> redirectFunction1Ptr_; + + + // Private Member Functions + + //- Adapt the context for the current object + virtual void prepare(dynamicCode&, const dynamicCodeContext&) const; + + //- Return a description (type + name) for the output + virtual string description() const; + + //- Clear the ptr to the redirected object + virtual void clearRedirect() const; + + //- Get the dictionary to initialize the codeContext + virtual const dictionary& codeDict() const; + + //- Get the keywords associated with source code + virtual const wordList& codeKeys() const; + + +public: + + // Static Data Members + + //- Name of the C code template to be used + static const word codeTemplateC; + + //- Name of the H code template to be used + static const word codeTemplateH; + + + // Runtime type information + TypeName("coded"); + + + // Constructors + + //- Construct from entry name and dictionary + Coded + ( + const word& entryName, + const dictionary& dict + ); + + //- Copy constructor + Coded(const Coded& cf1); + + //- Construct and return a clone + virtual tmp> clone() const; + + + //- Destructor + virtual ~Coded(); + + + // Member Functions + + //- Return value + virtual inline Type value(const scalar x) const; + + //- Return value as a function of (scalar) independent variable + virtual tmp> value(const scalarField& x) const; + + //- Integrate between two values + virtual Type integrate(const scalar x1, const scalar x2) const; + + //- Integrate between two (scalar) values + virtual tmp> integrate + ( + const scalarField& x1, + const scalarField& x2 + ) const; + + //- Write in dictionary format + virtual void writeData(Ostream& os) const; + + + // Member Operators + + //- Disallow default bitwise assignment + void operator=(const Coded&) = delete; +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Function1s +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "CodedFunction1I.H" + +#ifdef NoRepository + #include "CodedFunction1.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1I.H b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1I.H new file mode 100644 index 0000000000..937399ada8 --- /dev/null +++ b/src/OpenFOAM/primitives/functions/Function1/Coded/CodedFunction1I.H @@ -0,0 +1,40 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Copyright (C) 2020 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 . + +\*---------------------------------------------------------------------------*/ + +#include "CodedFunction1.H" + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +inline Type Foam::Function1s::Coded::value(const scalar x) const +{ + // Make sure library containing user-defined Function1 is up-to-date + updateLibrary(name_); + + return redirectFunction1Ptr_->value(x); +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C b/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C index 316e286d69..e3560333c8 100644 --- a/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C +++ b/src/OpenFOAM/primitives/functions/Function1/makeFunction1s.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,6 +33,7 @@ License #include "Table.H" #include "TableFile.H" #include "Scale.H" +#include "CodedFunction1.H" #include "fieldTypes.H" @@ -49,7 +50,8 @@ License makeFunction1Type(Square, Type); \ makeFunction1Type(Table, Type); \ makeFunction1Type(TableFile, Type); \ - makeFunction1Type(Scale, Type); + makeFunction1Type(Scale, Type); \ + makeFunction1Type(Coded, Type); namespace Foam { diff --git a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C index 5eec886e91..bab3776dcb 100644 --- a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C +++ b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.C @@ -193,13 +193,9 @@ bool Foam::codedFunctionObject::read(const dictionary& dict) // The name keyword is "name". "redirectType" is also maintained here // for backwards compatibility, but "name" is taken in preference and // is printed in the error message if neither keyword is present. - name_ = word::null; - name_ = dict.lookupOrDefault("redirectType", name_); - name_ = dict.lookupOrDefault("name", name_); - if (name_ == word::null) - { - dict.lookup("name"); // <-- generate error message with "name" in it - } + name_ = dict.found("redirectType") + ? dict.lookup("redirectType") + : dict.lookup("name"); updateLibrary(name_); return redirectFunctionObject().read(dict); diff --git a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H index 8961022c1a..705cfa0716 100644 --- a/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H +++ b/src/functionObjects/utilities/codedFunctionObject/codedFunctionObject.H @@ -104,10 +104,10 @@ protected: //- Input dictionary dictionary dict_; - //- The name + //- Name of the dynamically generated functionObject word name_; - //- Underlying functionObject + //- The dynamically generated functionObject pointer mutable autoPtr redirectFunctionObjectPtr_; diff --git a/tutorials/basic/scalarTransportFoam/pitzDaily/Allrun b/tutorials/basic/scalarTransportFoam/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/basic/scalarTransportFoam/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict b/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/basic/scalarTransportFoam/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/Allrun b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict b/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/compressible/rhoPimpleFoam/LES/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/Allrun b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict b/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/adjointShapeOptimizationFoam/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/Allrun b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/Allrun b/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/system/blockMeshDict b/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/pimpleFoam/RAS/pitzDailyLTS/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/U b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/U new file mode 100644 index 0000000000..f36da64d7f --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/U @@ -0,0 +1,67 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + inlet + { + type uniformFixedValue; + uniformValue coded; + + name pulse; + + codeInclude + #{ + #include "mathematicalConstants.H" + #}; + + code + #{ + return vector + ( + 0.5*(1 - cos(constant::mathematical::twoPi*min(x/0.3, 1))), + 0, + 0 + ); + #}; + } + + outlet + { + type zeroGradient; + } + + upperWall + { + type noSlip; + } + + lowerWall + { + type noSlip; + } + + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/p b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/p new file mode 100644 index 0000000000..0521b7991c --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/0/p @@ -0,0 +1,50 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + + outlet + { + type fixedValue; + value uniform 0; + } + + upperWall + { + type zeroGradient; + } + + lowerWall + { + type zeroGradient; + } + + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/Allrun b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/transportProperties b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/transportProperties new file mode 100644 index 0000000000..dcfc183c11 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/transportProperties @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu [0 2 -1 0 0 0 0] 1e-4; + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/turbulenceProperties b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/turbulenceProperties new file mode 100644 index 0000000000..e61cb31334 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/controlDict b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/controlDict new file mode 100644 index 0000000000..2f3a4319ca --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/controlDict @@ -0,0 +1,57 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 1; + +deltaT 0.001; + +writeControl adjustableRunTime; + +writeInterval 0.02; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 5; + +functions +{ + #includeFunc patchAverage(name=inlet, fields=(p U)) +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSchemes b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSchemes new file mode 100644 index 0000000000..c71fff9c43 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSchemes @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; +} + +divSchemes +{ + default none; + + div(phi,U) Gauss linearUpwind grad(U); + + div((nuEff*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSolution b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSolution new file mode 100644 index 0000000000..f09cf9af67 --- /dev/null +++ b/tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse/system/fvSolution @@ -0,0 +1,58 @@ +/*--------------------------------*- C++ -*----------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | Website: https://openfoam.org + \\ / A nd | Version: dev + \\/ M anipulation | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver GAMG; + tolerance 1e-7; + relTol 0.01; + + smoother DICGaussSeidel; + + } + + pFinal + { + $p; + relTol 0; + } + + U + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-05; + relTol 0.1; + } + + UFinal + { + $U; + relTol 0; + } +} + +PIMPLE +{ + nNonOrthogonalCorrectors 0; + nCorrectors 2; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDaily/Allrun b/tutorials/incompressible/pisoFoam/LES/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/LES/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/pisoFoam/LES/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/Allrun b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict b/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict deleted file mode 100644 index bc3bf987f2..0000000000 --- a/tutorials/incompressible/pisoFoam/LES/pitzDailyMapped/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-70 0 -0.5) - (-70 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-70 0 0.5) - (-70 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - -blocks -( - hex (0 3 4 1 11 14 15 12) - (70 30 1) - simpleGrading (1 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -boundary -( - inlet - { - type mappedPatch; - offset (0.0495 0 0); - sampleRegion region0; - sampleMode nearestCell; - samplePatch none; - - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/Allrun b/tutorials/incompressible/simpleFoam/pitzDaily/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/pitzDaily/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict b/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/simpleFoam/pitzDaily/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/Allrun b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/Allrun new file mode 100755 index 0000000000..3e9b87adc3 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/Allrun @@ -0,0 +1,12 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # Run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="$(getApplication)" + +runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily +runApplication $application + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict deleted file mode 100644 index f133c1d268..0000000000 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/system/blockMeshDict +++ /dev/null @@ -1,152 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | Website: https://openfoam.org - \\ / A nd | Version: dev - \\/ M anipulation | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 0.001; - -vertices -( - (-20.6 0 -0.5) - (-20.6 25.4 -0.5) - (0 -25.4 -0.5) - (0 0 -0.5) - (0 25.4 -0.5) - (206 -25.4 -0.5) - (206 0 -0.5) - (206 25.4 -0.5) - (290 -16.6 -0.5) - (290 0 -0.5) - (290 16.6 -0.5) - - (-20.6 0 0.5) - (-20.6 25.4 0.5) - (0 -25.4 0.5) - (0 0 0.5) - (0 25.4 0.5) - (206 -25.4 0.5) - (206 0 0.5) - (206 25.4 0.5) - (290 -16.6 0.5) - (290 0 0.5) - (290 16.6 0.5) -); - -negY -( - (2 4 1) - (1 3 0.3) -); - -posY -( - (1 4 2) - (2 3 4) - (2 4 0.25) -); - -posYR -( - (2 1 1) - (1 1 0.25) -); - - -blocks -( - hex (0 3 4 1 11 14 15 12) - (18 30 1) - simpleGrading (0.5 $posY 1) - - hex (2 5 6 3 13 16 17 14) - (180 27 1) - edgeGrading (4 4 4 4 $negY 1 1 $negY 1 1 1 1) - - hex (3 6 7 4 14 17 18 15) - (180 30 1) - edgeGrading (4 4 4 4 $posY $posYR $posYR $posY 1 1 1 1) - - hex (5 8 9 6 16 19 20 17) - (25 27 1) - simpleGrading (2.5 1 1) - - hex (6 9 10 7 17 20 21 18) - (25 30 1) - simpleGrading (2.5 $posYR 1) -); - -edges -( -); - -boundary -( - inlet - { - type patch; - faces - ( - (0 1 12 11) - ); - } - outlet - { - type patch; - faces - ( - (8 9 20 19) - (9 10 21 20) - ); - } - upperWall - { - type wall; - faces - ( - (1 4 15 12) - (4 7 18 15) - (7 10 21 18) - ); - } - lowerWall - { - type wall; - faces - ( - (0 3 14 11) - (3 2 13 14) - (2 5 16 13) - (5 8 19 16) - ); - } - frontAndBack - { - type empty; - faces - ( - (0 3 4 1) - (2 5 6 3) - (3 6 7 4) - (5 8 9 6) - (6 9 10 7) - (11 14 15 12) - (13 16 17 14) - (14 17 18 15) - (16 19 20 17) - (17 20 21 18) - ); - } -); - -// ************************************************************************* // diff --git a/tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict b/tutorials/resources/blockMesh/pitzDaily similarity index 100% rename from tutorials/basic/potentialFoam/pitzDaily/system/blockMeshDict rename to tutorials/resources/blockMesh/pitzDaily