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
81b79ba2
Commit
81b79ba2
authored
Nov 28, 2012
by
andy
Browse files
ENH: Added new Lambda2 function object
parent
8a692d18
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/postProcessing/functionObjects/utilities/Lambda2/IOLambda2.H
0 → 100644
View file @
81b79ba2
/*---------------------------------------------------------------------------*\
========= |
\\ / 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::IOLambda2
Description
Instance of the generic IOOutputFilter for Lambda2.
\*---------------------------------------------------------------------------*/
#ifndef IOLambda2_H
#define IOLambda2_H
#include
"Lambda2.H"
#include
"IOOutputFilter.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
typedef
IOOutputFilter
<
Lambda2
>
IOLambda2
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C
0 → 100644
View file @
81b79ba2
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
"Lambda2.H"
#include
"volFields.H"
#include
"dictionary.H"
#include
"zeroGradientFvPatchFields.H"
#include
"fvcGrad.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug
(
Foam
::
Lambda2
,
0
);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
Lambda2
::
Lambda2
(
const
word
&
name
,
const
objectRegistry
&
obr
,
const
dictionary
&
dict
,
const
bool
loadFromFiles
)
:
name_
(
name
),
obr_
(
obr
),
active_
(
true
),
UName_
(
"U"
)
{
// Check if the available mesh is an fvMesh, otherwise deactivate
if
(
!
isA
<
fvMesh
>
(
obr_
))
{
active_
=
false
;
WarningIn
(
"Lambda2::Lambda2"
"("
"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_
);
volScalarField
*
Lambda2Ptr
(
new
volScalarField
(
IOobject
(
type
(),
mesh
.
time
().
timeName
(),
mesh
,
IOobject
::
NO_READ
,
IOobject
::
NO_WRITE
),
mesh
,
dimensionedScalar
(
"0"
,
dimless
,
0
.
0
),
zeroGradientFvPatchScalarField
::
typeName
)
);
mesh
.
objectRegistry
::
store
(
Lambda2Ptr
);
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam
::
Lambda2
::~
Lambda2
()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void
Foam
::
Lambda2
::
read
(
const
dictionary
&
dict
)
{
if
(
active_
)
{
UName_
=
dict
.
lookupOrDefault
<
word
>
(
"UName"
,
"U"
);
}
}
void
Foam
::
Lambda2
::
execute
()
{
// Do nothing - only valid on write
}
void
Foam
::
Lambda2
::
end
()
{
// Do nothing - only valid on write
}
void
Foam
::
Lambda2
::
write
()
{
if
(
active_
)
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
volVectorField
&
U
=
mesh
.
lookupObject
<
volVectorField
>
(
UName_
);
const
volTensorField
gradU
(
fvc
::
grad
(
U
));
const
volTensorField
SSplusWW
(
(
symm
(
gradU
)
&
symm
(
gradU
))
+
(
skew
(
gradU
)
&
skew
(
gradU
))
);
volScalarField
&
Lambda2
=
const_cast
<
volScalarField
&>
(
mesh
.
lookupObject
<
volScalarField
>
(
type
())
);
scalarField
&
iField
=
Lambda2
.
internalField
();
iField
=
-
eigenValues
(
SSplusWW
)().
component
(
vector
::
Y
);
Lambda2
.
correctBoundaryConditions
();
Lambda2
.
write
();
Info
<<
type
()
<<
" output:"
<<
nl
<<
" writing "
<<
Lambda2
.
name
()
<<
" field"
<<
nl
<<
endl
;
}
}
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H
0 → 100644
View file @
81b79ba2
/*---------------------------------------------------------------------------*\
========= |
\\ / 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::Lambda2
Group
grpUtilitiesFunctionObjects
Description
This function object calculates and outputs the second largest eigenvalue
of the sum of the square of the symmetrical and anti-symmetrical parts of
the velocity gradient tensor.
SourceFiles
Lambda2.C
IOLambda2.H
\*---------------------------------------------------------------------------*/
#ifndef Lambda2_H
#define Lambda2_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 Lambda2 Declaration
\*---------------------------------------------------------------------------*/
class
Lambda2
{
// Private data
//- Name of this set of Lambda2 objects
word
name_
;
//- Reference to the database
const
objectRegistry
&
obr_
;
//- On/off switch
bool
active_
;
//- Name of velocity field, default is "U"
word
UName_
;
// Private Member Functions
//- Disallow default bitwise copy construct
Lambda2
(
const
Lambda2
&
);
//- Disallow default bitwise assignment
void
operator
=
(
const
Lambda2
&
);
public:
//- Runtime type information
TypeName
(
"Lambda2"
);
// Constructors
//- Construct for given objectRegistry and dictionary.
// Allow the possibility to load fields from files
Lambda2
(
const
word
&
name
,
const
objectRegistry
&
,
const
dictionary
&
,
const
bool
loadFromFiles
=
false
);
//- Destructor
virtual
~
Lambda2
();
// Member Functions
//- Return name of the set of Lambda2
virtual
const
word
&
name
()
const
{
return
name_
;
}
//- Read the Lambda2 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 Lambda2 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/Lambda2/Lambda2FunctionObject.C
0 → 100644
View file @
81b79ba2
/*---------------------------------------------------------------------------*\
========= |
\\ / 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
"Lambda2FunctionObject.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace
Foam
{
defineNamedTemplateTypeNameAndDebug
(
Lambda2FunctionObject
,
0
);
addToRunTimeSelectionTable
(
functionObject
,
Lambda2FunctionObject
,
dictionary
);
}
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.H
0 → 100644
View file @
81b79ba2
/*---------------------------------------------------------------------------*\
========= |
\\ / 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::Lambda2FunctionObject
Description
FunctionObject wrapper around Lambda2 to allow it to be created
via the functions entry within controlDict.
SourceFiles
Lambda2FunctionObject.C
\*---------------------------------------------------------------------------*/
#ifndef Lambda2FunctionObject_H
#define Lambda2FunctionObject_H
#include
"Lambda2.H"
#include
"OutputFilterFunctionObject.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
typedef
OutputFilterFunctionObject
<
Lambda2
>
Lambda2FunctionObject
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
src/postProcessing/functionObjects/utilities/Make/files
View file @
81b79ba2
...
...
@@ -3,6 +3,9 @@ codedFunctionObject/codedFunctionObject.C
CourantNo/CourantNo.C
CourantNo/CourantNoFunctionObject.C
Lambda2/Lambda2.C
Lambda2/Lambda2FunctionObject.C
DESModelRegions/DESModelRegions.C
DESModelRegions/DESModelRegionsFunctionObject.C
...
...
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