ParMooN
 All Classes Functions Variables Friends Pages
FreeSurface2D.h
1 #ifdef __2D__
2 
3 #include <MultiGrid2D.h>
4 
5 // ====================================================================
6 // solve grid equation -To be copied to freesurface2d.h
7 // ====================================================================
8 void SolveGridEquation(double **Entries, double *sol, double *rhs,
9  int *KCol, int *RowPtr, int N_DOF);
10 
11 void Solver_3dia(int N_Splines, double *a, double *b, double *c,
12  double *rhs, double *sol);
13 
14 // ====================================================================
15 // modify matrices and rhs due to integrals on free surface
16 // ====================================================================
17 void FreeSurfInt(TSquareMatrix2D *A11, TSquareMatrix2D *A12,
19  double *rhs1, double *rhs2,
20  BoundCondFunct2D *BoundaryCondition,
21  double dt, double factor);
22 
23 // ====================================================================
24 // determine grid velocity in whole domain
25 // ====================================================================
26 void GetGridVelocity(TMultiGrid2D *GridMG, TFEVectFunct2D *GridPos,
27  TFEVectFunct2D *AuxGridPos,
28  double *Nx, double *Ny,
29  TFEVectFunct2D *Velocity, double dt,
30  TFEVectFunct2D *GridVelocity);
31 
32 // ====================================================================
33 // determine new grid position
34 // ====================================================================
35 void MoveGrid(TMultiGrid2D *GridMG, TFEVectFunct2D *GridPos,
36  double *IsoX, double *IsoY,
37  double *Nx, double *Ny,
38  TFEVectFunct2D *Velocity, double dt,
39  TFEVectFunct2D *NewGridPos,
40  double *NewIsoX, double *NewIsoY,
41  TFEVectFunct2D *GridVelocity);
42 
43 void GetGridVelocity(double **Entries, double *Sol, double *Rhs,
44  int *KCol, int *RowPtr,
45  TFEVectFunct2D *GridPos,
46  TFEVectFunct2D *AuxGridPos,
47  TFEVectFunct2D *Velocity, double dt,
48  TFEVectFunct2D *GridVelocity, int *Velo_CellNo);
49 
50 void GetGridVelo_outer(double **Entries, double *Sol, double *Rhs,
51  int *KCol, int *RowPtr,
52  TFEVectFunct2D *GridPos,
53  TFEVectFunct2D *AuxGridPos,
54  TFEVectFunct2D *Velocity, double dt,
55  TFEVectFunct2D *GridVelocity, int *Velo_CellNo);
56 
57 void MoveGrid_2Phase(double **Entries, double *Sol, double *Rhs,
58  int *KCol, int *RowPtr,
59  TFEVectFunct2D *GridPos,
60  TFEVectFunct2D *NewGridPos,
61  TFEVectFunct2D *Velocity, double dt,
62  int *Velo_CellNo, int isoupdate);
63 
65 void Getcellangle(TFESpace2D *Space, double *MinMaxAngle);
66 
67 double Volume(TFESpace2D *FESpace);
68 
69 void ReParametrize_pts(int &N_Edges, TBaseCell **cell, int *EdgeNo, double h_min, double **FreePts);
70 
71 void IntUn(TFEVectFunct2D *u, double *Nx, double *Ny);
72 
73 #endif
Definition: SquareMatrix2D.h:20
Definition: FESpace2D.h:28
Definition: MultiGrid2D.h:21
Definition: FEVectFunct2D.h:23
information for finite element data structure
Definition: BaseCell.h:25