ENH: Updating codedFvOptionTemplate

This commit is contained in:
Sergio Ferraris
2013-12-20 11:53:13 +00:00
parent 620e32aff7
commit 59921dfc5c
2 changed files with 111 additions and 30 deletions

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -23,12 +23,14 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "codedBasicSourceTemplate.H" #include "codedFvOptionTemplate.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H" #include "fvPatchFieldMapper.H"
#include "volFields.H" #include "volFields.H"
#include "surfaceFields.H" #include "surfaceFields.H"
#include "unitConversion.H" #include "unitConversion.H"
#include "fvMatrix.H"
//{{{ begin codeInclude //{{{ begin codeInclude
${codeInclude} ${codeInclude}
//}}} end codeInclude //}}} end codeInclude
@ -39,6 +41,8 @@ ${codeInclude}
namespace Foam namespace Foam
{ {
namespace fv
{
// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
//{{{ begin localCode //{{{ begin localCode
@ -73,25 +77,25 @@ extern "C"
//makeRemovablePatchTypeField //makeRemovablePatchTypeField
//( //(
// fvPatch${FieldType}, // fvPatch${FieldType},
// ${typeName}CodedBasic${SourceType} // ${typeName}FvOption${SourceType}
//); //);
defineTypeNameAndDebug(${typeName}CodedBasic${SourceType}, 0); defineTypeNameAndDebug(${typeName}FvOption${SourceType}, 0);
addRemovableToRunTimeSelectionTable addRemovableToRunTimeSelectionTable
( (
basicSource, option,
${typeName}CodedBasic${SourceType}, ${typeName}FvOption${SourceType},
dictionary dictionary
); );
const char* const ${typeName}CodedBasic${SourceType}::SHA1sum = const char* const ${typeName}FvOption${SourceType}::SHA1sum =
"${SHA1sum}"; "${SHA1sum}";
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
${typeName}CodedBasic${SourceType}:: ${typeName}FvOption${SourceType}::
${typeName}CodedBasic${SourceType} ${typeName}FvOption${SourceType}
( (
const word& name, const word& name,
const word& modelType, const word& modelType,
@ -99,7 +103,7 @@ ${typeName}CodedBasic${SourceType}
const fvMesh& mesh const fvMesh& mesh
) )
: :
basicSource(name, modelType, dict, mesh) option(name, modelType, dict, mesh)
{ {
if (${verbose:-false}) if (${verbose:-false})
{ {
@ -111,8 +115,8 @@ ${typeName}CodedBasic${SourceType}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
${typeName}CodedBasic${SourceType}:: ${typeName}FvOption${SourceType}::
~${typeName}CodedBasic${SourceType}() ~${typeName}FvOption${SourceType}()
{ {
if (${verbose:-false}) if (${verbose:-false})
{ {
@ -123,14 +127,14 @@ ${typeName}CodedBasic${SourceType}::
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void ${typeName}CodedBasic${SourceType}::correct void ${typeName}FvOption${SourceType}::correct
( (
GeometricField<${TemplateType}, fvPatchField, volMesh>& fld GeometricField<${TemplateType}, fvPatchField, volMesh>& fld
) )
{ {
if (${verbose:-false}) if (${verbose:-false})
{ {
Info<<"${typeName}CodedBasic${SourceType}::correct()\n"; Info<<"${typeName}FvOption${SourceType}::correct()\n";
} }
//{{{ begin code //{{{ begin code
@ -139,7 +143,7 @@ void ${typeName}CodedBasic${SourceType}::correct
} }
void ${typeName}CodedBasic${SourceType}::addSup void ${typeName}FvOption${SourceType}::addSup
( (
fvMatrix<${TemplateType}>& eqn, fvMatrix<${TemplateType}>& eqn,
const label fieldI const label fieldI
@ -147,7 +151,7 @@ void ${typeName}CodedBasic${SourceType}::addSup
{ {
if (${verbose:-false}) if (${verbose:-false})
{ {
Info<<"${typeName}CodedBasic${SourceType}::addSup()\n"; Info<<"${typeName}FvOption${SourceType}::addSup()\n";
} }
//{{{ begin code //{{{ begin code
@ -156,7 +160,7 @@ void ${typeName}CodedBasic${SourceType}::addSup
} }
void ${typeName}CodedBasic${SourceType}::setValue void ${typeName}FvOption${SourceType}::setValue
( (
fvMatrix<${TemplateType}>& eqn, fvMatrix<${TemplateType}>& eqn,
const label fieldI const label fieldI
@ -164,7 +168,7 @@ void ${typeName}CodedBasic${SourceType}::setValue
{ {
if (${verbose:-false}) if (${verbose:-false})
{ {
Info<<"${typeName}CodedBasic${SourceType}::setValue()\n"; Info<<"${typeName}FvOption${SourceType}::setValue()\n";
} }
//{{{ begin code //{{{ begin code
@ -177,4 +181,5 @@ void ${typeName}CodedBasic${SourceType}::setValue
} // End namespace Foam } // End namespace Foam
} // End namespace fv
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -22,32 +22,106 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Description Description
Template for use with dynamic code generation of a basicSource Template for use with dynamic code generation of a source.
The hook functions take the following arguments:
- without state 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 SourceFiles
codedBasicSourceTemplate.C codedFvOptionTemplate.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef codedBasicSourceTemplate_H #ifndef codedFvOptionTemplate_H
#define codedBasicSourceTemplate_H #define codedFvOptionTemplate_H
#include "basicSource.H" #include "fvOption.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam namespace Foam
{ {
namespace fv
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
A templated CodedBasicSource A templated CodedFvOption
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class ${typeName}CodedBasic${SourceType} class ${typeName}FvOption${SourceType}
: :
public basicSource public option
{ {
public: public:
@ -61,7 +135,7 @@ public:
// Constructors // Constructors
//- Construct from patch and internal field //- Construct from patch and internal field
${typeName}CodedBasic${SourceType} ${typeName}FvOption${SourceType}
( (
const word& name, const word& name,
const word& modelType, const word& modelType,
@ -70,7 +144,7 @@ public:
); );
//- Destructor //- Destructor
virtual ~${typeName}CodedBasic${SourceType}(); virtual ~${typeName}FvOption${SourceType}();
// Member functions // Member functions
@ -101,6 +175,8 @@ public:
} // End namespace Foam } // End namespace Foam
} // End namespace fv
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif