residualsTemplates.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
6  \\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "residuals.H"
27 #include "volFields.H"
28 #include "dictionary.H"
29 
30 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31 
32 template<class Type>
33 void Foam::residuals::writeResidual(const word& fieldName)
34 {
36 
37  if (obr_.foundObject<fieldType>(fieldName))
38  {
39  const fieldType& field = obr_.lookupObject<fieldType>(fieldName);
40  const fvMesh& mesh = field.mesh();
41  const Foam::dictionary& solverDict = mesh.solverPerformanceDict();
42 
43  if (solverDict.found(fieldName))
44  {
46  (
47  solverDict.lookup(fieldName)
48  );
49 
50  const Type& residual = sp.first().initialResidual();
51 
52  typename pTraits<Type>::labelType validComponents
53  (
54  mesh.validComponents<Type>()
55  );
56 
57  for (direction cmpt=0; cmpt<pTraits<Type>::nComponents; cmpt++)
58  {
59  if (component(validComponents, cmpt) != -1)
60  {
61  file() << token::TAB << component(residual, cmpt);
62  }
63  }
64  }
65  }
66 }
67 
68 
69 // ************************************************************************* //
Foam::token::TAB
@ TAB
Definition: token.H:96
volFields.H
Foam::component
void component(FieldField< Field, typename FieldField< Field, Type >::cmptType > &sf, const FieldField< Field, Type > &f, const direction d)
Definition: FieldFieldFunctions.C:41
Foam::word
A class for handling words, derived from string.
Definition: word.H:59
Foam::dictionary::lookup
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
Definition: dictionary.C:449
residuals.H
Foam::functionObjectFile::file
OFstream & file()
Return access to the file (if only 1)
Definition: functionObjectFile.C:189
Foam::residuals::obr_
const objectRegistry & obr_
Definition: residuals.H:100
Foam::dictionary::found
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Definition: dictionary.C:304
Foam::residuals::writeResidual
void writeResidual(const word &fieldName)
Calculate the field residuals.
Definition: residualsTemplates.C:33
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:18
Foam::fvMesh
Mesh data needed to do the Finite Volume discretisation.
Definition: fvMesh.H:78
Foam::objectRegistry::foundObject
bool foundObject(const word &name) const
Is the named Type found?
Definition: objectRegistryTemplates.C:142
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::pTraits
Traits class for primitives.
Definition: pTraits.H:50
dictionary.H
Foam::direction
unsigned char direction
Definition: direction.H:43
Foam::objectRegistry::lookupObject
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
Definition: objectRegistryTemplates.C:165
Foam::GeometricField
Generic GeometricField class.
Definition: surfaceFieldsFwd.H:52