Commit: fe44c97b3771bb42359bc9790489bd40f780939a
Author: Roman Pogribnyi
Date:   Mon Jul 21 16:47:34 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rBfe44c97b3771bb42359bc9790489bd40f780939a

unused plugin files removed

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

D       source/blender/python/manta_pp/source/advection.cpp
D       source/blender/python/manta_pp/source/extforces.cpp
D       source/blender/python/manta_pp/source/initplugins.cpp
D       source/blender/python/manta_pp/source/kepsilon.cpp
D       source/blender/python/manta_pp/source/meshplugins.cpp
D       source/blender/python/manta_pp/source/pressure.cpp
D       source/blender/python/manta_pp/source/vortexplugins.cpp
D       source/blender/python/manta_pp/source/waveletturbulence.cpp

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

diff --git a/source/blender/python/manta_pp/source/advection.cpp 
b/source/blender/python/manta_pp/source/advection.cpp
deleted file mode 100644
index 54e8820..0000000
--- a/source/blender/python/manta_pp/source/advection.cpp
+++ /dev/null
@@ -1,324 +0,0 @@
-/******************************************************************************
- *
- * MantaFlow fluid solver framework
- * Copyright 2011 Tobias Pfaff, Nils Thuerey 
- *
- * This program is free software, distributed under the terms of the
- * GNU General Public License (GPL) 
- * http://www.gnu.org/licenses
- *
- * Plugins for pressure correction:
- * - solve_pressure
- *
- 
******************************************************************************/
-
-#include "../util/vectorbase.h"
-#include "grid.h"
-#include "kernel.h"
-
-using namespace std;
-
-namespace Manta { 
-
-static inline bool isNotFluid(FlagGrid& flags, int i, int j, int k)
-{
-       if ( flags.isFluid(i,j,k)   ) return false;
-       if ( flags.isFluid(i-1,j,k) ) return false; 
-       if ( flags.isFluid(i,j-1,k) ) return false; 
-       if ( flags.is3D() ) {
-               if ( flags.isFluid(i,j,k-1) ) return false;
-       }
-       return true;
-}
-
-//! Semi-Lagrange interpolation kernel
-KERNEL(bnd=1) template<class T> 
-void SemiLagrange (FlagGrid& flags, MACGrid& vel, Grid<T>& dst, Grid<T>& src, 
Real dt, bool isLevelset) 
-{
-       if (flags.isObstacle(i,j,k)) {
-               dst(i,j,k) = 0;
-               return;
-       }
-       if (!isLevelset && isNotFluid(flags,i,j,k) ) {
-               dst(i,j,k) = src(i,j,k);
-               return;
-       }
-       
-       // SL traceback
-       Vec3 pos = Vec3(i+0.5f,j+0.5f,k+0.5f) - vel.getCentered(i,j,k) * dt;
-       dst(i,j,k) = src.getInterpolated(pos);
-}
-
-static inline bool isNotFluidMAC(FlagGrid& flags, int i, int j, int k)
-{
-       if ( flags.isFluid(i,j,k)   ) return false;
-       return true;
-}
-
-//! Semi-Lagrange interpolation kernel for MAC grids
-KERNEL(bnd=1)
-void SemiLagrangeMAC(FlagGrid& flags, MACGrid& vel, MACGrid& dst, MACGrid& 
src, Real dt) 
-{
-       if (flags.isObstacle(i,j,k)) {
-               dst(i,j,k) = 0;
-               return;
-       }
-       if ( isNotFluidMAC(flags,i,j,k) ) {
-               dst(i,j,k) = src(i,j,k);
-               return;
-       }
-       
-       // get currect velocity at MAC position
-       // no need to shift xpos etc. as lookup field is also shifted
-       Vec3 xpos = Vec3(i+0.5f,j+0.5f,k+0.5f) - vel.getAtMACX(i,j,k) * dt;
-       Real vx = src.getInterpolatedComponent<0>(xpos);
-       Vec3 ypos = Vec3(i+0.5f,j+0.5f,k+0.5f) - vel.getAtMACY(i,j,k) * dt;
-       Real vy = src.getInterpolatedComponent<1>(ypos);
-       Vec3 zpos = Vec3(i+0.5f,j+0.5f,k+0.5f) - vel.getAtMACZ(i,j,k) * dt;
-       Real vz = src.getInterpolatedComponent<2>(zpos);
-       
-       dst(i,j,k) = Vec3(vx,vy,vz);
-}
-
-//! Kernel: Correct based on forward and backward SL steps (for both centered 
& mac grids)
-KERNEL(idx) template<class T> 
-void MacCormackCorrect(FlagGrid& flags, Grid<T>& dst, Grid<T>& old, Grid<T>& 
fwd,  Grid<T>& bwd, 
-                                          Real strength, bool isLevelSet, bool 
isMAC=false )
-{
-       // note, replacement for isNotFluidMAC and isNotFluid
-       bool skip = false;
-
-       if (!flags.isFluid(idx)) skip = true;
-       if(!isMAC) {
-       if( (idx>=flags.getStrideX()) &&        
(!flags.isFluid(idx-flags.getStrideX()) )) skip = true; 
-       if( (idx>=flags.getStrideY()) &&        
(!flags.isFluid(idx-flags.getStrideY()) )) skip = true; 
-       if ( flags.is3D() ) {
-               if( (idx>=flags.getStrideZ()) 
&&(!flags.isFluid(idx-flags.getStrideZ()) )) skip = true;
-       } }
-       if ( skip ) {
-               dst[idx] = isLevelSet ? fwd[idx] : (T)0.0;
-               return;
-       }
-       
-       // note, strenth of correction can be modified here
-       dst[idx] = fwd[idx] + strength * 0.5 * (old[idx] - bwd[idx]);
-}
-
-// Helper to collect min/max in a template
-template<class T> inline void getMinMax(T& minv, T& maxv, const T& val) {
-       if (val < minv) minv = val;
-       if (val > maxv) maxv = val;
-}
-template<> inline void getMinMax<Vec3>(Vec3& minv, Vec3& maxv, const Vec3& 
val) {
-       getMinMax(minv.x, maxv.x, val.x);
-       getMinMax(minv.y, maxv.y, val.y);
-       getMinMax(minv.z, maxv.z, val.z);
-}
-
-       
-//! Helper function for clamping non-mac grids
-template<class T>
-inline T doClampComponent(const Vec3i& upperClamp, Grid<T>& orig, T dst, const 
Vec3i& posFwd) {
-       // clamp forward lookup to grid
-       const int i0 = clamp(posFwd.x, 0, upperClamp.x-1);
-       const int j0 = clamp(posFwd.y, 0, upperClamp.y-1);
-       const int k0 = clamp(posFwd.z, 0, (orig.is3D() ? (upperClamp.z-1) : 1) 
);
-       const int i1 = i0+1, j1 = j0+1, k1= (orig.is3D() ? (k0+1) : k0);
-       
-       if (!orig.isInBounds(Vec3i(i0,j0,k0),1)) {
-       return dst;
-       }
-
-               // find min/max around fwd pos
-               T minv = orig(i0,j0,k0), maxv = minv;
-               getMinMax(minv, maxv, orig(i1,j0,k0));
-               getMinMax(minv, maxv, orig(i0,j1,k0));
-               getMinMax(minv, maxv, orig(i1,j1,k0));
-               getMinMax(minv, maxv, orig(i0,j0,k1));
-               getMinMax(minv, maxv, orig(i1,j0,k1));
-               getMinMax(minv, maxv, orig(i0,j1,k1));
-               getMinMax(minv, maxv, orig(i1,j1,k1)); 
-               
-               // write clamped value
-               return clamp(dst, minv, maxv);
-}
-       
-//! Helper function for clamping MAC grids
-template<int c> 
-inline Real doClampComponentMAC(const Vec3i& upperClamp, MACGrid& orig, Real 
dst, const Vec3i& posFwd) {
-       // clamp forward lookup to grid
-       const int i0 = clamp(posFwd.x, 0, upperClamp.x-1);
-       const int j0 = clamp(posFwd.y, 0, upperClamp.y-1);
-       const int k0 = clamp(posFwd.z, 0, (orig.is3D() ? (upperClamp.z-1) : 1) 
);
-       const int i1 = i0+1, j1 = j0+1, k1= (orig.is3D() ? (k0+1) : k0);
-       if (!orig.isInBounds(Vec3i(i0,j0,k0),1)) 
-               return dst;
-       
-       // find min/max around fwd pos
-       Real minv = orig(i0,j0,k0)[c], maxv = minv;
-       getMinMax(minv, maxv, orig(i1,j0,k0)[c]);
-       getMinMax(minv, maxv, orig(i0,j1,k0)[c]);
-       getMinMax(minv, maxv, orig(i1,j1,k0)[c]);
-       getMinMax(minv, maxv, orig(i0,j0,k1)[c]);
-       getMinMax(minv, maxv, orig(i1,j0,k1)[c]);
-       getMinMax(minv, maxv, orig(i0,j1,k1)[c]);
-       getMinMax(minv, maxv, orig(i1,j1,k1)[c]);
-       
-       return clamp(dst, minv, maxv);    
-}
-
-//! Kernel: Clamp obtained value to min/max in source area, and reset values 
that point out of grid or into boundaries
-//          (note - MAC grids are handled below)
-KERNEL(bnd=1) template<class T>
-void MacCormackClamp(FlagGrid& flags, MACGrid& vel, Grid<T>& dst, Grid<T>& 
orig, Grid<T>& fwd, Real dt)
-{
-       if (flags.isObstacle(i,j,k))
-               return;
-       if ( isNotFluid(flags,i,j,k) ) {
-               dst(i,j,k) = fwd(i,j,k);
-               return;
-       }
-
-       T     dval       = dst(i,j,k);
-       Vec3i upperClamp = flags.getSize() - 1;
-       
-       // lookup forward/backward
-       Vec3i posFwd = toVec3i( Vec3(i,j,k) - vel.getCentered(i,j,k) * dt );
-       Vec3i posBwd = toVec3i( Vec3(i,j,k) + vel.getCentered(i,j,k) * dt );
-       
-       dval = doClampComponent<T>(upperClamp, orig, dval, posFwd );
-       
-       // test if lookups point out of grid or into obstacle
-       if (posFwd.x < 0 || posFwd.y < 0 || posFwd.z < 0 ||
-               posBwd.x < 0 || posBwd.y < 0 || posBwd.z < 0 ||
-               posFwd.x > upperClamp.x || posFwd.y > upperClamp.y || 
((posFwd.z > upperClamp.z)&&flags.is3D()) ||
-               posBwd.x > upperClamp.x || posBwd.y > upperClamp.y || 
((posBwd.z > upperClamp.z)&&flags.is3D()) ||
-               flags.isObstacle(posFwd) || flags.isObstacle(posBwd) ) 
-       {        
-               dval = fwd(i,j,k);
-       }
-       dst(i,j,k) = dval;
-}
-
-//! Kernel: same as MacCormackClamp above, but specialized version for MAC 
grids
-KERNEL(bnd=1) 
-void MacCormackClampMAC (FlagGrid& flags, MACGrid& vel, MACGrid& dst, MACGrid& 
orig, MACGrid& fwd, Real dt)
-{
-       if (flags.isObstacle(i,j,k))
-               return;
-       if ( isNotFluidMAC(flags,i,j,k) ) {
-               dst(i,j,k) = fwd(i,j,k);
-               return;
-       }
-       
-       Vec3  pos(i,j,k);
-       Vec3  dval       = dst(i,j,k);
-       Vec3i upperClamp = flags.getSize() - 1;
-       
-       // get total fwd lookup
-       Vec3i posFwd = toVec3i( Vec3(i,j,k) - vel.getCentered(i,j,k) * dt );
-       Vec3i posBwd = toVec3i( Vec3(i,j,k) + vel.getCentered(i,j,k) * dt );
-       
-       // clamp individual components
-       dval.x = doClampComponentMAC<0>(upperClamp, orig, dval.x, toVec3i( pos 
- vel.getAtMACX(i,j,k) * dt) );
-       dval.y = doClampComponentMAC<1>(upperClamp, orig, dval.y, toVec3i( pos 
- vel.getAtMACY(i,j,k) * dt) );
-       dval.z = doClampComponentMAC<2>(upperClamp, orig, dval.z, toVec3i( pos 
- vel.getAtMACZ(i,j,k) * dt) );
-       
-       // test if lookups point out of grid or into obstacle
-       if (posFwd.x < 0 || posFwd.y < 0 || posFwd.z < 0 ||
-               posBwd.x < 0 || posBwd.y < 0 || posBwd.z < 0 ||
-               posFwd.x > upperClamp.x || posFwd.y > upperClamp.y || 
((posFwd.z > upperClamp.z)&&flags.is3D()) ||
-               posBwd.x > upperClamp.x || posBwd.y > upperClamp.y || 
((posBwd.z > upperClamp.z)&&flags.is3D()) 
-               //|| flags.isObstacle(posFwd) || flags.isObstacle(posBwd)  // 
note - this unfortunately introduces asymmetry... TODO update
-               ) 
-       {        
-               dval = fwd(i,j,k);
-       }
- 
-       // writeback
-       dst(i,j,k) = dval;
-}
-
-//! template function for performing SL advection
-template<class GridType> 
-void fnAdvectSemiLagrange(FluidSolver* parent, FlagGrid& flags, MACGrid& vel, 
GridType& orig, int order, Real strength) {
-       typedef typename GridType::BASETYPE T;
-       
-       Real dt = parent->getDt();
-       bool levelset = orig.getType() & GridBase::TypeLevelset;
-       
-       // forward step
-       GridType fwd(parent);
-       SemiLagrange<T> (flags, vel, fwd, orig, dt, levelset);
-       
-       if (order == 1) {
-               orig.swap(fwd);
-       }
-       else if (order == 2) { // MacCormack
-               GridType bwd(parent);
-               GridType newGrid(parent);
-       
-               // bwd <- backwards step
-               SemiLagrange<T> (flags, vel, bwd, fwd, -dt, levelset);
-               
-               // newGrid <- compute correction
-               MacCormackCorrect<T> (flags, newGrid, orig, fwd, bwd, strength, 
levelset);
-               
-               // clamp values
-               MacCormackClamp<T> (flags, vel, newGrid, orig, fwd, dt);
-               
-               orig.swap(newGrid);
-       }
-}
-
-//! template function for performing SL advection: specialized version for MAC 
grids
-template<> 
-void fnAdvectSemiLagrange<MACGrid>(FluidSolver* parent, FlagGrid& flags, 
MACGrid& vel, MACGrid& orig, int order, Real strength) {
-       Real dt = parent->getDt();
-       
-       // forward step
-       MACGrid fwd(parent);    
-       SemiLagrangeMAC (flags, vel, fwd, orig, dt);
-       
-       if (order == 1) {
-               orig.swap(fwd);
-       }
-       else if (order == 2) { // MacCormack
-               MACGrid bwd(parent);
-               MACGrid newGrid(parent);
-               
-               // bwd <- backwards step
-               SemiLagrangeMAC (flags, vel, bwd, fwd, -dt);
-               
-               // newGrid <- compute correction
-               MacCormackCorrect<Vec3> (flags, newGrid, orig, fwd, bwd, 
strength, false, true);
-               
-               // clamp values
-               MacCormackClampMAC (flags, vel, newGrid, ori

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to