ParMooN
 All Classes Functions Variables Friends Pages
SystemTCD2D_ALE.h
1 
11 #ifndef __SYSTEMCD2D_ALE__
12 #define __SYSTEMCD2D_ALE__
13 
14 #include <SquareMatrix2D.h>
15 #include <SystemTCD2D.h>
16 
19 {
20  protected:
22  int N_GridDOFs, N_GridActive, *GridKCol, *GridRowPtr;
23 
25  double *rhs_Qp1; // dG(1)
26 
28  double *MeshVelo, *gridpos, *gridpos_old, *gridpos_ref, *griddisp, *GridRhs, *Entries[4];
29 
32 
34  BoundValueFunct2D *GridBoundValue[1];
35 
37  TFEVectFunct2D *GridPos, *RefGridPos;
38 
41 
43  TDiscreteForm2D *DiscreteFormMARhs, *DiscreteFormGrid;
44 
47 
49  TSquareMatrix2D *sqmatrixM_Qp1, *sqmatrixA_Qp1; // dG(1)
50 
52  TSquareMatrix2D *SqmatrixG11, *SqmatrixG12, *SqmatrixG21, *SqmatrixG22, *SQMATRICES_GRID[4];
53 
56 
58  TAuxParam2D *Aux_ALE, *Meshaux;
59 
61  BoundCondFunct2D *GridBoundaryConditions[1];
62  BoundValueFunct2D *GridBoundValues[1];
63 
65  ModifyMeshCoords *ModifyCoord;
66 
68  ModifyBoundCoords *ModifyBoudary;
69 
71  int N_MovVert;
72  TVertex **MovBoundVert;
73  TIsoBoundEdge **Free_Joint;
74  double *Iso_refX;
75 
77  bool SolveLinearElastic, CONSERVATIVEALE, NeedInterMassMat;
78 
79  public:
81  TSystemTCD2D_ALE(TFESpace2D *fespace, int disctype, int solver, TFESpace2D *gridFESpace, TFEVectFunct2D *MeshVelocity,
82  bool conservativeale);
83 
84 // /** destrcutor */
85 // ~TSystemMatTimeScalar2D();
86 
88  void Init(CoeffFct2D *BilinearCoeffs, BoundCondFunct2D *BoundCond, BoundValueFunct2D *BoundValue,
89  CoeffFct2D *GridBilinearCoeffs, BoundCondFunct2D *GridBoundCond, BoundValueFunct2D *gridBoundValue,
90  TAuxParam2D *aux);
91 
92  void AddMeshModifyFunction(ModifyMeshCoords *modifyCoord)
93  { ModifyCoord = modifyCoord; SolveLinearElastic = FALSE; }
94 
95  void AddBoundModifyFunction(ModifyBoundCoords *modifyboudary, int n_MovVert, TVertex **movBoundVert,
96  TIsoBoundEdge **free_Joint, double * iso_refX);
97 
98 
99 // /** return the stiffness matric */
100 // TSquareMatrix2D *GetAMatrix()
101 // { return sqmatrixA; }
102 
104  void StoreMmat();
105 
107  void MoveMesh(double Currtime);
108 
110  void GetMeshVelo(double Currtime, double tau, bool MoveMesh);
111 
113  void AssembleMeshMat();
114 
116  void AssembleMRhs(double *sol, double *rhs);
117 
119  void AssembleMARhs(double *sol, double *rhs);
120 
122  void AssembleALEMat(double *sol, double *rhs, double tau);
123 
126  void AssembleSystMat(double *oldrhs, double *oldsol, double *rhs, double *sol);
127 
129  void Solve(double *sol, double *rhs);
130 
131 // /** return the residual of the system for the given sol*/
132 // double GetResidual(double *sol);
133 //
134 };
135 
136 #endif
stores the information of a timedependent part of a 2D scalar system matrix
Definition: SystemTCD2D_ALE.h:18
stores the information of a timedependent part of a 2D scalar system matrix
Definition: SystemTCD2D.h:20
TFEFunction2D * MeshVeloFct[2]
Definition: SystemTCD2D_ALE.h:40
TSystemTCD2D_ALE(TFESpace2D *fespace, int disctype, int solver, TFESpace2D *gridFESpace, TFEVectFunct2D *MeshVelocity, bool conservativeale)
source file for TSystemTCD2D_ALE
Definition: SystemTCD2D_ALE.C:23
Definition: SquareMatrix2D.h:20
void Init(CoeffFct2D *BilinearCoeffs, BoundCondFunct2D *BoundCond, BoundValueFunct2D *BoundValue, CoeffFct2D *GridBilinearCoeffs, BoundCondFunct2D *GridBoundCond, BoundValueFunct2D *gridBoundValue, TAuxParam2D *aux)
Definition: SystemTCD2D_ALE.C:127
Definition: IsoBoundEdge.h:18
Definition: AuxParam2D.h:22
void MoveMesh(double Currtime)
Definition: SystemTCD2D_ALE.C:214
bool SolveLinearElastic
Definition: SystemTCD2D_ALE.h:77
Definition: FESpace2D.h:28
void StoreMmat()
Definition: SystemTCD2D_ALE.C:204
ModifyBoundCoords * ModifyBoudary
Definition: SystemTCD2D_ALE.h:68
ModifyMeshCoords * ModifyCoord
Definition: SystemTCD2D_ALE.h:65
BoundCondFunct2D * GridBoundaryConditions[1]
Definition: SystemTCD2D_ALE.h:61
int N_MovVert
Definition: SystemTCD2D_ALE.h:71
BoundValueFunct2D * GridBoundValue[1]
Definition: SystemTCD2D_ALE.h:34
TFESpace2D * GridFESpace
Definition: SystemTCD2D_ALE.h:31
void AssembleMeshMat()
Definition: SystemTCD2D_ALE.C:347
TDiscreteForm2D * DiscreteFormMARhs
Definition: SystemTCD2D_ALE.h:43
TSquareStructure2D * SquareStructureG
Definition: SystemTCD2D_ALE.h:55
Definition: FEVectFunct2D.h:23
Definition: DiscreteForm2D.h:21
void GetMeshVelo(double Currtime, double tau, bool MoveMesh)
Definition: SystemTCD2D_ALE.C:278
double * MeshVelo
Definition: SystemTCD2D_ALE.h:28
double * rhs_Qp1
Definition: SystemTCD2D_ALE.h:25
void AssembleSystMat(double *oldrhs, double *oldsol, double *rhs, double *sol)
Definition: SystemTCD2D_ALE.C:602
Definition: Vertex.h:19
void AssembleMRhs(double *sol, double *rhs)
Definition: SystemTCD2D_ALE.C:373
int N_GridDOFs
Definition: SystemTCD2D_ALE.h:22
TFEVectFunct2D * GridPos
Definition: SystemTCD2D_ALE.h:37
Definition: SquareStructure2D.h:20
void AssembleMARhs(double *sol, double *rhs)
Definition: SystemTCD2D_ALE.C:442
TSquareMatrix2D * SqmatrixG11
Definition: SystemTCD2D_ALE.h:52
TSquareMatrix2D * sqmatrixM_Qp1
Definition: SystemTCD2D_ALE.h:49
TSquareMatrix2D * sqmatrixM_old
Definition: SystemTCD2D_ALE.h:46
void AssembleALEMat(double *sol, double *rhs, double tau)
Definition: SystemTCD2D_ALE.C:512
TAuxParam2D * Aux_ALE
Definition: SystemTCD2D_ALE.h:58
Definition: FEFunction2D.h:24
void Solve(double *sol, double *rhs)
Definition: SystemTCD2D_ALE.C:676