Commit: c3ba70bbae7b1335583c6ade8119b0ec11070fe4
Author: Sebastián Barschkis
Date:   Fri Apr 5 22:59:43 2019 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBc3ba70bbae7b1335583c6ade8119b0ec11070fe4

Mantaflow: Updated fluid wrapper and script files

Includes setup in which inflow is applied on mantaflow side

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

M       intern/mantaflow/CMakeLists.txt
M       intern/mantaflow/extern/manta_fluid_API.h
M       intern/mantaflow/intern/FLUID.cpp
M       intern/mantaflow/intern/FLUID.h
M       intern/mantaflow/intern/manta_fluid_API.cpp
M       intern/mantaflow/intern/strings/fluid_script.h
M       intern/mantaflow/intern/strings/liquid_script.h
M       intern/mantaflow/intern/strings/smoke_script.h

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

diff --git a/intern/mantaflow/CMakeLists.txt b/intern/mantaflow/CMakeLists.txt
index 5ffdd9f3402..2a4e945cfba 100644
--- a/intern/mantaflow/CMakeLists.txt
+++ b/intern/mantaflow/CMakeLists.txt
@@ -23,6 +23,8 @@
 #
 # ***** END GPL LICENSE BLOCK *****
 
+set(MANTAVERSION "0.12")
+
 if(WITH_OPENMP)
        set(MANTA_PP
                intern/manta_pp/omp
diff --git a/intern/mantaflow/extern/manta_fluid_API.h 
b/intern/mantaflow/extern/manta_fluid_API.h
index 89994c382be..c16185d378b 100644
--- a/intern/mantaflow/extern/manta_fluid_API.h
+++ b/intern/mantaflow/extern/manta_fluid_API.h
@@ -80,13 +80,15 @@ float *fluid_get_in_velocity_z(struct FLUID *fluid);
 float *fluid_get_force_x(struct FLUID *fluid);
 float *fluid_get_force_y(struct FLUID *fluid);
 float *fluid_get_force_z(struct FLUID *fluid);
-float *fluid_get_phiguidein(struct FLUID *fluid);
+float *fluid_get_phiguide_in(struct FLUID *fluid);
 int *fluid_get_num_obstacle(struct FLUID *fluid);
 int *fluid_get_num_guide(struct FLUID *fluid);
 int fluid_get_res_x(struct FLUID *fluid);
 int fluid_get_res_y(struct FLUID *fluid);
 int fluid_get_res_z(struct FLUID *fluid);
-
+float *fluid_get_phi_in(struct FLUID *fluid);
+float *fluid_get_phiobs_in(struct FLUID *fluid);
+float *fluid_get_phiout_in(struct FLUID *fluid);
 
 /* Smoke functions */
 void smoke_manta_export(struct FLUID* smoke, struct SmokeModifierData *smd);
@@ -113,7 +115,13 @@ float *smoke_get_color_r(struct FLUID *smoke);
 float *smoke_get_color_g(struct FLUID *smoke);
 float *smoke_get_color_b(struct FLUID *smoke);
 int *smoke_get_obstacle(struct FLUID *smoke);
-float *smoke_get_emission_in(struct FLUID *fluid);
+float *smoke_get_density_in(struct FLUID* smoke);
+float *smoke_get_heat_in(struct FLUID* smoke);
+float *smoke_get_color_r_in(struct FLUID* smoke);
+float *smoke_get_color_g_in(struct FLUID* smoke);
+float *smoke_get_color_b_in(struct FLUID* smoke);
+float *smoke_get_fuel_in(struct FLUID* smoke);
+float *smoke_get_react_in(struct FLUID* smoke);
 int smoke_has_heat(struct FLUID *smoke);
 int smoke_has_fuel(struct FLUID *smoke);
 int smoke_has_colors(struct FLUID *smoke);
@@ -129,7 +137,6 @@ int smoke_turbulence_has_colors(struct FLUID *smoke);
 void smoke_turbulence_get_res(struct FLUID *smoke, int *res);
 int smoke_turbulence_get_cells(struct FLUID *smoke);
 
-
 /* Liquid functions */
 void liquid_manta_export(struct FLUID* smoke, struct SmokeModifierData *smd);
 void liquid_ensure_sndparts(struct FLUID *fluid, struct SmokeModifierData 
*smd);
@@ -143,9 +150,6 @@ int liquid_get_mesh_res_y(struct FLUID *fluid);
 int liquid_get_mesh_res_z(struct FLUID *fluid);
 int liquid_get_particle_upres(struct FLUID *fluid);
 int liquid_get_mesh_upres(struct FLUID *fluid);
-float *liquid_get_phiin(struct FLUID *liquid);
-float *liquid_get_phiobsin(struct FLUID *liquid);
-float *liquid_get_phioutin(struct FLUID *liquid);
 int liquid_get_num_verts(struct FLUID *liquid);
 int liquid_get_num_normals(struct FLUID *liquid);
 int liquid_get_num_triangles(struct FLUID *liquid);
diff --git a/intern/mantaflow/intern/FLUID.cpp 
b/intern/mantaflow/intern/FLUID.cpp
index e7c5911322d..4fb435cf81c 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -50,7 +50,7 @@
 
 std::atomic<bool> FLUID::mantaInitialized(false);
 std::atomic<int> FLUID::solverID(0);
-int FLUID::with_debug(0);
+int FLUID::with_debug(1);
 
 FLUID::FLUID(int *res, SmokeModifierData *smd) : mCurrentID(++solverID)
 {
@@ -89,7 +89,6 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : 
mCurrentID(++solverID)
 
        // Smoke low res grids
        mDensity        = NULL;
-       mEmissionIn     = NULL;
        mShadow         = NULL;
        mHeat           = NULL;
        mVelocityX      = NULL;
@@ -105,6 +104,13 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : 
mCurrentID(++solverID)
        mColorG         = NULL;
        mColorB         = NULL;
        mObstacle       = NULL;
+       mDensityIn      = NULL;
+       mHeatIn         = NULL;
+       mColorRIn       = NULL;
+       mColorGIn       = NULL;
+       mColorBIn       = NULL;
+       mFuelIn         = NULL;
+       mReactIn        = NULL;
 
        // Smoke high res grids
        mDensityHigh    = NULL;
@@ -121,7 +127,7 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : 
mCurrentID(++solverID)
        mTextureV2      = NULL;
        mTextureW2      = NULL;
 
-       // Liquid low res grids
+       // Fluid low res grids
        mPhiIn          = NULL;
        mPhiOutIn       = NULL;
        mPhi            = NULL;
@@ -306,6 +312,7 @@ void FLUID::initSmokeNoise(SmokeModifierData *smd)
        std::vector<std::string> pythonCommands;
        std::string tmpString = smoke_alloc_noise
                + smoke_variables_noise
+               + smoke_wavelet_noise
                + smoke_adaptive_step_noise
                + smoke_save_noise
                + smoke_load_noise
@@ -1390,6 +1397,7 @@ void FLUID::updateVariables(SmokeModifierData *smd)
        if (mUsingNoise) {
                tmpString += fluid_variables_noise;
                tmpString += smoke_variables_noise;
+               tmpString += smoke_wavelet_noise;
        }
        if (mUsingDrops || mUsingBubbles || mUsingFloats || mUsingTracers) {
                tmpString += fluid_variables_particles;
@@ -1435,8 +1443,7 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
                + fluid_variables
                + smoke_variables;
        if (noise) {
-               manta_script += fluid_variables_noise
-                       + smoke_variables_noise;
+               manta_script += fluid_variables_noise;
        }
        if (guiding)
                manta_script += fluid_variables_guiding;
@@ -1473,6 +1480,10 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
        if (invel)
                manta_script += fluid_alloc_invel;
 
+       // Noise field
+       if (noise)
+               manta_script += smoke_wavelet_noise;
+
        // Time
        manta_script += header_time
                + fluid_adaptive_time_stepping
@@ -2127,6 +2138,7 @@ void FLUID::updatePointers()
        std::string mesh_ext2  = "_" + mesh2;
 
        mObstacle  = (int*)   
stringToPointer(pyObjectToString(callPythonFunction("flags" + solver_ext, 
func)));
+       mPhiIn     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("phiIn" + solver_ext, 
func)));
 
        mVelocityX = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("x_vel" + solver_ext, 
func)));
        mVelocityY = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("y_vel" + solver_ext, 
func)));
@@ -2167,7 +2179,6 @@ void FLUID::updatePointers()
        // Liquid
        if (mUsingLiquid) {
                mPhi   = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("phi"   + solver_ext, 
func)));
-               mPhiIn = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("phiIn" + solver_ext, 
func)));
 
                mFlipParticleData     = (std::vector<pData>*) 
