diff options
author | Sebastián Barschkis <sebbas@sebbas.org> | 2020-03-04 19:23:09 +0300 |
---|---|---|
committer | Sebastián Barschkis <sebbas@sebbas.org> | 2020-03-04 20:46:48 +0300 |
commit | 6958ec3f7fc23b0ad605c0cfbdbb38417e89f81f (patch) | |
tree | 864d104ad32ae399abc4d609bce5455c0b7d0f8f /intern/mantaflow | |
parent | b32fd73b244a5c72b46926ffc1d20e3796fc2138 (diff) |
Fluid: Added an option to delete fluid inside obstacles
Simple checkbox that - if enabled - will tell the solver to clear density or liquid particles in obstacle cells.
Diffstat (limited to 'intern/mantaflow')
-rw-r--r-- | intern/mantaflow/intern/MANTA_main.cpp | 2 | ||||
-rw-r--r-- | intern/mantaflow/intern/strings/fluid_script.h | 7 | ||||
-rw-r--r-- | intern/mantaflow/intern/strings/liquid_script.h | 2 | ||||
-rw-r--r-- | intern/mantaflow/intern/strings/smoke_script.h | 3 |
4 files changed, 9 insertions, 5 deletions
diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp index 2566e9b45b8..89e505fcf97 100644 --- a/intern/mantaflow/intern/MANTA_main.cpp +++ b/intern/mantaflow/intern/MANTA_main.cpp @@ -977,6 +977,8 @@ std::string MANTA::getRealValue(const std::string &varName, FluidModifierData *m ss << (mmd->domain->flags & FLUID_DOMAIN_USE_SPEED_VECTORS ? "True" : "False"); else if (varName == "USING_FRACTIONS") ss << (mmd->domain->flags & FLUID_DOMAIN_USE_FRACTIONS ? "True" : "False"); + else if (varName == "DELETE_IN_OBSTACLE") + ss << (mmd->domain->flags & FLUID_DOMAIN_DELETE_IN_OBSTACLE ? "True" : "False"); else std::cout << "ERROR: Unknown option: " << varName << std::endl; return ss.str(); diff --git a/intern/mantaflow/intern/strings/fluid_script.h b/intern/mantaflow/intern/strings/fluid_script.h index 6ddf97e7b3f..0442609a15d 100644 --- a/intern/mantaflow/intern/strings/fluid_script.h +++ b/intern/mantaflow/intern/strings/fluid_script.h @@ -96,9 +96,10 @@ gravity_s$ID$ = vec3($GRAVITY_X$, $GRAVITY_Y$, $GRAVITY_Z$)\n\ gs_s$ID$ = vec3($RESX$, $RESY$, $RESZ$)\n\ maxVel_s$ID$ = 0\n\ \n\ -doOpen_s$ID$ = $DO_OPEN$\n\ -boundConditions_s$ID$ = '$BOUND_CONDITIONS$'\n\ -boundaryWidth_s$ID$ = $BOUNDARY_WIDTH$\n\ +doOpen_s$ID$ = $DO_OPEN$\n\ +boundConditions_s$ID$ = '$BOUND_CONDITIONS$'\n\ +boundaryWidth_s$ID$ = $BOUNDARY_WIDTH$\n\ +deleteInObstacle_s$ID$ = $DELETE_IN_OBSTACLE$\n\ \n\ using_smoke_s$ID$ = $USING_SMOKE$\n\ using_liquid_s$ID$ = $USING_LIQUID$\n\ diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h index d885296ec17..0d20c4cb204 100644 --- a/intern/mantaflow/intern/strings/liquid_script.h +++ b/intern/mantaflow/intern/strings/liquid_script.h @@ -212,7 +212,7 @@ def liquid_step_$ID$():\n\ mantaMsg('Liquid step')\n\ \n\ mantaMsg('Advecting particles')\n\ - pp_s$ID$.advectInGrid(flags=flags_s$ID$, vel=vel_s$ID$, integrationMode=IntRK4, deleteInObstacle=False, stopInObstacle=False)\n\ + pp_s$ID$.advectInGrid(flags=flags_s$ID$, vel=vel_s$ID$, integrationMode=IntRK4, deleteInObstacle=deleteInObstacle_s$ID$, stopInObstacle=False)\n\ \n\ mantaMsg('Pushing particles out of obstacles')\n\ pushOutofObs(parts=pp_s$ID$, flags=flags_s$ID$, phiObs=phiObs_s$ID$)\n\ diff --git a/intern/mantaflow/intern/strings/smoke_script.h b/intern/mantaflow/intern/strings/smoke_script.h index 119f5cd0a88..719ebbfef3e 100644 --- a/intern/mantaflow/intern/strings/smoke_script.h +++ b/intern/mantaflow/intern/strings/smoke_script.h @@ -379,7 +379,8 @@ def smoke_step_$ID$():\n\ resampleVec3ToMac(source=obvelC_s$ID$, target=obvel_s$ID$)\n\ \n\ # Cells inside obstacle should not contain any density, fire, etc.\n\ - resetInObstacle(flags=flags_s$ID$, density=density_s$ID$, vel=vel_s$ID$, heat=heat_s$ID$, fuel=fuel_s$ID$, flame=flame_s$ID$, red=color_r_s$ID$, green=color_g_s$ID$, blue=color_b_s$ID$)\n\ + if deleteInObstacle_s$ID$:\n\ + resetInObstacle(flags=flags_s$ID$, density=density_s$ID$, vel=vel_s$ID$, heat=heat_s$ID$, fuel=fuel_s$ID$, flame=flame_s$ID$, red=color_r_s$ID$, green=color_g_s$ID$, blue=color_b_s$ID$)\n\ \n\ # add initial velocity\n\ if using_invel_s$ID$:\n\ |