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
path: root/extern
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-05-08 17:56:07 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-05-08 17:59:10 +0300
commitebbaae625f7e3f713fb7918fd59b32b7d9678861 (patch)
tree3b6a53e88d4436127510d26f4f56b97f47a15302 /extern
parent470cdeeae037c85d3b302e2b1cb5868e02e2bb59 (diff)
Fluid: Updated Mantaflow source files
Includes more flexible options for dt, dx in secondary particles plugin.
Diffstat (limited to 'extern')
-rw-r--r--extern/mantaflow/preprocessed/plugin/secondaryparticles.cpp38
1 files changed, 26 insertions, 12 deletions
diff --git a/extern/mantaflow/preprocessed/plugin/secondaryparticles.cpp b/extern/mantaflow/preprocessed/plugin/secondaryparticles.cpp
index a8913a218c1..5e24b6f28db 100644
--- a/extern/mantaflow/preprocessed/plugin/secondaryparticles.cpp
+++ b/extern/mantaflow/preprocessed/plugin/secondaryparticles.cpp
@@ -982,9 +982,14 @@ void flipSampleSecondaryParticles(const std::string mode,
const Real c_b,
const Real k_ta,
const Real k_wc,
- const Real dt,
+ const Real dt = 0,
const int itype = FlagGrid::TypeFluid)
{
+
+ float timestep = dt;
+ if (dt <= 0)
+ timestep = flags.getParent()->getDt();
+
if (mode == "single") {
knFlipSampleSecondaryParticles(flags,
v,
@@ -1001,7 +1006,7 @@ void flipSampleSecondaryParticles(const std::string mode,
c_b,
k_ta,
k_wc,
- dt,
+ timestep,
itype);
}
else if (mode == "multiple") {
@@ -1020,7 +1025,7 @@ void flipSampleSecondaryParticles(const std::string mode,
c_b,
k_ta,
k_wc,
- dt,
+ timestep,
itype);
}
else {
@@ -1053,7 +1058,7 @@ static PyObject *_W_1(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
const Real c_b = _args.get<Real>("c_b", 13, &_lock);
const Real k_ta = _args.get<Real>("k_ta", 14, &_lock);
const Real k_wc = _args.get<Real>("k_wc", 15, &_lock);
- const Real dt = _args.get<Real>("dt", 16, &_lock);
+ const Real dt = _args.getOpt<Real>("dt", 16, 0, &_lock);
const int itype = _args.getOpt<int>("itype", 17, FlagGrid::TypeFluid, &_lock);
_retval = getPyNone();
flipSampleSecondaryParticles(mode,
@@ -1691,13 +1696,20 @@ void flipUpdateSecondaryParticles(const std::string mode,
const Real k_d,
const Real c_s,
const Real c_b,
- const Real dt,
+ const Real dt = 0,
+ bool scale = true,
const int exclude = ParticleBase::PTRACER,
const int antitunneling = 0,
const int itype = FlagGrid::TypeFluid)
{
- Vec3 g = gravity / flags.getDx();
+ float gridScale = (scale) ? flags.getParent()->getDx() : 1;
+ Vec3 g = gravity / gridScale;
+
+ float timestep = dt;
+ if (dt <= 0)
+ timestep = flags.getParent()->getDt();
+
if (mode == "linear") {
knFlipUpdateSecondaryParticlesLinear(pts_sec,
v_sec,
@@ -1711,7 +1723,7 @@ void flipUpdateSecondaryParticles(const std::string mode,
k_d,
c_s,
c_b,
- dt,
+ timestep,
exclude,
antitunneling);
}
@@ -1729,7 +1741,7 @@ void flipUpdateSecondaryParticles(const std::string mode,
k_d,
c_s,
c_b,
- dt,
+ timestep,
exclude,
antitunneling,
itype);
@@ -1764,10 +1776,11 @@ static PyObject *_W_2(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
const Real k_d = _args.get<Real>("k_d", 11, &_lock);
const Real c_s = _args.get<Real>("c_s", 12, &_lock);
const Real c_b = _args.get<Real>("c_b", 13, &_lock);
- const Real dt = _args.get<Real>("dt", 14, &_lock);
- const int exclude = _args.getOpt<int>("exclude", 15, ParticleBase::PTRACER, &_lock);
- const int antitunneling = _args.getOpt<int>("antitunneling", 16, 0, &_lock);
- const int itype = _args.getOpt<int>("itype", 17, FlagGrid::TypeFluid, &_lock);
+ const Real dt = _args.getOpt<Real>("dt", 14, 0, &_lock);
+ bool scale = _args.getOpt<bool>("scale", 15, true, &_lock);
+ const int exclude = _args.getOpt<int>("exclude", 16, ParticleBase::PTRACER, &_lock);
+ const int antitunneling = _args.getOpt<int>("antitunneling", 17, 0, &_lock);
+ const int itype = _args.getOpt<int>("itype", 18, FlagGrid::TypeFluid, &_lock);
_retval = getPyNone();
flipUpdateSecondaryParticles(mode,
pts_sec,
@@ -1784,6 +1797,7 @@ static PyObject *_W_2(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
c_s,
c_b,
dt,
+ scale,
exclude,
antitunneling,
itype);