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:
Diffstat (limited to 'extern/mantaflow/preprocessed/plugin/initplugins.cpp')
-rw-r--r--extern/mantaflow/preprocessed/plugin/initplugins.cpp252
1 files changed, 230 insertions, 22 deletions
diff --git a/extern/mantaflow/preprocessed/plugin/initplugins.cpp b/extern/mantaflow/preprocessed/plugin/initplugins.cpp
index 3e28c947424..519aa41a08d 100644
--- a/extern/mantaflow/preprocessed/plugin/initplugins.cpp
+++ b/extern/mantaflow/preprocessed/plugin/initplugins.cpp
@@ -1003,6 +1003,214 @@ void PbRegister_densityInflowMesh()
}
}
+struct KnResetInObstacle : public KernelBase {
+ KnResetInObstacle(FlagGrid &flags,
+ MACGrid &vel,
+ Grid<Real> *density,
+ Grid<Real> *heat,
+ Grid<Real> *fuel,
+ Grid<Real> *flame,
+ Grid<Real> *red,
+ Grid<Real> *green,
+ Grid<Real> *blue,
+ Real resetValue)
+ : KernelBase(&flags, 0),
+ flags(flags),
+ vel(vel),
+ density(density),
+ heat(heat),
+ fuel(fuel),
+ flame(flame),
+ red(red),
+ green(green),
+ blue(blue),
+ resetValue(resetValue)
+ {
+ runMessage();
+ run();
+ }
+ inline void op(int i,
+ int j,
+ int k,
+ FlagGrid &flags,
+ MACGrid &vel,
+ Grid<Real> *density,
+ Grid<Real> *heat,
+ Grid<Real> *fuel,
+ Grid<Real> *flame,
+ Grid<Real> *red,
+ Grid<Real> *green,
+ Grid<Real> *blue,
+ Real resetValue) const
+ {
+ if (!flags.isObstacle(i, j, k))
+ return;
+ vel(i, j, k).x = resetValue;
+ vel(i, j, k).y = resetValue;
+ vel(i, j, k).z = resetValue;
+
+ if (density) {
+ (*density)(i, j, k) = resetValue;
+ }
+ if (heat) {
+ (*heat)(i, j, k) = resetValue;
+ }
+ if (fuel) {
+ (*fuel)(i, j, k) = resetValue;
+ (*flame)(i, j, k) = resetValue;
+ }
+ if (red) {
+ (*red)(i, j, k) = resetValue;
+ (*green)(i, j, k) = resetValue;
+ (*blue)(i, j, k) = resetValue;
+ }
+ }
+ inline FlagGrid &getArg0()
+ {
+ return flags;
+ }
+ typedef FlagGrid type0;
+ inline MACGrid &getArg1()
+ {
+ return vel;
+ }
+ typedef MACGrid type1;
+ inline Grid<Real> *getArg2()
+ {
+ return density;
+ }
+ typedef Grid<Real> type2;
+ inline Grid<Real> *getArg3()
+ {
+ return heat;
+ }
+ typedef Grid<Real> type3;
+ inline Grid<Real> *getArg4()
+ {
+ return fuel;
+ }
+ typedef Grid<Real> type4;
+ inline Grid<Real> *getArg5()
+ {
+ return flame;
+ }
+ typedef Grid<Real> type5;
+ inline Grid<Real> *getArg6()
+ {
+ return red;
+ }
+ typedef Grid<Real> type6;
+ inline Grid<Real> *getArg7()
+ {
+ return green;
+ }
+ typedef Grid<Real> type7;
+ inline Grid<Real> *getArg8()
+ {
+ return blue;
+ }
+ typedef Grid<Real> type8;
+ inline Real &getArg9()
+ {
+ return resetValue;
+ }
+ typedef Real type9;
+ void runMessage()
+ {
+ debMsg("Executing kernel KnResetInObstacle ", 3);
+ debMsg("Kernel range"
+ << " x " << maxX << " y " << maxY << " z " << minZ << " - " << maxZ << " ",
+ 4);
+ };
+ void operator()(const tbb::blocked_range<IndexInt> &__r) const
+ {
+ const int _maxX = maxX;
+ const int _maxY = maxY;
+ if (maxZ > 1) {
+ for (int k = __r.begin(); k != (int)__r.end(); k++)
+ for (int j = 0; j < _maxY; j++)
+ for (int i = 0; i < _maxX; i++)
+ op(i, j, k, flags, vel, density, heat, fuel, flame, red, green, blue, resetValue);
+ }
+ else {
+ const int k = 0;
+ for (int j = __r.begin(); j != (int)__r.end(); j++)
+ for (int i = 0; i < _maxX; i++)
+ op(i, j, k, flags, vel, density, heat, fuel, flame, red, green, blue, resetValue);
+ }
+ }
+ void run()
+ {
+ if (maxZ > 1)
+ tbb::parallel_for(tbb::blocked_range<IndexInt>(minZ, maxZ), *this);
+ else
+ tbb::parallel_for(tbb::blocked_range<IndexInt>(0, maxY), *this);
+ }
+ FlagGrid &flags;
+ MACGrid &vel;
+ Grid<Real> *density;
+ Grid<Real> *heat;
+ Grid<Real> *fuel;
+ Grid<Real> *flame;
+ Grid<Real> *red;
+ Grid<Real> *green;
+ Grid<Real> *blue;
+ Real resetValue;
+};
+
+void resetInObstacle(FlagGrid &flags,
+ MACGrid &vel,
+ Grid<Real> *density,
+ Grid<Real> *heat = NULL,
+ Grid<Real> *fuel = NULL,
+ Grid<Real> *flame = NULL,
+ Grid<Real> *red = NULL,
+ Grid<Real> *green = NULL,
+ Grid<Real> *blue = NULL,
+ Real resetValue = 0)
+{
+ KnResetInObstacle(flags, vel, density, heat, fuel, flame, red, green, blue, resetValue);
+}
+static PyObject *_W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+{
+ try {
+ PbArgs _args(_linargs, _kwds);
+ FluidSolver *parent = _args.obtainParent();
+ bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
+ pbPreparePlugin(parent, "resetInObstacle", !noTiming);
+ PyObject *_retval = 0;
+ {
+ ArgLocker _lock;
+ FlagGrid &flags = *_args.getPtr<FlagGrid>("flags", 0, &_lock);
+ MACGrid &vel = *_args.getPtr<MACGrid>("vel", 1, &_lock);
+ Grid<Real> *density = _args.getPtr<Grid<Real>>("density", 2, &_lock);
+ Grid<Real> *heat = _args.getPtrOpt<Grid<Real>>("heat", 3, NULL, &_lock);
+ Grid<Real> *fuel = _args.getPtrOpt<Grid<Real>>("fuel", 4, NULL, &_lock);
+ Grid<Real> *flame = _args.getPtrOpt<Grid<Real>>("flame", 5, NULL, &_lock);
+ Grid<Real> *red = _args.getPtrOpt<Grid<Real>>("red", 6, NULL, &_lock);
+ Grid<Real> *green = _args.getPtrOpt<Grid<Real>>("green", 7, NULL, &_lock);
+ Grid<Real> *blue = _args.getPtrOpt<Grid<Real>>("blue", 8, NULL, &_lock);
+ Real resetValue = _args.getOpt<Real>("resetValue", 9, 0, &_lock);
+ _retval = getPyNone();
+ resetInObstacle(flags, vel, density, heat, fuel, flame, red, green, blue, resetValue);
+ _args.check();
+ }
+ pbFinalizePlugin(parent, "resetInObstacle", !noTiming);
+ return _retval;
+ }
+ catch (std::exception &e) {
+ pbSetError("resetInObstacle", e.what());
+ return 0;
+ }
+}
+static const Pb::Register _RP_resetInObstacle("", "resetInObstacle", _W_10);
+extern "C" {
+void PbRegister_resetInObstacle()
+{
+ KEEP_UNUSED(_RP_resetInObstacle);
+}
+}
+
//*****************************************************************************
//! check for symmetry , optionally enfore by copying
@@ -1026,7 +1234,7 @@ void checkSymmetry(
}
}
}
-static PyObject *_W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_11(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1053,7 +1261,7 @@ static PyObject *_W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_checkSymmetry("", "checkSymmetry", _W_10);
+static const Pb::Register _RP_checkSymmetry("", "checkSymmetry", _W_11);
extern "C" {
void PbRegister_checkSymmetry()
{
@@ -1144,7 +1352,7 @@ void checkSymmetryVec3(Grid<Vec3> &a,
}
}
}
-static PyObject *_W_11(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_12(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1172,7 +1380,7 @@ static PyObject *_W_11(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_checkSymmetryVec3("", "checkSymmetryVec3", _W_11);
+static const Pb::Register _RP_checkSymmetryVec3("", "checkSymmetryVec3", _W_12);
extern "C" {
void PbRegister_checkSymmetryVec3()
{
@@ -1192,7 +1400,7 @@ void projectPpmFull(const Grid<Real> &val, string name, int shadeMode = 0, Real
projectImg(img, val, shadeMode, scale);
img.writePpm(name);
}
-static PyObject *_W_12(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_13(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1218,7 +1426,7 @@ static PyObject *_W_12(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_projectPpmFull("", "projectPpmFull", _W_12);
+static const Pb::Register _RP_projectPpmFull("", "projectPpmFull", _W_13);
extern "C" {
void PbRegister_projectPpmFull()
{
@@ -1238,7 +1446,7 @@ void addTestParts(BasicParticleSystem &parts, int num)
parts.doCompress();
parts.insertBufferedParticles();
}
-static PyObject *_W_13(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_14(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1262,7 +1470,7 @@ static PyObject *_W_13(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_addTestParts("", "addTestParts", _W_13);
+static const Pb::Register _RP_addTestParts("", "addTestParts", _W_14);
extern "C" {
void PbRegister_addTestParts()
{
@@ -1313,7 +1521,7 @@ Real pdataMaxDiff(const ParticleDataBase *a, const ParticleDataBase *b)
return maxVal;
}
-static PyObject *_W_14(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1336,7 +1544,7 @@ static PyObject *_W_14(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_pdataMaxDiff("", "pdataMaxDiff", _W_14);
+static const Pb::Register _RP_pdataMaxDiff("", "pdataMaxDiff", _W_15);
extern "C" {
void PbRegister_pdataMaxDiff()
{
@@ -1359,7 +1567,7 @@ Vec3 calcCenterOfMass(const Grid<Real> &density)
p /= w;
return p;
}
-static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1381,7 +1589,7 @@ static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_calcCenterOfMass("", "calcCenterOfMass", _W_15);
+static const Pb::Register _RP_calcCenterOfMass("", "calcCenterOfMass", _W_16);
extern "C" {
void PbRegister_calcCenterOfMass()
{
@@ -1581,7 +1789,7 @@ void updateFractions(const FlagGrid &flags,
fractions.setConst(Vec3(0.));
KnUpdateFractions(flags, phiObs, fractions, boundaryWidth, fracThreshold);
}
-static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1608,7 +1816,7 @@ static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_updateFractions("", "updateFractions", _W_16);
+static const Pb::Register _RP_updateFractions("", "updateFractions", _W_17);
extern "C" {
void PbRegister_updateFractions()
{
@@ -1750,7 +1958,7 @@ void setObstacleFlags(FlagGrid &flags,
{
KnUpdateFlagsObs(flags, fractions, phiObs, phiOut, phiIn);
}
-static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1777,7 +1985,7 @@ static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_setObstacleFlags("", "setObstacleFlags", _W_17);
+static const Pb::Register _RP_setObstacleFlags("", "setObstacleFlags", _W_18);
extern "C" {
void PbRegister_setObstacleFlags()
{
@@ -1894,7 +2102,7 @@ void initVortexVelocity(const Grid<Real> &phiObs,
{
kninitVortexVelocity(phiObs, vel, center, radius);
}
-static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -1920,7 +2128,7 @@ static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_initVortexVelocity("", "initVortexVelocity", _W_18);
+static const Pb::Register _RP_initVortexVelocity("", "initVortexVelocity", _W_19);
extern "C" {
void PbRegister_initVortexVelocity()
{
@@ -2246,7 +2454,7 @@ int blurMacGrid(MACGrid &oG, MACGrid &tG, float si)
}
return tmGK.mDim;
}
-static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -2270,7 +2478,7 @@ static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_blurMacGrid("", "blurMacGrid", _W_19);
+static const Pb::Register _RP_blurMacGrid("", "blurMacGrid", _W_20);
extern "C" {
void PbRegister_blurMacGrid()
{
@@ -2282,7 +2490,7 @@ int blurRealGrid(Grid<Real> &oG, Grid<Real> &tG, float si)
{
return blurGrid<Real>(oG, tG, si);
}
-static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
+static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
{
try {
PbArgs _args(_linargs, _kwds);
@@ -2306,7 +2514,7 @@ static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
return 0;
}
}
-static const Pb::Register _RP_blurRealGrid("", "blurRealGrid", _W_20);
+static const Pb::Register _RP_blurRealGrid("", "blurRealGrid", _W_21);
extern "C" {
void PbRegister_blurRealGrid()
{