Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
94070f5e
Commit
94070f5e
authored
Jan 29, 2019
by
Andrew Heather
Browse files
STYLE: Renamed residuals FO -> solverInfo to reflect capabilities
parent
21661663
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/functionObjects/utilities/Make/files
View file @
94070f5e
...
...
@@ -10,7 +10,7 @@ vtkWrite/vtkWriteUpdate.C
removeRegisteredObject/removeRegisteredObject.C
residuals/residuals
.C
solverInfo/solverInfo
.C
runTimeControl/runTimeControl.C
runTimeControl/runTimeCondition/runTimeCondition/runTimeCondition.C
...
...
src/functionObjects/utilities/
residuals/residuals
.C
→
src/functionObjects/utilities/
solverInfo/solverInfo
.C
View file @
94070f5e
...
...
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015-201
7
OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-201
9
OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
...
...
@@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
#include "
residuals
.H"
#include "
solverInfo
.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
...
...
@@ -32,12 +32,12 @@ namespace Foam
{
namespace
functionObjects
{
defineTypeNameAndDebug
(
residuals
,
0
);
defineTypeNameAndDebug
(
solverInfo
,
0
);
addToRunTimeSelectionTable
(
functionObject
,
residuals
,
solverInfo
,
dictionary
);
}
...
...
@@ -46,7 +46,7 @@ namespace functionObjects
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void
Foam
::
functionObjects
::
residuals
::
writeFileHeader
(
Ostream
&
os
)
void
Foam
::
functionObjects
::
solverInfo
::
writeFileHeader
(
Ostream
&
os
)
{
if
(
!
fieldSet_
.
updateSelection
())
{
...
...
@@ -59,7 +59,7 @@ void Foam::functionObjects::residuals::writeFileHeader(Ostream& os)
}
else
{
writeHeader
(
os
,
"
Residuals
"
);
writeHeader
(
os
,
"
Solver information
"
);
}
writeCommented
(
os
,
"Time"
);
...
...
@@ -79,9 +79,12 @@ void Foam::functionObjects::residuals::writeFileHeader(Ostream& os)
}
void
Foam
::
functionObjects
::
residuals
::
createField
(
const
word
&
fieldName
)
void
Foam
::
functionObjects
::
solverInfo
::
createResidualField
(
const
word
&
fieldName
)
{
if
(
!
writeFields_
)
if
(
!
write
Residual
Fields_
)
{
return
;
}
...
...
@@ -109,7 +112,10 @@ void Foam::functionObjects::residuals::createField(const word& fieldName)
}
void
Foam
::
functionObjects
::
residuals
::
writeField
(
const
word
&
fieldName
)
const
void
Foam
::
functionObjects
::
solverInfo
::
writeResidualField
(
const
word
&
fieldName
)
const
{
const
word
residualName
(
"initialResidual:"
+
fieldName
);
...
...
@@ -143,7 +149,7 @@ void Foam::functionObjects::residuals::writeField(const word& fieldName) const
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam
::
functionObjects
::
residuals
::
residuals
Foam
::
functionObjects
::
solverInfo
::
solverInfo
(
const
word
&
name
,
const
Time
&
runTime
,
...
...
@@ -153,28 +159,23 @@ Foam::functionObjects::residuals::residuals
fvMeshFunctionObject
(
name
,
runTime
,
dict
),
writeFile
(
obr_
,
name
,
typeName
,
dict
),
fieldSet_
(
mesh_
),
writeFields_
(
false
),
write
Residual
Fields_
(
false
),
initialised_
(
false
)
{
read
(
dict
);
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam
::
functionObjects
::
residuals
::~
residuals
()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool
Foam
::
functionObjects
::
residuals
::
read
(
const
dictionary
&
dict
)
bool
Foam
::
functionObjects
::
solverInfo
::
read
(
const
dictionary
&
dict
)
{
if
(
fvMeshFunctionObject
::
read
(
dict
))
{
fieldSet_
.
read
(
dict
);
writeFields_
=
dict
.
lookupOrDefault
(
"writeFields"
,
false
);
writeResidualFields_
=
dict
.
lookupOrDefault
(
"writeResidualFields"
,
false
);
return
true
;
}
...
...
@@ -183,7 +184,7 @@ bool Foam::functionObjects::residuals::read(const dictionary& dict)
}
bool
Foam
::
functionObjects
::
residuals
::
execute
()
bool
Foam
::
functionObjects
::
solverInfo
::
execute
()
{
// Note: delaying initialisation until after first iteration so that
// we can find wildcard fields
...
...
@@ -191,15 +192,15 @@ bool Foam::functionObjects::residuals::execute()
{
writeFileHeader
(
file
());
if
(
writeFields_
)
if
(
write
Residual
Fields_
)
{
for
(
const
word
&
fieldName
:
fieldSet_
.
selectionNames
())
{
initialiseField
<
scalar
>
(
fieldName
);
initialiseField
<
vector
>
(
fieldName
);
initialiseField
<
sphericalTensor
>
(
fieldName
);
initialiseField
<
symmTensor
>
(
fieldName
);
initialiseField
<
tensor
>
(
fieldName
);
initialise
Residual
Field
<
scalar
>
(
fieldName
);
initialise
Residual
Field
<
vector
>
(
fieldName
);
initialise
Residual
Field
<
sphericalTensor
>
(
fieldName
);
initialise
Residual
Field
<
symmTensor
>
(
fieldName
);
initialise
Residual
Field
<
tensor
>
(
fieldName
);
}
}
...
...
@@ -210,17 +211,17 @@ bool Foam::functionObjects::residuals::execute()
}
bool
Foam
::
functionObjects
::
residuals
::
write
()
bool
Foam
::
functionObjects
::
solverInfo
::
write
()
{
writeTime
(
file
());
for
(
const
word
&
fieldName
:
fieldSet_
.
selectionNames
())
{
write
Residual
<
scalar
>
(
fieldName
);
write
Residual
<
vector
>
(
fieldName
);
write
Residual
<
sphericalTensor
>
(
fieldName
);
write
Residual
<
symmTensor
>
(
fieldName
);
write
Residual
<
tensor
>
(
fieldName
);
write
SolverInfo
<
scalar
>
(
fieldName
);
write
SolverInfo
<
vector
>
(
fieldName
);
write
SolverInfo
<
sphericalTensor
>
(
fieldName
);
write
SolverInfo
<
symmTensor
>
(
fieldName
);
write
SolverInfo
<
tensor
>
(
fieldName
);
}
file
()
<<
endl
;
...
...
src/functionObjects/utilities/
residuals/residuals
.H
→
src/functionObjects/utilities/
solverInfo/solverInfo
.H
View file @
94070f5e
...
...
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015-201
8
OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-201
9
OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
...
...
@@ -22,37 +22,44 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::functionObjects::
residuals
Foam::functionObjects::
solverInfo
Group
grpUtilitiesFunctionObjects
Description
Writes out the initial residual for specified fields.
Writes solver information for a list of user-specified fields
Information written to file includes:
- residual fields
- solver type
- initial residual
- final residual
- number of solver iterations
- convergecnce flag
Usage
Example of function object specification:
\verbatim
residuals
solverInfo
{
type
residuals
;
type
solverInfo
;
libs ("libutilityFunctionObjects.so");
...
fields (U p);
writeResidualFields yes;
}
\endverbatim
Where the entries comprise:
\table
Property | Description | Required | Default value
type | Type name:
residua ls
| yes |
type | Type name:
solverInfo
| yes |
fields | List of fields to process | yes |
writeFields
| Write the residual fields | no | no
write
Residual
Fields | Write the residual fields | no | no
\endtable
Output data is written to the dir postProcessing/residuals/\<timeDir\>/
For vector/tensor fields, e.g. U, where an equation is solved for each
component, the largest residual of each component is written.
Output data is written to the dir postProcessing/solverInfo/\<timeDir\>/
See also
Foam::functionObject
...
...
@@ -61,12 +68,12 @@ See also
Foam::functionObjects::timeControl
SourceFiles
residuals
.C
solverInfo
.C
\*---------------------------------------------------------------------------*/
#ifndef functionObjects_
residuals
_H
#define functionObjects_
residuals
_H
#ifndef functionObjects_
solverInfo
_H
#define functionObjects_
solverInfo
_H
#include "fvMeshFunctionObject.H"
#include "writeFile.H"
...
...
@@ -80,10 +87,10 @@ namespace functionObjects
{
/*---------------------------------------------------------------------------*\
Class
residuals
Declaration
Class
solverInfo
Declaration
\*---------------------------------------------------------------------------*/
class
residuals
class
solverInfo
:
public
fvMeshFunctionObject
,
public
writeFile
...
...
@@ -92,11 +99,11 @@ protected:
// Protected data
//- Fields to
write residual
s
//- Fields to
proces
s
solverFieldSelection
fieldSet_
;
//- Flag to write the residual as a vol field
bool
writeFields_
;
bool
write
Residual
Fields_
;
//- Initialisation flag
bool
initialised_
;
...
...
@@ -108,10 +115,10 @@ protected:
void
writeFileHeader
(
Ostream
&
os
);
//- Create and store a residual field on the mesh database
void
createField
(
const
word
&
fieldName
);
void
create
Residual
Field
(
const
word
&
fieldName
);
//- Write a residual field
void
writeField
(
const
word
&
fieldName
)
const
;
void
write
Residual
Field
(
const
word
&
fieldName
)
const
;
//- Output file header information per primitive type value
template
<
class
Type
>
...
...
@@ -119,11 +126,11 @@ protected:
//- Initialise a residual field
template
<
class
Type
>
void
initialiseField
(
const
word
&
fieldName
);
void
initialise
Residual
Field
(
const
word
&
fieldName
);
//- Calculate the
residual
//- Calculate the
solver information
template
<
class
Type
>
void
write
Residual
(
const
word
&
fieldName
);
void
write
SolverInfo
(
const
word
&
fieldName
);
private:
...
...
@@ -131,22 +138,22 @@ private:
// Private member functions
//- No copy construct
residuals
(
const
residuals
&
)
=
delete
;
solverInfo
(
const
solverInfo
&
)
=
delete
;
//- No copy assignment
void
operator
=
(
const
residuals
&
)
=
delete
;
void
operator
=
(
const
solverInfo
&
)
=
delete
;
public:
//- Runtime type information
TypeName
(
"
residuals
"
);
TypeName
(
"
solverInfo
"
);
// Constructors
//- Construct from Time and dictionary
residuals
solverInfo
(
const
word
&
name
,
const
Time
&
runTime
,
...
...
@@ -155,7 +162,7 @@ public:
//- Destructor
virtual
~
residuals
()
;
virtual
~
solverInfo
()
=
default
;
// Member Functions
...
...
@@ -166,7 +173,7 @@ public:
//- Execute, currently does nothing
virtual
bool
execute
();
//- Write the
residuals
//- Write the
solverInfo
virtual
bool
write
();
};
...
...
@@ -179,7 +186,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#ifdef NoRepository
#include "
residuals
Templates.C"
#include "
solverInfo
Templates.C"
#endif
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
src/functionObjects/utilities/
residuals/residuals
Templates.C
→
src/functionObjects/utilities/
solverInfo/solverInfo
Templates.C
View file @
94070f5e
...
...
@@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015-201
8
OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-201
9
OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
...
...
@@ -23,7 +23,7 @@ License
\*---------------------------------------------------------------------------*/
#include "
residuals
.H"
#include "
solverInfo
.H"
#include "volFields.H"
#include "ListOps.H"
#include "zeroGradientFvPatchField.H"
...
...
@@ -31,7 +31,7 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template
<
class
Type
>
void
Foam
::
functionObjects
::
residuals
::
writeFileHeader
void
Foam
::
functionObjects
::
solverInfo
::
writeFileHeader
(
Ostream
&
os
,
const
word
&
fieldName
...
...
@@ -52,7 +52,7 @@ void Foam::functionObjects::residuals::writeFileHeader
{
if
(
component
(
validComponents
,
cmpt
)
!=
-
1
)
{
const
word
cmptName
(
pTraits
<
Type
>::
componentNames
[
cmpt
]);
const
word
cmptName
(
pTraits
<
Type
>::
componentNames
[
cmpt
]);
const
word
fieldBase
(
fieldName
+
cmptName
);
writeTabbed
(
os
,
fieldBase
+
"_initial"
);
...
...
@@ -67,7 +67,10 @@ void Foam::functionObjects::residuals::writeFileHeader
template
<
class
Type
>
void
Foam
::
functionObjects
::
residuals
::
initialiseField
(
const
word
&
fieldName
)
void
Foam
::
functionObjects
::
solverInfo
::
initialiseResidualField
(
const
word
&
fieldName
)
{
typedef
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
volFieldType
;
...
...
@@ -91,7 +94,7 @@ void Foam::functionObjects::residuals::initialiseField(const word& fieldName)
fieldName
+
word
(
pTraits
<
Type
>::
componentNames
[
cmpt
])
);
createField
(
resultName
);
create
Residual
Field
(
resultName
);
}
}
}
...
...
@@ -100,7 +103,7 @@ void Foam::functionObjects::residuals::initialiseField(const word& fieldName)
template
<
class
Type
>
void
Foam
::
functionObjects
::
residuals
::
writeResidual
(
const
word
&
fieldName
)
void
Foam
::
functionObjects
::
solverInfo
::
writeSolverInfo
(
const
word
&
fieldName
)
{
typedef
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
volFieldType
;
typedef
typename
pTraits
<
Type
>::
labelType
labelType
;
...
...
@@ -121,7 +124,7 @@ void Foam::functionObjects::residuals::writeResidual(const word& fieldName)
const
Type
&
initialResidual
=
sp0
.
initialResidual
();
const
Type
&
finalResidual
=
sp0
.
finalResidual
();
const
labelType
nIterations
=
sp0
.
nIterations
();
const
bool
converged
=
sp0
.
converged
();
const
Switch
converged
(
sp0
.
converged
()
)
;
const
labelType
validComponents
(
mesh_
.
validComponents
<
Type
>
());
...
...
@@ -140,13 +143,13 @@ void Foam::functionObjects::residuals::writeResidual(const word& fieldName)
<<
token
::
TAB
<<
rf
<<
token
::
TAB
<<
n
;
const
word
cmptName
(
pTraits
<
Type
>::
componentNames
[
cmpt
]);
const
word
cmptName
(
pTraits
<
Type
>::
componentNames
[
cmpt
]);
const
word
resultName
(
fieldName
+
cmptName
);
setResult
(
resultName
+
"_initial"
,
ri
);
setResult
(
resultName
+
"_final"
,
rf
);
setResult
(
resultName
+
"_iters"
,
n
);
writeField
(
resultName
);
write
Residual
Field
(
resultName
);
}
}
...
...
Write
Preview
Markdown
is supported
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