[Bf-blender-cvs] [937c637] fluid-mantaflow: moved uv setup and calculations from step low to step high. not needed in step low

Sebastián Barschkis noreply at git.blender.org
Sat Mar 19 20:58:56 CET 2016


Commit: 937c63766f7b2822badd50e8c88164fcbcdaaea1
Author: Sebastián Barschkis
Date:   Sat Mar 19 20:57:13 2016 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB937c63766f7b2822badd50e8c88164fcbcdaaea1

moved uv setup and calculations from step low to step high. not needed in step low

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

M	intern/mantaflow/intern/MANTA.cpp
M	intern/mantaflow/intern/strings/smoke.h

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

diff --git a/intern/mantaflow/intern/MANTA.cpp b/intern/mantaflow/intern/MANTA.cpp
index 96ea6d6..cb6e61e 100644
--- a/intern/mantaflow/intern/MANTA.cpp
+++ b/intern/mantaflow/intern/MANTA.cpp
@@ -44,7 +44,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
 	// Make sure that string vector does not contain any previous commands
 	mCommands.clear();
 
-	// simulation constants
+	// Simulation constants
 	mTempAmb            = 0; // TODO: Maybe use this later for buoyancy calculation
 	mResX               = res[0];
 	mResY               = res[1];
@@ -54,7 +54,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
 	mConstantScaling    = (mConstantScaling < 1.0f) ? 1.0f : mConstantScaling;
 	mTotalCells         = mResX * mResY * mResZ;
 	
-	// low res grids
+	// Low res grids
 	mDensity        = NULL;
 	mHeat           = NULL;
 	mVelocityX      = NULL;
@@ -78,7 +78,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
 	mObstacles      = new unsigned char[mTotalCells];       // TODO in Mantaflow
 	mObstaclesAnim  = new unsigned char[mTotalCells];       // TODO in Mantaflow
 	
-	// high res grids
+	// High res grids
 	mDensityHigh    = NULL;
 	mFlameHigh      = NULL;
 	mFuelHigh       = NULL;
@@ -150,7 +150,6 @@ void MANTA::initSetup(SmokeModifierData *smd)
 	std::string tmpString =
 		manta_import +
 		solver_setup_low +
-		uv_setup +
 		alloc_base_grids_low +
 		prep_domain_low +
 		flags +
@@ -166,6 +165,7 @@ void MANTA::initSetupHigh(SmokeModifierData *smd)
 {
 	std::string tmpString =
 		solver_setup_high +
+		uv_setup +
 		alloc_base_grids_high +
 		prep_domain_high +
 		wavelet_turbulence_noise +
@@ -558,7 +558,7 @@ string MANTA::getGridPointer(std::string gridName, std::string solverName)
 	if (retured_value == NULL){cout << "null" << 15 << endl;return "";}
 	std::string res = PyBytes_AsString(encoded);
 	cout << "Pointer on "<< gridName << " " << res << endl;
-	PyGILState_Release(gilstate);		
+	PyGILState_Release(gilstate);
 	return res;
 }
 
