[Bf-blender-cvs] [76c9289a031] fluid-mantaflow: split up fluid solver and helper variable setup

Sebastián Barschkis noreply at git.blender.org
Sun Mar 26 20:41:26 CEST 2017


Commit: 76c9289a03157f52954fece3e0c36b7c93be0478
Author: Sebastián Barschkis
Date:   Sun Mar 19 02:04:10 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB76c9289a03157f52954fece3e0c36b7c93be0478

split up fluid solver and helper variable setup

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

M	intern/mantaflow/intern/FLUID.cpp
M	intern/mantaflow/intern/strings/shared_script.h

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

diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 4aa70609754..711fe6ced65 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -188,6 +188,7 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : mCurrentID(++solverID)
 void FLUID::initDomain(SmokeModifierData *smd)
 {
 	std::string tmpString = manta_import
+		+ fluid_variables_low
 		+ fluid_solver_low
 		+ fluid_adaptive_time_stepping_low;
 	std::string finalString = parseScript(tmpString, smd);
@@ -199,7 +200,8 @@ void FLUID::initDomain(SmokeModifierData *smd)
 
 void FLUID::initDomainHigh(SmokeModifierData *smd)
 {
-	std::string tmpString = fluid_solver_high
+	std::string tmpString = fluid_variables_high
+		+ fluid_solver_high
 		+ fluid_adaptive_time_stepping_high;
 	std::string finalString = parseScript(tmpString, smd);
 	mCommands.clear();
@@ -513,9 +515,14 @@ void FLUID::terminateMantaflow()
 std::string FLUID::getRealValue(const std::string& varName,  SmokeModifierData *smd)
 {
 	std::ostringstream ss;
-	bool is2D = (smd->domain->manta_solver_res == 2);
-	ModifierData *md = ((ModifierData*) smd);
+	bool is2D = false;
+	ModifierData *md;
 	
+	if (smd) {
+		is2D = (smd->domain->manta_solver_res == 2);
+		md = ((ModifierData*) smd);
+	}
+
 	if (varName == "USING_COLORS")
 		ss << (smd->domain->active_fields & SM_ACTIVE_COLORS ? "True" : "False");
 	else if (varName == "USING_HEAT")
@@ -674,6 +681,7 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
 	std::string manta_script;
 
 	manta_script += manta_import
+		+ fluid_variables_low
 		+ fluid_solver_low
 		+ fluid_adaptive_time_stepping_low
 		+ smoke_alloc_low
@@ -688,7 +696,8 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
 		manta_script += smoke_alloc_fire_low;
 
 	if (highres) {
-		manta_script += fluid_solver_high
+		manta_script += fluid_variables_high
+			+ fluid_solver_high
 			+ fluid_adaptive_time_stepping_high
 			+ smoke_variables_high
 			+ smoke_alloc_high
@@ -751,6 +760,7 @@ void FLUID::exportLiquidScript(SmokeModifierData *smd)
 	std::string manta_script;
 	
 	manta_script += manta_import
+		+ fluid_variables_low
 		+ fluid_solver_low
 		+ fluid_adaptive_time_stepping_low
 		+ liquid_alloc_low
@@ -759,7 +769,8 @@ void FLUID::exportLiquidScript(SmokeModifierData *smd)
 		+ liquid_variables_low;
 
 	if (highres) {
-		manta_script += fluid_solver_high
+		manta_script += fluid_variables_low
+			+ fluid_solver_high
 			+ fluid_adaptive_time_stepping_high
 			+ liquid_alloc_high
 			+ liquid_bounds_high
diff --git a/intern/mantaflow/intern/strings/shared_script.h b/intern/mantaflow/intern/strings/shared_script.h
index fbcec43abfd..b444cd0de2d 100644
--- a/intern/mantaflow/intern/strings/shared_script.h
+++ b/intern/mantaflow/intern/strings/shared_script.h
@@ -43,6 +43,17 @@ import os, shutil, math, sys, gc\n";
 
 const std::string fluid_solver_low = "\n\
 mantaMsg('Solver low')\n\
+s = Solver(name='main', gridSize=gs, dim=dim)\n";
+
+const std::string fluid_solver_high = "\n\
+mantaMsg('Solver high')\n\
+xl = Solver(name='larger', gridSize=xl_gs)\n";
+
+//////////////////////////////////////////////////////////////////////
+// VARIABLES
+//////////////////////////////////////////////////////////////////////
+
+const std::string fluid_variables_low = "\n\
 dim     = $SOLVER_DIM$\n\
 res     = $RES$\n\
 gravity = vec3($GRAVITY_X$, $GRAVITY_Y$, $GRAVITY_Z$)\n\
@@ -54,19 +65,14 @@ if dim == 2:\n\
 \n\
 doOpen          = $DO_OPEN$\n\
 boundConditions = '$BOUNDCONDITIONS$'\n\
-boundaryWidth   = 1\n\
-\n\
-s = Solver(name='main', gridSize=gs, dim=dim)\n";
+boundaryWidth   = 1\n\\n";
 
-const std::string fluid_solver_high = "\n\
-mantaMsg('Solver high')\n\
+const std::string fluid_variables_high= "\n\
 upres  = $UPRES$\n\
 xl_gs  = vec3($HRESX$, $HRESY$, $HRESZ$)\n\
 \n\
 if dim == 2:\n\
-    xl_gs.z = 1\n\
-\n\
-xl = Solver(name='larger', gridSize=xl_gs)\n";
+    xl_gs.z = 1\n";
 
 //////////////////////////////////////////////////////////////////////
 // ADAPTIVE TIME STEPPING




More information about the Bf-blender-cvs mailing list