[Bf-blender-cvs] [397c4208a53] fluid-mantaflow: added support for liquid guiding

Sebastián Barschkis noreply at git.blender.org
Sun Aug 27 01:39:18 CEST 2017


Commit: 397c4208a53daa5eb043d10ebd4eab10a0edb0d2
Author: Sebastián Barschkis
Date:   Sun Aug 27 01:39:09 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB397c4208a53daa5eb043d10ebd4eab10a0edb0d2

added support for liquid guiding

guiding liquid simulations is currently considered experimental though

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

M	intern/mantaflow/intern/strings/liquid_script.h

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

diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h
index bac7b0fdcfc..2dd0e99bde4 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -135,6 +135,13 @@ def liquid_pre_step_low_$ID$():\n\
     y_obvel_s$ID$.multConst(gs_s$ID$.y)\n\
     z_obvel_s$ID$.multConst(gs_s$ID$.z)\n\
     \n\
+    # translate guiding vels (world space) to grid space\n\
+    if using_guiding_s$ID$:\n\
+        x_guidevel_s$ID$.multConst(gs_s$ID$.x)\n\
+        y_guidevel_s$ID$.multConst(gs_s$ID$.y)\n\
+        z_guidevel_s$ID$.multConst(gs_s$ID$.z)\n\
+        copyRealToVec3(sourceX=x_guidevel_s$ID$, sourceY=y_guidevel_s$ID$, sourceZ=z_guidevel_s$ID$, target=guidevelC_s$ID$)\n\
+    \n\
     # TODO (sebbas): liquid inflow\n\
     # translate invels (world space) to grid space\n\
     #x_invel_s$ID$.multConst(gs_s$ID$.x)\n\
@@ -159,6 +166,9 @@ def liquid_post_step_low_$ID$():\n\
     phiOut_s$ID$.setConst(9999)\n\
     phiOutIn_s$ID$.setConst(9999)\n\
     \n\
+    if using_guiding_s$ID$:\n\
+        phiGuideIn_s$ID$.setConst(9999)\n\
+        guidevelC_s$ID$.clear()\n\
     copyVec3ToReal(source=vel_s$ID$, targetX=x_vel_s$ID$, targetY=y_vel_s$ID$, targetZ=z_vel_s$ID$)\n";
 
 //////////////////////////////////////////////////////////////////////
@@ -266,10 +276,24 @@ def liquid_step_$ID$():\n\
     extrapolateVec3Simple(vel=obvelC_s$ID$, phi=phiObsIn_s$ID$, distance=3, inside=False)\n\
     resampleVec3ToMac(source=obvelC_s$ID$, target=obvel_s$ID$)\n\
     \n\
+    if using_guiding_s$ID$:\n\
+        mantaMsg('Extrapolating guiding velocity')\n\
+        # ensure velocities inside of guiding object, slightly add guiding vels outside of object too\n\
+        extrapolateVec3Simple(vel=guidevelC_s$ID$, phi=phiGuideIn_s$ID$, distance=int(res_s$ID$/2), inside=True)\n\
+        extrapolateVec3Simple(vel=guidevelC_s$ID$, phi=phiGuideIn_s$ID$, distance=1, inside=False)\n\
+        resampleVec3ToMac(source=guidevelC_s$ID$, target=guidevel_s$ID$)\n\
+    \n\
     #extrapolateMACSimple(flags=flags_s$ID$, vel=vel_s$ID$, distance=2, phiObs=phiObs_s$ID$, intoObs=True)\n\
     setWallBcs(flags=flags_s$ID$, vel=vel_s$ID$, phiObs=phiObs_s$ID$, obvel=obvel_s$ID$)#, fractions=fractions_s$ID$) # TODO: uncomment for obvel support (once fraction wallbcs works)\n\
     \n\
-    solvePressure(flags=flags_s$ID$, vel=vel_s$ID$, pressure=pressure_s$ID$, phi=phi_s$ID$)#, fractions=fractions_s$ID$)\n\
+    if using_guiding_s$ID$:\n\
+        mantaMsg('Guiding and pressure')\n\
+        weightGuide_s$ID$.multConst(0)\n\
+        weightGuide_s$ID$.addConst(alpha_s$ID$)\n\
+        PD_fluid_guiding(vel=vel_s$ID$, velT=guidevel_s$ID$, flags=flags_s$ID$, weight=weightGuide_s$ID$, blurRadius=beta_s$ID$, pressure=pressure_s$ID$, tau=tau_s$ID$, sigma=sigma_s$ID$, theta=theta_s$ID$, zeroPressureFixing=not doOpen_s$ID$)\n\
+    else:\n\
+        mantaMsg('Pressure')\n\
+        solvePressure(flags=flags_s$ID$, vel=vel_s$ID$, pressure=pressure_s$ID$, phi=phi_s$ID$)#, fractions=fractions_s$ID$)\n\
     \n\
     #extrapolateMACSimple(flags=flags_s$ID$, vel=vel_s$ID$, distance=4, phiObs=phiObs_s$ID$, intoObs=False)\n\
     setWallBcs(flags=flags_s$ID$, vel=vel_s$ID$, phiObs=phiObs_s$ID$, obvel=obvel_s$ID$)#, fractions=fractions_s$ID$) # TODO: uncomment for obvel support (once fraction wallbcs works)\n\



More information about the Bf-blender-cvs mailing list