[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