[Bf-blender-cvs] [b6cc2d4dcf3] fluid-mantaflow: updated manta pp files

Sebastián Barschkis noreply at git.blender.org
Wed Nov 29 19:12:36 CET 2017


Commit: b6cc2d4dcf3e884a0a4e61a5319939aea7b98365
Author: Sebastián Barschkis
Date:   Wed Nov 29 16:25:26 2017 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rBb6cc2d4dcf3e884a0a4e61a5319939aea7b98365

updated manta pp files

===================================================================

M	intern/mantaflow/intern/manta_pp/omp/fluidsolver.h
M	intern/mantaflow/intern/manta_pp/omp/gitinfo.h
M	intern/mantaflow/intern/manta_pp/omp/particle.h
M	intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp
M	intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp
M	intern/mantaflow/intern/manta_pp/tbb/fluidsolver.h
M	intern/mantaflow/intern/manta_pp/tbb/gitinfo.h
M	intern/mantaflow/intern/manta_pp/tbb/particle.h
M	intern/mantaflow/intern/manta_pp/tbb/plugin/fire.cpp
M	intern/mantaflow/intern/manta_pp/tbb/plugin/sndparticles.cpp

===================================================================

diff --git a/intern/mantaflow/intern/manta_pp/omp/fluidsolver.h b/intern/mantaflow/intern/manta_pp/omp/fluidsolver.h
index 69b470e464f..5368013c8f8 100644
--- a/intern/mantaflow/intern/manta_pp/omp/fluidsolver.h
+++ b/intern/mantaflow/intern/manta_pp/omp/fluidsolver.h
@@ -45,6 +45,7 @@ class FluidSolver : public PbClass {public:
 	inline Real  getDt()       { return mDt; }
 	inline Real  getDx()       { return 1.0 / mGridSize.max(); }
 	inline Real  getTime()     { return mTimeTotal; }
+	inline Real  getFrameLength() { return mFrameLength; }
 
 	//! Check dimensionality
 	inline bool is2D() const { return mDim==2; }
diff --git a/intern/mantaflow/intern/manta_pp/omp/gitinfo.h b/intern/mantaflow/intern/manta_pp/omp/gitinfo.h
index b772b7fe1ca..72f41700b8a 100644
--- a/intern/mantaflow/intern/manta_pp/omp/gitinfo.h
+++ b/intern/mantaflow/intern/manta_pp/omp/gitinfo.h
@@ -1,4 +1,4 @@
 
 
-#define MANTA_GIT_VERSION "commit 8fdd0f9d3d5bb67ae5bad8e06eabda0ba2c896e7" 
+#define MANTA_GIT_VERSION "commit 508317e36888914db7068fd5f9b58920cade9838" 
 
diff --git a/intern/mantaflow/intern/manta_pp/omp/particle.h b/intern/mantaflow/intern/manta_pp/omp/particle.h
index 9577f0eb647..29e5a9dbba4 100644
--- a/intern/mantaflow/intern/manta_pp/omp/particle.h
+++ b/intern/mantaflow/intern/manta_pp/omp/particle.h
@@ -67,7 +67,7 @@ class ParticleBase : public PbClass {public:
 	virtual IndexInt getSizeSlow() const { assertMsg( false , "Dont use, override..."); return 0; } 
 
 	//! add a position as potential candidate for new particle (todo, make usable from parallel threads)
-	inline void addBuffered(const Vec3& pos, int flag=0);
+	inline void addBuffered(const Vec3& pos, int flag=PNONE);
 
 	//! particle data functions
 
diff --git a/intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp b/intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp
index fca25599415..6e39473a6a9 100644
--- a/intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp
+++ b/intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp
@@ -91,11 +91,11 @@ namespace Manta {
 
 
 
-
-void processBurn(Grid<Real>& fuel, Grid<Real>& density, Grid<Real>& react, Grid<Real>* red = NULL, Grid<Real>* green = NULL, Grid<Real>* blue = NULL, Grid<Real>* heat = NULL, Real burningRate = 0.75f, Real flameSmoke = 1.0f, Real ignitionTemp = 1.25f, Real maxTemp = 1.75f, Real dt = 0.1f, Vec3 flameSmokeColor = Vec3(0.7f, 0.7f, 0.7f)) {
+void processBurn(Grid<Real>& fuel, Grid<Real>& density, Grid<Real>& react, Grid<Real>* red = NULL, Grid<Real>* green = NULL, Grid<Real>* blue = NULL, Grid<Real>* heat = NULL, Real burningRate = 0.75f, Real flameSmoke = 1.0f, Real ignitionTemp = 1.25f, Real maxTemp = 1.75f, Vec3 flameSmokeColor = Vec3(0.7f, 0.7f, 0.7f)) {
+	Real dt = fuel.getParent()->getDt();
 	KnProcessBurn(fuel, density, react, red, green, blue, heat, burningRate,
 				  flameSmoke, ignitionTemp, maxTemp, dt, flameSmokeColor);
-} static PyObject* _W_0 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { try { PbArgs _args(_linargs, _kwds); FluidSolver *parent = _args.obtainParent(); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(parent, "processBurn" , !noTiming ); PyObject *_retval = 0; { ArgLocker _lock; Grid<Real>& fuel = *_args.getPtr<Grid<Real> >("fuel",0,&_lock); Grid<Real>& density = *_args.getPtr<Grid<Real> >("density",1,&_lock); Grid<Real>& react = *_args.getPtr<Grid<Real> > [...]
+} static PyObject* _W_0 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { try { PbArgs _args(_linargs, _kwds); FluidSolver *parent = _args.obtainParent(); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(parent, "processBurn" , !noTiming ); PyObject *_retval = 0; { ArgLocker _lock; Grid<Real>& fuel = *_args.getPtr<Grid<Real> >("fuel",0,&_lock); Grid<Real>& density = *_args.getPtr<Grid<Real> >("density",1,&_lock); Grid<Real>& react = *_args.getPtr<Grid<Real> > [...]
 
 
 
diff --git a/intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp b/intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp
index 9d448e97a69..51dfaf99e3d 100644
--- a/intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp
+++ b/intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp
@@ -38,9 +38,8 @@ inline Real calculateRadiusFactor(Grid<Real>& grid, Real factor) {
 //! adjust number of snd particles. optional parameters for life (0 = infinite life allowed)
 
 
-
-void adjustSndParts(BasicParticleSystem& parts, FlagGrid& flags, LevelsetGrid& phi, ParticleDataImpl<Vec3>& partVel, ParticleDataImpl<int>* partLife=NULL, int lifeDroplet=0, int lifeBubble=0, int lifeFloater=0, int lifeTracer=0, int maxDroplet=16, int maxBubble=16, int maxFloater=16, int maxTracer=16) {
-	Real dt = flags.getParent()->getDt();
+void adjustSndParts(BasicParticleSystem& parts, FlagGrid& flags, LevelsetGrid& phi, ParticleDataImpl<Vec3>& partVel, ParticleDataImpl<Real>* partLife=NULL, int maxDroplet=16, int maxBubble=16, int maxFloater=16, int maxTracer=16) {
+	const Real dt = flags.getParent()->getDt();
 	Real radiusFactor = 1.;
 	const Real DROP_THRESH  = calculateRadiusFactor(phi, radiusFactor); // cell diagonal
 	const Real FLOAT_THRESH = calculateRadiusFactor(phi, radiusFactor);
@@ -86,11 +85,8 @@ void adjustSndParts(BasicParticleSystem& parts, FlagGrid& flags, LevelsetGrid& p
 		if ( parts.isFloater(idx) && (phiv > FLOAT_THRESH || phiv < -FLOAT_THRESH)) { parts.kill(idx); continue; }
 		if ( parts.isTracer(idx)  && phiv > 0. ) { parts.kill(idx); continue; }
 
-		// Kill particles depending on maximum allowed life. Life 0 = keep leaving forever
-		if ( parts.isDroplet(idx) && partLife && lifeDroplet > 0 && (*partLife)[idx] > lifeDroplet) { parts.kill(idx); continue; }
-		if ( parts.isBubble(idx)  && partLife && lifeBubble  > 0 && (*partLife)[idx] > lifeBubble)  { parts.kill(idx); continue; }
-		if ( parts.isFloater(idx) && partLife && lifeFloater > 0 && (*partLife)[idx] > lifeFloater) { parts.kill(idx); continue; }
-		if ( parts.isTracer(idx)  && partLife && lifeTracer  > 0 && (*partLife)[idx] > lifeTracer)  { parts.kill(idx); continue; }
+		// Kill particles depending on current age
+		if ( partLife && (*partLife)[idx] <= 0.) { parts.kill(idx); continue; }
 
 		// Kill particle if current or next position is invalid, ie outside or in obstacle
 		if (!flags.isInBounds(p1i) || flags.isObstacle(p1i) || !flags.isInBounds(p2i) || flags.isObstacle(p2i)) {
@@ -105,22 +101,24 @@ void adjustSndParts(BasicParticleSystem& parts, FlagGrid& flags, LevelsetGrid& p
 		if ( parts.isTracer(idx)  && numTracer(p1i) > maxTracer ) { parts.kill(idx); continue; } else { numTracer(p1i) += 1; }
 	}
 	parts.doCompress();
-} static PyObject* _W_0 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { try { PbArgs _args(_linargs, _kwds); FluidSolver *parent = _args.obtainParent(); bool noTiming = _args.getOpt<bool>("notiming", -1, 0); pbPreparePlugin(parent, "adjustSndParts" , !noTiming ); PyObject *_retval = 0; { ArgLocker _lock; BasicParticleSystem& parts = *_args.getPtr<BasicParticleSystem >("parts",0,&_lock); FlagGrid& flags = *_args.getPtr<FlagGrid >("flags",1,&_lock); LevelsetGrid& phi = *_args.getP [...]

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list