From 0dccf9de85b08593ded9b4cc3dbfc37482bf8b95 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Tue, 18 May 2010 09:24:46 +0200 Subject: [PATCH] ENH: improve robustness of outputFilterOutputControl --- src/OpenFOAM/containers/NamedEnum/NamedEnum.C | 18 +++++----- .../outputFilterOutputControl.C | 33 ++++++++++--------- .../outputFilterOutputControl.H | 9 +++-- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C index 76b8c58765..b39664af24 100644 --- a/src/OpenFOAM/containers/NamedEnum/NamedEnum.C +++ b/src/OpenFOAM/containers/NamedEnum/NamedEnum.C @@ -33,25 +33,25 @@ Foam::NamedEnum::NamedEnum() : HashTable(2*nEnum) { - for (int i=0; i::NamedEnum()") - << "Illegal enumeration name at position " << i << endl + << "Illegal enumeration name at position " << enumI << endl << "after entries " << goodNames << ".\n" << "Possibly your NamedEnum::names array" << " is not of size " << nEnum << endl << abort(FatalError); } - insert(names[i], i); + insert(names[enumI], enumI); } } @@ -61,7 +61,7 @@ Foam::NamedEnum::NamedEnum() template Enum Foam::NamedEnum::read(Istream& is) const { - word name(is); + const word name(is); HashTable::const_iterator iter = find(name); @@ -71,7 +71,7 @@ Enum Foam::NamedEnum::read(Istream& is) const ( "NamedEnum::read(Istream&) const", is ) << name << " is not in enumeration: " - << toc() << exit(FatalIOError); + << sortedToc() << exit(FatalIOError); } return Enum(iter()); diff --git a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C index 2644b0d000..08694c9817 100644 --- a/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C +++ b/src/OpenFOAM/db/functionObjects/outputFilterOutputControl/outputFilterOutputControl.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -68,18 +68,23 @@ Foam::outputFilterOutputControl::~outputFilterOutputControl() void Foam::outputFilterOutputControl::read(const dictionary& dict) { - outputControl_ = outputControlNames_.read(dict.lookup("outputControl")); + if (dict.found("outputControl")) + { + outputControl_ = outputControlNames_.read(dict.lookup("outputControl")); + } + else + { + outputControl_ = ocTimeStep; + } switch (outputControl_) { case ocTimeStep: - { - dict.lookup("outputInterval") >> outputInterval_; - } + outputInterval_ = dict.lookupOrDefault