[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46395] branches/smoke2/intern/smoke/ intern/source: Use different solver names, uncomment some code.

Daniel Genrich daniel.genrich at gmx.net
Mon May 7 20:39:53 CEST 2012


Revision: 46395
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46395
Author:   genscher
Date:     2012-05-07 18:39:52 +0000 (Mon, 07 May 2012)
Log Message:
-----------
Use different solver names, uncomment some code. Note: Still needs scene and render folder to be created in the blender install folder, otherwise it crashes. Still only shows empty screen when using memory flags and not file flags

Modified Paths:
--------------
    branches/smoke2/intern/smoke/intern/source/smoke.cpp
    branches/smoke2/intern/smoke/intern/source/smoke.h
    branches/smoke2/intern/smoke/intern/source/solverinit.cpp

Modified: branches/smoke2/intern/smoke/intern/source/smoke.cpp
===================================================================
--- branches/smoke2/intern/smoke/intern/source/smoke.cpp	2012-05-07 18:30:04 UTC (rev 46394)
+++ branches/smoke2/intern/smoke/intern/source/smoke.cpp	2012-05-07 18:39:52 UTC (rev 46395)
@@ -10,34 +10,34 @@
 	printf("-------------------- SMOKE INIT A-------------------------\n");
 	{ // static scene
 		printf("init res %d, %d, %d\n", _res[0], _res[1], _res[2]);
-		SolverObject* solver = new SolverObject( "makescene", nVec3i ( _res[0], _res[1], _res[2] ), DDF_GRID_NO_FREE ); // 200, 80, 150
-		solver->createVec3Grid ( "normal", DDF_GRID_NO_FREE );
-		solver->createRealGrid ( "dist", DDF_GRID_NO_FREE );
-		solver->addInitPlugin ( "init-box-domain",  IntArg ( "flag-inside",FFLUID ) + IntArg ( "flag-border",FINFLOW ) + IntArg("flag-floor", FOBSTACLE) );
+		SolverObject* solverInit = new SolverObject( "makescene", nVec3i ( _res[0], _res[1], _res[2] ), DDF_GRID_NO_FREE ); // 200, 80, 150
+		solverInit->createVec3Grid ( "normal", DDF_GRID_NO_FREE );
+		solverInit->createRealGrid ( "dist", DDF_GRID_NO_FREE );
+		solverInit->addInitPlugin ( "init-box-domain",  IntArg ( "flag-inside",FFLUID ) + IntArg ( "flag-border",FINFLOW ) + IntArg("flag-floor", FOBSTACLE) );
 		// obstacles
-		solver->addInitPlugin ( "init-sphere", VecArg("center",Vec3(0.25,0.6,0.35)) + RealArg("radius",0.1) + StringArg("norm","normal")+StringArg("dist","dist"));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.2,0.0,0.3)) + VecArg("pos2",Vec3(0.3,0.6,0.4)) + StringArg("norm","normal")+StringArg("dist","dist"));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.3,0.0,0.65)) + VecArg("pos2",Vec3(0.5,0.3,0.9)) + StringArg("norm","normal")+StringArg("dist","dist"));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.6,0.0,0.3)) + VecArg("pos2",Vec3(0.65,0.4,0.5)) + StringArg("norm","normal")+StringArg("dist","dist"));	
+		solverInit->addInitPlugin ( "init-sphere", VecArg("center",Vec3(0.25,0.6,0.35)) + RealArg("radius",0.1) + StringArg("norm","normal")+StringArg("dist","dist"));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.2,0.0,0.3)) + VecArg("pos2",Vec3(0.3,0.6,0.4)) + StringArg("norm","normal")+StringArg("dist","dist"));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.3,0.0,0.65)) + VecArg("pos2",Vec3(0.5,0.3,0.9)) + StringArg("norm","normal")+StringArg("dist","dist"));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.6,0.0,0.3)) + VecArg("pos2",Vec3(0.65,0.4,0.5)) + StringArg("norm","normal")+StringArg("dist","dist"));	
 		// smoke seed
