[Bf-blender-cvs] [09d2c464ddc] fluid-mantaflow: obvel velocity fix, disabling surface tension and viscosity for now, set do not delete flip in obstacle

Sebastián Barschkis noreply at git.blender.org
Wed Nov 8 17:26:48 CET 2017


Commit: 09d2c464ddc39fb6fca07b1f5706c6e771c1d4c8
Author: Sebastián Barschkis
Date:   Wed Nov 8 14:31:27 2017 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB09d2c464ddc39fb6fca07b1f5706c6e771c1d4c8

obvel velocity fix, disabling surface tension and viscosity for now, set do not delete flip in obstacle

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

M	intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp
M	intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp
M	intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp
M	intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp
M	intern/mantaflow/intern/strings/liquid_script.h

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

diff --git a/intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp b/intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp
index 84dd78f3054..7815f901518 100644
--- a/intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp
+++ b/intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp
@@ -305,7 +305,7 @@ void setInflowBcs(MACGrid& vel, string dir, Vec3 value) {
 	if (obvel) {
 		bcsVel.x = (*obvel)(i,j,k).x;
 		bcsVel.y = (*obvel)(i,j,k).y;
-		if(!(*obvel).is3D()) bcsVel.z = (*obvel)(i,j,k).z;
+		if((*obvel).is3D()) bcsVel.z = (*obvel)(i,j,k).z;
 	}
 
 	// we use i>0 instead of bnd=1 to check outer wall
@@ -314,7 +314,7 @@ void setInflowBcs(MACGrid& vel, string dir, Vec3 value) {
 	if (j>0 && flags.isObstacle(i,j-1,k))						 vel(i,j,k).y = bcsVel.y;
 	if (j>0 && curObs && flags.isFluid(i,j-1,k))				 vel(i,j,k).y = bcsVel.y;
 
-	if(!vel.is3D()) {                            				vel(i,j,k).z = bcsVel.z; } else {
+	if(!vel.is3D()) {                            				vel(i,j,k).z = 0; } else {
 	if (k>0 && flags.isObstacle(i,j,k-1))		 				vel(i,j,k).z = bcsVel.z;
 	if (k>0 && curObs && flags.isFluid(i,j,k-1)) 				vel(i,j,k).z = bcsVel.z; }
 	
diff --git a/intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp b/intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp
index 994a9c16f47..0802b6c53b6 100644
--- a/intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp
+++ b/intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp
@@ -401,7 +401,7 @@ void PD_fluid_guiding(MACGrid& vel, MACGrid& velT, Grid<Real>& pressure, FlagGri
 void releaseBlurPrecomp() {
 	gBlurPrecomputed = false;
 	gBlurKernelRadius = -1;
-	gBlurKernel = NULL;
+	gBlurKernel = 0.f;
 } static PyObject* _W_3 (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, "releaseBlurPrecomp" , !noTiming ); PyObject *_retval = 0; { ArgLocker _lock;   _retval = getPyNone(); releaseBlurPrecomp();  _args.check(); } pbFinalizePlugin(parent,"releaseBlurPrecomp", !noTiming ); return _retval; } catch(std::exception& e) { pbSe [...]
 
 
diff --git a/intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp b/intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp
index 289c8a79ef9..407b95e124d 100644
--- a/intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp
+++ b/intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp
@@ -243,7 +243,7 @@ void setInflowBcs(MACGrid& vel, string dir, Vec3 value) {
 	if (obvel) {
 		bcsVel.x = (*obvel)(i,j,k).x;
 		bcsVel.y = (*obvel)(i,j,k).y;
-		if(!(*obvel).is3D()) bcsVel.z = (*obvel)(i,j,k).z;
+		if((*obvel).is3D()) bcsVel.z = (*obvel)(i,j,k).z;
 	}
 
 	// we use i>0 instead of bnd=1 to check outer wall
@@ -252,7 +252,7 @@ void setInflowBcs(MACGrid& vel, string dir, Vec3 value) {
 	if (j>0 && flags.isObstacle(i,j-1,k))						 vel(i,j,k).y = bcsVel.y;
 	if (j>0 && curObs && flags.isFluid(i,j-1,k))				 vel(i,j,k).y = bcsVel.y;
 
-	if(!vel.is3D()) {                            				vel(i,j,k).z = bcsVel.z; } else {
+	if(!vel.is3D()) {                            				vel(i,j,k).z = 0; } else {
 	if (k>0 && flags.isObstacle(i,j,k-1))		 				vel(i,j,k).z = bcsVel.z;
 	if (k>0 && curObs && flags.isFluid(i,j,k-1)) 				vel(i,j,k).z = bcsVel.z; }
 	
diff --git a/intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp b/intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp
index 4869e4fe65b..09c9c75f6d9 100644
--- a/intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp
+++ b/intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp
@@ -368,7 +368,7 @@ void PD_fluid_guiding(MACGrid& vel, MACGrid& velT, Grid<Real>& pressure, FlagGri
 void releaseBlurPrecomp() {
 	gBlurPrecomputed = false;
 	gBlurKernelRadius = -1;
-	gBlurKernel = NULL;
+	gBlurKernel = 0.f;
 } static PyObject* _W_3 (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, "releaseBlurPrecomp" , !noTiming ); PyObject *_retval = 0; { ArgLocker _lock;   _retval = getPyNone(); releaseBlurPrecomp();  _args.check(); } pbFinalizePlugin(parent,"releaseBlurPrecomp", !noTiming ); return _retval; } catch(std::exception& e) { pbSe [...]
 
 
diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h
index 84bc698de57..259297b2051 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -44,8 +44,8 @@ minParticles_s$ID$   = $PARTICLE_MINIMUM$\n\
 maxParticles_s$ID$   = $PARTICLE_MAXIMUM$\n\
 radiusFactor_s$ID$   = $PARTICLE_RADIUS$\n\
 randomness_s$ID$     = $PARTICLE_RANDOMNESS$\n\
-surfaceTension_s$ID$ = 0.9\n\
-viscosity_s$ID$      = 0.05\n\
+surfaceTension_s$ID$ = 0.0\n\
+viscosity_s$ID$      = 0.0\n\
 maxVel_s$ID$         = 1 # just declared here, do not set\n";
 
 const std::string liquid_variables_high = "\n\
@@ -64,7 +64,7 @@ phiIn_s$ID$      = s$ID$.create(LevelsetGrid)\n\
 phiOut_s$ID$     = s$ID$.create(LevelsetGrid)\n\
 phiOutIn_s$ID$   = s$ID$.create(LevelsetGrid)\n\
 pressure_s$ID$   = s$ID$.create(RealGrid)\n\
-curvature_s$ID$  = s$ID$.create(RealGrid)\n\
+curvature_s$ID$  = 0 #s$ID$.create(RealGrid)\n\
 \n\
 phiObs_s$ID$     = s$ID$.create(LevelsetGrid)\n\
 fractions_s$ID$  = 0 # s$ID$.create(MACGrid) # TODO (sebbas): disabling fractions for now - not fracwallbcs not supporting obvels yet\n\
@@ -236,7 +236,7 @@ def liquid_step_$ID$():\n\
         adjustSndParts(parts=ppSnd_s$ID$, flags=flags_s$ID$, phi=phi_s$ID$, partVel=pVelSnd_pp$ID$)\n\
     \n\
     mantaMsg('Advecting particles')\n\
-    pp_s$ID$.advectInGrid(flags=flags_s$ID$, vel=vel_s$ID$, integrationMode=IntRK4, deleteInObstacle=using_obstacle_s$ID$, stopInObstacle=False)\n\
+    pp_s$ID$.advectInGrid(flags=flags_s$ID$, vel=vel_s$ID$, integrationMode=IntRK4, deleteInObstacle=False, stopInObstacle=False)\n\
     \n\
     mantaMsg('Pushing particles out of obstacles')\n\
     pushOutofObs(parts=pp_s$ID$, flags=flags_s$ID$, phiObs=phiObs_s$ID$)\n\
@@ -299,8 +299,8 @@ def liquid_step_$ID$():\n\
     \n\
     setWallBcs(flags=flags_s$ID$, vel=vel_s$ID$, obvel=obvel_s$ID$ if using_obstacle_s$ID$ else 0, phiObs=phiObs_s$ID$, fractions=fractions_s$ID$)\n\
     \n\
-    mantaMsg('Calculating curvature')\n\
-    getLaplacian(laplacian=curvature_s$ID$, grid=phi_s$ID$)\n\
+#    mantaMsg('Calculating curvature')\n\
+#    getLaplacian(laplacian=curvature_s$ID$, grid=phi_s$ID$)\n\
     \n\
     if using_guiding_s$ID$:\n\
         mantaMsg('Guiding and pressure')\n\



More information about the Bf-blender-cvs mailing list