00001
00002
00003
00004
00005 #include "math.h"
00006 #ifndef __TURBULENCE_SVH
00007 #define __TURBULENCE_SVH
00008
00009
00010 double SolveRANS(const long _MaxOfIter,const double _eps);
00011 double SolveRANS_SA_Stationary(const long _maxiter,const double _eps);
00012 double SolveRANS_SA_FlutterDerivatives(const long _maxiter,const double _eps,const double *xxpom);
00013 double SolveRANS_SA(const long iFSI,const long _MaxOfIter,const double _eps);
00014 double SolveRANS_SST(const long iFSI,const long _MaxOfIter,const double _eps);
00015 double SolveRANS_KEPS(const long iFSI,const long _MaxOfIter,const double _eps);
00016 double SolveRANS_LOGSST(const long iFSI,const long _MaxOfIter,const double _eps);
00017 double SolveRANS_Algebraic(const long iFSI,const long _MaxOfIter,const double _eps);
00018
00019
00020 double AirfoilApproxDist(double x,double y);
00021 double ComputeWallDistance();
00022
00023
00024 void NS_RANS(sparse *S,vector b,double tau,const vector u1,const vector u0,const vector ww,const vector NU_T) ;
00025 void NS_RANS_2DOF(sparse *S,vector b,double tau,const vector u1,const vector u0,const vector ww,const vector NU_T,const double *xxpom);
00026
00027
00028 void SolveTurbulenceAlgebraic();
00029 void ComputeAlgebraicTurbulentViscosity();
00030
00031
00032 void InitSATurbulentViscosity();
00033 void ComputeSATurbulentViscosity(const vector NU_SA);
00034 double SolveTurbulenceSA(const long maxiter);
00035 void PrepareTurbulenceSpalartAllmarasADC(sparse *S,vector b,double delta_tau,const vector ww,const vector NU_T2,const vector NU_T1,const int ADC);
00036 void PrepareTurbulenceSpalartAllmarasADCPointWise(sparse *S,vector b,double delta_tau,const vector ww,const vector NU_T2,const vector NU_T1,int ADC);
00037
00038
00039 void InitSSTTurbulentViscosity();
00040 void ComputeSSTTurbulentViscosity(const vector k,const vector omg);
00041 double SolveTurbulenceSST(const long maxiter);
00042 void PrepareTurbulenceSST(sparse *S,vector b,vector ww,const vector _k1,const vector _omg1);
00043 void MakeSSTCorrection();
00044
00045
00046 double SolveTurbulenceLOGSST(const long maxiter);
00047 void ComputeLOGSSTTurbulentViscosity(const vector k,const vector omg);
00048 void MakeLOGSSTCorrection();
00049 void PrepareTurbulenceLOGSST(sparse *S,vector b,double visc,double tau,const vector u2,const vector _k1,const vector _omg1);
00050
00051
00052 void InitTurbulence();
00053 void InitTurbulenceKEPS();
00054 void ConstructTurbulenceVectors();
00055 void DestructTurbulenceVectors();
00056 void ExtrapolateTurbulence();
00057
00058 double local_strainrate(int m);
00059 double local_vorticity(int m);
00060 double element_strainrate(long idx);
00061 double element_vorticity(long idx);
00062 double element_varval(long idx,const vector variable);
00063 double element_crossdiffusion(long idx);
00064
00065
00066 double QStateAnalytical(const double *W,const double *PARAM,double *q,double *Q);
00067 void QStateJacobian(const double *W,const double *PARAM,double *Qjacobian);
00068 double QStateVector(const double *W,const double *PARAM,double *qW);
00069 void MakeKEPSCorrection();
00070 double SolveTurbulence_KEPS(const long maxiter,const double kepstau);
00071 void ComputeKEPSTurbulentViscosity(const vector k1,const vector eps1);
00072 void PrepareTurbulenceKEPS(sparse *S,vector b,double _loctau,const vector ww,const vector k1,const vector eps1);
00073
00074
00075 #endif
00076
00077
00078