[Bf-blender-cvs] [b7d857f] fluid-mantaflow: added missing grids to liquid/smoke grid import/export and also cleaned up scripts a bit
Sebastián Barschkis
noreply at git.blender.org
Thu Dec 1 13:38:00 CET 2016
Commit: b7d857f22ea49d825c7c3fccc5c402a1479880bb
Author: Sebastián Barschkis
Date: Sat Nov 12 00:18:38 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBb7d857f22ea49d825c7c3fccc5c402a1479880bb
added missing grids to liquid/smoke grid import/export and also cleaned up scripts a bit
===================================================================
M intern/mantaflow/intern/strings/liquid_script.h
M intern/mantaflow/intern/strings/smoke_script.h
===================================================================
diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h
index 475d2fc..77b2c45 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -43,7 +43,7 @@ if doOpen:\n\
const std::string liquid_bounds_high = "\n\
# prepare domain high\n\
mantaMsg('Liquid domain high')\n\
-xl_flags.initDomain(boundaryWidth=boundaryWidth, phiWalls=phiObs)\n\
+xl_flags.initDomain(boundaryWidth=boundaryWidth)\n\
if doOpen:\n\
setOpenBound(flags=xl_flags, bWidth=boundaryWidth, openBound=boundConditions, type=FlagOutflow|FlagEmpty)\n";
@@ -61,8 +61,6 @@ minParticles = pow(particleNumber,dim)\n\
radiusFactor = $PARTICLE_RADIUS$\n\
randomness = $PARTICLE_RANDOMNESS$\n\
\n\
-maxVel = 0\n\
-\n\
using_highres = $USING_HIGHRES$\n";
const std::string liquid_variables_high = "\n\
@@ -168,20 +166,17 @@ def manta_step(start_frame):\n\
const std::string liquid_step_low = "\n\
def liquid_step():\n\
mantaMsg('Liquid step low')\n\
- copyRealToVec3(sourceX=x_vel, sourceY=y_vel, sourceZ=z_vel, target=vel)\n\
- copyRealToVec3(sourceX=x_obvel, sourceY=y_obvel, sourceZ=z_obvel, target=obvel)\n\
- \n\
# FLIP\n\
+ # Create interpolated version of original phi grid for later use in (optional) high-res step\n\
+ if using_highres:\n\
+ interpolateGrid(target=xl_phi, source=phi)\n\
+ \n\
pp.advectInGrid(flags=flags, vel=vel, integrationMode=IntRK4, deleteInObstacle=False, stopInObstacle=False)\n\
pushOutofObs(parts=pp, flags=flags, phiObs=phiObs)\n\
\n\
advectSemiLagrange(flags=flags, vel=vel, grid=phi, order=1, openBounds=doOpen, boundaryWidth=boundaryWidth) # first order is usually enough\n\
advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=2, openBounds=doOpen, boundaryWidth=boundaryWidth)\n\
\n\
- # Keep an original copy of interpolated phi grid for later use in (optional) high-res step\n\
- if using_highres:\n\
- interpolateGrid(target=xl_phi, source=phi)\n\
- \n\
# create level set of particles\n\
gridParticleIndex(parts=pp , flags=flags, indexSys=pindex, index=gpi)\n\
unionParticleLevelset(pp, pindex, flags, gpi, phiParts)\n\
@@ -225,7 +220,7 @@ def liquid_step():\n\
# set source grids for resampling, used in adjustNumber!\n\
pVel.setSource(vel, isMAC=True)\n\
adjustNumber(parts=pp, vel=vel, flags=flags, minParticles=1*minParticles, maxParticles=2*minParticles, phi=phi, exclude=phiObs, radiusFactor=radiusFactor, narrowBand=narrowBandWidth)\n\
- flipVelocityUpdate(vel=vel, velOld=velOld, flags=flags, parts=pp, partVel=pVel, flipRatio=0.95)\n\
+ flipVelocityUpdate(vel=vel, velOld=velOld, flags=flags, parts=pp, partVel=pVel, flipRatio=0.97)\n\
\n\
copyVec3ToReal(source=vel, targetX=x_vel, targetY=y_vel, targetZ=z_vel)\n\
copyVec3ToReal(source=obvel, targetX=x_obvel, targetY=y_obvel, targetZ=z_obvel)\n";
@@ -271,6 +266,13 @@ def load_liquid_data_low(path):\n\
velParts.load(os.path.join(path, 'velParts.uni'))\n\
mapWeights.load(os.path.join(path, 'mapWeights.uni'))\n\
\n\
+ x_vel.load(os.path.join(path, 'x_vel.uni'))\n\
+ y_vel.load(os.path.join(path, 'y_vel.uni'))\n\
+ z_vel.load(os.path.join(path, 'z_vel.uni'))\n\
+ x_obvel.load(os.path.join(path, 'x_obvel.uni'))\n\
+ y_obvel.load(os.path.join(path, 'y_obvel.uni'))\n\
+ z_obvel.load(os.path.join(path, 'z_obvel.uni'))\n\
+ \n\
pp.load(os.path.join(path, 'pp.uni'))\n\
pVel.load(os.path.join(path, 'pVel.uni'))\n\
\n\
@@ -302,6 +304,13 @@ def save_liquid_data_low(path):\n\
velParts.save(os.path.join(path, 'velParts.uni'))\n\
mapWeights.save(os.path.join(path, 'mapWeights.uni'))\n\
\n\
+ x_vel.save(os.path.join(path, 'x_vel.uni'))\n\
+ y_vel.save(os.path.join(path, 'y_vel.uni'))\n\
+ z_vel.save(os.path.join(path, 'z_vel.uni'))\n\
+ x_obvel.save(os.path.join(path, 'x_obvel.uni'))\n\
+ y_obvel.save(os.path.join(path, 'y_obvel.uni'))\n\
+ z_obvel.save(os.path.join(path, 'z_obvel.uni'))\n\
+ \n\
pp.save(os.path.join(path, 'pp.uni'))\n\
pVel.save(os.path.join(path, 'pVel.uni'))\n\
\n\
diff --git a/intern/mantaflow/intern/strings/smoke_script.h b/intern/mantaflow/intern/strings/smoke_script.h
index a0e0e5e..8f0ad1b7 100644
--- a/intern/mantaflow/intern/strings/smoke_script.h
+++ b/intern/mantaflow/intern/strings/smoke_script.h
@@ -97,14 +97,14 @@ obvel = s.create(MACGrid)\n\
x_obvel = s.create(RealGrid)\n\
y_obvel = s.create(RealGrid)\n\
z_obvel = s.create(RealGrid)\n\
-density = s.create(LevelsetGrid)\n\
+density = s.create(RealGrid)\n\
pressure = s.create(RealGrid)\n\
forces = s.create(MACGrid)\n\
x_force = s.create(RealGrid)\n\
y_force = s.create(RealGrid)\n\
z_force = s.create(RealGrid)\n\
-inflow_grid = s.create(LevelsetGrid)\n\
-fuel_inflow = s.create(LevelsetGrid)\n";
+inflow_grid = s.create(RealGrid)\n\
+fuel_inflow = s.create(RealGrid)\n";
const std::string smoke_alloc_high = "\n\
# prepare grids high\n\
@@ -251,7 +251,6 @@ def step_low():\n\
mantaMsg('Adding buoyancy')\n\
addBuoyancy(density=density, vel=vel, gravity=gravity, flags=flags)\n\
\n\
- #addObjectVelocity(flags, vel, obvel)\n\
copyRealToVec3(sourceX=x_force, sourceY=y_force, sourceZ=z_force, target=forces)\n\
mantaMsg('Adding forces')\n\
addForceField(flags=flags, vel=vel, force=forces)\n\
@@ -347,9 +346,20 @@ def load_smoke_data_low(path):\n\
density.load(os.path.join(path, 'density.uni'))\n\
flags.load(os.path.join(path, 'flags.uni'))\n\
vel.load(os.path.join(path, 'vel.uni'))\n\
+ obvel.load(os.path.join(path, 'obvel.uni'))\n\
+ pressure.load(os.path.join(path, 'pressure.uni'))\n\
forces.load(os.path.join(path, 'forces.uni'))\n\
+ x_force.load(os.path.join(path, 'x_force.uni'))\n\
+ y_force.load(os.path.join(path, 'y_force.uni'))\n\
+ z_force.load(os.path.join(path, 'z_force.uni'))\n\
inflow_grid.load(os.path.join(path, 'inflow_low.uni'))\n\
fuel_inflow.load(os.path.join(path, 'fuel_inflow.uni'))\n\
+ x_vel.load(os.path.join(path, 'x_vel.uni'))\n\
+ y_vel.load(os.path.join(path, 'y_vel.uni'))\n\
+ z_vel.load(os.path.join(path, 'z_vel.uni'))\n\
+ x_obvel.load(os.path.join(path, 'x_obvel.uni'))\n\
+ y_obvel.load(os.path.join(path, 'y_obvel.uni'))\n\
+ z_obvel.load(os.path.join(path, 'z_obvel.uni'))\n\
if using_colors:\n\
color_r.load(os.path.join(path, 'color_r.uni'))\n\
color_g.load(os.path.join(path, 'color_g.uni'))\n\
@@ -365,6 +375,14 @@ const std::string smoke_import_high = "\n\
def load_smoke_data_high(path):\n\
xl_density.load(os.path.join(path, 'xl_density.uni'))\n\
xl_flags.load(os.path.join(path, 'xl_flags.uni'))\n\
+ \n\
+ texture_u.load(os.path.join(path, 'texture_u.uni'))\n\
+ texture_v.load(os.path.join(path, 'texture_v.uni'))\n\
+ texture_w.load(os.path.join(path, 'texture_w.uni'))\n\
+ texture_u2.load(os.path.join(path, 'texture_u2.uni'))\n\
+ texture_v2.load(os.path.join(path, 'texture_v2.uni'))\n\
+ texture_w2.load(os.path.join(path, 'texture_w2.uni'))\n\
+ \n\
if using_colors:\n\
xl_color_r.load(os.path.join(path, 'xl_color_r.uni'))\n\
xl_color_g.load(os.path.join(path, 'xl_color_g.uni'))\n\
@@ -379,9 +397,20 @@ def save_smoke_data_low(path):\n\
density.save(os.path.join(path, 'density.uni'))\n\
flags.save(os.path.join(path, 'flags.uni'))\n\
vel.save(os.path.join(path, 'vel.uni'))\n\
+ obvel.save(os.path.join(path, 'obvel.uni'))\n\
+ pressure.save(os.path.join(path, 'pressure.uni'))\n\
forces.save(os.path.join(path, 'forces.uni'))\n\
+ x_force.save(os.path.join(path, 'x_force.uni'))\n\
+ y_force.save(os.path.join(path, 'y_force.uni'))\n\
+ z_force.save(os.path.join(path, 'z_force.uni'))\n\
inflow_grid.save(os.path.join(path, 'inflow_low.uni'))\n\
fuel_inflow.save(os.path.join(path, 'fuel_inflow.uni'))\n\
+ x_vel.save(os.path.join(path, 'x_vel.uni'))\n\
+ y_vel.save(os.path.join(path, 'y_vel.uni'))\n\
+ z_vel.save(os.path.join(path, 'z_vel.uni'))\n\
+ x_obvel.save(os.path.join(path, 'x_obvel.uni'))\n\
+ y_obvel.save(os.path.join(path, 'y_obvel.uni'))\n\
+ z_obvel.save(os.path.join(path, 'z_obvel.uni'))\n\
if using_colors:\n\
color_r.save(os.path.join(path, 'color_r.uni'))\n\
color_g.save(os.path.join(path, 'color_g.uni'))\n\
@@ -394,9 +423,17 @@ def save_smoke_data_low(path):\n\
react.save(os.path.join(path, 'react.uni'))\n";
const std::string smoke_export_high = "\n\
-def save_smoke_data_low(path):\n\
+def save_smoke_data_high(path):\n\
xl_density.save(os.path.join(path, 'xl_density.uni'))\n\
xl_flags.save(os.path.join(path, 'xl_flags.uni'))\n\
+ \n\
+ texture_u.save(os.path.join(path, 'texture_u.uni'))\n\
+ texture_v.save(os.path.join(path, 'texture_v.uni'))\n\
+ texture_w.save(os.path.join(path, 'texture_w.uni'))\n\
+ texture_u2.save(os.path.join(path, 'texture_u2.uni'))\n\
+ texture_v2.save(os.path.join(path, 'texture_v2.uni'))\n\
+ texture_w2.save(os.path.join(path, 'texture_w2.uni'))\n\
+ \n\
if using_colors:\n\
xl_color_r.save(os.path.join(path, 'xl_color_r.uni'))\n\
xl_color_g.save(os.path.join(path, 'xl_color_g.uni'))\n\
More information about the Bf-blender-cvs
mailing list