From e0f39930452862d229cbcb3929b6e2bf96a26e79 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Fri, 20 May 2022 17:41:59 +0100 Subject: [PATCH] ENH: scalar - added readOrDefault(is, defaultValue) function --- src/OpenFOAM/primitives/Scalar/scalar/scalar.C | 18 ++++++++++++++++++ src/OpenFOAM/primitives/Scalar/scalar/scalar.H | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/src/OpenFOAM/primitives/Scalar/scalar/scalar.C b/src/OpenFOAM/primitives/Scalar/scalar/scalar.C index 0038b1d6422..30b9127fc10 100644 --- a/src/OpenFOAM/primitives/Scalar/scalar/scalar.C +++ b/src/OpenFOAM/primitives/Scalar/scalar/scalar.C @@ -40,6 +40,24 @@ Foam::scalar Foam::readScalar(Istream& is) } +Foam::scalar Foam::readScalarOrDefault(Istream& is, const scalar defaultValue) +{ + if (is.good()) + { + token tok(is); + + if (tok.isNumber()) + { + return tok.scalarToken(); + } + + is.putBack(tok); + } + + return defaultValue; +} + + Foam::scalar Foam::readRawScalar(Istream& is) { scalar val(0); diff --git a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H index 58bb002e981..cd5d1550433 100644 --- a/src/OpenFOAM/primitives/Scalar/scalar/scalar.H +++ b/src/OpenFOAM/primitives/Scalar/scalar/scalar.H @@ -103,6 +103,9 @@ namespace Foam //- Read scalar from stream. scalar readScalar(Istream& is); + //- Read scalar from stream if present or return default value + scalar readScalarOrDefault(Istream& is, const scalar defaultValue); + //- Read raw scalar from binary stream. // \note No internal check for binary vs ascii, // the caller knows what they are doing @@ -172,6 +175,9 @@ namespace Foam //- Read scalar from stream. scalar readScalar(Istream& is); + //- Read scalar from stream if present or return default value + scalar readScalarOrDefault(Istream& is, const scalar defaultValue); + //- Read raw scalar from binary stream. // \note No internal check for binary vs ascii, // the caller knows what they are doing -- GitLab