stringToPointer(pyObjectToString(callPythonFunction("pp"   + solver_ext, 
func)));
                mFlipParticleVelocity = (std::vector<pVel>*)  
stringToPointer(pyObjectToString(callPythonFunction("pVel" + parts_ext,  
func)));
@@ -2189,21 +2200,29 @@ void FLUID::updatePointers()
        // Smoke
        if (mUsingSmoke) {
                mDensity        = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("density"    + solver_ext, 
func)));
-               mEmissionIn     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("emissionIn" + solver_ext, 
func)));
+               mDensityIn      = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("densityIn"  + solver_ext, 
func)));
                mShadow         = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("shadow"     + solver_ext, 
func)));
 
                if (mUsingHeat) {
                        mHeat       = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("heat"   + solver_ext,    
func)));
+                       mHeatIn     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("heatIn" + solver_ext, 
func)));
                }
                if (mUsingFire) {
                        mFlame      = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("flame"  + solver_ext,   
func)));
                        mFuel       = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("fuel"   + solver_ext,   
func)));
                        mReact      = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("react"  + solver_ext,   
func)));
+
+                       mFuelIn     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("fuelIn"  + solver_ext,   
func)));
+                       mReactIn    = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("reactIn" + solver_ext,   
func)));
                }
                if (mUsingColors) {
                        mColorR     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_r"   + solver_ext, 
func)));
                        mColorG     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_g"   + solver_ext, 
