mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: LESdelta: split LESdelta runtime-selection into generic ones and compressible/incompressible
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -67,6 +67,8 @@ Foam::autoPtr<Foam::LESdelta> Foam::LESdelta::New
|
||||
{
|
||||
const word deltaType(dict.lookup("delta"));
|
||||
|
||||
Info<< "Selecting LES delta type " << deltaType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(deltaType);
|
||||
|
||||
@ -86,4 +88,51 @@ Foam::autoPtr<Foam::LESdelta> Foam::LESdelta::New
|
||||
}
|
||||
|
||||
|
||||
Foam::autoPtr<Foam::LESdelta> Foam::LESdelta::New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dict,
|
||||
const dictionaryConstructorTable& additionalConstructors
|
||||
)
|
||||
{
|
||||
const word deltaType(dict.lookup("delta"));
|
||||
|
||||
Info<< "Selecting LES delta type " << deltaType << endl;
|
||||
|
||||
// First on additional ones
|
||||
dictionaryConstructorTable::const_iterator cstrIter =
|
||||
additionalConstructors.find(deltaType);
|
||||
|
||||
if (cstrIter != additionalConstructors.end())
|
||||
{
|
||||
return autoPtr<LESdelta>(cstrIter()(name, mesh, dict));
|
||||
}
|
||||
else
|
||||
{
|
||||
dictionaryConstructorTable::const_iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(deltaType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"LESdelta::New(const fvMesh&, const dictionary&)"
|
||||
) << "Unknown LESdelta type "
|
||||
<< deltaType << nl << nl
|
||||
<< "Valid LESdelta types are :" << endl
|
||||
<< additionalConstructors.sortedToc()
|
||||
<< " and "
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
return autoPtr<LESdelta>();
|
||||
}
|
||||
else
|
||||
{
|
||||
return autoPtr<LESdelta>(cstrIter()(name, mesh, dict));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -29,7 +29,6 @@ Description
|
||||
|
||||
SourceFiles
|
||||
LESdelta.C
|
||||
newDelta.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
@ -111,6 +110,15 @@ public:
|
||||
const dictionary&
|
||||
);
|
||||
|
||||
//- Return a reference to the selected LES delta
|
||||
static autoPtr<LESdelta> New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh&,
|
||||
const dictionary&,
|
||||
const dictionaryConstructorTable&
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~LESdelta()
|
||||
|
||||
@ -51,7 +51,7 @@ SourceFiles
|
||||
#define compressibleLESModel_H
|
||||
|
||||
#include "compressible/turbulenceModel/turbulenceModel.H"
|
||||
#include "LESdelta.H"
|
||||
#include "compressibleLESdelta.H"
|
||||
#include "fvm.H"
|
||||
#include "fvc.H"
|
||||
#include "fvMatrices.H"
|
||||
@ -86,7 +86,7 @@ protected:
|
||||
|
||||
dimensionedScalar kMin_;
|
||||
|
||||
autoPtr<LESdelta> delta_;
|
||||
autoPtr<Foam::LESdelta> delta_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
@ -10,6 +10,7 @@ homogeneousDynOneEqEddy/homogeneousDynOneEqEddy.C
|
||||
DeardorffDiffStress/DeardorffDiffStress.C
|
||||
SpalartAllmaras/SpalartAllmaras.C
|
||||
|
||||
compressibleLESdelta/compressibleLESdelta.C
|
||||
vanDriestDelta/vanDriestDelta.C
|
||||
|
||||
LIB = $(FOAM_LIBBIN)/libcompressibleLESModels
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "compressibleLESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineRunTimeSelectionTable(LESdelta, dictionary);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
LESdelta::LESdelta(const word& name, const fvMesh& mesh)
|
||||
:
|
||||
foamLESdelta(name, mesh)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<foamLESdelta> LESdelta::New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
return foamLESdelta::New(name, mesh, dict, *dictionaryConstructorTablePtr_);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,109 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::compressible::LESdelta
|
||||
|
||||
Description
|
||||
Abstract base class for compressible LES deltas
|
||||
|
||||
SourceFiles
|
||||
compressibleLESdelta.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef compressibleLESdelta_H
|
||||
#define compressibleLESdelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// To avoid macro problems typedef scoped class
|
||||
typedef Foam::LESdelta foamLESdelta;
|
||||
|
||||
namespace compressible
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class LESdelta Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class LESdelta
|
||||
:
|
||||
public foamLESdelta
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
// Declare run-time constructor selection table
|
||||
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
foamLESdelta,
|
||||
dictionary,
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& LESdeltaDict
|
||||
),
|
||||
(name, mesh, LESdeltaDict)
|
||||
);
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from name and mesh
|
||||
LESdelta(const word& name, const fvMesh& mesh);
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected LES delta
|
||||
static autoPtr<foamLESdelta> New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~LESdelta()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace compressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -35,7 +35,7 @@ SourceFiles
|
||||
#ifndef vanDriestDelta_H
|
||||
#define vanDriestDelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
#include "compressibleLESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -56,7 +56,7 @@ class vanDriestDelta
|
||||
{
|
||||
// Private data
|
||||
|
||||
autoPtr<LESdelta> geometricDelta_;
|
||||
autoPtr<Foam::LESdelta> geometricDelta_;
|
||||
scalar kappa_;
|
||||
scalar Aplus_;
|
||||
scalar Cdelta_;
|
||||
|
||||
@ -51,7 +51,7 @@ SourceFiles
|
||||
#define incompressibleLESModel_H
|
||||
|
||||
#include "incompressible/turbulenceModel/turbulenceModel.H"
|
||||
#include "LESdelta.H"
|
||||
#include "incompressibleLESdelta.H"
|
||||
#include "fvm.H"
|
||||
#include "fvc.H"
|
||||
#include "fvMatrices.H"
|
||||
@ -86,7 +86,7 @@ protected:
|
||||
|
||||
dimensionedScalar kMin_;
|
||||
|
||||
autoPtr<LESdelta> delta_;
|
||||
autoPtr<Foam::LESdelta> delta_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
incompressibleLESdelta/incompressibleLESdelta.C
|
||||
vanDriestDelta/vanDriestDelta.C
|
||||
|
||||
LESModel/LESModel.C
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -37,7 +37,7 @@ SourceFiles
|
||||
#ifndef IDDESDeltaDelta_H
|
||||
#define IDDESDeltaDelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
#include "incompressibleLESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -54,7 +54,7 @@ class IDDESDelta
|
||||
{
|
||||
// Private data
|
||||
|
||||
autoPtr<LESdelta> hmax_;
|
||||
autoPtr<Foam::LESdelta> hmax_;
|
||||
scalar deltaCoeff_;
|
||||
scalar cw_;
|
||||
|
||||
|
||||
@ -61,8 +61,8 @@ class SpalartAllmarasIDDES
|
||||
|
||||
// Model constants
|
||||
|
||||
autoPtr<LESdelta> hmax_;
|
||||
autoPtr<LESdelta> IDDESDelta_;
|
||||
autoPtr<Foam::LESdelta> hmax_;
|
||||
autoPtr<Foam::LESdelta> IDDESDelta_;
|
||||
dimensionedScalar fwStar_;
|
||||
dimensionedScalar cl_;
|
||||
dimensionedScalar ct_;
|
||||
|
||||
@ -0,0 +1,66 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "incompressibleLESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
namespace incompressible
|
||||
{
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
defineRunTimeSelectionTable(LESdelta, dictionary);
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
LESdelta::LESdelta(const word& name, const fvMesh& mesh)
|
||||
:
|
||||
foamLESdelta(name, mesh)
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::autoPtr<foamLESdelta> LESdelta::New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
return foamLESdelta::New(name, mesh, dict, *dictionaryConstructorTablePtr_);
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace incompressible
|
||||
} // End namespace Foam
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,109 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Class
|
||||
Foam::incompressible::LESdelta
|
||||
|
||||
Description
|
||||
Abstract base class for incompressible LES deltas
|
||||
|
||||
SourceFiles
|
||||
incompressibleLESdelta.C
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef incompressibleLESdelta_H
|
||||
#define incompressibleLESdelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
// To avoid macro problems typedef scoped class
|
||||
typedef Foam::LESdelta foamLESdelta;
|
||||
|
||||
namespace incompressible
|
||||
{
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class LESdelta Declaration
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
class LESdelta
|
||||
:
|
||||
public foamLESdelta
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
// Declare run-time constructor selection table
|
||||
|
||||
declareRunTimeSelectionTable
|
||||
(
|
||||
autoPtr,
|
||||
foamLESdelta,
|
||||
dictionary,
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& LESdeltaDict
|
||||
),
|
||||
(name, mesh, LESdeltaDict)
|
||||
);
|
||||
|
||||
// Constructors
|
||||
|
||||
//- Construct from name and mesh
|
||||
LESdelta(const word& name, const fvMesh& mesh);
|
||||
|
||||
|
||||
// Selectors
|
||||
|
||||
//- Return a reference to the selected LES delta
|
||||
static autoPtr<foamLESdelta> New
|
||||
(
|
||||
const word& name,
|
||||
const fvMesh& mesh,
|
||||
const dictionary& dict
|
||||
);
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~LESdelta()
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace incompressible
|
||||
} // End namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -2,7 +2,7 @@
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
@ -35,7 +35,7 @@ SourceFiles
|
||||
#ifndef vanDriestDelta_H
|
||||
#define vanDriestDelta_H
|
||||
|
||||
#include "LESdelta.H"
|
||||
#include "incompressibleLESdelta.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -56,7 +56,7 @@ class vanDriestDelta
|
||||
{
|
||||
// Private data
|
||||
|
||||
autoPtr<LESdelta> geometricDelta_;
|
||||
autoPtr<Foam::LESdelta> geometricDelta_;
|
||||
scalar kappa_;
|
||||
scalar Aplus_;
|
||||
scalar Cdelta_;
|
||||
|
||||
Reference in New Issue
Block a user