ParMooN
 All Classes Functions Variables Friends Pages
RKV_FDM.h
1 #ifndef __RKV_FDM__
2 #define __RKV_FDM__
3 
4 
5 #ifdef __2D__
6 void Compute_DOF_Conversion_Q1_FDM_UnitSquare2D(TCollection *coll,
7 TFEFunction2D *fesol, int N_x, int N_y, double h,
8 int* &dof_conversion, double* &x_coord, double * &y_coord);
9 
10 void Compute_DOF_Conversion_Q1_FDM_Rectangle2D(TCollection *coll,
11 TFEFunction2D *fesol, int &N_x, int &N_y,
12 int* &dof_conversion, double* &x_coord, double* &y_coord);
13 
14 void ComputeStages_FDM2D(int dim, CoeffFct2D *Coeffs, BoundCondFunct2D *bound_cond,
15  BoundValueFunct2D *bound_val,
16  double *sol, double **stages, int current_stage, int N_x, int N_y,
17  int *dof_conversion, double *x_coord, double *y_coord);
18 
19 void SetBoundaryConditions_FDM2D(BoundCondFunct2D *bound_cond,
20  BoundValueFunct2D *bound_val,
21  double *sol, int N_x, int N_y,
22  int *dof_conversion,
23  double *x_coord, double *y_coord);
24 
25 void CheckAdaptiveCriterion(double *sol, int &N_x, int &N_y, int &N_Unknowns,
26  double *x_coord, double *y_coord, double *aux_adaptive, double mesh_size);
27 
28 void WriteGnuplotFDM(const char *name, double *sol, double *x_coord,
29  double *y_coord, int N_x, int N_y);
30 
31 void WriteVTKFDM(const char *name, double *sol, double *x_coord,
32  double *y_coord, int N_x, int N_y);
33 #endif
34 
35 void GradeMesh(int &N_x, double *x, double *h);
36 
37 #ifdef __3D__
38 void Compute_DOF_Conversion_Q1_FDM_UnitCube3D(TCollection *coll,
39  TFEFunction3D *fesol, int N_x, int N_y, int N_z, double h,
40  int* &dof_conversion, double* &x_coord, double * &y_coord, double* &z_coord);
41 
42 void CheckAdaptiveCriterion(double *sol, int &N_x, int &N_y, int &N_z, int &N_Unknowns,
43  double *x_coord, double *y_coord, double *z_coord,
44  double *aux_adaptive);
45 
46 void ComputeStages_FDM3D(int dim, CoeffFct3D *Coeffs, BoundCondFunct3D *bound_cond,
47  BoundValueFunct3D *bound_val,
48  double *sol, double **stages, int current_stage, int N_x, int N_y, int N_z,
49  int *dof_conversion, double *x_coord, double *y_coord, double *z_coord);
50 
51 void SetBoundaryConditions_FDM3D(BoundCondFunct3D *bound_cond,
52  BoundValueFunct3D *bound_val,
53  double *sol, int N_x, int N_y, int N_z,
54  int *dof_conversion,
55  double *x_coord, double *y_coord, double *z_coord);
56 
57 
58 void WriteVTKFDM(const char *name, double *sol, double *x_coord,
59  double *y_coord, double *z_coord, int N_x, int N_y, int N_z);
60 #endif
61 
62 void FEM2FDM(int N, double *fem_array, double *fdm_array, int *dof_conversion);
63 
64 void FDM2FEM(int N, double *fdm_array, double *fem_array, int *dof_conversion);
65 
66 void ComputeSolutionInNextTime_FDM2D(double *sol, double *sol_e, double **stages, int N_stages,
67  int N_x, int N_y, int N_z); //mlh
68 void ComputeNewStepsize(double *sol, double *sol_e, double *sol_old, int N2, double *err, double *steps_old, int *m, bool *acc, int N_x, int *disc); //mlh
69 
70 void ConvectiveTermFDM(int dim, int i,
71  double *coeff, double *sol_curr, double *current_stage_fdm,
72  double **coordinates, int *offset_, int *offset1_);
73 
74 void InitializeConvectiveTermFDM(int dim, int* &offset_, int* &offset1_, int *N1_);
75 
76 void ClearConvectiveTermFDM(int* &offset);
77 #endif
store cells in an array, used by cell iterators
Definition: Collection.h:18
Definition: FEFunction3D.h:25
Definition: FEFunction2D.h:24