UltraScan III
us_stiffbase.h
Go to the documentation of this file.
1 #ifndef US_STIFFBASE_H
3 #define US_STIFFBASE_H
4 
5 #include "us_extern.h"
6 
8 #define uint unsigned int
9 
12 {
13  public:
15  US_StiffBase();
16 
18  ~US_StiffBase();
19 
21  class Gauss2D
22  {
23  public:
24  double x;
25  double y;
26  double w;
27  };
28 
35  void CompLocalStif( int, double [4][2], double, double, double** );
36 
37  private:
38  // parameters for triangular elements
39  int n_gaussT; // number of Gauss pts for numerical quadrature
40  int n_basisT; // number of basis functions, =4 for linear quad elem
41  Gauss2D* xgT; // list of all Gauss pts and weights
42  double** phiT; // all basis functions at Gauss pts
43  double** phiT1; // xi -derivative of all basis functions at Gauss pts
44  double** phiT2; // eta-derivative of all basis functions at Gauss pts
45 
46  // parameters for quadrilateral elements
47  int n_gaussQ; // number of Gauss pts for numerical quadrature
48  int n_basisQ; // number of basis functions, =4 for linear quad elem
49  Gauss2D* xgQ; // list of all Gauss pts and weights
50  double** phiQ; // all basis functions at Gauss pts
51  double** phiQ1; // xi -derivative of all basis functions at Gauss pts
52  double** phiQ2; // eta-derivative of all basis functions at Gauss pts
53 
54  void LambdaG( uint, double, double, double, Gauss2D* );
55  void SetGauss( void );
56 
57  // map a Gauss point (gauss_ind) in standard elem to real elem (*x)
58  void AffineMapping( int, double [4][2], int, double [5] ) ;
59 
60  // Jacobian d_xi/d_x of the mapping at the Gauss pts (gauss_ind)
61  void Jacobian( int, double [4][2], int, double [5] );
62 
63  // compute all basis functions and their derivatives at Gauss pts
64  void LinearBasis( void );
65 };
66 #endif
67