diff --git a/src/recurrence/recModel/standardRecModel/standardRecModel.C b/src/recurrence/recModel/standardRecModel/standardRecModel.C index 7dfadebd..6fd2c557 100644 --- a/src/recurrence/recModel/standardRecModel/standardRecModel.C +++ b/src/recurrence/recModel/standardRecModel/standardRecModel.C @@ -59,7 +59,8 @@ standardRecModel::standardRecModel dataBaseName_(propsDict_.lookupOrDefault("dataBase", word("dataBase"))), recTime(fileName(dataBaseName_), "", "../system", "../constant", false), timeDirs(recTime.times()), - numRecFields_(label(timeDirs.size())), + skipZero_(propsDict_.lookupOrDefault("skipZero", Switch(false))), + numRecFields_(skipZero_ ? label(timeDirs.size())-1 : label(timeDirs.size())), recurrenceMatrix_(numRecFields_,scalar(0.0)), timeIndexList_(numRecFields_-1), timeValueList_(numRecFields_-1), @@ -79,8 +80,9 @@ standardRecModel::standardRecModel Info << "recTime.caseName() " << recTime.caseName() << endl; Info << "recTime.path() " << recTime.path() << endl; Info << "recTime.timePath() " << recTime.timePath() << endl; - Info << "recTime.timeName() " << recTime.timeName() << endl; - Info << "timeDirs " << timeDirs << endl; + Info << "recTime.timeName() " << recTime.timeName() << endl; + Info << "timeDirs " << timeDirs << endl; + Info << "consider 0 directory: " << skipZero_ << endl; } readTimeSeries(); @@ -129,6 +131,16 @@ scalar standardRecModel::checkTimeStep() forAll(timeValueList_, i) { + // skip zero + if (skipZero_ and timeDirs[i].value() == 0) + { + if (verbose_) + { + Info << " ... skipping 0 in checkTimeStep()" << endl; + } + continue; + } + // compute time step if (timeDirs[i].value() == timeDirs.last().value()) { @@ -197,6 +209,17 @@ void standardRecModel::readFieldSeries() // set time recTime.setTime(*it, it->value()); + // skip zero + if (skipZero_ and recTime.timeName() == "0") + { + if (verbose_) + { + Info << " ... skipping 0 in readFieldSeries()" << endl; + } + + continue; + } + // skip constant if (recTime.timeName() == "constant") { @@ -282,6 +305,17 @@ void standardRecModel::readTimeSeries() continue; } + // skip zero + if (skipZero_ and recTime.timeName() == "0") + { + if (verbose_) + { + Info << " ... skipping 0 in readTimeSeries()" << endl; + } + + continue; + } + if (firsttime) { firsttime = false; diff --git a/src/recurrence/recModel/standardRecModel/standardRecModel.H b/src/recurrence/recModel/standardRecModel/standardRecModel.H index 1e75e4c1..3ec05bfa 100644 --- a/src/recurrence/recModel/standardRecModel/standardRecModel.H +++ b/src/recurrence/recModel/standardRecModel/standardRecModel.H @@ -46,6 +46,7 @@ protected: word dataBaseName_; Foam::Time recTime; instantList timeDirs; + Switch skipZero_; label numRecFields_; // matrix that contains the recurrence ERROR