dataTemplates.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 | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2015-2016 OpenFOAM Foundation
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "data.H"
29#include "Time.H"
30#include "solverPerformance.H"
31
32// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
33
34template<class Type>
36(
37 const word& name,
39) const
40{
42
44
45 if (prevTimeIndex_ != this->time().timeIndex())
46 {
47 // Reset solver performance between iterations
48 prevTimeIndex_ = this->time().timeIndex();
49 dict.clear();
50 }
51 else
52 {
53 dict.readIfPresent(name, perfs);
54 }
55
56 // Append to list
57 perfs.setSize(perfs.size()+1, sp);
58
59 dict.set(name, perfs);
60}
61
62
63template<class Type>
65(
67) const
68{
69 setSolverPerformance(sp.fieldName(), sp);
70}
71
72
73// ************************************************************************* //
const Time & time() const
Return Time associated with the objectRegistry.
Definition: IOobject.C:506
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: List.H:77
void setSize(const label n)
Alias for resize()
Definition: List.H:218
SolverPerformance is the class returned by the LduMatrix solver containing performance statistics.
const word & fieldName() const noexcept
Return field name.
label timeIndex() const noexcept
Return current time index.
Definition: TimeStateI.H:37
void size(const label n)
Older name for setAddressableSize.
Definition: UList.H:114
const word & name() const
const dictionary & solverPerformanceDict() const
Definition: data.C:78
void setSolverPerformance(const word &name, const SolverPerformance< Type > &sp) const
Add/set the solverPerformance entry for the named field.
Definition: dataTemplates.C:36
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
bool readIfPresent(const word &keyword, T &val, enum keyType::option matchOpt=keyType::REGEX) const
void clear()
Clear the dictionary.
Definition: dictionary.C:857
entry * set(entry *entryPtr)
Assign a new entry, overwriting any existing entry.
Definition: dictionary.C:780
A class for handling words, derived from Foam::string.
Definition: word.H:68
dictionary dict