msvc: Use source folder structure for project file.
[blender.git] / intern / elbeem / intern / solver_control.cpp
index 6b4c31b8f3e32650eea8b223a0360d4eb9b3217b..c3015b82f0a739c5342da5a435dfdd92e0630bee 100644 (file)
@@ -1,3 +1,6 @@
+/** \file elbeem/intern/solver_control.cpp
+ *  \ingroup elbeem
+ */
 /******************************************************************************
  *
  * El'Beem - the visual lattice boltzmann freesurface simulator
@@ -49,7 +52,9 @@ void LbmControlSet::initCparts() {
 
 LbmControlData::LbmControlData() : 
        mSetForceStrength(0.),
-       mCons(), mCpUpdateInterval(16), mCpOutfile(""),
+       mCons(), 
+       mCpUpdateInterval(8), // DG: was 16 --> causes problems (big sphere after some time), unstable
+       mCpOutfile(""), 
        mCpForces(), mCpKernel(), mMdKernel(),
        mDiffVelCon(1.),
        mDebugCpscale(0.), 
@@ -220,7 +225,10 @@ LbmFsgrSolver::initCpdata()
        
        // manually switch on! if this is zero, nothing is done...
        mpControl->mSetForceStrength = this->mTForceStrength = 1.;
-       mpControl->mCons.clear();
+       while (!mpControl->mCons.empty()) {
+               delete mpControl->mCons.back();  mpControl->mCons.pop_back();
+       }
+
        
        // init all control fluid objects
        int numobjs = (int)(mpGiObjects->size());
@@ -259,7 +267,9 @@ LbmFsgrSolver::initCpdata()
        if(0) {
                // manually switch on! if this is zero, nothing is done...
                mpControl->mSetForceStrength = this->mTForceStrength = 1.;
-               mpControl->mCons.clear();
+               while (!mpControl->mCons.empty()) {
+                       delete mpControl->mCons.back();  mpControl->mCons.pop_back();
+               }
 
                // add new set
                LbmControlSet *cset;
@@ -418,6 +428,10 @@ LbmFsgrSolver::handleCpdata()
                return;
        }
        
+       // check if we have control objects
+       if(mpControl->mCons.size()==0)
+               return;
+       
        if((mpControl->mCpUpdateInterval<1) || (this->mStepCnt%mpControl->mCpUpdateInterval==0)) {
                // do full reinit later on... 
        }