[Bf-blender-cvs] [5749df3] fluid-mantaflow: moved clean up and copy functions to pre/post step
Sebastián Barschkis
noreply at git.blender.org
Thu Dec 1 13:38:06 CET 2016
Commit: 5749df3f8547f15b4500fc47604a68927218c96f
Author: Sebastián Barschkis
Date: Tue Nov 15 12:01:31 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB5749df3f8547f15b4500fc47604a68927218c96f
moved clean up and copy functions to pre/post step
===================================================================
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 6b1d3d6..dc6f12d 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -164,6 +164,9 @@ def manta_step(start_frame):\n\
s.timeTotal = s.frame * dt0\n\
last_frame = s.frame\n\
\n\
+ liquid_pre_step_low()\n\
+ if using_highres:\n\
+ liquid_pre_step_high()\n\
if start_frame == 1:\n\
phi.join(phiInit)\n\
phiObs.join(phiObsInit)\n\
@@ -190,8 +193,11 @@ def manta_step(start_frame):\n\
xl.timestep = s.timestep\n\
mantaMsg('High step / s.frame: ' + str(s.frame))\n\
liquid_step_high()\n\
- \n\
- s.step()\n";
+ s.step()\n\
+ \n\
+ liquid_post_step_low()\n\
+ if using_highres:\n\
+ liquid_post_step_high()\n";
const std::string liquid_step_low = "\n\
def liquid_step():\n\
@@ -241,6 +247,11 @@ def liquid_step():\n\
extrapolateMACSimple(flags=flags, vel=vel, distance=4, intoObs=True)\n\
setWallBcs(flags=flags, vel=vel, fractions=fractions, phiObs=phiObs)\n\
\n\
+ # TODO (sebbas): Clearing should not be needed once obvel are added correctly\n\
+ clearInObstacle(flags=flags, grid=phi)\n\
+ clearInObstacle(flags=flags, grid=phiParts)\n\
+ pushOutofObs(parts=pp, flags=flags, phiObs=phiObs)\n\
+ \n\
if (dim==3):\n\
# mis-use phiParts as temp grid to close the mesh\n\
phiParts.copyFrom(phi)\n\
@@ -250,10 +261,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.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";
+ flipVelocityUpdate(vel=vel, velOld=velOld, flags=flags, parts=pp, partVel=pVel, flipRatio=0.97)\n";
const std::string liquid_step_high = "\n\
def liquid_step_high():\n\
@@ -261,8 +269,8 @@ def liquid_step_high():\n\
xl_pp.readParticles(pp)\n\
\n\
# create surface\n\
- gridParticleIndex( parts=xl_pp , flags=xl_flags, indexSys=xl_pindex, index=xl_gpi )\n\
- averagedParticleLevelset( xl_pp, xl_pindex, xl_flags, xl_gpi, xl_phiParts, radiusFactor , 1, 1 )\n\
+ gridParticleIndex(parts=xl_pp, flags=xl_flags, indexSys=xl_pindex, index=xl_gpi )\n\
+ averagedParticleLevelset(xl_pp, xl_pindex, xl_flags, xl_gpi, xl_phiParts, radiusFactor , 1, 1)\n\
xl_phi.join(xl_phiParts)\n\
\n\
xl_phi.createMesh(xl_mesh)\n";
diff --git a/intern/mantaflow/intern/strings/smoke_script.h b/intern/mantaflow/intern/strings/smoke_script.h
index 066be54..ba5d87d 100644
--- a/intern/mantaflow/intern/strings/smoke_script.h
+++ b/intern/mantaflow/intern/strings/smoke_script.h
@@ -244,6 +244,11 @@ def manta_step(start_frame):\n\
s.frame = start_frame\n\
s.timeTotal = s.frame * dt0\n\
last_frame = s.frame\n\
+ \n\
+ smoke_pre_step_low()\n\
+ if using_highres:\n\
+ smoke_pre_step_high()\n\
+ \n\
while s.frame == last_frame:\n\
mantaMsg('Adapt timestep')\n\
maxvel = vel.getMaxValue()\n\
@@ -264,16 +269,15 @@ def manta_step(start_frame):\n\
step_high()\n\
if using_fire:\n\
update_flame_high()\n\
- s.step()\n";
+ s.step()\n\
+ \n\
+ smoke_post_step_low()\n\
+ if using_highres:\n\
+ smoke_post_step_high()\n";
const std::string smoke_step_low = "\n\
def step_low():\n\
mantaMsg('Smoke 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\
- if dim == 2:\n\
- density.add(inflow_grid)\n\
- \n\
mantaMsg('Advecting density')\n\
advectSemiLagrange(flags=flags, vel=vel, grid=density, order=$ADVECT_ORDER$)\n\
\n\
@@ -309,7 +313,6 @@ def step_low():\n\
mantaMsg('Adding buoyancy')\n\
addBuoyancy(density=density, vel=vel, gravity=gravity, flags=flags)\n\
\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\
forces.clear()\n\
@@ -319,9 +322,6 @@ def step_low():\n\
\n\
mantaMsg('Pressure')\n\
solvePressure(flags=flags, vel=vel, pressure=pressure)\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\
\n\
def process_burn_low():\n\
mantaMsg('Process burn low')\n\
@@ -337,9 +337,6 @@ def update_flame_low():\n\
const std::string smoke_step_high = "\n\
def step_high():\n\
mantaMsg('Smoke step high')\n\
- copyRealToVec3(sourceX=texture_u, sourceY=texture_v, sourceZ=texture_w, target=uv[0])\n\
- copyRealToVec3(sourceX=texture_u2, sourceY=texture_v2, sourceZ=texture_w2, target=uv[1])\n\
- \n\
interpolateMACGrid(source=vel, target=xl_vel)\n\
for i in range(uvs):\n\
mantaMsg('Advecting UV')\n\
@@ -380,9 +377,6 @@ def step_high():\n\
\n\
mantaMsg('Advecting density high')\n\
advectSemiLagrange(flags=xl_flags, vel=xl_vel, grid=xl_density, order=$ADVECT_ORDER$, openBounds=doOpen)\n\
- \n\
- copyVec3ToReal(source=uv[0], targetX=texture_u, targetY=texture_v, targetZ=texture_w)\n\
- copyVec3ToReal(source=uv[1], targetX=texture_u2, targetY=texture_v2, targetZ=texture_w2)\n\
\n\
def process_burn_high():\n\
mantaMsg('Process burn high')\n\
More information about the Bf-blender-cvs
mailing list