[Bf-blender-cvs] [309e1bc] soc-2014-fluid: low-res smoke scenario running, unused files removed

Roman Pogribnyi noreply at git.blender.org
Sun Sep 21 16:38:18 CEST 2014


Commit: 309e1bcc2dfa92a307a1c6516a3001dee6e084e4
Author: Roman Pogribnyi
Date:   Sun Sep 21 14:51:48 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rB309e1bcc2dfa92a307a1c6516a3001dee6e084e4

low-res smoke scenario running, unused files removed

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

M	intern/smoke/intern/scenarios/smoke.h
D	source/blender/python/manta_pp/flip.cpp
D	source/blender/python/manta_pp/flip.h
D	source/blender/python/manta_pp/flip.h.reg
D	source/blender/python/manta_pp/flip.h.reg.cpp

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

diff --git a/intern/smoke/intern/scenarios/smoke.h b/intern/smoke/intern/scenarios/smoke.h
index 3b7debd..1025a57 100644
--- a/intern/smoke/intern/scenarios/smoke.h
+++ b/intern/smoke/intern/scenarios/smoke.h
@@ -2,37 +2,7 @@
 using namespace std;
 const string smoke_clean = "";
 
-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\
+const string smoke_setup_low ="from manta import * \n\
 import os, shutil, math, sys \n\
 def transform_back(obj, gs):\n\
   obj.scale(gs/2)\n\
@@ -41,7 +11,7 @@ def transform_back(obj, gs):\n\
 solver_dim = $SOLVER_DIM$\n\
 res = $RES$\n\
 gs = vec3($RESX$, $RESY$, $RESZ$) \n\
-s = Solver(name = 'main', gridSize = gs, dim = solver_dim) \n\
+s = FluidSolver(name = 'main', gridSize = gs, dim = solver_dim) \n\
 s.timestep = 1 \n\
 \n\
 noise = s.create(NoiseField, fixedSeed=256, loadFromFile=True) \n\
@@ -63,7 +33,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\
@@ -99,43 +69,30 @@ if $USE_WAVELETS$ and $UPRES$ > 0:\n\
 ";
 
 const string smoke_step_low = "def sim_step(t):\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_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()";
-//"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";
+  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/python/manta_pp/flip.cpp b/source/blender/python/manta_pp/flip.cpp
deleted file mode 100644
index 0171a74..0000000
--- a/source/blender/python/manta_pp/flip.cpp
+++ /dev/null
@@ -1,500 +0,0 @@
-
-
-
-
-
-// DO NOT EDIT !
-// This file is generated using the MantaFlow preprocessor (prep generate).
-
-
-
-
-/******************************************************************************
- *
- * MantaFlow fluid solver framework 
- * Copyright 2011 Tobias Pfaff, Nils Thuerey 
- *
- * This program is free software, distributed under the terms of the
- * GNU General Public License (GPL) 
- * http://www.gnu.org/licenses
- *
- * FLIP (fluid implicit particles)
- * for use with particle data fields
- *
- ******************************************************************************/
-
-#include "particle.h"
-#include "grid.h"
-#include "randomstream.h"
-#include "levelset.h"
-
-using namespace std;
-namespace Manta {
-
-
-
-
-// init
-
-
-
-void sampleFlagsWithParticles( FlagGrid& flags, BasicParticleSystem& parts, int discretization, Real randomness ) {
-	bool is3D = flags.is3D();
-	Real jlen = randomness / discretization;
-	Vec3 disp (1.0 / discretization, 1.0 / discretization, 1.0/discretization);
-	RandomStream mRand(9832);
- 
-	//clear(); 
-
-	FOR_IJK_BND(flags, 0) {
-		if ( flags.isObstacle(i,j,k) ) continue;
-		if ( flags.isFluid(i,j,k) ) {
-			Vec3 pos (i,j,k);
-			for (int dk=0; dk<(is3D ? discretization : 1); dk++)
-			for (int dj=0; dj<discretization; dj++)
-			for (int di=0; di<discretization; di++) {
-				Vec3 subpos = pos + disp * Vec3(0.5+di, 0.5+dj, 0.5+dk);
-				subpos += jlen * (Vec3(1,1,1) - 2.0 * mRand.getVec3());
-				if(!is3D) subpos[2] = 0.5; 
-				parts.add( BasicParticleData(subpos) );
-			}
-		}
-	}
-} static PyObject* _W_0 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { try { PbArgs _args(_linargs, _kwds); FluidSolver *parent = _args.obtainParent(); pbPreparePlugin(parent, "sampleFlagsWithParticles" ); PyObject *_retval = 0; { ArgLocker _lock; FlagGrid& flags = *_args.getPtr<FlagGrid >("flags",0,&_lock); BasicParticleSystem& parts = *_args.getPtr<BasicParticleSystem >("parts",1,&_lock); int discretization = _args.get<int >("discretization",2,&_lock); Real randomness = _args [...]
-
-
-
-void sampleLevelsetWithParticles( LevelsetGrid& phi, FlagGrid& flags, BasicParticleSystem& parts, int discretization, Real randomness ) {
-	bool is3D = phi.is3D();
-	Real jlen = randomness / discretization;
-	Vec3 disp (1.0 / discretization, 1.0 / discretization, 1.0/discretization);
-	RandomStream mRand(9832);
- 
-	//clear(); 
-
-	FOR_IJK_BND(phi, 0) {
-		if ( flags.isObstacle(i,j,k) ) continue;
-		if ( phi(i,j,k) < 1.733 ) {
-			Vec3 pos (i,j,k);
-			for (int dk=0; dk<(is3D ? discretization : 1); dk++)
-			for (int dj=0; dj<discretization; dj++)
-			for (int di=0; di<discretization; di++) {
-				Vec3 subpos = pos + disp * Vec3(0.5+di, 0.5+dj, 0.5+dk);
-				subpos += jlen * (Vec3(1,1,1) - 2.0 * mRand.getVec3());
-				if(!is3D) subpos[2] = 0.5; 
-				if( phi.getInterpolated(subpos) > 0. ) continue; 
-				parts.add( BasicParticleData(subpos) );
-			}
-		}
-	}
-} static PyObject* _W_1 (PyObject* _self, PyObject* _linargs, PyObject* _kwds) { try { PbArgs _args(_linargs, _kwds); FluidSolver *parent = _args.obtainParent(); pbPreparePlugin(parent, "sampleLevelsetWithParticles" ); PyObject *_retval = 0; { ArgLocker _lock; LevelsetGrid& phi = *_args.getPtr<LevelsetGrid >("phi",0,&_lock); FlagGrid& flags = *_args.getPtr<FlagGrid >("flags",1,&_lock); BasicParticleSystem& parts = *_args.getPtr<BasicParticleSystem >("parts",2,&_lock); int discretization  [...]
-
-void markFluidCells(BasicParticleSystem& parts, FlagGrid& flags) {
-	// remove all fluid cells
-	FOR_IJK(flags) {
-		if (flags.isFluid(i,j,k)) {


@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list