CrvTriBlending.h
Go to the documentation of this file.
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 
16 #ifndef CURVEMESHADAPT_CRVTRIBLENDING_H_
17 #define CURVEMESHADAPT_CRVTRIBLENDING_H_
18 
19 #include "CrvFace.h"
20 #include "CrvEdge.h"
21 
24 class CrvTriBlending : public CrvFace {
25  public:
28  CrvTriBlending(pMeshEnt in_face);
31  CrvTriBlending(VtxPtrVec in_vert_vec);
35  clear_edges();
36  }
37 
38  int eval(double u, double v, double * pos);
39 
40  int v_data_size() const {
41  return 0;
42  }
43 
44  std::string v_tag_name() const {
45  return std::string( "crv_tri_blending" );
46  }
47 
48  int eval_deriv1(double in_xi_1,
49  double in_xi_2,
50  Point3d & dxyz_dxi1,
51  Point3d & dxyz_dxi2);
52 
53 
54  protected:
55 
56  private:
58  int setup_verts();
59 
61  int setup_edges();
62 
64  int clear_edges();
65 
67  void eval_diff_fd(double in_xi1,
68  double in_xi2,
69  Point3d & dxyz_dxi1,
70  Point3d & dxyz_dxi2);
71 
73  void eval_diff_analytic(double in_xi1,
74  double in_xi2,
75  Point3d & dxyz_dxi1,
76  Point3d & dxyz_dxi2);
77 
79  void eval_diff_analytic_c2(double in_xi1,
80  double in_xi2,
81  Point3d & dxyz_dxi1,
82  Point3d & dxyz_dxi2);
83 
85  Point3d m_vertex_100;
86  Point3d m_vertex_010;
87  Point3d m_vertex_001;
88  CrvEdgePtr m_edge_P;
89  CrvEdgePtr m_edge_Q;
90  CrvEdgePtr m_edge_R;
91 };
92 
93 #endif // CURVEMESHADAPT_CRVTRIBLENDING_H_
CrvTriBlending(pMeshEnt in_face)
ctor 1
Definition: CrvTriBlending.cc:23
The class of curved triangular faces using bounding edges and blending functions. ...
Definition: CrvTriBlending.h:24
void eval_diff_fd(double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
eval first derivatives by forward differencing
Definition: CrvTriBlending.cc:138
void eval_diff_analytic(double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
eval first derivatives by analytic expressions
Definition: CrvTriBlending.cc:186
int setup_edges()
this functions allocates memory
Definition: CrvTriBlending.cc:80
int clear_edges()
this function frees memory
Definition: CrvTriBlending.cc:84
Point3d m_vertex_100
pointers to the mesh entities
Definition: CrvTriBlending.h:85
void eval_diff_analytic_c2(double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
eval first derivatives by analytic expressions
Definition: CrvTriBlending.cc:241
~CrvTriBlending()
dtor
Definition: CrvTriBlending.h:34
int eval(double u, double v, double *pos)
evaluate w.r.t. the barycentric/area coordinates
Definition: CrvTriBlending.cc:91
abstract class representing curved mesh face
Definition: CrvFace.h:32
int setup_verts()
set up the corresponding vertex and edges
Definition: CrvTriBlending.cc:60