Commit: f0058e49803c8923d8871c72df3aa6b16e1b87ee Author: Jens Verwiebe Date: Tue Oct 4 00:03:07 2016 +0200 Branches: fracture_modifier https://developer.blender.org/rBf0058e49803c8923d8871c72df3aa6b16e1b87ee
Fix elbeem omp for msvc =================================================================== M intern/elbeem/intern/solver_main.cpp =================================================================== diff --git a/intern/elbeem/intern/solver_main.cpp b/intern/elbeem/intern/solver_main.cpp index 34bd72e..68f7c04 100644 --- a/intern/elbeem/intern/solver_main.cpp +++ b/intern/elbeem/intern/solver_main.cpp @@ -376,11 +376,11 @@ LbmFsgrSolver::mainLoop(const int lev) // main loop region const bool doReduce = true; const int gridLoopBound=1; - const int gDebugLevel = ::gDebugLevel; - int calcNumInvIfCells = 0; - LbmFloat calcInitialMass = 0; + int calcNumInvIfCells = 0; + LbmFloat calcInitialMass = 0; GRID_REGION_INIT(); #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; #pragma omp parallel default(none) num_threads(mNumOMPThreads) \ reduction(+: \ calcCurrentMass,calcCurrentVolume, \ @@ -611,8 +611,8 @@ LbmFsgrSolver::mainLoop(const int lev) // read distribution funtions of adjacent cells = stream step DEFAULT_STREAM; - if((nbored & CFFluid)==0) { newFlag |= CFNoNbFluid; calcNumInvIfCells++; } - if((nbored & CFEmpty)==0) { newFlag |= CFNoNbEmpty; calcNumInvIfCells++; } + if((nbored & CFFluid)==0) { newFlag |= CFNoNbFluid; calcNumInvIfCells++; } + if((nbored & CFEmpty)==0) { newFlag |= CFNoNbEmpty; calcNumInvIfCells++; } // calculate mass exchange for interface cells LbmFloat myfrac = RAC(ccel,dFfrac); @@ -868,10 +868,8 @@ LbmFsgrSolver::mainLoop(const int lev) // physical drop model if(mPartUsePhysModel) { LbmFloat realWorldFac = (mLevel[lev].simCellSize / mLevel[lev].timestep); - LbmFloat rux = (ux * realWorldFac); - LbmFloat ruy = (uy * realWorldFac); - LbmFloat ruz = (uz * realWorldFac); - LbmFloat rl = norm(ntlVec3Gfx(rux,ruy,ruz)); + LbmVec ru(ux * realWorldFac, uy * realWorldFac, uz * realWorldFac); + LbmFloat rl = norm(ru); basethresh *= rl; // reduce probability in outer region? @@ -963,14 +961,15 @@ LbmFsgrSolver::mainLoop(const int lev) // average normal & velocity // -> mostly along velocity dir, many into surface // fluid velocity (not normalized!) - LbmVec flvelVel = LbmVec(ux,uy,uz); + LbmVec flvelVel(ux,uy,uz); LbmFloat flvelLen = norm(flvelVel); // surface normal - LbmVec normVel = LbmVec(surfaceNormal[0],surfaceNormal[1],surfaceNormal[2]); + LbmVec normVel(surfaceNormal[0],surfaceNormal[1],surfaceNormal[2]); normalize(normVel); LbmFloat normScale = (0.01+flvelLen); // jitter vector, 0.2 * flvel - LbmVec jittVel = LbmVec(jx,jy,jz)*(0.05+flvelLen)*0.1; + LbmVec jittVel(jx,jy,jz); + jittVel *= (0.05+flvelLen)*0.1; // weighten velocities const LbmFloat flvelWeight = 0.9; LbmVec newpartVel = normVel*normScale*(1.-flvelWeight) + flvelVel*(flvelWeight) + jittVel; @@ -1108,8 +1107,8 @@ LbmFsgrSolver::mainLoop(const int lev) mNumFilledCells = calcCellsFilled; mNumEmptiedCells = calcCellsEmptied; mNumUsedCells = calcNumUsedCells; - mNumInvIfCells += calcNumInvIfCells; - mInitialMass += calcInitialMass; + mNumInvIfCells += calcNumInvIfCells; + mInitialMass += calcInitialMass; } @@ -1120,13 +1119,13 @@ LbmFsgrSolver::preinitGrids() const int lev = mMaxRefine; const bool doReduce = false; const int gridLoopBound=0; - const int gDebugLevel = ::gDebugLevel; // preinit both grids for(int s=0; s<2; s++) { GRID_REGION_INIT(); #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; #pragma omp parallel default(none) num_threads(mNumOMPThreads) \ reduction(+: \ calcCurrentMass,calcCurrentVolume, \ @@ -1161,10 +1160,10 @@ LbmFsgrSolver::standingFluidPreinit() const int lev = mMaxRefine; const bool doReduce = false; const int gridLoopBound=1; - const int gDebugLevel = ::gDebugLevel; GRID_REGION_INIT(); #if PARALLEL==1 + const int gDebugLevel = ::gDebugLevel; #pragma omp parallel default(none) num_threads(mNumOMPThreads) \ reduction(+: \ calcCurrentMass,calcCurrentVolume, \ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs