00001
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