vtf-logo

laplacian.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00008 #if !defined(__geom_mesh_simplicial_laplacian_h__)
00009 #define __geom_mesh_simplicial_laplacian_h__
00010 
00011 #include "SimpMeshRed.h"
00012 #include "geometry.h"
00013 
00014 #include "../iss/ISS_SignedDistance.h"
00015 
00016 #include <set>
00017 
00018 BEGIN_NAMESPACE_GEOM
00019 
00020 //-----------------------------------------------------------------------------
00024 
00026 
00029 template<int N, int M, typename T,
00030          template<class> class Node,
00031          template<class> class Cell,
00032          template<class,class> class Cont>
00033 void
00034 applyLaplacianAtNode(SimpMeshRed<N,M,T,Node,Cell,Cont>* mesh,
00035                      typename SimpMeshRed<N,M,T,Node,Cell,Cont>::
00036                      NodeIterator node);
00037 
00038 
00040 
00043 template<int N, typename T,
00044          template<class> class Node,
00045          template<class> class Cell,
00046          template<class,class> class Cont,
00047          class NodeIterInIter>
00048 void
00049 applyLaplacian(SimpMeshRed<N,N,T,Node,Cell,Cont>* mesh,
00050                NodeIterInIter begin, NodeIterInIter end, int numSweeps = 1);
00051 
00052 
00054 
00057 template<int N, typename T,
00058          template<class> class Node,
00059          template<class> class Cell,
00060          template<class,class> class Cont>
00061 void
00062 applyLaplacian(SimpMeshRed<N,N,T,Node,Cell,Cont>* mesh, int numSweeps = 1);
00063 
00064 
00066 
00069 template<int N, typename T,
00070          template<class> class Node,
00071          template<class> class Cell,
00072          template<class,class> class Cont,
00073          class BoundaryCondition>
00074 void
00075 applyLaplacian(SimpMeshRed<N,N,T,Node,Cell,Cont>* mesh,
00076                const BoundaryCondition& condition,
00077                T minAngle, int numSweeps);
00078 
00079 
00081 
00084 template<int M, typename T,
00085          template<class> class Node,
00086          template<class> class Cell,
00087          template<class,class> class Cont,
00088          class LevelSet, class NodeIterInIter>
00089 void
00090 applyLaplacian(SimpMeshRed<M+1,M,T,Node,Cell,Cont>* mesh,
00091                const LevelSet& levelSet,
00092                NodeIterInIter begin, NodeIterInIter end, int numSweeps = 1);
00093 
00095 
00096 END_NAMESPACE_GEOM
00097 
00098 #define __geom_mesh_simplicial_laplacian_ipp__
00099 #include "laplacian.ipp"
00100 #undef __geom_mesh_simplicial_laplacian_ipp__
00101 
00102 #endif

Generated on Fri Aug 24 12:55:55 2007 for Computational Geometry Package by  doxygen 1.4.7