-		solver->addInitPlugin ( "init-sphere", VecArg("center",Vec3(0.3,0.65,0.35)) + RealArg("radius",0.1) + IntArg("type", FDENSITYSOURCE));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.25,0.0,0.3)) + VecArg("pos2",Vec3(0.35,0.65,0.4)) + IntArg("type", FDENSITYSOURCE));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.35,0.0,0.65)) + VecArg("pos2",Vec3(0.55,0.35,0.9)) + IntArg("type", FDENSITYSOURCE));	
-		solver->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.65,0.0,0.3)) + VecArg("pos2",Vec3(0.7,0.45,0.5)) + IntArg("type", FDENSITYSOURCE));	
+		solverInit->addInitPlugin ( "init-sphere", VecArg("center",Vec3(0.3,0.65,0.35)) + RealArg("radius",0.1) + IntArg("type", FDENSITYSOURCE));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.25,0.0,0.3)) + VecArg("pos2",Vec3(0.35,0.65,0.4)) + IntArg("type", FDENSITYSOURCE));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.35,0.0,0.65)) + VecArg("pos2",Vec3(0.55,0.35,0.9)) + IntArg("type", FDENSITYSOURCE));	
+		solverInit->addInitPlugin ( "init-box", VecArg("pos1",Vec3(0.65,0.0,0.3)) + VecArg("pos2",Vec3(0.7,0.45,0.5)) + IntArg("type", FDENSITYSOURCE));	
 
-		solver->addInitPlugin ( "dump-universal", StringArg ( "grid", "flags" ) + StringArg ( "override-name","scene/static-flags" )  + IntArg ( "single-dump", 1 ) );	
-		solver->addInitPlugin ( "dump-universal", StringArg ( "grid", "dist" ) + StringArg ( "override-name","scene/static-dist" )  + IntArg ( "single-dump", 1 ) );	
-		solver->addInitPlugin ( "dump-universal", StringArg ( "grid", "normal" ) + StringArg ( "override-name","scene/static-normal" )  + IntArg ( "single-dump", 1 ) );
+		// solverInit->addInitPlugin ( "dump-universal", StringArg ( "grid", "flags" ) + StringArg ( "override-name","scene/static-flags" )  + IntArg ( "single-dump", 1 ) );	
+		// solverInit->addInitPlugin ( "dump-universal", StringArg ( "grid", "dist" ) + StringArg ( "override-name","scene/static-dist" )  + IntArg ( "single-dump", 1 ) );	
+		// solverInit->addInitPlugin ( "dump-universal", StringArg ( "grid", "normal" ) + StringArg ( "override-name","scene/static-normal" )  + IntArg ( "single-dump", 1 ) );
 
-		_solvers.push_back(solver);
+		_solvers.push_back(solverInit);
 	}
 
 	initAllSolvers();
+	
+	// advanceAllSolvers(); // DG TODO disabled for testing purposed
 
-	advanceAllSolvers();
+	// finalizeAllSolvers(); // DG TODO disabled for testing purposed
 
-	finalizeAllSolvers();
-
 	_flags = _solvers[0]->getParams().getGridInt("flags");
 	_normal = _solvers[0]->getParams().getGridVec3("normal");
 	_dist = _solvers[0]->getParams().getGridReal("dist");
