ParMooN
 All Classes Functions Variables Friends Pages
BdNonUniformSpline.h
1 // =======================================================================
2 // @(#)BdNonUniformSpline.h 1.2 07/16/99
3 //
4 // Class: TBdNonUniformSpline
5 // Superclass: TBoundComp
6 // Purpose: spline function as a component of a boundary part
7 //
8 // Author: Volker Behns 18.06.97
9 //
10 // =======================================================================
11 
12 #ifndef __BDNONUNIFORMSPLINE__
13 #define __BDNONUNIFORMSPLINE__
14 
15 #include <BoundComp2D.h>
16 
18 /* determined by 10 parameters;
19  every subspline is presented as X(t), Y(t), t=0..1,
20  X(t) = Params[0]*phi1(t) + Params[2]*phi2(t) +
21  Params[4]*phi3(t) + Params[6]*phi4(t)
22  Y(t) = Params[1]*phi1(t) + Params[3]*phi2(t) +
23  Params[5]*phi3(t) + Params[7]*phi4(t);
24  phi1(0) = 1, phi2(0) = 0, phi3(0) = 0, phi4(0) = 0;
25  phi1(1) = 0, phi2(1) = 1, phi3(1) = 0, phi4(1) = 0;
26  d_phi1(0) = 0, d_phi2(0) = 0, d_phi3(0) = 1, d_phi4(0) = 0;
27  d_phi1(1) = 0, d_phi2(1) = 0, d_phi3(1) = 0, d_phi4(1) = 1;
28  Params[8] = T[i], T=0..1 through the whole spline;
29  Params[9] is not used */
30 
32 {
33  protected:
35  int N_Splines;
37  double *Params;
39  double *Param9;
40 
41  public:
42  // Constuctor
44  TBdNonUniformSpline (int id, int N_Splines);
45  // Destructor
46  ~TBdNonUniformSpline () {delete Params; delete Param9;};
47 
48  // Methods
50  void SetParams (double *params);
52  int GetN_Splines();
54  //double *GetBoundPoints(QuadFormula *formula, int &N_NewPt);
55 
57  virtual int GetXYofT(double T, double &X, double &Y);
58 
60  virtual int GetTofXY(double X, double Y, double &T);
61 
63  virtual int ReadIn(std::ifstream &dat);
64 
66  virtual int GetN_InitVerts()
67  { return 4; }
68  virtual int GenInitVerts(double *&points, int I_points,
69  int *&edges, int I_edges)
70  { return -1; }
71 
73  double GetLocalXofT(int ISpline, double LocalT);
74 
76  double GetLocalYofT(int ISpline, double LocalT);
77 
81  void GenerateParams1(double *x, double *y, double dx0, double dy0, double dx1, double dy1);
82 
86  void Solver_3diag(double *a, double *b, double *c, double *rhs, double *sol);
87 
90  double AdXofT(int ISpline, double LocalT);
92  double AdYofT(int ISpline, double LocalT);
94  double GetLocalDXofT(int ISpline, double LocalT);
96  double GetLocalDYofT(int ISpline, double LocalT);
97 };
98 
99 #endif
virtual int GetXYofT(double T, double &X, double &Y)
Definition: BdNonUniformSpline.C:35
double GetLocalDYofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:326
double AdYofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:290
void GenerateParams1(double *x, double *y, double dx0, double dy0, double dx1, double dy1)
Definition: BdNonUniformSpline.C:142
int GetN_Splines()
Definition: BdNonUniformSpline.C:30
double AdXofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:274
double GetLocalDXofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:307
void SetParams(double *params)
Definition: BdNonUniformSpline.C:24
double * Param9
Definition: BdNonUniformSpline.h:39
double GetLocalXofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:108
Definition: BoundComp2D.h:17
double * Params
Definition: BdNonUniformSpline.h:37
virtual int GetN_InitVerts()
Definition: BdNonUniformSpline.h:66
virtual int ReadIn(std::ifstream &dat)
Definition: BdNonUniformSpline.C:234
Definition: BdNonUniformSpline.h:31
TBdNonUniformSpline(int id, int N_Splines)
Definition: BdNonUniformSpline.C:15
int N_Splines
Definition: BdNonUniformSpline.h:35
void Solver_3diag(double *a, double *b, double *c, double *rhs, double *sol)
Definition: BdNonUniformSpline.C:249
virtual int GetTofXY(double X, double Y, double &T)
Definition: BdNonUniformSpline.C:69
double GetLocalYofT(int ISpline, double LocalT)
Definition: BdNonUniformSpline.C:125