diff options
author | Sebastián Barschkis <sebbas@sebbas.org> | 2020-03-07 21:56:51 +0300 |
---|---|---|
committer | Sebastián Barschkis <sebbas@sebbas.org> | 2020-03-07 21:57:06 +0300 |
commit | 5539b68009e6936238c060808b874e6a6e86a073 (patch) | |
tree | d69c01c61986d6afce88e49596bed66f903da96f /extern/mantaflow/preprocessed/plugin/pressure.cpp | |
parent | 9867a82072bb7d4394cbe8679b6c73d4ae209dbe (diff) |
Fluid: Optimization for smoke simulation (multigrid)
The solver will now automatically detect static scenes (no moving obstacles) and use a slightly faster pressure solve in those cases.
Diffstat (limited to 'extern/mantaflow/preprocessed/plugin/pressure.cpp')
-rw-r--r-- | extern/mantaflow/preprocessed/plugin/pressure.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/extern/mantaflow/preprocessed/plugin/pressure.cpp b/extern/mantaflow/preprocessed/plugin/pressure.cpp index 7def2669e36..780ba44a2b5 100644 --- a/extern/mantaflow/preprocessed/plugin/pressure.cpp +++ b/extern/mantaflow/preprocessed/plugin/pressure.cpp @@ -1171,6 +1171,11 @@ void solvePressureSystem(Grid<Real> &rhs, maxIter = 100; pmg = gMapMG[parent]; + // Release MG from previous step if present (e.g. if previous solve was with MGStatic) + if (pmg && preconditioner == PcMGDynamic) { + releaseMG(parent); + pmg = nullptr; + } if (!pmg) { pmg = new GridMg(pressure.getSize()); gMapMG[parent] = pmg; |