[Bf-blender-cvs] [8b46cf45f74] fluid-mantaflow: refactored python object desctruction setup

Sebastián Barschkis noreply at git.blender.org
Fri Dec 15 16:28:23 CET 2017


Commit: 8b46cf45f7453cad3645d190800d4eea5ccd4db4
Author: Sebastián Barschkis
Date:   Fri Dec 15 16:27:45 2017 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB8b46cf45f7453cad3645d190800d4eea5ccd4db4

refactored python object desctruction setup

no need to specify individual variables anymore - deletion now based on id

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

M	intern/mantaflow/intern/FLUID.cpp
M	intern/mantaflow/intern/strings/liquid_script.h
M	intern/mantaflow/intern/strings/shared_script.h
M	intern/mantaflow/intern/strings/smoke_script.h

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

diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 3e0f858c3eb..630e700c1e1 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -240,6 +240,7 @@ void FLUID::initDomain(SmokeModifierData *smd)
 	// Now init basic fluid domain
 	std::string tmpString = fluid_variables_low
 		+ fluid_solver_low
+		+ fluid_alloc_low
 		+ fluid_obstacle_export_low
 		+ fluid_guiding_export_low
 		+ fluid_invel_export_low
@@ -256,6 +257,7 @@ void FLUID::initDomainHigh(SmokeModifierData *smd)
 {
 	std::string tmpString = fluid_variables_high
 		+ fluid_solver_high
+		+ fluid_alloc_high
 		+ fluid_adapt_time_step_high
 		+ fluid_adaptive_time_stepping_high;
 	std::string finalString = parseScript(tmpString, smd);
@@ -487,56 +489,7 @@ FLUID::~FLUID()
 	std::string tmpString = "";
 
 	tmpString += manta_import;
-
-	// Fluid
-	tmpString += fluid_delete_variables_low;
-	tmpString += fluid_delete_variables_high;
-
-	// Liquid
-	tmpString += liquid_delete_variables_low;
-	tmpString += liquid_delete_grids_low;
-
-	tmpString += liquid_delete_variables_high;
-	tmpString += liquid_delete_grids_high;
-
-	// Smoke
-	tmpString += smoke_delete_variables_low;
-	tmpString += smoke_delete_grids_low;
-	tmpString += smoke_delete_heat_low;
-	tmpString += smoke_delete_fire_low;
-	tmpString += smoke_delete_colors_low;
-
-	tmpString += smoke_delete_variables_high;
-	tmpString += smoke_delete_grids_high;
-	tmpString += smoke_delete_fire_high;
-	tmpString += smoke_delete_colors_high;
-
-	// Obstacle
-	tmpString += fluid_delete_obstacle_low;
-
-	// Guiding
-	tmpString += fluid_delete_guiding_low;
-
-	// Initial velocity
-	tmpString += fluid_delete_invel_low;
-
-	// Snd parts
-	tmpString += fluid_delete_sndparts_low;
-
-	// Cleanup multigrid
-	tmpString += fluid_multigrid_cleanup_low;
-	tmpString += fluid_guiding_cleanup_low;
-	if (mUsingHighRes) tmpString += fluid_multigrid_cleanup_high;
-
-	// Make sure that everything is garbage collected
-	tmpString += gc_collect;
-
-	// Solvers always have to be the last objects to be deleted
-	tmpString += fluid_delete_solver_low;
-	if (mUsingHighRes) tmpString += fluid_delete_solver_high;
-
-	// Just in case: gc again
-	tmpString += gc_collect;
+	tmpString += fluid_delete_all;
 
 	// Safe to pass NULL argument since only looking up IDs
 	std::string finalString = parseScript(tmpString, NULL);
@@ -918,6 +871,7 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
 	manta_script += manta_import
 		+ fluid_variables_low
 		+ fluid_solver_low
+		+ fluid_alloc_low
 		+ fluid_adaptive_time_stepping_low
 		+ smoke_alloc_low
 		+ smoke_bounds_low
@@ -939,6 +893,7 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
 	if (highres) {
 		manta_script += fluid_variables_high
 			+ fluid_solver_high
+			+ fluid_alloc_high
 			+ fluid_adaptive_time_stepping_high
 			+ smoke_variables_high
 			+ smoke_alloc_high
@@ -1030,6 +985,7 @@ void FLUID::exportLiquidScript(SmokeModifierData *smd)
 	manta_script += manta_import
 		+ fluid_variables_low
 		+ fluid_solver_low
+		+ fluid_alloc_low
 		+ fluid_adaptive_time_stepping_low
 		+ liquid_alloc_low
 		+ liquid_init_phi
@@ -1047,6 +1003,7 @@ void FLUID::exportLiquidScript(SmokeModifierData *smd)
 	if (highres) {
 		manta_script += fluid_variables_high
 			+ fluid_solver_high
+			+ fluid_alloc_high
 			+ fluid_adaptive_time_stepping_high
 			+ liquid_alloc_high
 			+ liquid_variables_high;
diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h
index 45b98a058fe..9329b0ea8f6 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -56,23 +56,14 @@ mantaMsg('Liquid variables high')\n";
 
 const std::string liquid_alloc_low = "\n\
 mantaMsg('Liquid alloc low')\n\
-flags_s$ID$      = s$ID$.create(FlagGrid)\n\
 phiParts_s$ID$   = s$ID$.create(LevelsetGrid)\n\
 phi_s$ID$        = s$ID$.create(LevelsetGrid)\n\
 phiIn_s$ID$      = s$ID$.create(LevelsetGrid)\n\
 phiOut_s$ID$     = s$ID$.create(LevelsetGrid)\n\
-phiOutIn_s$ID$   = s$ID$.create(LevelsetGrid)\n\
-pressure_s$ID$   = s$ID$.create(RealGrid)\n\
 curvature_s$ID$  = s$ID$.create(RealGrid)\n\
 \n\
-phiObs_s$ID$     = s$ID$.create(LevelsetGrid)\n\
 fractions_s$ID$  = 0 # s$ID$.create(MACGrid) # TODO (sebbas): disabling fractions for now - not fracwallbcs not supporting obvels yet\n\
 \n\
-vel_s$ID$        = s$ID$.create(MACGrid)\n\
-x_vel_s$ID$      = s$ID$.create(RealGrid)\n\
-y_vel_s$ID$      = s$ID$.create(RealGrid)\n\
-z_vel_s$ID$      = s$ID$.create(RealGrid)\n\
-\n\
 velOld_s$ID$     = s$ID$.create(MACGrid)\n\
 velParts_s$ID$   = s$ID$.create(MACGrid)\n\
 mapWeights_s$ID$ = s$ID$.create(MACGrid)\n\
@@ -83,16 +74,10 @@ mesh_s$ID$       = s$ID$.create(Mesh)\n\
 \n\
 # Acceleration data for particle nbs\n\
 pindex_s$ID$     = s$ID$.create(ParticleIndexSystem)\n\
-gpi_s$ID$        = s$ID$.create(IntGrid)\n\
-\n\
-forces_s$ID$     = s$ID$.create(MACGrid)\n\
-x_force_s$ID$    = s$ID$.create(RealGrid)\n\
-y_force_s$ID$    = s$ID$.create(RealGrid)\n\
-z_force_s$ID$    = s$ID$.create(RealGrid)\n";
+gpi_s$ID$        = s$ID$.create(IntGrid)\n";
 
 const std::string liquid_alloc_high = "\n\
 mantaMsg('Liquid alloc high')\n\
-flags_xl$ID$    = xl$ID$.create(FlagGrid)\n\
 phiParts_xl$ID$ = xl$ID$.create(LevelsetGrid)\n\
 phi_xl$ID$      = xl$ID$.create(LevelsetGrid)\n\
 pp_xl$ID$       = xl$ID$.create(BasicParticleSystem)\n\
@@ -188,8 +173,8 @@ def manta_step_$ID$(framenr):\n\
         sampleLevelsetWithParticles(phi=phiIn_s$ID$, flags=flags_s$ID$, parts=pp_s$ID$, discretization=particleNumber_s$ID$, randomness=randomness_s$ID$, refillEmpty=True)\n\
         flags_s$ID$.updateFromLevelset(phi_s$ID$, phiObs_s$ID$)\n\
         mapWeights_s$ID$.clear() # clean up, mapweights grid used later again\n\
-        fluid_adapt_time_step()\n\
         \n\
+        fluid_adapt_time_step_low()\n\
         mantaMsg('Low step / s$ID$.frame: ' + str(s$ID$.frame))\n\
         liquid_step_$ID$()\n\
         \n\
@@ -407,62 +392,6 @@ def save_liquid_data_high_$ID$(path):\n\
     \n\
     pp_xl$ID$.save(path + '_pp_xl.uni')\n";
 
-//////////////////////////////////////////////////////////////////////
-// DESTRUCTION
-//////////////////////////////////////////////////////////////////////
-
-const std::string liquid_delete_grids_low = "\n\
-mantaMsg('Deleting lowres grids, mesh, particlesystem')\n\
-if 'flags_s$ID$'      in globals() : del flags_s$ID$\n\
-if 'phiParts_s$ID$'   in globals() : del phiParts_s$ID$\n\
-if 'phi_s$ID$'        in globals() : del phi_s$ID$\n\
-if 'phiIn_s$ID$'      in globals() : del phiIn_s$ID$\n\
-if 'phiOut_s$ID$'     in globals() : del phiOut_s$ID$\n\
-if 'phiOutIn_s$ID$'   in globals() : del phiOutIn_s$ID$\n\
-if 'pressure_s$ID$'   in globals() : del pressure_s$ID$\n\
-if 'curvature_s$ID$'  in globals() : del curvature_s$ID$\n\
-if 'vel_s$ID$'        in globals() : del vel_s$ID$\n\
-if 'x_vel_s$ID$'      in globals() : del x_vel_s$ID$\n\
-if 'y_vel_s$ID$'      in globals() : del y_vel_s$ID$\n\
-if 'z_vel_s$ID$'      in globals() : del z_vel_s$ID$\n\
-if 'velOld_s$ID$'     in globals() : del velOld_s$ID$\n\
-if 'velParts_s$ID$'   in globals() : del velParts_s$ID$\n\
-if 'mapWeights_s$ID$' in globals() : del mapWeights_s$ID$\n\
-if 'pp_s$ID$'         in globals() : del pp_s$ID$\n\
-if 'pVel_pp$ID$'      in globals() : del pVel_pp$ID$\n\
-if 'mesh_s$ID$'       in globals() : del mesh_s$ID$\n\
-if 'pindex_s$ID$'     in globals() : del pindex_s$ID$\n\
-if 'gpi_s$ID$'        in globals() : del gpi_s$ID$\n\
-if 'forces_s$ID$'     in globals() : del forces_s$ID$\n\
-if 'x_force_s$ID$'    in globals() : del x_force_s$ID$\n\
-if 'y_force_s$ID$'    in globals() : del y_force_s$ID$\n\
-if 'z_force_s$ID$'    in globals() : del z_force_s$ID$\n\
-if 'phiObs_s$ID$'     in globals() : del phiObs_s$ID$\n\
-if 'fractions_s$ID$'  in globals() : del fractions_s$ID$\n";
-
-const std::string liquid_delete_grids_high = "\n\
-mantaMsg('Deleting highres grids, mesh, particlesystem')\n\
-if 'flags_xl$ID$'    in globals() : del flags_xl$ID$\n\
-if 'phiParts_xl$ID$' in globals() : del phiParts_xl$ID$\n\
-if 'phi_xl$ID$'      in globals() : del phi_xl$ID$\n\
-if 'pp_xl$ID$'       in globals() : del pp_xl$ID$\n\
-if 'mesh_xl$ID$'     in globals() : del mesh_xl$ID$\n\
-if 'pindex_xl$ID$'   in globals() : del pindex_xl$ID$\n\
-if 'gpi_xl$ID$'      in globals() : del gpi_xl$ID$\n";
-
-const std::string liquid_delete_variables_low = "\n\
-mantaMsg('Deleting lowres liquid variables')\n\
-if 'narrowBandWidth_s$ID$'  in globals() : del narrowBandWidth_s$ID$\n\
-if 'combineBandWidth_s$ID$' in globals() : del combineBandWidth_s$ID$\n\
-if 'minParticles_s$ID$'     in globals() : del minParticles_s$ID$\n\
-if 'maxParticles_s$ID$'     in globals() : del maxParticles_s$ID$\n\
-if 'particleNumber_s$ID$'   in globals() : del particleNumber_s$ID$\n\
-if 'surfaceTension_s$ID$'   in globals() : del surfaceTension_s$ID$\n\
-if 'maxVel_s$ID$'           in globals() : del maxVel_s$ID$\n";
-
-const std::string liquid_delete_variables_high = "\n\
-mantaMsg('Deleting highres liquid variables')\n";
-
 //////////////////////////////////////////////////////////////////////
 // STANDALONE MODE
 //////////////////////////////////////////////////////////////////////
diff --git a/intern/mantaflow/intern/strings/shared_script.h b/intern/mantaflow/intern/strings/shared_script.h
index 170461da8ce..2ecf6b049f5 100644
--- a/intern/mantaflow/intern/strings/shared_script.h
+++ b/intern/mantaflow/intern/strings/shared_script.h
@@ -62,6 +62,7 @@ xl$ID$ = Solver(name='solver_xl$ID$', gridSize=gs_xl$ID$)\n";
 //////////////////////////////////////////////////////////////////////
 
 const std::string fluid_variables_low = "\n\
+mantaMsg('Fluid variables low')\n\
 dim_s$ID$     = $SOLVER_DIM$\n\
 res_s$ID$     = $RES$\n\
 gravity_s$ID$ = vec3($GRAVITY_X$, $GRAVITY_Y$, $GRAVITY_Z$)\n\
@@ -95,6 +96,7 @@ if domainSize_s$ID$ == 0: domainSize_s$ID$ = 100 # TODO (sebbas): just for versi
 viscosity_s$ID$ = $FLUID_VISCOSITY$ / (domainSize_s$ID$*domainSize_s$ID$) # kinematic viscosity in m^2/s\n";
 
 const std::string fluid_variables_high= "\n\
+mantaMsg('Fluid variab

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list