[Bf-blender-cvs] [937c637] fluid-mantaflow: moved uv setup and calculations from step low to step high. not needed in step low
SebastiaÌn Barschkis
noreply at git.blender.org
Sat Mar 19 20:58:56 CET 2016
Commit: 937c63766f7b2822badd50e8c88164fcbcdaaea1
Author: Sebastián Barschkis
Date: Sat Mar 19 20:57:13 2016 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rB937c63766f7b2822badd50e8c88164fcbcdaaea1
moved uv setup and calculations from step low to step high. not needed in step low
===================================================================
M intern/mantaflow/intern/MANTA.cpp
M intern/mantaflow/intern/strings/smoke.h
===================================================================
diff --git a/intern/mantaflow/intern/MANTA.cpp b/intern/mantaflow/intern/MANTA.cpp
index 96ea6d6..cb6e61e 100644
--- a/intern/mantaflow/intern/MANTA.cpp
+++ b/intern/mantaflow/intern/MANTA.cpp
@@ -44,7 +44,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
// Make sure that string vector does not contain any previous commands
mCommands.clear();
- // simulation constants
+ // Simulation constants
mTempAmb = 0; // TODO: Maybe use this later for buoyancy calculation
mResX = res[0];
mResY = res[1];
@@ -54,7 +54,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
mConstantScaling = (mConstantScaling < 1.0f) ? 1.0f : mConstantScaling;
mTotalCells = mResX * mResY * mResZ;
- // low res grids
+ // Low res grids
mDensity = NULL;
mHeat = NULL;
mVelocityX = NULL;
@@ -78,7 +78,7 @@ MANTA::MANTA(int *res, SmokeModifierData *smd)
mObstacles = new unsigned char[mTotalCells]; // TODO in Mantaflow
mObstaclesAnim = new unsigned char[mTotalCells]; // TODO in Mantaflow
- // high res grids
+ // High res grids
mDensityHigh = NULL;
mFlameHigh = NULL;
mFuelHigh = NULL;
@@ -150,7 +150,6 @@ void MANTA::initSetup(SmokeModifierData *smd)
std::string tmpString =
manta_import +
solver_setup_low +
- uv_setup +
alloc_base_grids_low +
prep_domain_low +
flags +
@@ -166,6 +165,7 @@ void MANTA::initSetupHigh(SmokeModifierData *smd)
{
std::string tmpString =
solver_setup_high +
+ uv_setup +
alloc_base_grids_high +
prep_domain_high +
wavelet_turbulence_noise +
@@ -558,7 +558,7 @@ string MANTA::getGridPointer(std::string gridName, std::string solverName)
if (retured_value == NULL){cout << "null" << 15 << endl;return "";}
std::string res = PyBytes_AsString(encoded);
cout << "Pointer on "<< gridName << " " << res << endl;
- PyGILState_Release(gilstate);
+ PyGILState_Release(gilstate);
return res;
}
@@ -579,7 +579,7 @@ void MANTA::updatePointers(SmokeModifierData *smd)
mFuelInflow = (float*) pointerFromString( getGridPointer("fuel_inflow","s") );
if (smd->domain->active_fields & SM_ACTIVE_HEAT) {
- mHeat = (float*) pointerFromString(getGridPointer("heat", "s") );
+ mHeat = (float*) pointerFromString(getGridPointer("heat", "s") );
}
if (smd->domain->active_fields & SM_ACTIVE_FIRE) {
mFlame = (float*) pointerFromString( getGridPointer("flame", "s") );
diff --git a/intern/mantaflow/intern/strings/smoke.h b/intern/mantaflow/intern/strings/smoke.h
index f13a98d..ed19873 100644
--- a/intern/mantaflow/intern/strings/smoke.h
+++ b/intern/mantaflow/intern/strings/smoke.h
@@ -77,8 +77,7 @@ s.cfl = 4.0\n\
s.timestep = dt0\n\
timings = Timings()\n\
vorticity = $VORTICITY$\n\
-boundaryWidth = 1\n\
-uvs = 2\n";
+boundaryWidth = 1\n";
const string alloc_base_grids_low = "\n\
# prepare grids low\n\
@@ -119,6 +118,7 @@ xl.timestepMax = s.timestepMax\n\
xl.cfl = s.cfl\n\
wltStrength = $WLT_STR$\n\
octaves = 0\n\
+uvs = 2\n\
if upres == 1:\n\
octaves = int(math.log(upres+1)/ math.log(2.0) + 0.5)\n\
elif upres > 1:\n\
@@ -264,7 +264,6 @@ if 'heat' in globals() : del heat\n";
const string del_base_grids_low = "\n\
mantaMsg('Deleting base grids low')\n\
if 'flags' in globals() : del flags\n\
-if 'uvs' in globals() : del uvs\n\
if 'vel' in globals() : del vel\n\
if 'x_vel' in globals() : del x_vel\n\
if 'y_vel' in globals() : del y_vel\n\
@@ -300,15 +299,13 @@ if 'fps' in globals() : del fps\n\
if 'dt0' in globals() : del dt0\n\
if 'vorticity' in globals() : del vorticity\n\
if 'boundaryWidth' in globals() : del boundaryWidth\n\
-if 's' in globals() : del s\n\
if 'timings' in globals() : del timings\n\
if 'using_colors' in globals() : del using_colors\n\
if 'using_heat' in globals() : del using_heat\n\
if 'using_fire' in globals() : del using_fire\n\
if 'last_frame' in globals() : del last_frame\n\
if 'maxvel' in globals() : del maxvel\n\
-if 'gravity' in globals() : del gravity\n\
-if 'uv' in globals() : del uv\n";
+if 'gravity' in globals() : del gravity\n";
const string del_vars_high = "\n\
mantaMsg('Deleting variables high')\n\
@@ -316,6 +313,8 @@ if 'upres' in globals() : del upres\n\
if 'xl_gs' in globals() : del xl_gs\n\
if 'xl' in globals() : del xl\n\
if 'wltStrength' in globals() : del wltStrength\n\
+if 'uvs' in globals() : del uvs\n\
+if 'uv' in globals() : del uv\n\
if 'octaves' in globals() : del octaves\n";
//////////////////////////////////////////////////////////////////////
@@ -379,11 +378,6 @@ def step_low():\n\
mantaMsg('Advecting velocity')\n\
advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=$ADVECT_ORDER$, openBounds=doOpen, boundaryWidth=boundaryWidth)\n\
\n\
- for i in range(uvs):\n\
- mantaMsg('Advecting UV and updating UVWeight')\n\
- advectSemiLagrange(flags=flags, vel=vel, grid=uv[i], order=$ADVECT_ORDER$)\n\
- updateUvWeight(resetTime=16.5 , index=i, numUvs=uvs, uv=uv[i])\n\
- \n\
if doOpen:\n\
resetOutflow(flags=flags, real=density)\n\
mantaMsg('Vorticity')\n\
@@ -405,14 +399,6 @@ def step_low():\n\
\n\
mantaMsg('Pressure')\n\
solvePressure(flags=flags, vel=vel, pressure=pressure)\n\
- \n\
- mantaMsg('Energy')\n\
- computeEnergy(flags=flags, vel=vel, energy=energy)\n\
- \n\
- tempFlag.copyFrom(flags)\n\
- extrapolateSimpleFlags( flags=flags, val=tempFlag, distance=2, flagFrom=FlagObstacle, flagTo=FlagFluid )\n\
- extrapolateSimpleFlags( flags=tempFlag, val=energy, distance=6, flagFrom=FlagFluid, flagTo=FlagObstacle )\n\
- computeWaveletCoeffs(energy)\n\
# TODO: mantaMsg('Forcefield')\n\
# TODO: addForceField(flags=flags, vel=vel, force=forces)\n\
# TODO: forces.clear()\n\
@@ -436,6 +422,20 @@ def update_flame_low():\n\
const string smoke_step_high = "\n\
def step_high():\n\
mantaMsg('Step high')\n\
+ for i in range(uvs):\n\
+ mantaMsg('Advecting UV')\n\
+ advectSemiLagrange(flags=flags, vel=vel, grid=uv[i], order=$ADVECT_ORDER$)\n\
+ mantaMsg('Updating UVWeight')\n\
+ updateUvWeight(resetTime=16.5 , index=i, numUvs=uvs, uv=uv[i])\n\
+ \n\
+ mantaMsg('Energy')\n\
+ computeEnergy(flags=flags, vel=vel, energy=energy)\n\
+ \n\
+ tempFlag.copyFrom(flags)\n\
+ extrapolateSimpleFlags(flags=flags, val=tempFlag, distance=2, flagFrom=FlagObstacle, flagTo=FlagFluid)\n\
+ extrapolateSimpleFlags(flags=tempFlag, val=energy, distance=6, flagFrom=FlagFluid, flagTo=FlagObstacle)\n\
+ computeWaveletCoeffs(energy)\n\
+ \n\
interpolateMACGrid(source=vel, target=xl_vel)\n\
sStr = 1.0 * wltStrength\n\
sPos = 2.0\n\
More information about the Bf-blender-cvs
mailing list