Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
04d80067
Commit
04d80067
authored
Nov 28, 2012
by
andy
Browse files
ENH: Added new Peclet function object
parent
b0598526
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/postProcessing/functionObjects/utilities/Make/files
View file @
04d80067
...
...
@@ -6,6 +6,9 @@ CourantNo/CourantNoFunctionObject.C
Lambda2/Lambda2.C
Lambda2/Lambda2FunctionObject.C
Peclet/Peclet.C
Peclet/PecletFunctionObject.C
DESModelRegions/DESModelRegions.C
DESModelRegions/DESModelRegionsFunctionObject.C
...
...
src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H
0 → 100644
View file @
04d80067
/*---------------------------------------------------------------------------*\
========= |
\\ / 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/>.
Typedef
Foam::IOPeclet
Description
Instance of the generic IOOutputFilter for Peclet.
\*---------------------------------------------------------------------------*/
#ifndef IOPeclet_H
#define IOPeclet_H
#include
"Peclet.H"
#include
"IOOutputFilter.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
typedef
IOOutputFilter
<
Peclet
>
IOPeclet
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Peclet/Peclet.C
0 → 100644
View file @
04d80067
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
"Peclet.H"
#include
"volFields.H"
#include
"dictionary.H"
#include
"surfaceFields.H"
#include
"incompressible/turbulenceModel/turbulenceModel.H"
#include
"compressible/turbulenceModel/turbulenceModel.H"
#include
"surfaceInterpolate.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug
(
Foam
::
Peclet
,
0
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
Peclet
::
Peclet
(
const
word
&
name
,
const
objectRegistry
&
obr
,
const
dictionary
&
dict
,
const
bool
loadFromFiles
)
:
name_
(
name
),
obr_
(
obr
),
active_
(
true
),
phiName_
(
"phi"
),
rhoName_
(
"rho"
)
{
// Check if the available mesh is an fvMesh, otherwise deactivate
if
(
!
isA
<
fvMesh
>
(
obr_
))
{
active_
=
false
;
WarningIn
(
"Peclet::Peclet"
"("
"const word&, "
"const objectRegistry&, "
"const dictionary&, "
"const bool"
")"
)
<<
"No fvMesh available, deactivating."
<<
nl
<<
endl
;
}
read
(
dict
);
if
(
active_
)
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
surfaceScalarField
*
PecletPtr
(
new
surfaceScalarField
(
IOobject
(
type
(),
mesh
.
time
().
timeName
(),
mesh
,
IOobject
::
NO_READ
,
IOobject
::
NO_WRITE
),
mesh
,
dimensionedScalar
(
"0"
,
dimless
,
0
.
0
)
)
);
mesh
.
objectRegistry
::
store
(
PecletPtr
);
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam
::
Peclet
::~
Peclet
()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void
Foam
::
Peclet
::
read
(
const
dictionary
&
dict
)
{
if
(
active_
)
{
phiName_
=
dict
.
lookupOrDefault
<
word
>
(
"phiName"
,
"phi"
);
rhoName_
=
dict
.
lookupOrDefault
<
word
>
(
"rhoName"
,
"rho"
);
}
}
void
Foam
::
Peclet
::
execute
()
{
// Do nothing - only valid on write
}
void
Foam
::
Peclet
::
end
()
{
// Do nothing - only valid on write
}
void
Foam
::
Peclet
::
write
()
{
typedef
compressible
::
turbulenceModel
cmpTurbModel
;
typedef
incompressible
::
turbulenceModel
icoTurbModel
;
if
(
active_
)
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
tmp
<
volScalarField
>
nuEff
;
if
(
mesh
.
foundObject
<
cmpTurbModel
>
(
"turbulenceModel"
))
{
const
cmpTurbModel
&
model
=
mesh
.
lookupObject
<
cmpTurbModel
>
(
"turbulenceModel"
);
const
volScalarField
&
rho
=
mesh
.
lookupObject
<
volScalarField
>
(
rhoName_
);
nuEff
=
model
.
muEff
()
/
rho
;
}
else
if
(
mesh
.
foundObject
<
icoTurbModel
>
(
"turbulenceModel"
))
{
const
icoTurbModel
&
model
=
mesh
.
lookupObject
<
icoTurbModel
>
(
"turbulenceModel"
);
nuEff
=
model
.
nuEff
();
}
else
if
(
mesh
.
foundObject
<
transportModel
>
(
"transportProperties"
))
{
const
transportModel
&
model
=
mesh
.
lookupObject
<
transportModel
>
(
"transportProperties"
);
nuEff
=
model
.
nu
();
}
else
{
FatalErrorIn
(
"void Foam::wallShearStress::write()"
)
<<
"Unable to determine the viscosity"
<<
exit
(
FatalError
);
}
const
surfaceScalarField
&
phi
=
mesh
.
lookupObject
<
surfaceScalarField
>
(
phiName_
);
surfaceScalarField
&
Peclet
=
const_cast
<
surfaceScalarField
&>
(
mesh
.
lookupObject
<
surfaceScalarField
>
(
type
())
);
Peclet
=
mag
(
phi
)
/
(
mesh
.
magSf
()
*
mesh
.
surfaceInterpolation
::
deltaCoeffs
()
*
fvc
::
interpolate
(
nuEff
)
);
Peclet
.
write
();
Info
<<
type
()
<<
" output:"
<<
nl
<<
" writing "
<<
Peclet
.
name
()
<<
" field"
<<
nl
<<
endl
;
}
}
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Peclet/Peclet.H
0 → 100644
View file @
04d80067
/*---------------------------------------------------------------------------*\
========= |
\\ / 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::Peclet
Group
grpUtilitiesFunctionObjects
Description
This function object calculates and outputs the Peclet number as a
surfaceScalarField.
SourceFiles
Peclet.C
IOPeclet.H
\*---------------------------------------------------------------------------*/
#ifndef Peclet_H
#define Peclet_H
#include
"volFieldsFwd.H"
#include
"surfaceFieldsFwd.H"
#include
"pointFieldFwd.H"
#include
"OFstream.H"
#include
"Switch.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
// Forward declaration of classes
class
objectRegistry
;
class
dictionary
;
class
mapPolyMesh
;
/*---------------------------------------------------------------------------*\
Class Peclet Declaration
\*---------------------------------------------------------------------------*/
class
Peclet
{
// Private data
//- Name of this set of Peclet objects
word
name_
;
//- Reference to the database
const
objectRegistry
&
obr_
;
//- On/off switch
bool
active_
;
//- Name of flux field, default is "phi"
word
phiName_
;
//- Name of density field (compressible cases only), default is "rho"
word
rhoName_
;
// Private Member Functions
//- Disallow default bitwise copy construct
Peclet
(
const
Peclet
&
);
//- Disallow default bitwise assignment
void
operator
=
(
const
Peclet
&
);
public:
//- Runtime type information
TypeName
(
"Peclet"
);
// Constructors
//- Construct for given objectRegistry and dictionary.
// Allow the possibility to load fields from files
Peclet
(
const
word
&
name
,
const
objectRegistry
&
,
const
dictionary
&
,
const
bool
loadFromFiles
=
false
);
//- Destructor
virtual
~
Peclet
();
// Member Functions
//- Return name of the set of Peclet
virtual
const
word
&
name
()
const
{
return
name_
;
}
//- Read the Peclet data
virtual
void
read
(
const
dictionary
&
);
//- Execute, currently does nothing
virtual
void
execute
();
//- Execute at the final time-loop, currently does nothing
virtual
void
end
();
//- Calculate the Peclet and write
virtual
void
write
();
//- Update for changes of mesh
virtual
void
updateMesh
(
const
mapPolyMesh
&
)
{}
//- Update for changes of mesh
virtual
void
movePoints
(
const
pointField
&
)
{}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C
0 → 100644
View file @
04d80067
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
"PecletFunctionObject.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineNamedTemplateTypeNameAndDebug
(
PecletFunctionObject
,
0
);
addToRunTimeSelectionTable
(
functionObject
,
PecletFunctionObject
,
dictionary
);
}
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H
0 → 100644
View file @
04d80067
/*---------------------------------------------------------------------------*\
========= |
\\ / 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/>.
Typedef
Foam::PecletFunctionObject
Description
FunctionObject wrapper around Peclet to allow it to be created
via the functions entry within controlDict.
SourceFiles
PecletFunctionObject.C
\*---------------------------------------------------------------------------*/
#ifndef PecletFunctionObject_H
#define PecletFunctionObject_H
#include
"Peclet.H"
#include
"OutputFilterFunctionObject.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
typedef
OutputFilterFunctionObject
<
Peclet
>
PecletFunctionObject
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment