00001
00002
00003
00004
00005 #ifndef __SPACE_SVH
00006 #define __SPACE_SVH
00007
00008
00009
00010
00011 void SetElement();
00012
00013
00014
00015
00016
00017
00018 void SaveProgramState(char *FileName);
00019 void LoadProgramState(char *FileName);
00020 void SaveProgramStateMin(char *FileName);
00021 void LoadProgramStateMin(char *FileName);
00022 void LoadNodeApproximation(const char *filename,vector *_load);
00023
00024
00025 void SaveAllOutputs(const long iter,const vector pom);
00026 void GMVOutput(char filename[],vector pom);
00027 void TecplotOutput(char filename[],int delka,char *nazvy, vector seznam[]);
00028 void TecplotOutputR(const char fname[], vector pom,int How);
00029 void ElasticOutput(const char fname[],const vector X,const vector XDOT,const vector XDOTDOT);
00030 void ElasticOutput1(const char fname[],const vector X,const vector XDOT,const vector XDOTDOT);
00031 void ResultsOutput(char filename[], vector pom);
00032
00033 void SaveBndrPressureInterpolate(const char fname[],const vector u);
00034 double ControlStep(const vector u1,const vector u2,const long ino,const double ctm);
00035
00036
00037
00038
00039
00040
00041
00042
00043 void ConstructSpace(double xvel(double,double),double yvel(double,double));
00044 void DestructSpace();
00045 void ConstructPressureSpace();
00046
00047 void ConstructBoundaryConditions(double xvel(double,double),double yvel(double,double));
00048 void DestructBoundaryConditions();
00049
00050
00051 short GetMark(long SideIdx);
00052 void ComputeBaseIndices();
00053 void ComputeBaseValues();
00054 void ComputeGradBaseValues();
00055 void ComputeHesBaseValues();
00056 void ComputeSideBaseValues();
00057 void ComputeExportValues();
00058 void DestructExportValues();
00059
00060 short GetPressureMark(long SideIdx);
00061 void ComputePressureBaseIndices();
00062 long SelectFixedPressureIdx();
00063
00064
00065 void InitialVelocities();
00066 void ConstructVectors();
00067 void DestructVectors();
00068 void ExtrapolateVelocities();
00069
00070 void Project2HDIV(vector ww);
00071 void HDivProjection(sparse *S,vector b,const vector ww);
00072
00073 void QuadratureFormula1d(double *W,double *X,int q1);
00074 int QuadratureFormulae2dTriGauss(double **w,double ***L,int q);
00075 int QuadratureFormulae2dTriangle(double **w,double ***L,int q);
00076 void InitQuadratureFormulae();
00077 void InitQuadratureFormulaePrecise();
00078
00079 void Pressure2Velocity(vector out,const vector press);
00080 void Velocity2Pressure(vector out,const vector vel);
00081 void InitPressureInterpolate();
00082
00083
00084
00085
00086
00087
00088
00089 void InitNorms();
00090 void PrepareH1norm(sparse *H1);
00091 void PrepareL2norm(sparse *L2);
00092 void PreparePressureL2norm(sparse *L2);
00093 void PrepareBoundaryForm( vector beta,double _phi(double,double));
00094 void PrepareForms(vector dzeta,double _eta(double,double));
00095 void DestructNorms();
00096
00097
00098 void ControlMarks();
00099 void CheckBoundaryConditions(const char fname[]);
00100 void add2triplet(long _i,long _j,double _val);
00101 double LinearFunctionDX(const long iELE,const double LinF[]);
00102 double LinearFunctionDY(const long iELE,const double LinF[]);
00103 double LinearFunctionValue(const double LinF[],const int m);
00104
00105
00106
00107
00108
00109
00110 void ConstructCoarse();
00111 void FillCoarseSystem(const sparse S);
00112 void DestructCoarse();
00113 void ConstructCoarsePrecond();
00114 void DestructCoarsePrecond();
00115 void PrecondCoarse(vector x);
00116
00117
00118 void InitOriginalCfg();
00119 double MaxLinearError(const vector _new,const vector _old);
00120 double MaxLinearErrorVelocity(const vector _new,const vector _old);
00121 double LinearError(const vector _new,const vector _old);
00122 double LinearErrorVelocity(const vector _new,const vector _old);
00123 double QuadraticError(const vector _new,const vector _old,double *out1,double *out2,double *outp);
00124 double QuadraticErrorComponent(const vector _new,const vector _old);
00125
00126 #endif
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143