Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-05-18 18:19:43 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-05-18 18:19:51 +0300
commit9bc7ea549612d7216bb65df671157dd4cdca7726 (patch)
tree5cd61e2ee6813373678662829acdb519dc2218cd /intern/mantaflow/intern/MANTA_main.cpp
parentfa116a9bbe2e56c942ecef1693493302abc39fc9 (diff)
Fix T76814: [Mantaflow] Surface Tension always works
Initialize the curvature grid and compute the laplacian only if the diffusion flag is set.
Diffstat (limited to 'intern/mantaflow/intern/MANTA_main.cpp')
-rw-r--r--intern/mantaflow/intern/MANTA_main.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp
index 35d4629d195..e6da083f3e5 100644
--- a/intern/mantaflow/intern/MANTA_main.cpp
+++ b/intern/mantaflow/intern/MANTA_main.cpp
@@ -71,6 +71,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID)
mUsingNoise = (mmd->domain->flags & FLUID_DOMAIN_USE_NOISE) && mUsingSmoke;
mUsingFractions = (mmd->domain->flags & FLUID_DOMAIN_USE_FRACTIONS) && mUsingLiquid;
mUsingMesh = (mmd->domain->flags & FLUID_DOMAIN_USE_MESH) && mUsingLiquid;
+ mUsingDiffusion = (mmd->domain->flags & FLUID_DOMAIN_USE_DIFFUSION) && mUsingLiquid;
mUsingMVel = (mmd->domain->flags & FLUID_DOMAIN_USE_SPEED_VECTORS) && mUsingLiquid;
mUsingGuiding = (mmd->domain->flags & FLUID_DOMAIN_USE_GUIDE);
mUsingDrops = (mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && mUsingLiquid;
@@ -219,6 +220,10 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID)
initLiquidMesh(mmd);
}
+ if (mUsingDiffusion) {
+ initCurvature(mmd);
+ }
+
if (mUsingGuiding) {
mResGuiding = (mmd->domain->guide_parent) ? mmd->domain->guide_res : mmd->domain->res;
initGuiding(mmd);
@@ -427,6 +432,16 @@ void MANTA::initLiquidMesh(FluidModifierData *mmd)
mUsingMesh = true;
}
+void MANTA::initCurvature(FluidModifierData *mmd)
+{
+ std::vector<std::string> pythonCommands;
+ std::string finalString = parseScript(liquid_alloc_curvature, mmd);
+ pythonCommands.push_back(finalString);
+
+ runPythonString(pythonCommands);
+ mUsingDiffusion = true;
+}
+
void MANTA::initObstacle(FluidModifierData *mmd)
{
if (!mPhiObsIn) {