diff --git a/etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.C b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C similarity index 80% rename from etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.C rename to etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C index d5fdb11a0be2625738d2bce91df3b67efdd1a7bc..0ac2687861f65ed8fe777391c4179fd344081a4e 100644 --- a/etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.C +++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -23,12 +23,14 @@ License \*---------------------------------------------------------------------------*/ -#include "codedBasicSourceTemplate.H" +#include "codedFvOptionTemplate.H" #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "surfaceFields.H" #include "unitConversion.H" +#include "fvMatrix.H" + //{{{ begin codeInclude ${codeInclude} //}}} end codeInclude @@ -39,6 +41,8 @@ ${codeInclude} namespace Foam { +namespace fv +{ // * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * // //{{{ begin localCode @@ -73,25 +77,25 @@ extern "C" //makeRemovablePatchTypeField //( // fvPatch${FieldType}, -// ${typeName}CodedBasic${SourceType} +// ${typeName}FvOption${SourceType} //); -defineTypeNameAndDebug(${typeName}CodedBasic${SourceType}, 0); +defineTypeNameAndDebug(${typeName}FvOption${SourceType}, 0); addRemovableToRunTimeSelectionTable ( - basicSource, - ${typeName}CodedBasic${SourceType}, + option, + ${typeName}FvOption${SourceType}, dictionary ); -const char* const ${typeName}CodedBasic${SourceType}::SHA1sum = +const char* const ${typeName}FvOption${SourceType}::SHA1sum = "${SHA1sum}"; // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -${typeName}CodedBasic${SourceType}:: -${typeName}CodedBasic${SourceType} +${typeName}FvOption${SourceType}:: +${typeName}FvOption${SourceType} ( const word& name, const word& modelType, @@ -99,7 +103,7 @@ ${typeName}CodedBasic${SourceType} const fvMesh& mesh ) : - basicSource(name, modelType, dict, mesh) + option(name, modelType, dict, mesh) { if (${verbose:-false}) { @@ -111,8 +115,8 @@ ${typeName}CodedBasic${SourceType} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -${typeName}CodedBasic${SourceType}:: -~${typeName}CodedBasic${SourceType}() +${typeName}FvOption${SourceType}:: +~${typeName}FvOption${SourceType}() { if (${verbose:-false}) { @@ -123,14 +127,14 @@ ${typeName}CodedBasic${SourceType}:: // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void ${typeName}CodedBasic${SourceType}::correct +void ${typeName}FvOption${SourceType}::correct ( GeometricField<${TemplateType}, fvPatchField, volMesh>& fld ) { if (${verbose:-false}) { - Info<<"${typeName}CodedBasic${SourceType}::correct()\n"; + Info<<"${typeName}FvOption${SourceType}::correct()\n"; } //{{{ begin code @@ -139,7 +143,7 @@ void ${typeName}CodedBasic${SourceType}::correct } -void ${typeName}CodedBasic${SourceType}::addSup +void ${typeName}FvOption${SourceType}::addSup ( fvMatrix<${TemplateType}>& eqn, const label fieldI @@ -147,7 +151,7 @@ void ${typeName}CodedBasic${SourceType}::addSup { if (${verbose:-false}) { - Info<<"${typeName}CodedBasic${SourceType}::addSup()\n"; + Info<<"${typeName}FvOption${SourceType}::addSup()\n"; } //{{{ begin code @@ -156,7 +160,7 @@ void ${typeName}CodedBasic${SourceType}::addSup } -void ${typeName}CodedBasic${SourceType}::setValue +void ${typeName}FvOption${SourceType}::setValue ( fvMatrix<${TemplateType}>& eqn, const label fieldI @@ -164,7 +168,7 @@ void ${typeName}CodedBasic${SourceType}::setValue { if (${verbose:-false}) { - Info<<"${typeName}CodedBasic${SourceType}::setValue()\n"; + Info<<"${typeName}FvOption${SourceType}::setValue()\n"; } //{{{ begin code @@ -177,4 +181,5 @@ void ${typeName}CodedBasic${SourceType}::setValue } // End namespace Foam +} // End namespace fv // ************************************************************************* // diff --git a/etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.H b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H similarity index 57% rename from etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.H rename to etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H index 7f80510507e6e8bec0ae185bb7932309880905e8..15f1d1d520b03c2dca32119f5f93461afb17800c 100644 --- a/etc/codeTemplates/dynamicCode/codedBasicSourceTemplate.H +++ b/etc/codeTemplates/dynamicCode/codedFvOptionTemplate.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,32 +22,106 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Description - Template for use with dynamic code generation of a basicSource - - - without state + Template for use with dynamic code generation of a source. + The hook functions take the following arguments: + + codeCorrect + ( + GeometricField<Type, fvPatchField, volMesh>& fld + ) + + codeAddSup + ( + fvMatrix<Type}>& eqn, + const label fieldI + ) + + setValue + ( + fvMatrix<Type}>& eqn, + const label fieldI + ) + + where : + fld is the field in fieldNames + eqn is the fvMatrix + + energySource + { + type scalarCodedSource; + + active true; + selectionMode all; + + scalarCodedSourceCoeffs + { + fieldNames (h); + redirectType sourceTime; + + codeInclude + #{ + + #}; + + codeCorrect + #{ + Pout<< "**codeCorrect**" << endl; + #}; + + codeAddSup + #{ + const Time& time = mesh().time(); + const scalarField& V = mesh_.V(); + scalarField& heSource = eqn.source(); + heSource -= 0.1*sqr(time.value())*V; + #}; + + codeSetValue + #{ + Pout<< "**codeSetValue**" << endl; + #}; + + // Dummy entry. Make dependent on above to trigger recompilation + code + #{ + $codeInclude + $codeCorrect + $codeAddSup + $codeSetValue + #}; + } + + sourceTimeCoeffs + { + // Dummy entry + } + } SourceFiles - codedBasicSourceTemplate.C + codedFvOptionTemplate.C \*---------------------------------------------------------------------------*/ -#ifndef codedBasicSourceTemplate_H -#define codedBasicSourceTemplate_H +#ifndef codedFvOptionTemplate_H +#define codedFvOptionTemplate_H -#include "basicSource.H" +#include "fvOption.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { +namespace fv +{ + /*---------------------------------------------------------------------------*\ - A templated CodedBasicSource + A templated CodedFvOption \*---------------------------------------------------------------------------*/ -class ${typeName}CodedBasic${SourceType} +class ${typeName}FvOption${SourceType} : - public basicSource + public option { public: @@ -61,7 +135,7 @@ public: // Constructors //- Construct from patch and internal field - ${typeName}CodedBasic${SourceType} + ${typeName}FvOption${SourceType} ( const word& name, const word& modelType, @@ -70,7 +144,7 @@ public: ); //- Destructor - virtual ~${typeName}CodedBasic${SourceType}(); + virtual ~${typeName}FvOption${SourceType}(); // Member functions @@ -101,6 +175,8 @@ public: } // End namespace Foam +} // End namespace fv + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif