Commit: 00157066bfa3db0c6a4fcfecdfe97797d5b42960
Author: Roman Pogribnyi
Date:   Sun Sep 21 14:43:00 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rB00157066bfa3db0c6a4fcfecdfe97797d5b42960

reverting to old smoke style, simpleplume scenario for debug

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

M       intern/smoke/intern/scenarios/smoke.h
M       source/blender/blenkernel/intern/pointcache.c
M       source/blender/blenkernel/intern/smoke.c

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

diff --git a/intern/smoke/intern/scenarios/smoke.h 
b/intern/smoke/intern/scenarios/smoke.h
index 294252a..3b7debd 100644
--- a/intern/smoke/intern/scenarios/smoke.h
+++ b/intern/smoke/intern/scenarios/smoke.h
@@ -2,7 +2,37 @@
 using namespace std;
 const string smoke_clean = "";
 
-const string smoke_setup_low ="from manta import * \n\
+const string smoke_setup_low ="import os, shutil, math, sys \n\
+from manta import *\n\
+\n\
+# solver params\n\
+res = $RES$\n\
+gs = vec3($RESX$, $RESY$, $RESZ$)\n\
+s = FluidSolver(name='main', gridSize = gs)\n\
+s.timestep = 1.0\n\
+timings = Timings()\n\
+\n\
+# prepare grids\n\
+flags = s.create(FlagGrid)\n\
+vel = s.create(MACGrid)\n\
+density = s.create(RealGrid)\n\
+pressure = s.create(RealGrid)\n\
+\n\
+# noise field\n\
+noise = s.create(NoiseField, loadFromFile=True)\n\
+noise.posScale = vec3(45)\n\
+noise.clamp = True\n\
+noise.clampNeg = 0\n\
+noise.clampPos = 1\n\
+noise.valScale = 1\n\
+noise.valOffset = 0.75\n\
+noise.timeAnim = 0.2\n\
+\n\
+flags.initDomain()\n\
+flags.fillGrid()\n\
+\n\
+source = s.create(Cylinder, center=gs*vec3(0.5,0.1,0.5), radius=res*0.14, 
z=gs*vec3(0, 0.02, 0))\n";
+/*"from manta import * \n\
 import os, shutil, math, sys \n\
 def transform_back(obj, gs):\n\
   obj.scale(gs/2)\n\
@@ -33,7 +63,7 @@ vel = s.create(MACGrid) \n\
 density = s.create(RealGrid) \n\
 pressure = s.create(RealGrid) \n\
 forces = s.create(MACGrid)\n\
-";
+";*/
 
 const string smoke_setup_high = "xl_gs = vec3($HRESX$, $HRESY$, $HRESZ$) \n\
 xl = Solver(name = 'larger', gridSize = xl_gs, dim = solver_dim) \n\
@@ -69,30 +99,43 @@ if $USE_WAVELETS$ and $UPRES$ > 0:\n\
 ";
 
 const string smoke_step_low = "def sim_step(t):\n\
-  density.save('den%04d_start.txt' % t) \n\
-  forces.load('manta_forces.uni')\n\
-  if (t>=0 and t<75):\n\
-    if noise.valScale > 0.:\n\
-      densityInflowMeshNoise( flags=flags, density=density, noise=noise, 
mesh=source, scale=3, sigma=0.5 )\n\
-    else:\n\
-      densityInflowMesh(flags=flags, density=density, mesh=source, value=1)\n\
-    applyInflow=True\n\
-  density.save('den%04d_1.txt' % t) \n\
-  addForceField(flags=flags, vel=vel,force=forces)\n\
-  density.save('den%04d_2.txt' % t) \n\
-  advectSemiLagrange(flags=flags, vel=vel, grid=density, order=$ADVECT_ORDER$) 
\n\
-  advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=$ADVECT_ORDER$) \n\
-  density.save('den%04d_3.txt' % t) \n\
-  setWallBcs(flags=flags, vel=vel) \n\
-  addBuoyancy(density=density, vel=vel, 
gravity=vec3($BUYO_X$,$BUYO_Y$,$BUYO_Z$), flags=flags) \n\
-  solvePressure(flags=flags, vel=vel, pressure=pressure, useResNorm=True, 
openBound='xXyYzZ', cgMaxIterFac=1, cgAccuracy=0.01) \n\
-  setWallBcs(flags=flags, vel=vel) \n\
-  print(\"Writing Grid to \" + str($DENSITY_MEM$) + \" with size\" + 
str($DENSITY_SIZE$))\n\
-  density.save('den%04d_end.txt' % t) \n\
-  density.writeGridToMemory(memLoc = \"$DENSITY_MEM$\",sizeAllowed = 
\"$DENSITY_SIZE$\") \n\
+  if t<100:\n\
+    densityInflow(flags=flags, density=density, noise=noise, shape=source, 
scale=1, sigma=0.5)\n\
+  advectSemiLagrange(flags=flags, vel=vel, grid=density, order=2)\n\
+  advectSemiLagrange(flags=flags, vel=vel, grid=vel    , order=2, 
strength=1.0)\n\
+  setWallBcs(flags=flags, vel=vel)    \n\
+  addBuoyancy(density=density, vel=vel, gravity=vec3(0,-6e-4,0), 
flags=flags)\n\
+  solvePressure(flags=flags, vel=vel, pressure=pressure, useResNorm=True)\n\
+  setWallBcs(flags=flags, vel=vel)\n\
+  #density.save('den%04d.uni' % t)\n\
   density.save('den%04d_temp.uni' % t) \n\
   os.rename('den%04d_temp.uni' % t, 'den%04d.uni' % t) \n\
-  s.step()\n";
+  s.step()";
+//"def sim_step(t):\n\
+//  density.save('den%04d_start.txt' % t) \n\
+//  forces.load('manta_forces.uni')\n\
+//  if (t>=0 and t<75):\n\
+//    if noise.valScale > 0.:\n\
+//      densityInflowMeshNoise( flags=flags, density=density, noise=noise, 
mesh=source, scale=3, sigma=0.5 )\n\
+//    else:\n\
+//      densityInflowMesh(flags=flags, density=density, mesh=source, 
value=1)\n\
+//    applyInflow=True\n\
+//  density.save('den%04d_1.txt' % t) \n\
+//  addForceField(flags=flags, vel=vel,force=forces)\n\
+//  density.save('den%04d_2.txt' % t) \n\
+//  advectSemiLagrange(flags=flags, vel=vel, grid=density, 
order=$ADVECT_ORDER$) \n\
+//  advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=$ADVECT_ORDER$) 
\n\
+//  density.save('den%04d_3.txt' % t) \n\
+//  setWallBcs(flags=flags, vel=vel) \n\
+//  addBuoyancy(density=density, vel=vel, 
gravity=vec3($BUYO_X$,$BUYO_Y$,$BUYO_Z$), flags=flags) \n\
+//  solvePressure(flags=flags, vel=vel, pressure=pressure, useResNorm=True, 
openBound='xXyYzZ', cgMaxIterFac=1, cgAccuracy=0.01) \n\
+//  setWallBcs(flags=flags, vel=vel) \n\
+//  print(\"Writing Grid to \" + str($DENSITY_MEM$) + \" with size\" + 
str($DENSITY_SIZE$))\n\
+//  density.save('den%04d_end.txt' % t) \n\
+//  #density.writeGridToMemory(memLoc = \"$DENSITY_MEM$\",sizeAllowed = 
\"$DENSITY_SIZE$\") \n\
+//  density.save('den%04d_temp.uni' % t) \n\
+//  os.rename('den%04d_temp.uni' % t, 'den%04d.uni' % t) \n\
+//  s.step()\n";
 
 const string smoke_step_high = "  interpolateMACGrid( source=vel, 
target=xl_vel ) \n\
   sStr = 1.0 * wltStrength  \n\
diff --git a/source/blender/blenkernel/intern/pointcache.c 
b/source/blender/blenkernel/intern/pointcache.c
index 6fbc7aa..17c7534 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -609,12 +609,12 @@ static int  ptcache_smoke_write(PTCacheFile *pf, void 
*smoke_v)
 
                ptcache_file_compressed_write(pf, (unsigned char *)sds->shadow, 
in_len, out, mode);
                
-                       writeArrToFile("sh.txt", sds->shadow, res);
-               
+               /*      writeArrToFile("sh.txt", sds->shadow, res);
+               */
                ptcache_file_compressed_write(pf, (unsigned char *)dens, 
in_len, out, mode);
 
-                       writeArrToFile("dens.txt", dens, res);
-
+               /*      writeArrToFile("dens.txt", dens, res);
+*/
                if (fluid_fields & SM_ACTIVE_HEAT) {
                        ptcache_file_compressed_write(pf, (unsigned char 
*)heat, in_len, out, mode);
                        ptcache_file_compressed_write(pf, (unsigned char 
*)heatold, in_len, out, mode);
@@ -631,16 +631,16 @@ static int  ptcache_smoke_write(PTCacheFile *pf, void 
*smoke_v)
                }
                ptcache_file_compressed_write(pf, (unsigned char *)vx, in_len, 
out, mode);
 
-                       writeArrToFile("vx.txt", vx, res);
-
+/*                     writeArrToFile("vx.txt", vx, res);
+*/
                ptcache_file_compressed_write(pf, (unsigned char *)vy, in_len, 
out, mode);
                
-                       writeArrToFile("vy.txt", vx, res);
-
+/*                     writeArrToFile("vy.txt", vx, res);
+*/
                ptcache_file_compressed_write(pf, (unsigned char *)vz, in_len, 
out, mode);
 
-                       writeArrToFile("vz.txt", vx, res);
-               
+/*                     writeArrToFile("vz.txt", vx, res);
+*/             
                ptcache_file_compressed_write(pf, (unsigned char *)obstacles, 
(unsigned int)res, out, mode);
                ptcache_file_write(pf, &dt, 1, sizeof(float));
                ptcache_file_write(pf, &dx, 1, sizeof(float));
diff --git a/source/blender/blenkernel/intern/smoke.c 
b/source/blender/blenkernel/intern/smoke.c
index 1bf6b40..fe17f21 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -2798,38 +2798,35 @@ static void smokeModifier_process(SmokeModifierData 
*smd, Scene *scene, Object *
 
                // simulate the actual smoke (c++ code in intern/smoke)
                // DG: interesting commenting this line + deactivating loading 
of noise files
-               if (framenr != startframe)
-               {
-                       if (sds->flags & MOD_SMOKE_DISSOLVE) {
-                               /* low res dissolve */
-                               smoke_dissolve(sds->fluid, sds->diss_speed, 
sds->flags & MOD_SMOKE_DISSOLVE_LOG);
-                               /* high res dissolve */
-                               if (sds->wt) {
-                                       smoke_dissolve_wavelet(sds->wt, 
sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
-                               }
-                               
-                       }
-                       //Step itself
-                       if(smd->domain->flags & MOD_SMOKE_USE_MANTA){   /*load 
manta sim data into fluid object*/
-                       
+               if(framenr != startframe && smd->domain->flags & 
MOD_SMOKE_USE_MANTA)   /*load manta sim data into fluid object*/
+                       {
                                /*PR: Uncomment when adding simulation from 
timeline*/
-//                             smoke_mantaflow_sim_step(scene,smd);
+                               /*smoke_mantaflow_sim_step(scene,smd);*/
                                const char *density_name_format = 
"./den%04d.uni";
                                const char *wavelets_name_format = 
"./densityXl_%04d.uni";
                                char buff[100];
                                sprintf(buff, density_name_format, 
scene->r.cfra);
                                bool read_density = 
smoke_mantaflow_read(smd->domain, buff, 0);
                                bool read_wavelets = 1;
-                               if (smd->domain->flags & MOD_SMOKE_HIGHRES){
+                               if (smd->domain->flags & MOD_SMOKE_HIGHRES)
+                               {
                                        /*highdres*/
                                        sprintf(buff, wavelets_name_format, 
scene->r.cfra);
                                        read_wavelets = 
smoke_mantaflow_read(smd->domain, buff, 1);     
                                }
+                       }else{
+                               if (framenr != startframe){
+                                       if (sds->flags & MOD_SMOKE_DISSOLVE) {
+                                               /* low res dissolve */
+                                               smoke_dissolve(sds->fluid, 
sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
+                                               /* high res dissolve */
+                                               if (sds->wt) {
+                                                       
smoke_dissolve_wavelet(sds->wt, sds->diss_speed, sds->flags & 
MOD_SMOKE_DISSOLVE_LOG);
+                                               }
+                                       }
+                                       step(scene, ob, smd, dm, 
scene->r.frs_sec / scene->r.frs_sec_base, for_render);
+                               }
                        }
-                       else{
-                               step(scene, ob, smd, dm, scene->r.frs_sec / 
scene->r.frs_sec_base, for_render);
-                       }
-               }
                // create shadows before writing cache so they get stored
                smoke_calc_transparency(sds, scene);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to