@@ -53,77 +53,45 @@
 	printf("-------------------- SMOKE INIT B-------------------------\n");
 	{
 		Vec3 inflow (0.4, 0, 0);
-		SolverObject* solver = new SolverObject( "run_static",/*_flags */  "scene/static-flags.gz" );
+		SolverObject* solverStep = new SolverObject( "run_static",    _flags /* "scene/static-flags.gz" */ );
 
-		{
-			Grid<int> *tf = solver->getParams().getGridInt("flags");
-
-			printf("data size: %ld, %ld\n", _flags->getDataSize(), tf->getDataSize());
-			printf("display flags: %d, %d\n", _flags->getDisplayFlags(), tf->getDisplayFlags());
-			printf("grid flags: %d, %d\n", _flags->getGridFlags(), tf->getGridFlags());
-			printf("grid id: %d, %d\n", _flags->getGridId(), tf->getGridId());
-			printf("grid size: %d, %d, %d; %d, %d, %d\n", _flags->getGridSize().x, _flags->getGridSize().y, _flags->getGridSize().z, tf->getGridSize().x, tf->getGridSize().y, tf->getGridSize().z);
-			printf("max size: %d, %d\n", _flags->getMaxSize(), tf->getMaxSize());
-			printf("name: %s, %s\n", _flags->getName().c_str(), tf->getName().c_str());
-			printf("numelements: %d, %d\n", _flags->getNumElements(), tf->getNumElements());
-			printf("sanity: %d, %d\n", _flags->getSanityCheckMode(), tf->getSanityCheckMode());
-
-			int count = 0;
-			int min = INT_MAX, max = -INT_MAX;
-			for(unsigned int x = 0; x < tf->getGridSize().x; x++)
-				for(unsigned int y= 0; y< tf->getGridSize().y; y++)
-					for(unsigned int z = 0; z < tf->getGridSize().z; z++)
-			{
-				if(_flags->get(x, y, z) != tf->get(x, y, z))
-					count++;
-
-				int tm = tf->get(x, y, z);
-
-				if(min > tm)
-					min = tm;
-				if(max < tm)
-					max = tm;
-			}
-			printf("count: %d, min: %d, max: %d\n", count, min, max);
-		}
-
-		solver->getParams().mU0 = inflow;
-		solver->getParams().mTimestepAnim = 0.005;
+		solverStep->getParams().mU0 = inflow;
+		solverStep->getParams().mTimestepAnim = 0.005;
 			
 		// create grids
-		solver->createVec3Grid ( "mean-flow" );
-		solver->createRealGrid ( "dist", _dist );
-		solver->createVec3Grid ( "vorticity", DDF_GRID_NO_FREE );
-		solver->createVec3Grid ( "ABL" );
-		solver->createVec3Grid ( "pre-ABL" );
-		solver->createVec3Grid ( "vort" );
-		solver->createRealGrid ( "pdf" );
-		solver->createRealGrid ( "density", DDF_GRID_NO_FREE );
-		solver->addStandardSolverGrids();
-		solver->createNoiseField("noise", Vec3(0.), Vec3(50,50,50), -0.4, 20.0 /* 2.0 */, 0.002);
+		solverStep->createVec3Grid ( "mean-flow" );
+		solverStep->createRealGrid ( "dist", _dist );
+		solverStep->createVec3Grid ( "vorticity", DDF_GRID_NO_FREE );
+		solverStep->createVec3Grid ( "ABL" );
+		solverStep->createVec3Grid ( "pre-ABL" );
+		solverStep->createVec3Grid ( "vort" );
+		solverStep->createRealGrid ( "pdf" );
+		solverStep->createRealGrid ( "density", DDF_GRID_NO_FREE );
+		solverStep->addStandardSolverGrids();
+		solverStep->createNoiseField("noise", Vec3(0.), Vec3(50,50,50), -0.4, 20.0 /* 2.0 */, 0.002);
 
-		// program solver initialization process
-		// solver->addInitPlugin ( "load-universal", StringArg("grid","dist") + StringArg("file","scene/static-dist.gz"));
-		solver->addInitPlugin ( "load-universal", StringArg("grid","mean-flow") + StringArg("file","scene/static-mean.gz"));
-		solver->addInitPlugin ( "load-universal", StringArg("grid","pre-ABL") + StringArg("file","scene/static-abl.gz"));
+		// program solverStep initialization process
+		// solverStep->addInitPlugin ( "load-universal", StringArg("grid","dist") + StringArg("file","scene/static-dist.gz"));
+		solverStep->addInitPlugin ( "load-universal", StringArg("grid","mean-flow") + StringArg("file","scene/static-mean.gz"));
+		solverStep->addInitPlugin ( "load-universal", StringArg("grid","pre-ABL") + StringArg("file","scene/static-abl.gz"));
 		
 		// program solver main loop
-		solver->addPlugin ( "copy-grid", StringArg ( "src","mean-flow" ) + StringArg ( "dest","vel-curr") );
-		solver->addPlugin ("init-density-inflow", StringArg("density","density") + RealArg("target-value",0.7) + IntArg("flag", FDENSITYSOURCE) + StringArg("noise","noise"));
-		solver->addPlugin ( "gen-vpart", StringArg ("source","pre-ABL") + StringArg ("flow","ABL") + StringArg("dist","dist") + StringArg("pdf","pdf") +
+		solverStep->addPlugin ( "copy-grid", StringArg ( "src","mean-flow" ) + StringArg ( "dest","vel-curr") );
+		solverStep->addPlugin ("init-density-inflow", StringArg("density","density") + RealArg("target-value",0.7) + IntArg("flag", FDENSITYSOURCE) + StringArg("noise","noise"));
+		solverStep->addPlugin ( "gen-vpart", StringArg ("source","pre-ABL") + StringArg ("flow","ABL") + StringArg("dist","dist") + StringArg("pdf","pdf") +
 							RealArg("thres-vort", 2e-2) + RealArg("thres-pdf",5e-5) + RealArg("mult-pdf",1) + RealArg("scale-flow", 0.94) + RealArg("max-bl",0.15) +
 							RealArg("min-dist", 3) + RealArg("min-rad", 3) + RealArg("max-rad", 7) + RealArg("vortex-gain", 2.5) + RealArg("fade-in", 0));
 	 
-		solver->addPlugin ( "semi-lagr-advect-vec3", StringArg ( "vel-src","ABL" ) + IntArg ( "mac", 0) );

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list