Commit: 3ee4f50995e0750ce1305c8038229983c68b168b Author: Sebastián Barschkis Date: Tue Jul 11 19:09:34 2017 +0200 Branches: fluid-mantaflow https://developer.blender.org/rB3ee4f50995e0750ce1305c8038229983c68b168b
update for smoke domain boundaries using phiout levelset for smoke outflow =================================================================== M intern/mantaflow/intern/FLUID.cpp M intern/mantaflow/intern/strings/smoke_script.h M source/blender/blenkernel/intern/smoke.c =================================================================== diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp index 9ec24c42de8..86cac7b52d3 100644 --- a/intern/mantaflow/intern/FLUID.cpp +++ b/intern/mantaflow/intern/FLUID.cpp @@ -1086,11 +1086,11 @@ void FLUID::updatePointers() mForceZ = (float*) getDataPointer("z_force" + solver_ext, solver); mPhiObs = (float*) getDataPointer("phiObsIn" + solver_ext, solver); - + mPhiOut = (float*) getDataPointer("phiOutIn" + solver_ext, solver); + // Liquid if (mUsingLiquid) { mPhiIn = (float*) getDataPointer("phiIn" + solver_ext, solver); - mPhiOut = (float*) getDataPointer("phiOut" + solver_ext, solver); mPhi = (float*) getDataPointer("phi" + solver_ext, solver); mFlipParticleData = (std::vector<pData>*) getDataPointer("pp" + solver_ext, solver); diff --git a/intern/mantaflow/intern/strings/smoke_script.h b/intern/mantaflow/intern/strings/smoke_script.h index 3f8f52f63b5..906895746c0 100644 --- a/intern/mantaflow/intern/strings/smoke_script.h +++ b/intern/mantaflow/intern/strings/smoke_script.h @@ -105,7 +105,7 @@ z_invel_s$ID$ = s$ID$.create(RealGrid)\n\ density_s$ID$ = s$ID$.create(RealGrid)\n\ pressure_s$ID$ = s$ID$.create(RealGrid)\n\ phiObsIn_s$ID$ = s$ID$.create(LevelsetGrid)\n\ -phiOut_s$ID$ = s$ID$.create(LevelsetGrid)\n\ +phiOutIn_s$ID$ = s$ID$.create(LevelsetGrid)\n\ forces_s$ID$ = s$ID$.create(Vec3Grid)\n\ x_force_s$ID$ = s$ID$.create(RealGrid)\n\ y_force_s$ID$ = s$ID$.create(RealGrid)\n\ @@ -232,6 +232,10 @@ def manta_step_$ID$(framenr):\n\ smoke_pre_step_high_$ID$()\n\ \n\ while s$ID$.frame == last_frame_s$ID$:\n\ + \n\ + setObstacleFlags(flags=flags_s$ID$, phiObs=phiObsIn_s$ID$, phiOut=phiOutIn_s$ID$)\n\ + flags_s$ID$.fillGrid()\n\ + \n\ if using_adaptTime_s$ID$:\n\ mantaMsg('Adapt timestep')\n\ maxvel_s$ID$ = vel_s$ID$.getMaxValue()\n\ @@ -262,10 +266,6 @@ const std::string smoke_step_low = "\n\ def step_low_$ID$():\n\ mantaMsg('Smoke step low')\n\ \n\ - mantaMsg('Setting flags')\n\ - setObstacleFlags(flags=flags_s$ID$, phiObs=phiObsIn_s$ID$, phiOut=phiOut_s$ID$)\n\ - flags_s$ID$.fillGrid()\n\ - \n\ mantaMsg('Advecting density')\n\ advectSemiLagrange(flags=flags_s$ID$, vel=vel_s$ID$, grid=density_s$ID$, order=$ADVECT_ORDER$)\n\ \n\ @@ -418,7 +418,7 @@ def load_smoke_data_low_$ID$(path):\n\ y_invel_s$ID$.load(path + '_y_invel.uni')\n\ z_invel_s$ID$.load(path + '_z_invel.uni')\n\ phiObsIn_s$ID$.load(path + '_phiObsIn.uni')\n\ - phiOut_s$ID$.load(path + '_phiOut.uni')\n\ + phiOutIn_s$ID$.load(path + '_phiOutIn.uni')\n\ numObs_s$ID$.load(path + '_numObs.uni')\n\ if using_colors_s$ID$:\n\ color_r_s$ID$.load(path + '_color_r.uni')\n\ @@ -475,7 +475,7 @@ def save_smoke_data_low_$ID$(path):\n\ y_invel_s$ID$.save(path + '_y_invel.uni')\n\ z_invel_s$ID$.save(path + '_z_invel.uni')\n\ phiObsIn_s$ID$.save(path + '_phiObsIn.uni')\n\ - phiOut_s$ID$.save(path + '_phiOut.uni')\n\ + phiOutIn_s$ID$.save(path + '_phiOutIn.uni')\n\ numObs_s$ID$.save(path + '_numObs.uni')\n\ if using_colors_s$ID$:\n\ color_r_s$ID$.save(path + '_color_r.uni')\n\ @@ -561,7 +561,7 @@ if 'z_invel_s$ID$' in globals() : del z_invel_s$ID$\n\ if 'density_s$ID$' in globals() : del density_s$ID$\n\ if 'pressure_s$ID$' in globals() : del pressure_s$ID$\n\ if 'phiObsIn_s$ID$' in globals() : del phiObsIn_s$ID$\n\ -if 'phiOut_s$ID$' in globals() : del phiOut_s$ID$\n\ +if 'phiOutIn_s$ID$' in globals() : del phiOutIn_s$ID$\n\ if 'forces_s$ID$' in globals() : del forces_s$ID$\n\ if 'x_force_s$ID$' in globals() : del x_force_s$ID$\n\ if 'y_force_s$ID$' in globals() : del y_force_s$ID$\n\ diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index 7931ea42207..51a565e002f 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -1801,10 +1801,8 @@ static void emit_from_derivedmesh_task_cb(void *userdata, const int z) (float)lx, (float)ly, (float)lz); } - /* Emission for liquid. Result in em->distances */ - if (data->sfs->type == MOD_SMOKE_FLOW_TYPE_LIQUID) { - update_mesh_distances(index, em->distances, data->tree, ray_start); - } + /* Calculate levelset from meshes. Result in em->distances */ + update_mesh_distances(index, em->distances, data->tree, ray_start); } /* take high res samples if required */ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs