[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