[Bf-blender-cvs] [792eb57e629] fluid-mantaflow: Mantaflow: Added preprocessed Mantaflow source files

Sebastián Barschkis noreply at git.blender.org
Sat Apr 6 22:12:40 CEST 2019


Commit: 792eb57e6299f4002fb71a1655c5e66a58933931
Author: Sebastián Barschkis
Date:   Sun Oct 28 14:47:51 2018 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB792eb57e6299f4002fb71a1655c5e66a58933931

Mantaflow: Added preprocessed Mantaflow source files

Preprocessed files for both OpenMP and TBB

===================================================================

A	intern/mantaflow/intern/manta_pp/omp/commonkernels.h
A	intern/mantaflow/intern/manta_pp/omp/commonkernels.h.reg
A	intern/mantaflow/intern/manta_pp/omp/commonkernels.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/conjugategrad.cpp
A	intern/mantaflow/intern/manta_pp/omp/conjugategrad.h
A	intern/mantaflow/intern/manta_pp/omp/conjugategrad.h.reg
A	intern/mantaflow/intern/manta_pp/omp/conjugategrad.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/edgecollapse.cpp
A	intern/mantaflow/intern/manta_pp/omp/edgecollapse.h
A	intern/mantaflow/intern/manta_pp/omp/edgecollapse.h.reg
A	intern/mantaflow/intern/manta_pp/omp/edgecollapse.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/fastmarch.cpp
A	intern/mantaflow/intern/manta_pp/omp/fastmarch.h
A	intern/mantaflow/intern/manta_pp/omp/fastmarch.h.reg
A	intern/mantaflow/intern/manta_pp/omp/fastmarch.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio.h
A	intern/mantaflow/intern/manta_pp/omp/fileio.h.reg
A	intern/mantaflow/intern/manta_pp/omp/fileio.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio/iogrids.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio/iomeshes.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio/ioparticles.cpp
A	intern/mantaflow/intern/manta_pp/omp/fileio/mantaio.h
A	intern/mantaflow/intern/manta_pp/omp/fileio/mantaio.h.reg
A	intern/mantaflow/intern/manta_pp/omp/fileio/mantaio.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/fluidsolver.cpp
A	intern/mantaflow/intern/manta_pp/omp/fluidsolver.h
A	intern/mantaflow/intern/manta_pp/omp/fluidsolver.h.reg
A	intern/mantaflow/intern/manta_pp/omp/fluidsolver.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/general.cpp
A	intern/mantaflow/intern/manta_pp/omp/general.h
A	intern/mantaflow/intern/manta_pp/omp/general.h.reg
A	intern/mantaflow/intern/manta_pp/omp/general.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/gitinfo.h
A	intern/mantaflow/intern/manta_pp/omp/grid.cpp
A	intern/mantaflow/intern/manta_pp/omp/grid.h
A	intern/mantaflow/intern/manta_pp/omp/grid.h.reg
A	intern/mantaflow/intern/manta_pp/omp/grid.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/grid4d.cpp
A	intern/mantaflow/intern/manta_pp/omp/grid4d.h
A	intern/mantaflow/intern/manta_pp/omp/grid4d.h.reg
A	intern/mantaflow/intern/manta_pp/omp/grid4d.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/kernel.cpp
A	intern/mantaflow/intern/manta_pp/omp/kernel.h
A	intern/mantaflow/intern/manta_pp/omp/kernel.h.reg
A	intern/mantaflow/intern/manta_pp/omp/kernel.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/levelset.cpp
A	intern/mantaflow/intern/manta_pp/omp/levelset.h
A	intern/mantaflow/intern/manta_pp/omp/levelset.h.reg
A	intern/mantaflow/intern/manta_pp/omp/levelset.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/mesh.cpp
A	intern/mantaflow/intern/manta_pp/omp/mesh.h
A	intern/mantaflow/intern/manta_pp/omp/mesh.h.reg
A	intern/mantaflow/intern/manta_pp/omp/mesh.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/movingobs.cpp
A	intern/mantaflow/intern/manta_pp/omp/movingobs.h
A	intern/mantaflow/intern/manta_pp/omp/movingobs.h.reg
A	intern/mantaflow/intern/manta_pp/omp/movingobs.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/multigrid.cpp
A	intern/mantaflow/intern/manta_pp/omp/multigrid.h
A	intern/mantaflow/intern/manta_pp/omp/multigrid.h.reg
A	intern/mantaflow/intern/manta_pp/omp/multigrid.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/noisefield.cpp
A	intern/mantaflow/intern/manta_pp/omp/noisefield.h
A	intern/mantaflow/intern/manta_pp/omp/noisefield.h.reg
A	intern/mantaflow/intern/manta_pp/omp/noisefield.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/particle.cpp
A	intern/mantaflow/intern/manta_pp/omp/particle.h
A	intern/mantaflow/intern/manta_pp/omp/particle.h.reg
A	intern/mantaflow/intern/manta_pp/omp/particle.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/advection.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/apic.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/extforces.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/fire.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/flip.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/fluidguiding.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/initplugins.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/kepsilon.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/meshplugins.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/pressure.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/ptsplugins.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/secondaryparticles.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/sndparticles.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/surfaceturbulence.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/vortexplugins.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/waveletturbulence.cpp
A	intern/mantaflow/intern/manta_pp/omp/plugin/waves.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/manta.h
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/numpyWrap.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/numpyWrap.h
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pclass.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pclass.h
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pconvert.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pconvert.h
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pvec3.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pymain.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/pythonInclude.h
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/registry.cpp
A	intern/mantaflow/intern/manta_pp/omp/pwrapper/registry.h
A	intern/mantaflow/intern/manta_pp/omp/python/defines.py
A	intern/mantaflow/intern/manta_pp/omp/python/defines.py.reg
A	intern/mantaflow/intern/manta_pp/omp/python/defines.py.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/registration.cpp
A	intern/mantaflow/intern/manta_pp/omp/shapes.cpp
A	intern/mantaflow/intern/manta_pp/omp/shapes.h
A	intern/mantaflow/intern/manta_pp/omp/shapes.h.reg
A	intern/mantaflow/intern/manta_pp/omp/shapes.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/test.cpp
A	intern/mantaflow/intern/manta_pp/omp/timing.cpp
A	intern/mantaflow/intern/manta_pp/omp/timing.h
A	intern/mantaflow/intern/manta_pp/omp/timing.h.reg
A	intern/mantaflow/intern/manta_pp/omp/timing.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/turbulencepart.cpp
A	intern/mantaflow/intern/manta_pp/omp/turbulencepart.h
A	intern/mantaflow/intern/manta_pp/omp/turbulencepart.h.reg
A	intern/mantaflow/intern/manta_pp/omp/turbulencepart.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/util/integrator.h
A	intern/mantaflow/intern/manta_pp/omp/util/interpol.h
A	intern/mantaflow/intern/manta_pp/omp/util/interpolHigh.h
A	intern/mantaflow/intern/manta_pp/omp/util/matrixbase.h
A	intern/mantaflow/intern/manta_pp/omp/util/mcubes.h
A	intern/mantaflow/intern/manta_pp/omp/util/quaternion.h
A	intern/mantaflow/intern/manta_pp/omp/util/randomstream.h
A	intern/mantaflow/intern/manta_pp/omp/util/rcmatrix.h
A	intern/mantaflow/intern/manta_pp/omp/util/simpleimage.cpp
A	intern/mantaflow/intern/manta_pp/omp/util/simpleimage.h
A	intern/mantaflow/intern/manta_pp/omp/util/solvana.h
A	intern/mantaflow/intern/manta_pp/omp/util/vector4d.cpp
A	intern/mantaflow/intern/manta_pp/omp/util/vector4d.h
A	intern/mantaflow/intern/manta_pp/omp/util/vectorbase.cpp
A	intern/mantaflow/intern/manta_pp/omp/util/vectorbase.h
A	intern/mantaflow/intern/manta_pp/omp/vortexpart.cpp
A	intern/mantaflow/intern/manta_pp/omp/vortexpart.h
A	intern/mantaflow/intern/manta_pp/omp/vortexpart.h.reg
A	intern/mantaflow/intern/manta_pp/omp/vortexpart.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/omp/vortexsheet.cpp
A	intern/mantaflow/intern/manta_pp/omp/vortexsheet.h
A	intern/mantaflow/intern/manta_pp/omp/vortexsheet.h.reg
A	intern/mantaflow/intern/manta_pp/omp/vortexsheet.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/commonkernels.h
A	intern/mantaflow/intern/manta_pp/tbb/commonkernels.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/commonkernels.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/conjugategrad.cpp
A	intern/mantaflow/intern/manta_pp/tbb/conjugategrad.h
A	intern/mantaflow/intern/manta_pp/tbb/conjugategrad.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/conjugategrad.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/edgecollapse.cpp
A	intern/mantaflow/intern/manta_pp/tbb/edgecollapse.h
A	intern/mantaflow/intern/manta_pp/tbb/edgecollapse.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/edgecollapse.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fastmarch.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fastmarch.h
A	intern/mantaflow/intern/manta_pp/tbb/fastmarch.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/fastmarch.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio.h
A	intern/mantaflow/intern/manta_pp/tbb/fileio.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/fileio.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio/iogrids.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio/iomeshes.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio/ioparticles.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fileio/mantaio.h
A	intern/mantaflow/intern/manta_pp/tbb/fileio/mantaio.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/fileio/mantaio.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fluidsolver.cpp
A	intern/mantaflow/intern/manta_pp/tbb/fluidsolver.h
A	intern/mantaflow/intern/manta_pp/tbb/fluidsolver.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/fluidsolver.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/general.cpp
A	intern/mantaflow/intern/manta_pp/tbb/general.h
A	intern/mantaflow/intern/manta_pp/tbb/general.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/general.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/gitinfo.h
A	intern/mantaflow/intern/manta_pp/tbb/grid.cpp
A	intern/mantaflow/intern/manta_pp/tbb/grid.h
A	intern/mantaflow/intern/manta_pp/tbb/grid.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/grid.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/grid4d.cpp
A	intern/mantaflow/intern/manta_pp/tbb/grid4d.h
A	intern/mantaflow/intern/manta_pp/tbb/grid4d.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/grid4d.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/kernel.cpp
A	intern/mantaflow/intern/manta_pp/tbb/kernel.h
A	intern/mantaflow/intern/manta_pp/tbb/kernel.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/kernel.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/levelset.cpp
A	intern/mantaflow/intern/manta_pp/tbb/levelset.h
A	intern/mantaflow/intern/manta_pp/tbb/levelset.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/levelset.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/mesh.cpp
A	intern/mantaflow/intern/manta_pp/tbb/mesh.h
A	intern/mantaflow/intern/manta_pp/tbb/mesh.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/mesh.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/movingobs.cpp
A	intern/mantaflow/intern/manta_pp/tbb/movingobs.h
A	intern/mantaflow/intern/manta_pp/tbb/movingobs.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/movingobs.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/multigrid.cpp
A	intern/mantaflow/intern/manta_pp/tbb/multigrid.h
A	intern/mantaflow/intern/manta_pp/tbb/multigrid.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/multigrid.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/noisefield.cpp
A	intern/mantaflow/intern/manta_pp/tbb/noisefield.h
A	intern/mantaflow/intern/manta_pp/tbb/noisefield.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/noisefield.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/particle.cpp
A	intern/mantaflow/intern/manta_pp/tbb/particle.h
A	intern/mantaflow/intern/manta_pp/tbb/particle.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/particle.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/advection.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/apic.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/extforces.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/fire.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/flip.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/fluidguiding.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/initplugins.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/kepsilon.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/meshplugins.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/pressure.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/ptsplugins.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/secondaryparticles.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/sndparticles.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/surfaceturbulence.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/vortexplugins.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/waveletturbulence.cpp
A	intern/mantaflow/intern/manta_pp/tbb/plugin/waves.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/manta.h
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/numpyWrap.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/numpyWrap.h
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pclass.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pclass.h
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pconvert.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pconvert.h
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pvec3.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pymain.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/pythonInclude.h
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/registry.cpp
A	intern/mantaflow/intern/manta_pp/tbb/pwrapper/registry.h
A	intern/mantaflow/intern/manta_pp/tbb/python/defines.py
A	intern/mantaflow/intern/manta_pp/tbb/python/defines.py.reg
A	intern/mantaflow/intern/manta_pp/tbb/python/defines.py.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/registration.cpp
A	intern/mantaflow/intern/manta_pp/tbb/shapes.cpp
A	intern/mantaflow/intern/manta_pp/tbb/shapes.h
A	intern/mantaflow/intern/manta_pp/tbb/shapes.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/shapes.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/test.cpp
A	intern/mantaflow/intern/manta_pp/tbb/timing.cpp
A	intern/mantaflow/intern/manta_pp/tbb/timing.h
A	intern/mantaflow/intern/manta_pp/tbb/timing.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/timing.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/turbulencepart.cpp
A	intern/mantaflow/intern/manta_pp/tbb/turbulencepart.h
A	intern/mantaflow/intern/manta_pp/tbb/turbulencepart.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/turbulencepart.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/util/integrator.h
A	intern/mantaflow/intern/manta_pp/tbb/util/interpol.h
A	intern/mantaflow/intern/manta_pp/tbb/util/interpolHigh.h
A	intern/mantaflow/intern/manta_pp/tbb/util/matrixbase.h
A	intern/mantaflow/intern/manta_pp/tbb/util/mcubes.h
A	intern/mantaflow/intern/manta_pp/tbb/util/quaternion.h
A	intern/mantaflow/intern/manta_pp/tbb/util/randomstream.h
A	intern/mantaflow/intern/manta_pp/tbb/util/rcmatrix.h
A	intern/mantaflow/intern/manta_pp/tbb/util/simpleimage.cpp
A	intern/mantaflow/intern/manta_pp/tbb/util/simpleimage.h
A	intern/mantaflow/intern/manta_pp/tbb/util/solvana.h
A	intern/mantaflow/intern/manta_pp/tbb/util/vector4d.cpp
A	intern/mantaflow/intern/manta_pp/tbb/util/vector4d.h
A	intern/mantaflow/intern/manta_pp/tbb/util/vectorbase.cpp
A	intern/mantaflow/intern/manta_pp/tbb/util/vectorbase.h
A	intern/mantaflow/intern/manta_pp/tbb/vortexpart.cpp
A	intern/mantaflow/intern/manta_pp/tbb/vortexpart.h
A	intern/mantaflow/intern/manta_pp/tbb/vortexpart.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/vortexpart.h.reg.cpp
A	intern/mantaflow/intern/manta_pp/tbb/vortexsheet.cpp
A	intern/mantaflow/intern/manta_pp/tbb/vortexsheet.h
A	intern/mantaflow/intern/manta_pp/tbb/vortexsheet.h.reg
A	intern/mantaflow/intern/manta_pp/tbb/vortexsheet.h.reg.cpp

===================================================================

diff --git a/intern/mantaflow/intern/manta_pp/omp/commonkernels.h b/intern/mantaflow/intern/manta_pp/omp/commonkernels.h
new file mode 100644
index 00000000000..d30fe3b5714
--- /dev/null
+++ b/intern/mantaflow/intern/manta_pp/omp/commonkernels.h
@@ -0,0 +1,442 @@
+
+
+
+
+
+// DO NOT EDIT !
+// This file is generated using the MantaFlow preprocessor (prep generate).
+
+
+
+
+#line 1 "/Users/sebbas/Developer/Mantaflow/mantaflowDevelop/mantaflowgit/source/commonkernels.h"
+/******************************************************************************
+ *
+ * MantaFlow fluid solver framework
+ * Copyright 2011 Tobias Pfaff, Nils Thuerey 
+ *
+ * This program is free software, distributed under the terms of the
+ * Apache License, Version 2.0 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Common grid kernels
+ *
+ ******************************************************************************/
+
+#ifndef _COMMONKERNELS_H
+#define _COMMONKERNELS_H
+
+#include "general.h"
+#include "kernel.h"
+#include "grid.h"
+
+namespace Manta {
+   
+//! Kernel: Invert real values, if positive and fluid
+
+
+ struct InvertCheckFluid : public KernelBase { InvertCheckFluid(const FlagGrid& flags, Grid<Real>& grid) :  KernelBase(&flags,0) ,flags(flags),grid(grid)   { runMessage(); run(); }   inline void op(IndexInt idx, const FlagGrid& flags, Grid<Real>& grid )  {
+	if (flags.isFluid(idx) && grid[idx] > 0)
+		grid[idx] = 1.0 / grid[idx];
+}    inline const FlagGrid& getArg0() { return flags; } typedef FlagGrid type0;inline Grid<Real>& getArg1() { return grid; } typedef Grid<Real> type1; void runMessage() { debMsg("Executing kernel InvertCheckFluid ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {   const IndexInt _sz = size; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (IndexInt i = 0; i < _sz; i++) op(i,flags,grid);  }   } const FlagGrid& flags; Grid<Real>& grid;   };
+#line 26 "commonkernels.h"
+
+
+
+//! Kernel: Squared sum over grid
+
+ struct GridSumSqr : public KernelBase { GridSumSqr(const Grid<Real>& grid) :  KernelBase(&grid,0) ,grid(grid) ,sum(0)  { runMessage(); run(); }   inline void op(IndexInt idx, const Grid<Real>& grid ,double& sum)  {
+	sum += square((double)grid[idx]);
+}    inline operator double () { return sum; } inline double  & getRet() { return sum; }  inline const Grid<Real>& getArg0() { return grid; } typedef Grid<Real> type0; void runMessage() { debMsg("Executing kernel GridSumSqr ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {   const IndexInt _sz = size; 
+#pragma omp parallel 
+ {  double sum = 0; 
+#pragma omp for nowait  
+  for (IndexInt i = 0; i < _sz; i++) op(i,grid,sum); 
+#pragma omp critical
+{this->sum += sum; } }   } const Grid<Real>& grid;  double sum;  };
+#line 33 "commonkernels.h"
+
+
+
+//! Kernel: rotation operator \nabla x v for centered vector fields
+
+ struct CurlOp : public KernelBase { CurlOp(const Grid<Vec3>& grid, Grid<Vec3>& dst) :  KernelBase(&grid,1) ,grid(grid),dst(dst)   { runMessage(); run(); }  inline void op(int i, int j, int k, const Grid<Vec3>& grid, Grid<Vec3>& dst )  {
+	Vec3 v = Vec3(0. , 0. , 
+			   0.5*((grid(i+1,j,k).y - grid(i-1,j,k).y) - (grid(i,j+1,k).x - grid(i,j-1,k).x)) );
+	if(dst.is3D()) {
+		v[0] = 0.5*((grid(i,j+1,k).z - grid(i,j-1,k).z) - (grid(i,j,k+1).y - grid(i,j,k-1).y));
+		v[1] = 0.5*((grid(i,j,k+1).x - grid(i,j,k-1).x) - (grid(i+1,j,k).z - grid(i-1,j,k).z));
+	}
+	dst(i,j,k) = v;
+}   inline const Grid<Vec3>& getArg0() { return grid; } typedef Grid<Vec3> type0;inline Grid<Vec3>& getArg1() { return dst; } typedef Grid<Vec3> type1; void runMessage() { debMsg("Executing kernel CurlOp ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {  const int _maxX = maxX; const int _maxY = maxY; if (maxZ > 1) { 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int k=minZ; k < maxZ; k++) for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,grid,dst);  } } else { const int k=0; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,grid,dst);  } }  } const Grid<Vec3>& grid; Grid<Vec3>& dst;   };
+#line 39 "commonkernels.h"
+
+;
+
+//! Kernel: divergence operator (from MAC grid)
+
+ struct DivergenceOpMAC : public KernelBase { DivergenceOpMAC(Grid<Real>& div, const MACGrid& grid) :  KernelBase(&div,1) ,div(div),grid(grid)   { runMessage(); run(); }  inline void op(int i, int j, int k, Grid<Real>& div, const MACGrid& grid )  {
+	Vec3 del = Vec3(grid(i+1,j,k).x, grid(i,j+1,k).y, 0.) - grid(i,j,k); 
+	if(grid.is3D()) del[2] += grid(i,j,k+1).z;
+	else            del[2]  = 0.;
+	div(i,j,k) = del.x + del.y + del.z;
+}   inline Grid<Real>& getArg0() { return div; } typedef Grid<Real> type0;inline const MACGrid& getArg1() { return grid; } typedef MACGrid type1; void runMessage() { debMsg("Executing kernel DivergenceOpMAC ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {  const int _maxX = maxX; const int _maxY = maxY; if (maxZ > 1) { 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int k=minZ; k < maxZ; k++) for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,div,grid);  } } else { const int k=0; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,div,grid);  } }  } Grid<Real>& div; const MACGrid& grid;   };
+#line 51 "commonkernels.h"
+
+
+
+//! Kernel: gradient operator for MAC grid
+ struct GradientOpMAC : public KernelBase { GradientOpMAC(MACGrid& gradient, const Grid<Real>& grid) :  KernelBase(&gradient,1) ,gradient(gradient),grid(grid)   { runMessage(); run(); }  inline void op(int i, int j, int k, MACGrid& gradient, const Grid<Real>& grid )  {
+	Vec3 grad = (Vec3(grid(i,j,k)) - Vec3(grid(i-1,j,k), grid(i,j-1,k), 0. ));
+	if(grid.is3D()) grad[2] -= grid(i,j,k-1);
+	else            grad[2]  = 0.;
+	gradient(i,j,k) = grad;
+}   inline MACGrid& getArg0() { return gradient; } typedef MACGrid type0;inline const Grid<Real>& getArg1() { return grid; } typedef Grid<Real> type1; void runMessage() { debMsg("Executing kernel GradientOpMAC ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {  const int _maxX = maxX; const int _maxY = maxY; if (maxZ > 1) { 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int k=minZ; k < maxZ; k++) for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,gradient,grid);  } } else { const int k=0; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,gradient,grid);  } }  } MACGrid& gradient; const Grid<Real>& grid;   };
+#line 59 "commonkernels.h"
+
+
+
+//! Kernel: centered gradient operator 
+ struct GradientOp : public KernelBase { GradientOp(Grid<Vec3>& gradient, const Grid<Real>& grid) :  KernelBase(&gradient,1) ,gradient(gradient),grid(grid)   { runMessage(); run(); }  inline void op(int i, int j, int k, Grid<Vec3>& gradient, const Grid<Real>& grid )  {
+	Vec3 grad = 0.5 * Vec3(        grid(i+1,j,k)-grid(i-1,j,k), 
+								   grid(i,j+1,k)-grid(i,j-1,k), 0.);
+	if(grid.is3D()) grad[2]= 0.5*( grid(i,j,k+1)-grid(i,j,k-1) );
+	gradient(i,j,k) = grad;
+}   inline Grid<Vec3>& getArg0() { return gradient; } typedef Grid<Vec3> type0;inline const Grid<Real>& getArg1() { return grid; } typedef Grid<Real> type1; void runMessage() { debMsg("Executing kernel GradientOp ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {  const int _maxX = maxX; const int _maxY = maxY; if (maxZ > 1) { 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int k=minZ; k < maxZ; k++) for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,gradient,grid);  } } else { const int k=0; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,gradient,grid);  } }  } Grid<Vec3>& gradient; const Grid<Real>& grid;   };
+#line 67 "commonkernels.h"
+
+
+
+//! Kernel: Laplace operator
+ struct LaplaceOp : public KernelBase { LaplaceOp(Grid<Real>& laplace, const Grid<Real>& grid) :  KernelBase(&laplace,1) ,laplace(laplace),grid(grid)   { runMessage(); run(); }  inline void op(int i, int j, int k, Grid<Real>& laplace, const Grid<Real>& grid )  {
+	laplace(i, j, k)  = grid(i+1, j, k) - 2.0*grid(i, j, k) + grid(i-1, j, k); 
+	laplace(i, j, k) += grid(i, j+1, k) - 2.0*grid(i, j, k) + grid(i, j-1, k); 
+	if(grid.is3D()) {
+	laplace(i, j, k) += grid(i, j, k+1) - 2.0*grid(i, j, k) + grid(i, j, k-1); }
+}   inline Grid<Real>& getArg0() { return laplace; } typedef Grid<Real> type0;inline const Grid<Real>& getArg1() { return grid; } typedef Grid<Real> type1; void runMessage() { debMsg("Executing kernel LaplaceOp ", 3); debMsg("Kernel range" <<  " x "<<  maxX  << " y "<< maxY  << " z "<< minZ<<" - "<< maxZ  << " "   , 4); }; void run() {  const int _maxX = maxX; const int _maxY = maxY; if (maxZ > 1) { 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int k=minZ; k < maxZ; k++) for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,laplace,grid);  } } else { const int k=0; 
+#pragma omp parallel 
+ {  
+#pragma omp for  
+  for (int j=1; j < _maxY; j++) for (int i=1; i < _maxX; i++) op(i,j,k,laplace,grid);  } }  } Grid<Real>& laplace; const Grid<Real>& grid;   };
+#line 75 "commonkernels.h"
+
+
+
+//! Kernel: Curvature operator
+ struct CurvatureOp : public KernelBase { CurvatureOp(Grid<Real>& curv, const Grid<Real>& grid, const Real h) :  KernelBase(&curv,1) ,curv(curv),grid(grid),h(h)   { runMessage(); run(); }  inline void op(int i, int j, int k, Grid<Real>& curv, const Grid<Real>& grid, const Real h )  {
+	const Real over_h = 1.0/h;
+	const Real x = 0.5*(grid(i+1, j, k) - grid(i-1, j, k))*over_h;
+	const Real y = 0.5*(grid(i, j+1, k) - grid(i, j-1, k))*over_h;
+	const Real xx = (grid(i+1, j, k) 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list