From efdbeae27e7d956427fb4d7bec3010cadea0c1f8 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@esi-group.com> Date: Tue, 20 Nov 2018 10:10:39 +0100 Subject: [PATCH] ENH: use dictionary::get<> instead of pTraits (#762) - check Istream in readBool in operator>> variant (#1033) --- etc/codeTemplates/BC/BC.C | 2 +- .../global/constants/dimensionedConstants.H | 16 +++++++++------- src/OpenFOAM/primitives/bools/bool/bool.C | 13 +++---------- .../turbulentInlet/turbulentInletFvPatchField.C | 2 +- 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/etc/codeTemplates/BC/BC.C b/etc/codeTemplates/BC/BC.C index 173e7a5a456..08f76e862f9 100644 --- a/etc/codeTemplates/BC/BC.C +++ b/etc/codeTemplates/BC/BC.C @@ -74,7 +74,7 @@ CONSTRUCT : PARENT(p, iF), scalarData_(dict.get<scalar>("scalarData")), - data_(pTraits<TYPE>(dict.lookup("data"))), + data_(dict.get<TYPE>("data")), fieldData_("fieldData", dict, p.size()), timeVsData_(Function1<TYPE>::New("timeVsData", dict)), wordData_(dict.lookupOrDefault<word>("wordName", "wordDefault")), diff --git a/src/OpenFOAM/global/constants/dimensionedConstants.H b/src/OpenFOAM/global/constants/dimensionedConstants.H index 53535b30b86..1ea023c1604 100644 --- a/src/OpenFOAM/global/constants/dimensionedConstants.H +++ b/src/OpenFOAM/global/constants/dimensionedConstants.H @@ -72,9 +72,13 @@ T dimensionedConstant if (unitDict.found(group)) { dictionary& groupDict = unitDict.subDict(group); + + // Leaner version of dictionary lookupOrAddDefault() + // without writeOptionalEntries + if (groupDict.found(varName)) { - return pTraits<T>(groupDict.lookup(varName)); + return groupDict.get<T>(varName); } else { @@ -113,15 +117,14 @@ T dimensionedConstant Name \ ) \ ); \ - Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ + Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ ( \ Switch \ ); \ s.dimensions().reset(ds.dimensions()); \ s = ds; \ } \ - virtual ~add##Tag##ToDimensionedConstant() \ - {} \ + virtual ~add##Tag##ToDimensionedConstant() = default; \ virtual void readData(Foam::Istream& is) \ { \ const_cast<Foam::dimensionedScalar&>(Switch) = \ @@ -162,15 +165,14 @@ T dimensionedConstant Foam::dimensionedScalar(Name,DefaultExpr) \ ) \ ); \ - Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ + Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ ( \ Switch \ ); \ s.dimensions().reset(ds.dimensions()); \ s = ds; \ } \ - virtual ~add##Tag##ToDimensionedConstantWithDefault() \ - {} \ + virtual ~add##Tag##ToDimensionedConstantWithDefault() = default; \ virtual void readData(Foam::Istream& is) \ { \ const_cast<Foam::dimensionedScalar&>(Switch) = \ diff --git a/src/OpenFOAM/primitives/bools/bool/bool.C b/src/OpenFOAM/primitives/bools/bool/bool.C index 7dc08dcbaa5..5f82fff7682 100644 --- a/src/OpenFOAM/primitives/bools/bool/bool.C +++ b/src/OpenFOAM/primitives/bools/bool/bool.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2018 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -50,11 +50,7 @@ Foam::pTraits<bool>::pTraits(Istream& is) Foam::Istream& Foam::operator>>(Istream& is, bool& b) { - if (is.good()) - { - b = Switch(is); - } - + b = static_cast<bool>(Switch(is)); return is; } @@ -70,10 +66,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const bool b) bool Foam::readBool(Istream& is) { - bool b; - is >> b; - - return b; + return static_cast<bool>(Switch(is)); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C index 57032e53c0f..1baa11ed083 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/turbulentInlet/turbulentInletFvPatchField.C @@ -53,7 +53,7 @@ Foam::turbulentInletFvPatchField<Type>::turbulentInletFvPatchField : fixedValueFvPatchField<Type>(p, iF, dict, false), ranGen_(label(0)), - fluctuationScale_(pTraits<Type>(dict.lookup("fluctuationScale"))), + fluctuationScale_(dict.get<Type>("fluctuationScale")), referenceField_("referenceField", dict, p.size()), alpha_(dict.lookupOrDefault<scalar>("alpha", 0.1)), curTimeIndex_(-1) -- GitLab