NodeSmoothingMod.h
1 /******************************************************************************
2 
3  (c) 2004-2014 Scientific Computation Research Center,
4  Rensselaer Polytechnic Institute. All rights reserved.
5 
6  The LICENSE-SCOREC file included with this distribution describes the terms
7  of the SCOREC Non-Commercial License this program is distributed under.
8 
9 *******************************************************************************/
10 #ifndef NODESMOOTHINGMOD_H_
11 #define NODESMOOTHINGMOD_H_
12 
13 /*
14  This is the high-order node smoothing class
15  This class now applies laplacian smoothing algrothm
16  Input would be an edge since nodes are associated with edges
17 */
18 
19 #include "LocMeshMod.h"
20 
21 class NodeSmoothingMod: public locMeshMod
22 {
23  public:
25 
26  NodeSmoothingMod(pPart p, pSField mf, modelType mt): locMeshMod(p,mf,0,0,mt)
27  {
28  m_target_location[0] = 0.0;
29  m_target_location[1] = 0.0;
30  m_target_location[2] = 0.0;
31  }
32 
34  {
35 
36  }
37 
38  /* the common local modification interface */
39  virtual int topoCheck();
40  virtual int geomCheck();
41  virtual int sizeCheck();
42  virtual void getAffectedRgns(pumi::pPList *);
43  virtual int apply();
44  virtual int apply(pumi::pPList *) {return 0;} // dummy function
45  virtual modType type() { return MOTION; }
46 
47  /* procedures that are specific to smoothing mod */
48  void setEdge(pMeshEdge inputEdge) { m_edge = inputEdge; }
49 
50  private:
51 
52  /* data member */
53 
54  // the edge with node
55  pMeshEnt m_edge;
56 
57  // target location
58  double m_target_location[3];
59 
60 };
61 
62 #endif//NODESMOOTHINGMOD_H_
63 
64 
Definition: NodeSmoothingMod.h:21