diff --git a/src/petsc4Foam/utils/petscCacheManager.H b/src/petsc4Foam/utils/petscCacheManager.H index a1a80ece61da39fcc311526431f8b832c81c692e..701562822db3eea81bdad4048be4bf10fc30cfa4 100644 --- a/src/petsc4Foam/utils/petscCacheManager.H +++ b/src/petsc4Foam/utils/petscCacheManager.H @@ -244,22 +244,24 @@ private: bool needsUpdate(const PetscUtils::Caching& caching, label& iter) const { + // Default: Always update + bool need = true; switch (caching.updateType_) { case PetscUtils::Caching::Never: { - return false; + need = false; break; } case PetscUtils::Caching::Always: { - return true; break; } case PetscUtils::Caching::Periodic: { + need = false; if ( caching.updateFreq_ <= 1 @@ -267,13 +269,14 @@ private: ) { iter = 0; - return true; + need = true; } break; } case PetscUtils::Caching::Adaptive: { + need = false; if (iter > 3) // we need at least three times { const double ratio0 = @@ -288,16 +291,13 @@ private: if (iter >= nsteps) { iter = 0; - return true; + need = true; } } - break; } } - - // Default: Always update - return true; + return need; } };