Public Member Functions | Private Member Functions | Private Attributes | List of all members
CrvTriBlending Class Reference

The class of curved triangular faces using bounding edges and blending functions. More...

#include <CrvTriBlending.h>

Inheritance diagram for CrvTriBlending:
Inheritance graph
[legend]
Collaboration diagram for CrvTriBlending:
Collaboration graph
[legend]

Public Member Functions

 CrvTriBlending (pMeshEnt in_face)
 ctor 1
 
 CrvTriBlending (VtxPtrVec in_vert_vec)
 ctor 2
 
 ~CrvTriBlending ()
 dtor
 
int eval (double u, double v, double *pos)
 evaluate w.r.t. the barycentric/area coordinates
 
int v_data_size () const
 
std::string v_tag_name () const
 
int eval_deriv1 (double in_xi_1, double in_xi_2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
 
- Public Member Functions inherited from CrvFace
 CrvFace (pMeshEnt in_face)
 
 CrvFace (VtxPtrVec in_vert_vec)
 
virtual ~CrvFace ()
 dtor
 
int display (std::ostream &file, int in_sample_pts)
 Function to display the curve edge by sampling edge points.
 
int v_ent_type () const
 returns entity type representing a mesh face
 
double interp_error ()
 measuring the approximation error of the mesh face to the actual geometric model face
 
void dxi_deta (const Point2d in_eta, Mat2x2 &out_dxi_deta)
 evaluate first derivative of coord transformation
 
void eval_deriv1_by_eta (const Point2d in_eta, Point3d &out_dxyz_deta1, Point3d &out_dxyz_deta2)
 evaluate Jacobian of the mapping with respect to
 
- Public Member Functions inherited from CrvEnt
 CrvEnt (pMeshEnt in_mesh_ent)
 ctor More...
 
 CrvEnt (VtxPtrVec in_vert_vec)
 ctor More...
 
virtual ~CrvEnt ()
 dtor
 
void get_xi_by_eta (Point3d in_eta, Point3d &out_xi)
 evaluate barycentric coordinates given the standard coordinates More...
 
void get_eta_by_ceta (Point3d in_ceta, Point3d &out_eta)
 evaluate standard coordinates given the collapsed/tensor coordinates More...
 
void get_xi_by_ceta (Point3d in_ceta, Point3d &out_xi)
 evaluate barycentric coordinates given the collapsed/tensor coordinates More...
 
void eval_by_xi (Point3d in, Point3d &out)
 evaluate xyz by barycentric coordinates More...
 
void eval_by_eta (Point3d in, Point3d &out)
 evaluate xyz by standard cartesian coordinates More...
 
void eval_by_coll_eta (Point3d in, Point3d &out)
 evaluate xyz by collapsed/tensor coordinates More...
 
void diff_by_xi (Point3d in, Mat3x3 &out)
 evaluate dxyz/dxi, return all derivs in a matrix form More...
 
void diff_by_xi (Point3d in, int j, Point3d &out)
 evaluate dxyz/dxi_j, return derivs in one direction More...
 
void diff_by_eta (Point3d in, Mat3x3 &out)
 evaluate derivatives w.r.t. standard cartesian coordinates More...
 
void diff_by_eta (Point3d in, int j, Point3d &out)
 evaluate derivatives w.r.t. standard cartesian coordinates in one direction More...
 
void set_id (int i)
 sets entity id
 
int get_id ()
 gets entity id
 
int get_exp_dim ()
 return dimension in xi or eta
 
int get_coord_dim ()
 return coordinate dimension in xyz
 
pMeshEnt get_vertex (int i)
 return the ith bounding vertex of the mesh entity More...
 
int ent_type ()
 return the topological entity type. 0 – vertex, 1 – edge, 2 – face, 3 – region
 
int data_size ()
 return the number of doubles associated with the current mesh entity
 
std::string tag_name ()
 return the name string of the data
 
int save_nodal_data_to_mesh (double *in_data)
 save the data to the underlying mesh database
 
int load_nodal_data_from_mesh (double **out_data)
 fetch data from mesh database
 
bool has_data ()
 return whether the entity has high-order shape data
 
bool edge_on_model_bdry (pMeshEnt vtx0, pMeshEnt vtx1)
 return whether the mesh edge is classified on model edge or face
 
bool face_on_model_bdry (pMeshEnt vtx0, pMeshEnt vtx1, pMeshEnt vtx2)
 return whether the mesh face is classified on model face
 

Private Member Functions

int setup_verts ()
 set up the corresponding vertex and edges
 
int setup_edges ()
 this functions allocates memory
 
int clear_edges ()
 this function frees memory
 
void eval_diff_fd (double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
 eval first derivatives by forward differencing
 
void eval_diff_analytic (double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
 eval first derivatives by analytic expressions
 
void eval_diff_analytic_c2 (double in_xi1, double in_xi2, Point3d &dxyz_dxi1, Point3d &dxyz_dxi2)
 eval first derivatives by analytic expressions
 

Private Attributes

Point3d m_vertex_100
 pointers to the mesh entities
 
Point3d m_vertex_010
 
Point3d m_vertex_001
 
CrvEdgePtr m_edge_P
 
CrvEdgePtr m_edge_Q
 
CrvEdgePtr m_edge_R
 

Additional Inherited Members

- Protected Member Functions inherited from CrvFace
virtual void v_eval_by_xi (Point3d in, Point3d &out)
 
virtual void v_eval_by_eta (Point3d in, Point3d &out)
 evaluate mapping given input in Standard Cartesian Coords
 
virtual void v_eval_by_coll_eta (Point3d in, Point3d &out)
 evaluate mapping given input in Local tensor/collapsed Coords
 
virtual void v_diff_by_xi (Point3d in, Mat3x3 &out)
 
virtual void v_diff_by_xi (Point3d in, int j, Point3d &out)
 
virtual void v_diff_by_eta (Point3d in, Mat3x3 &out)
 
virtual void v_diff_by_eta (Point3d in, int j, Point3d &out)
 
virtual int v_get_exp_dim ()
 expansion dimension for face is set to be 2
 
- Protected Member Functions inherited from CrvEnt
virtual int v_get_coord_dim ()
 all curved entities are assumed to be embeded in 3D space
 
pMeshEnt get_mesh_ent ()
 get the mesh entity
 
void set_mesh_ent (pMeshEnt in_ent)
 set the mesh entity
 
- Protected Attributes inherited from CrvFace
CrvEdgePtrVec m_crvedges
 a vector of edges bounding this face, ordered by the vertices order defined as: edge 0 -> v0, v1 edge 1 -> v1, v2 edge 2 -> v2, v0
 
pTriGeom m_geom
 pointer to geometry shape object
 
- Protected Attributes inherited from CrvEnt
VtxPtrVec m_vert_vec
 ordered set of mesh vertices
 
pMeshEnt m_mesh_ent
 topological mesh entity
 
std::vector< Point3d > m_ctrl_pt_vec
 container used to store the control point values
 

Detailed Description

The class of curved triangular faces using bounding edges and blending functions.


The documentation for this class was generated from the following files: