diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C index eba6703ddbae0ccda967b9e1fda62283e06b1e91..f97a3ba188eb1fd7625bf33292d4c012532b06d2 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.C @@ -39,6 +39,7 @@ Foam::cloudSolution::cloudSolution(const fvMesh& mesh, const dictionary& dict) active_(dict.lookup("active")), transient_(false), calcFrequency_(1), + logFrequency_(1), maxCo_(0.3), iter_(1), trackTime_(0.0), @@ -82,6 +83,7 @@ Foam::cloudSolution::cloudSolution(const cloudSolution& cs) active_(cs.active_), transient_(cs.transient_), calcFrequency_(cs.calcFrequency_), + logFrequency_(cs.logFrequency_), maxCo_(cs.maxCo_), iter_(cs.iter_), trackTime_(cs.trackTime_), @@ -101,6 +103,7 @@ Foam::cloudSolution::cloudSolution(const fvMesh& mesh) active_(false), transient_(false), calcFrequency_(0), + logFrequency_(0), maxCo_(GREAT), iter_(0), trackTime_(0.0), @@ -153,6 +156,8 @@ void Foam::cloudSolution::read() dict_.readIfPresent("maxCo", maxCo_); dict_.readIfPresent("deltaTMax", deltaTMax_); + dict_.readIfPresent("logFrequency", logFrequency_); + if (steadyState()) { dict_.readEntry("calcFrequency", calcFrequency_); @@ -264,6 +269,15 @@ bool Foam::cloudSolution::canEvolve() } +bool Foam::cloudSolution::log() const +{ + return + active_ + && (logFrequency_ > 0) + && (mesh_.time().timeIndex() % logFrequency_ == 0); +} + + bool Foam::cloudSolution::output() const { return active_ && mesh_.time().writeTime(); diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H index 3862399abf31333c0596fa7405c15758f4076efd..6af6b5053654dbe0bf4741be2c03ce0f25b42ee9 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/cloudSolution/cloudSolution.H @@ -71,6 +71,10 @@ class cloudSolution // NOTE: Steady operation only label calcFrequency_; + //- Output log frequency - carrier steps per cloud step + // Default = 1 + label logFrequency_; + //- Maximum particle Courant number // Max fraction of current cell that can be traversed in a single // step @@ -210,9 +214,12 @@ public: bool solveThisStep() const; //- Returns true if possible to evolve the cloud and sets timestep - // parameters + //- parameters bool canEvolve(); + //- Returns true if possible to log this step + bool log() const; + //- Returns true if writing this step bool output() const;