Fluid: Improved behavior at open boundaries
Use greater boundary width for smoke simulations
This commit is contained in:
@@ -273,7 +273,7 @@ def smoke_adaptive_step_$ID$(framenr):\n\
|
|||||||
\n\
|
\n\
|
||||||
fluid_pre_step_$ID$()\n\
|
fluid_pre_step_$ID$()\n\
|
||||||
\n\
|
\n\
|
||||||
flags_s$ID$.initDomain(boundaryWidth=0, phiWalls=phiObs_s$ID$, outflow=boundConditions_s$ID$)\n\
|
flags_s$ID$.initDomain(boundaryWidth=1, phiWalls=phiObs_s$ID$, outflow=boundConditions_s$ID$)\n\
|
||||||
\n\
|
\n\
|
||||||
if using_obstacle_s$ID$:\n\
|
if using_obstacle_s$ID$:\n\
|
||||||
mantaMsg('Initializing obstacle levelset')\n\
|
mantaMsg('Initializing obstacle levelset')\n\
|
||||||
@@ -295,7 +295,8 @@ def smoke_adaptive_step_$ID$(framenr):\n\
|
|||||||
if using_outflow_s$ID$:\n\
|
if using_outflow_s$ID$:\n\
|
||||||
phiOut_s$ID$.join(phiOutIn_s$ID$)\n\
|
phiOut_s$ID$.join(phiOutIn_s$ID$)\n\
|
||||||
\n\
|
\n\
|
||||||
setObstacleFlags(flags=flags_s$ID$, phiObs=phiObs_s$ID$, phiOut=phiOut_s$ID$, phiIn=phiIn_s$ID$)\n\
|
# Use bwidth=2 for better smoke outflow at borders\n\
|
||||||
|
setObstacleFlags(flags=flags_s$ID$, phiObs=phiObs_s$ID$, phiOut=phiOut_s$ID$, phiIn=phiIn_s$ID$, boundaryWidth=2)\n\
|
||||||
flags_s$ID$.fillGrid()\n\
|
flags_s$ID$.fillGrid()\n\
|
||||||
\n\
|
\n\
|
||||||
applyEmission(flags=flags_s$ID$, target=density_s$ID$, source=densityIn_s$ID$, emissionTexture=emissionIn_s$ID$, type=FlagInflow|FlagOutflow)\n\
|
applyEmission(flags=flags_s$ID$, target=density_s$ID$, source=densityIn_s$ID$, emissionTexture=emissionIn_s$ID$, type=FlagInflow|FlagOutflow)\n\
|
||||||
@@ -412,7 +413,7 @@ def smoke_step_noise_$ID$(framenr):\n\
|
|||||||
copyRealToVec3(sourceX=texture_u_s$ID$, sourceY=texture_v_s$ID$, sourceZ=texture_w_s$ID$, target=uvGrid0_s$ID$)\n\
|
copyRealToVec3(sourceX=texture_u_s$ID$, sourceY=texture_v_s$ID$, sourceZ=texture_w_s$ID$, target=uvGrid0_s$ID$)\n\
|
||||||
copyRealToVec3(sourceX=texture_u2_s$ID$, sourceY=texture_v2_s$ID$, sourceZ=texture_w2_s$ID$, target=uvGrid1_s$ID$)\n\
|
copyRealToVec3(sourceX=texture_u2_s$ID$, sourceY=texture_v2_s$ID$, sourceZ=texture_w2_s$ID$, target=uvGrid1_s$ID$)\n\
|
||||||
\n\
|
\n\
|
||||||
flags_sn$ID$.initDomain(boundaryWidth=0, phiWalls=phiObs_sn$ID$, outflow=boundConditions_s$ID$)\n\
|
flags_sn$ID$.initDomain(boundaryWidth=1, phiWalls=phiObs_sn$ID$, outflow=boundConditions_s$ID$)\n\
|
||||||
\n\
|
\n\
|
||||||
mantaMsg('Interpolating grids')\n\
|
mantaMsg('Interpolating grids')\n\
|
||||||
# Join big obstacle levelset after initDomain() call as it overwrites everything in phiObs\n\
|
# Join big obstacle levelset after initDomain() call as it overwrites everything in phiObs\n\
|
||||||
@@ -424,7 +425,7 @@ def smoke_step_noise_$ID$(framenr):\n\
|
|||||||
interpolateGrid(target=phiIn_sn$ID$, source=phiIn_s$ID$)\n\
|
interpolateGrid(target=phiIn_sn$ID$, source=phiIn_s$ID$)\n\
|
||||||
interpolateMACGrid(target=vel_sn$ID$, source=vel_s$ID$)\n\
|
interpolateMACGrid(target=vel_sn$ID$, source=vel_s$ID$)\n\
|
||||||
\n\
|
\n\
|
||||||
setObstacleFlags(flags=flags_sn$ID$, phiObs=phiObs_sn$ID$, phiOut=phiOut_sn$ID$, phiIn=phiIn_sn$ID$)\n\
|
setObstacleFlags(flags=flags_sn$ID$, phiObs=phiObs_sn$ID$, phiOut=phiOut_sn$ID$, phiIn=phiIn_sn$ID$, boundaryWidth=2)\n\
|
||||||
flags_sn$ID$.fillGrid()\n\
|
flags_sn$ID$.fillGrid()\n\
|
||||||
\n\
|
\n\
|
||||||
# Interpolate emission grids and apply them to big noise grids\n\
|
# Interpolate emission grids and apply them to big noise grids\n\
|
||||||
|
Reference in New Issue
Block a user