func)));
                        mColorB     = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_b"   + solver_ext, 
func)));
+
+                       mColorRIn   = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_r_in"   + 
solver_ext, func)));
+                       mColorGIn   = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_g_in"   + 
solver_ext, func)));
+                       mColorBIn   = (float*) 
stringToPointer(pyObjectToString(callPythonFunction("color_b_in"   + 
solver_ext, func)));
                }
        }
 }
diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h
index 735d87f2fab..46969964a81 100644
--- a/intern/mantaflow/intern/FLUID.h
+++ b/intern/mantaflow/intern/FLUID.h
@@ -98,7 +98,6 @@ public:
        void exportSmokeScript(struct SmokeModifierData *smd);
        void exportLiquidScript(struct SmokeModifierData *smd);
 
-       // Smoke getters
        inline size_t getTotalCells() { return mTotalCells; }
        inline size_t getTotalCellsHigh() { return mTotalCellsHigh; }
        inline bool usingNoise() { return mUsingNoise; }
@@ -116,7 +115,8 @@ public:
        inline int getResZHigh() { return mResZNoise; }
        inline int getMeshUpres() { return mUpresMesh; }
        inline int getParticleUpres() { return mUpresParticle; }
-       
+
+       // Smoke getters
        inline float* getDensity() { return mDensity; }
        inline float* getHeat() { return mHeat; }
        inline float* getVelocityX() { return mVelocityX; }
@@ -143,8 +143,14 @@ public:
        inline float* getColorR() { return mColorR; }
        inline float* getColorG() { return mColorG; }
        inline float* getColorB() { return mColorB; }
-       inline float* getEmissionIn() { return mEmissionIn; }
        inline float* getShadow() { return mShadow; }
+       inline float* getDensityIn() { return mDensityIn; }
+       inline float* getHeatIn() { return mHeatIn; }
+       inline float* getColorRIn() { return mColorRIn; }
+       inline float* getColorGIn() { return mColorGIn; }
+       inline float* getColorBIn() { return mColorBIn; }
+       inline float* getFuelI

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to