@@ -579,7 +579,7 @@ void MANTA::updatePointers(SmokeModifierData *smd)
 	mFuelInflow     = (float*) pointerFromString( getGridPointer("fuel_inflow","s") );
 	
 	if (smd->domain->active_fields & SM_ACTIVE_HEAT) {
-		mHeat      = (float*) pointerFromString(getGridPointer("heat",        "s") );
+		mHeat       = (float*) pointerFromString(getGridPointer("heat",        "s") );
 	}
 	if (smd->domain->active_fields & SM_ACTIVE_FIRE) {
 		mFlame      = (float*) pointerFromString( getGridPointer("flame",      "s") );
diff --git a/intern/mantaflow/intern/strings/smoke.h b/intern/mantaflow/intern/strings/smoke.h
index f13a98d..ed19873 100644
--- a/intern/mantaflow/intern/strings/smoke.h
+++ b/intern/mantaflow/intern/strings/smoke.h
@@ -77,8 +77,7 @@ s.cfl = 4.0\n\
 s.timestep = dt0\n\
 timings = Timings()\n\
 vorticity = $VORTICITY$\n\
-boundaryWidth = 1\n\
-uvs = 2\n";
+boundaryWidth = 1\n";
 
 const string alloc_base_grids_low = "\n\
 # prepare grids low\n\
@@ -119,6 +118,7 @@ xl.timestepMax = s.timestepMax\n\
 xl.cfl = s.cfl\n\
 wltStrength = $WLT_STR$\n\
 octaves = 0\n\
+uvs = 2\n\
 if upres == 1:\n\
   octaves = int(math.log(upres+1)/ math.log(2.0) + 0.5)\n\
 elif upres > 1:\n\
@@ -264,7 +264,6 @@ if 'heat' in globals() : del heat\n";
 const string del_base_grids_low = "\n\
 mantaMsg('Deleting base grids low')\n\
 if 'flags' in globals() : del flags\n\
-if 'uvs' in globals() : del uvs\n\
 if 'vel' in globals() : del vel\n\
 if 'x_vel' in globals() : del x_vel\n\
 if 'y_vel' in globals() : del y_vel\n\
@@ -300,15 +299,13 @@ if 'fps' in globals() : del fps\n\
 if 'dt0' in globals() : del dt0\n\
 if 'vorticity' in globals() : del vorticity\n\
 if 'boundaryWidth' in globals() : del boundaryWidth\n\
-if 's' in globals() : del s\n\
 if 'timings' in globals() : del timings\n\
 if 'using_colors' in globals() : del using_colors\n\
 if 'using_heat' in globals() : del using_heat\n\
 if 'using_fire' in globals() : del using_fire\n\
 if 'last_frame' in globals() : del last_frame\n\
 if 'maxvel' in globals() : del maxvel\n\
-if 'gravity' in globals() : del gravity\n\
-if 'uv' in globals() : del uv\n";
+if 'gravity' in globals() : del gravity\n";
 
 const string del_vars_high = "\n\
 mantaMsg('Deleting variables high')\n\
@@ -316,6 +313,8 @@ if 'upres' in globals() : del upres\n\
 if 'xl_gs' in globals() : del xl_gs\n\
 if 'xl' in globals() : del xl\n\
 if 'wltStrength' in globals() : del wltStrength\n\
+if 'uvs' in globals() : del uvs\n\
+if 'uv' in globals() : del uv\n\
 if 'octaves' in globals() : del octaves\n";
 
 //////////////////////////////////////////////////////////////////////
@@ -379,11 +378,6 @@ def step_low():\n\
   mantaMsg('Advecting velocity')\n\
   advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=$ADVECT_ORDER$, openBounds=doOpen, boundaryWidth=boundaryWidth)\n\
   \n\
-  for i in range(uvs):\n\
-    mantaMsg('Advecting UV and updating UVWeight')\n\
-    advectSemiLagrange(flags=flags, vel=vel, grid=uv[i], order=$ADVECT_ORDER$)\n\
-    updateUvWeight(resetTime=16.5 , index=i, numUvs=uvs, uv=uv[i])\n\
-  \n\
   if doOpen:\n\
     resetOutflow(flags=flags, real=density)\n\
   mantaMsg('Vorticity')\n\
@@ -405,14 +399,6 @@ def step_low():\n\
   \n\
   mantaMsg('Pressure')\n\
   solvePressure(flags=flags, vel=vel, pressure=pressure)\n\
-  \n\
-  mantaMsg('Energy')\n\
-  computeEnergy(flags=flags, vel=vel, energy=energy)\n\
-  \n\
-  tempFlag.copyFrom(flags)\n\
-  extrapolateSimpleFlags( flags=flags, val=tempFlag, distance=2, flagFrom=FlagObstacle, flagTo=FlagFluid )\n\
-  extrapolateSimpleFlags( flags=tempFlag, val=energy, distance=6, flagFrom=FlagFluid, flagTo=FlagObstacle )\n\
-  computeWaveletCoeffs(energy)\n\
   # TODO: mantaMsg('Forcefield')\n\
   # TODO: addForceField(flags=flags, vel=vel, force=forces)\n\
   # TODO: forces.clear()\n\
@@ -436,6 +422,20 @@ def update_flame_low():\n\
 const string smoke_step_high = "\n\
 def step_high():\n\
   mantaMsg('Step high')\n\
+  for i in range(uvs):\n\
+    mantaMsg('Advecting UV')\n\
+    advectSemiLagrange(flags=flags, vel=vel, grid=uv[i], order=$ADVECT_ORDER$)\n\
+    mantaMsg('Updating UVWeight')\n\
+    updateUvWeight(resetTime=16.5 , index=i, numUvs=uvs, uv=uv[i])\n\
+  \n\
+  mantaMsg('Energy')\n\
+  computeEnergy(flags=flags, vel=vel, energy=energy)\n\
+  \n\
+  tempFlag.copyFrom(flags)\n\
+  extrapolateSimpleFlags(flags=flags, val=tempFlag, distance=2, flagFrom=FlagObstacle, flagTo=FlagFluid)\n\
+  extrapolateSimpleFlags(flags=tempFlag, val=energy, distance=6, flagFrom=FlagFluid, flagTo=FlagObstacle)\n\
+  computeWaveletCoeffs(energy)\n\
+  \n\
   interpolateMACGrid(source=vel, target=xl_vel)\n\
   sStr = 1.0 * wltStrength\n\
   sPos = 2.0\n\




More information about the Bf-blender-cvs mailing list