[Bf-blender-cvs] [1eae406] soc-2014-fluid: Pressure function separated; Bundary Conditions set correctly

Roman Pogribnyi noreply at git.blender.org
Sun Jun 8 13:20:51 CEST 2014


Commit: 1eae4069f7f38c6b919a318507c5dbf7cf327238
Author: Roman Pogribnyi
Date:   Thu Jun 5 18:47:37 2014 +0200
https://developer.blender.org/rB1eae4069f7f38c6b919a318507c5dbf7cf327238

Pressure function separated; Bundary Conditions set correctly

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

M	intern/smoke/intern/MANTA.h

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

diff --git a/intern/smoke/intern/MANTA.h b/intern/smoke/intern/MANTA.h
index eeb1b34..012e9f8 100644
--- a/intern/smoke/intern/MANTA.h
+++ b/intern/smoke/intern/MANTA.h
@@ -96,6 +96,24 @@ static void manta_gen_noise(stringstream& ss, bool clamp, int clampNeg, int clam
 	ss << "noise.timeAnim = " << timeAnim << " \n";
 }
 
+static void manta_solve_pressure(stringstream& ss, char *flags, char *vel, char *pressure, bool useResNorms, int openBound)
+{
+	/*open:0 ; vertical : 1; closed:2*/
+	ss << "  solvePressure(flags=" << flags << ", vel=" << vel << ", pressure=" << pressure << ", useResNorm=" << (useResNorms?"True":"False") << ", openBound='";	
+	
+	if(openBound == 1) /*vertical*/
+	{
+		ss << "yY') \n";
+	}
+	else if (openBound == 0) /*open*/
+	{
+		ss << "xXyYzZ') \n";
+	}
+	else	/*also for closed bounds*/ 
+	{
+			ss << "') \n";
+	}
+}
 static void manta_advect_SemiLagr(stringstream& ss, char *indent, char *flags, char *vel, char *grid, int order)
 {
 	if((order <=1) || (indent == NULL) || (flags == NULL) || (vel == NULL) || (grid == NULL))
@@ -153,7 +171,7 @@ static void generate_manta_sim_file(Scene *scene, SmokeModifierData *smd)
 	manta_advect_SemiLagr(ss, "  ", "flags", "vel", "vel", 2);
 	ss << "  setWallBcs(flags=flags, vel=vel) \n";
 	ss << "  addBuoyancy(density=density, vel=vel, gravity=vec3(0,-6e-4,0), flags=flags) \n";
-	ss << "  solvePressure(flags=flags, vel=vel, pressure=pressure, useResNorm=True, openBound='" << ((smd->domain->border_collisions == 2)?"N":"Y") << "') \n";/*2:closed border*/
+	manta_solve_pressure(ss,"flags", "vel", "pressure",true,smd->domain->border_collisions);
 	ss << "  setWallBcs(flags=flags, vel=vel) \n";
 
 /*Saving output*/




More information about the Bf-blender-cvs mailing list