[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