SU2
numerics_structure.hpp
Go to the documentation of this file.
1 
37 #pragma once
38 
39 #include "../../Common/include/mpi_structure.hpp"
40 
41 #include <cmath>
42 #include <iostream>
43 #include <limits>
44 #include <cstdlib>
45 
46 #include "../../Common/include/config_structure.hpp"
47 #include "../../Common/include/gauss_structure.hpp"
48 #include "../../Common/include/element_structure.hpp"
49 #include "variable_structure.hpp"
50 
51 using namespace std;
52 
59 class CNumerics {
60 protected:
61  unsigned short nDim, nVar;
62  su2double Gamma;
63  su2double Gamma_Minus_One;
64  su2double Gas_Constant;
65  su2double *Vector;
66  su2double *Enthalpy_formation;
67  su2double Prandtl_Lam;
68  su2double Prandtl_Turb;
70 public:
71 
72  su2double
73  **Flux_Tensor,
76  su2double
77  **tau,
78  **delta;
79  su2double
80  *Diffusion_Coeff_i,
82  su2double Laminar_Viscosity_i,
83  Laminar_Viscosity_j,
84  Laminar_Viscosity_id,
86  su2double Thermal_Conductivity_i,
87  Thermal_Conductivity_j,
88  Thermal_Conductivity_ve_i,
90  su2double Cp_i,
91  Cp_j;
92  su2double *Theta_v;
93  su2double Eddy_Viscosity_i,
95  su2double turb_ke_i,
96  turb_ke_j;
97  su2double Pressure_i,
98  Pressure_j;
99  su2double GravityForce_i,
101  su2double Density_i,
102  Density_j;
103  su2double DensityInc_i,
104  DensityInc_j;
105  su2double BetaInc2_i,
106  BetaInc2_j;
107  su2double Lambda_i,
108  Lambda_j;
109  su2double LambdaComb_i,
110  LambdaComb_j;
111  su2double SoundSpeed_i,
112  SoundSpeed_j;
113  su2double Enthalpy_i,
114  Enthalpy_j;
115  su2double dist_i,
116  dist_j;
117  su2double Temp_i,
118  Temp_j;
119  su2double *Temp_tr_i,
120  *Temp_tr_j;
121  su2double *Temp_vib_i,
122  *Temp_vib_j;
123  su2double *Und_Lapl_i,
124  *Und_Lapl_j;
125  su2double Sensor_i,
126  Sensor_j;
127  su2double *GridVel_i,
128  *GridVel_j;
129  su2double *U_i,
130  *U_id,
131  *UZeroOrder_i,
132  *U_j,
133  *UZeroOrder_j,
134  *U_jd,
135  *U_0,
136  *U_1,
137  *U_2,
138  *U_3;
139  su2double *V_i,
140  *V_j;
141  su2double *S_i,
142  *S_j;
143  su2double *Psi_i,
144  *Psi_j;
145  su2double *DeltaU_i,
146  *DeltaU_j;
147  su2double *TurbVar_i,
148  *TurbVar_id,
149  *TurbVar_j,
150  *TurbVar_jd;
151  su2double *TransVar_i,
152  *TransVar_j;
153  su2double *TurbPsi_i,
154  *TurbPsi_j;
155  su2double **ConsVar_Grad_i,
156  **ConsVar_Grad_j,
157  **ConsVar_Grad_0,
158  **ConsVar_Grad_1,
159  **ConsVar_Grad_2,
160  **ConsVar_Grad_3,
161  **ConsVar_Grad;
162  su2double **PrimVar_Grad_i,
163  **PrimVar_Grad_j;
164  su2double *PrimVar_Lim_i,
165  *PrimVar_Lim_j;
166  su2double *PsiVar_Lim_i,
167  *PsiVar_Lim_j;
168  su2double **PsiVar_Grad_i,
169  **PsiVar_Grad_j;
170  su2double **TurbVar_Grad_i,
171  **TurbVar_Grad_j;
172  su2double **TransVar_Grad_i,
173  **TransVar_Grad_j;
174  su2double **TurbPsi_Grad_i,
175  **TurbPsi_Grad_j;
176  su2double *AuxVar_Grad_i,
177  *AuxVar_Grad_j;
178  su2double *Coord_i,
179  *Coord_j,
180  *Coord_0,
181  *Coord_1,
182  *Coord_2,
183  *Coord_3;
184  unsigned short Neighbor_i,
185  Neighbor_j;
186  su2double *Normal,
187  *UnitNormal,
188  *UnitNormald;
189  su2double TimeStep,
190  Area,
191  Volume;
192  su2double Volume_n,
193  Volume_nM1,
194  Volume_nP1;
195  su2double *U_n,
196  *U_nM1,
197  *U_nP1;
198  su2double vel2_inf;
199  su2double *WindGust_i,
200  *WindGust_j;
201  su2double *WindGustDer_i,
202  *WindGustDer_j;
203  su2double *Vorticity_i, *Vorticity_j;
204  su2double StrainMag_i, StrainMag_j;
206  su2double *l, *m;
207 
211  CNumerics(void);
212 
219  CNumerics(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
220 
224  virtual ~CNumerics(void);
225 
231  su2double Determinant_3x3(su2double A00, su2double A01, su2double A02,
232  su2double A10, su2double A11, su2double A12,
233  su2double A20, su2double A21, su2double A22);
234 
241  void SetPastSol(su2double *val_u_nM1, su2double *val_u_n, su2double *val_u_nP1);
242 
249  void SetPastVolume(su2double val_volume_nM1, su2double val_volume_n, su2double val_volume_nP1);
250 
255  void SetTimeStep(su2double val_timestep);
256 
261  virtual su2double GetPrecond_Beta();
262 
267  void SetVelocity2_Inf(su2double val_velocity2);
268 
273  void SetVorticity(su2double *val_vorticity_i, su2double *val_vorticity_j);
274 
280  void SetStrainMag(su2double val_strainmag_i, su2double val_strainmag_j);
281 
287  void SetConservative(su2double *val_u_i, su2double *val_u_j);
288 
294  void SetConservative_ZeroOrder(su2double *val_u_i, su2double *val_u_j);
295 
301  void SetPrimitive(su2double *val_v_i, su2double *val_v_j);
302 
308  void SetSecondary(su2double *val_s_i, su2double *val_s_j);
309 
316  void SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2);
317 
325  void SetConservative(su2double *val_u_0, su2double *val_u_1, su2double *val_u_2, su2double *val_u_3);
326 
332  void SetConsVarGradient(su2double **val_consvar_grad_i, su2double **val_consvar_grad_j);
333 
340  void SetConsVarGradient(su2double **val_consvar_grad_0,
341  su2double **val_consvar_grad_1,
342  su2double **val_consvar_grad_2);
343 
351  void SetConsVarGradient(su2double **val_consvar_grad_0,
352  su2double **val_consvar_grad_1,
353  su2double **val_consvar_grad_2,
354  su2double **val_consvar_grad_3);
355 
360  void SetConsVarGradient(su2double **val_consvar_grad);
361 
367  void SetPrimVarGradient(su2double **val_primvar_grad_i,
368  su2double **val_primvar_grad_j);
369 
375  void SetPrimVarLimiter(su2double *val_primvar_lim_i,
376  su2double *val_primvar_lim_j);
377 
383  void SetAdjointVar(su2double *val_psi_i, su2double *val_psi_j);
384 
390  void SetAdjointVarGradient(su2double **val_psivar_grad_i, su2double **val_psivar_grad_j);
391 
397  void SetAdjointVarLimiter(su2double *val_psivar_lim_i, su2double *val_psivar_lim_j);
398 
404  void SetTurbVar(su2double *val_turbvar_i, su2double *val_turbvar_j);
405 
411  void SetTransVar(su2double *val_transvar_i, su2double *val_transvar_j);
412 
418  void SetTurbVarGradient(su2double **val_turbvar_grad_i, su2double **val_turbvar_grad_j);
419 
425  void SetTransVarGradient(su2double **val_transvar_grad_i, su2double **val_transvar_grad_j);
426 
432  void SetTurbAdjointVar(su2double *val_turbpsivar_i, su2double *val_turbpsivar_j);
433 
439  void SetTurbAdjointGradient (su2double **val_turbpsivar_grad_i, su2double **val_turbpsivar_grad_j);
440 
446  virtual void SetF1blending(su2double val_F1_i, su2double val_F1_j) {/* empty */};
447 
453  virtual void SetF2blending(su2double val_F1_i, su2double val_F1_j) {/* empty */};
454 
460  virtual void SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j) {/* empty */};
461 
467  void SetAuxVarGrad(su2double *val_auxvargrad_i, su2double *val_auxvargrad_j);
468 
474  void SetDiffusionCoeff(su2double* val_diffusioncoeff_i,
475  su2double* val_diffusioncoeff_j);
476 
482  void SetLaminarViscosity(su2double val_laminar_viscosity_i,
483  su2double val_laminar_viscosity_j);
484 
491  void SetThermalConductivity(su2double val_thermal_conductivity_i,
492  su2double val_thermal_conductivity_j);
493 
500  void SetThermalConductivity_ve(su2double val_thermal_conductivity_ve_i,
501  su2double val_thermal_conductivity_ve_j);
502 
508  void SetEddyViscosity(su2double val_eddy_viscosity_i,
509  su2double val_eddy_viscosity_j);
510 
516  void SetTurbKineticEnergy(su2double val_turb_ke_i, su2double val_turb_ke_j);
517 
523  void SetDistance(su2double val_dist_i, su2double val_dist_j);
524 
530  void SetCoord(su2double *val_coord_i, su2double *val_coord_j);
531 
538  void SetCoord(su2double *val_coord_0, su2double *val_coord_1, su2double *val_coord_2);
539 
547  void SetCoord(su2double *val_coord_0, su2double *val_coord_1, su2double *val_coord_2,
548  su2double *val_coord_3);
549 
555  void SetGridVel(su2double *val_gridvel_i, su2double *val_gridvel_j);
556 
562  void SetWindGust(su2double *val_windgust_i, su2double *val_windgust_j);
563 
569  void SetWindGustDer(su2double *val_windgustder_i, su2double *val_windgustder_j);
570 
576  void SetPressure(su2double val_pressure_i, su2double val_pressure_j);
577 
583  void SetDensity(su2double val_densityinc_i, su2double val_densityinc_j);
584 
590  void SetBetaInc2(su2double val_betainc2_i, su2double val_betainc2_j);
591 
597  void SetSoundSpeed(su2double val_soundspeed_i, su2double val_soundspeed_j);
598 
604  void SetTemperature(su2double val_temp_i, su2double val_temp_j);
605 
611  void SetEnthalpy(su2double val_enthalpy_i, su2double val_enthalpy_j);
612 
618  void SetLambda(su2double val_lambda_i, su2double val_lambda_j);
619 
625  void SetUndivided_Laplacian(su2double *val_und_lapl_i, su2double *val_und_lapl_j);
626 
632  void SetSensor(su2double val_sensor_i, su2double val_sensor_j);
633 
639  void SetNeighbor(unsigned short val_neighbor_i, unsigned short val_neighbor_j);
640 
645  void SetNormal(su2double *val_normal);
646 
651  void SetVolume(su2double val_volume);
652 
657  void SetRhosIndex(unsigned short val_Index);
658 
663  void SetRhoIndex(unsigned short val_Index);
664 
669  void SetPIndex(unsigned short val_Index);
670 
675  void SetTIndex(unsigned short val_Index);
676 
681  void SetTveIndex(unsigned short val_Index);
682 
687  void SetVelIndex(unsigned short val_Index);
688 
693  void SetHIndex(unsigned short val_Index);
694 
699  void SetAIndex(unsigned short val_Index);
700 
705  void SetRhoCvtrIndex(unsigned short val_Index);
706 
711  void SetRhoCvveIndex(unsigned short val_Index);
712 
717  void SetdPdU(su2double *val_dPdU_i, su2double *val_dPdU_j);
718 
723  void SetdTdU(su2double *val_dTdU_i, su2double *val_dTdU_j);
724 
729  void SetdTvedU(su2double *val_dTvedU_i, su2double *val_dTvedU_j);
730 
738  void GetInviscidFlux(su2double val_density, su2double *val_velocity, su2double val_pressure, su2double val_enthalpy);
739 
748  void GetViscousFlux(su2double *val_primvar, su2double **val_gradprimvar,
749  su2double val_laminar_viscosity, su2double val_eddy_viscosity,
750  su2double val_mach_inf);
751 
761  void GetInviscidProjFlux(su2double *val_density, su2double *val_velocity,
762  su2double *val_pressure, su2double *val_enthalpy,
763  su2double *val_normal, su2double *val_Proj_Flux);
764 
774  void GetInviscidArtCompProjFlux(su2double *val_density, su2double *val_velocity,
775  su2double *val_pressure, su2double *val_betainc2,
776  su2double *val_normal, su2double *val_Proj_Flux);
777 
790  void GetViscousProjFlux(su2double *val_primvar, su2double **val_gradprimvar,
791  su2double val_turb_ke, su2double *val_normal,
792  su2double val_laminar_viscosity,
793  su2double val_eddy_viscosity);
806  void GetViscousProjFlux(su2double *val_primvar, su2double **val_gradprimvar,
807  su2double val_turb_ke, su2double *val_normal,
808  su2double val_laminar_viscosity,
809  su2double val_eddy_viscosity,
810  su2double val_thermal_conductivity,
811  su2double val_heat_capacity_cp);
812 
813  /*
814  * \brief Compute the projection of the viscous fluxes into a direction (artificial compresibility method).
815  * \param[in] val_primvar - Primitive variables.
816  * \param[in] val_gradprimvar - Gradient of the primitive variables.
817  * \param[in] val_normal - Normal vector, the norm of the vector is the area of the face.
818  * \param[in] val_laminar_viscosity - Laminar viscosity.
819  * \param[in] val_eddy_viscosity - Eddy viscosity.
820  */
821 
822  void GetViscousArtCompProjFlux(su2double **val_gradprimvar,
823  su2double *val_normal,
824  su2double val_laminar_viscosity,
825  su2double val_eddy_viscosity);
826 
835  void GetInviscidProjJac(su2double *val_velocity, su2double *val_energy,
836  su2double *val_normal, su2double val_scale,
837  su2double **val_Proj_Jac_tensor);
838 
848  void GetInviscidArtCompProjJac(su2double *val_density, su2double *val_velocity,
849  su2double *val_betainc2, su2double *val_normal,
850  su2double val_scale,
851  su2double **val_Proj_Jac_tensor);
852 
861  void GetInviscidProjJac(su2double *val_velocity, su2double *val_enthalphy,
862  su2double *val_chi, su2double *val_kappa,
863  su2double *val_normal, su2double val_scale,
864  su2double **val_Proj_Jac_tensor);
865 
878  void GetViscousProjJacs(su2double *val_Mean_PrimVar,
879  su2double val_laminar_viscosity,
880  su2double val_eddy_viscosity,
881  su2double val_dist_ij,
882  su2double *val_normal, su2double val_dS,
883  su2double *val_Proj_Visc_Flux,
884  su2double **val_Proj_Jac_Tensor_i,
885  su2double **val_Proj_Jac_Tensor_j);
886 
903  void GetViscousProjJacs(su2double *val_Mean_PrimVar,
904  su2double **val_gradprimvar,
905  su2double *val_Mean_SecVar,
906  su2double val_laminar_viscosity,
907  su2double val_eddy_viscosity,
908  su2double val_thermal_conductivity,
909  su2double val_heat_capacity_cp,
910  su2double val_dist_ij,
911  su2double *val_normal, su2double val_dS,
912  su2double *val_Proj_Visc_Flux,
913  su2double **val_Proj_Jac_Tensor_i,
914  su2double **val_Proj_Jac_Tensor_j);
915 
922  void GetPrimitive2Conservative (su2double *val_Mean_PrimVar,
923  su2double *val_Mean_SecVar,
924  su2double **val_Jac_PC);
925 
936  void GetViscousArtCompProjJacs(su2double val_laminar_viscosity,
937  su2double val_eddy_viscosity, su2double val_dist_ij,
938  su2double *val_normal, su2double val_dS,
939  su2double **val_Proj_Jac_Tensor_i,
940  su2double **val_Proj_Jac_Tensor_j);
941 
954  void GetPMatrix(su2double *val_density, su2double *val_velocity,
955  su2double *val_soundspeed, su2double *val_enthalpy, su2double *val_chi, su2double *val_kappa,
956  su2double *val_normal, su2double **val_p_tensor);
957 
967  void GetPMatrix(su2double *val_density, su2double *val_velocity,
968  su2double *val_soundspeed, su2double *val_normal,
969  su2double **val_p_tensor);
970 
980  void GetinvRinvPe(su2double Beta2, su2double val_enthalpy, su2double val_soundspeed,
981  su2double val_density, su2double* val_velocity,
982  su2double** val_invR_invPe);
983 
993  void GetRMatrix(su2double val_pressure, su2double val_soundspeed,
994  su2double val_density, su2double* val_velocity,
995  su2double** val_invR_invPe);
1003  void GetRMatrix(su2double val_soundspeed, su2double val_density, su2double* val_normal, su2double **R_Matrix);
1004 
1005 
1006 
1014  void GetLMatrix(su2double val_soundspeed, su2double val_density, su2double* val_normal, su2double **L_Matrix);
1015 
1028  void GetPrecondJacobian(su2double Beta2, su2double r_hat, su2double s_hat, su2double t_hat, su2double rB2a2, su2double* val_Lambda, su2double* val_normal, su2double** val_absPeJac);
1029 
1039  void GetPArtCompMatrix(su2double *val_density, su2double *val_velocity,
1040  su2double *val_betainv2, su2double *val_normal,
1041  su2double **val_p_tensor);
1042 
1052  void GetPMatrix_inv(su2double **val_invp_tensor, su2double *val_density,
1053  su2double *val_velocity, su2double *val_soundspeed,
1054  su2double *val_chi, su2double *val_kappa,
1055  su2double *val_normal);
1056 
1066  void GetPMatrix_inv(su2double *val_density, su2double *val_velocity,
1067  su2double *val_soundspeed, su2double *val_normal,
1068  su2double **val_invp_tensor);
1069 
1079  void GetPArtCompMatrix_inv(su2double *val_density, su2double *val_velocity,
1080  su2double *val_betainv2, su2double *val_normal,
1081  su2double **val_invp_tensor);
1082 
1086  void GetAdjViscousFlux_Jac(su2double Pressure_i, su2double Pressure_j, su2double Density_i, su2double Density_j,
1087  su2double ViscDens_i, su2double ViscDens_j, su2double *Velocity_i, su2double *Velocity_j,
1088  su2double sq_vel_i, su2double sq_vel_j,
1089  su2double XiDens_i, su2double XiDens_j, su2double **Mean_GradPhi, su2double *Mean_GradPsiE,
1090  su2double dPhiE_dn, su2double *Normal, su2double *Edge_Vector, su2double dist_ij_2, su2double *val_residual_i,
1091  su2double *val_residual_j,
1092  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji,
1093  su2double **val_Jacobian_jj, bool implicit);
1094 
1102  void GetJacInviscidLambda_fabs(su2double *val_velocity, su2double val_soundspeed,
1103  su2double *val_normal, su2double *val_Lambda_Vector);
1104 
1110  virtual void ComputeResidual(su2double *val_residual, CConfig *config);
1111 
1117  virtual void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j);
1118 
1119  virtual void ComputeResidual_TransLM(su2double *val_residual,
1120  su2double **val_Jacobian_i,
1121  su2double **val_Jacobian_j, CConfig *config,
1122  su2double &gamma_sep) ;
1123 
1130  virtual void ComputeResidual(su2double *val_residual_i,
1131  su2double *val_residual_j, CConfig *config);
1132 
1140  virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i,
1141  su2double **val_Jacobian_j, CConfig *config);
1142 
1152  virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i,
1153  su2double **val_Jacobian_j,
1154  su2double **val_JacobianMeanFlow_i,
1155  su2double **val_JacobianMeanFlow_j,
1156  CConfig *config);
1157 
1164  virtual void ComputeResidual(su2double **val_Jacobian_i, su2double **val_Jacobian_j,
1165  CConfig *config);
1166 
1175  virtual void ComputeResidual(su2double *val_resconv, su2double *val_resvisc,
1176  su2double **val_Jacobian_i, su2double **val_Jacobian_j,
1177  CConfig *config);
1178 
1189  virtual void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j,
1190  su2double **val_Jacobian_ii,
1191  su2double **val_Jacobian_ij,
1192  su2double **val_Jacobian_ji,
1193  su2double **val_Jacobian_jj, CConfig *config);
1194 
1207  virtual void ComputeResidual(su2double *val_resconv_i, su2double *val_resvisc_i,
1208  su2double *val_resconv_j, su2double *val_resvisc_j,
1209  su2double **val_Jacobian_ii,
1210  su2double **val_Jacobian_ij,
1211  su2double **val_Jacobian_ji,
1212  su2double **val_Jacobian_jj, CConfig *config);
1213 
1219  virtual void ComputeResidual(su2double **val_stiffmatrix_elem, CConfig *config);
1220 
1227  virtual void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i,
1228  CConfig *config);
1229 
1235  virtual void GetEq_Rxn_Coefficients(su2double **EqnRxnConstants, CConfig *config);
1236 
1242  virtual void ComputeResidual_Axisymmetric(su2double *val_residual, CConfig *config);
1243 
1249  virtual void ComputeResidual_Axisymmetric_ad(su2double *val_residual, su2double *val_residuald, CConfig *config);
1250 
1256  virtual void SetJacobian_Axisymmetric(su2double **val_Jacobian_i, CConfig *config);
1257 
1264  virtual void ComputeVibRelaxation(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
1265 
1272  virtual void ComputeChemistry(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
1273 
1280  virtual void GetKeqConstants(su2double *A, unsigned short val_reaction, CConfig *config);
1281 
1285  virtual void SetIntermittency(su2double intermittency_in);
1286 
1291  virtual void SetProduction(su2double val_production);
1292 
1297  virtual void SetDestruction(su2double val_destruction);
1298 
1303  virtual void SetCrossProduction(su2double val_crossproduction);
1304 
1309  virtual su2double GetProduction(void);
1310 
1315  virtual su2double GetDestruction(void);
1316 
1321  virtual su2double GetCrossProduction(void);
1322 
1328  virtual void ComputeResidual(su2double **val_Jacobian_i,
1329  su2double *val_Jacobian_mui,
1330  su2double ***val_Jacobian_gradi, CConfig *config);
1331 
1337  virtual void ComputeResidual(su2double **val_Jacobian_i,
1338  su2double *val_Jacobian_mui,
1339  su2double ***val_Jacobian_gradi,
1340  su2double **val_Jacobian_j,
1341  su2double *val_Jacobian_muj,
1342  su2double ***val_Jacobian_gradj, CConfig *config);
1343 
1348  virtual void Compute_Tangent_Matrix(CElement *element_container, CConfig *config);
1349 
1354  virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config);
1355 
1360  virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config);
1361 
1366  virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config);
1367 
1372  virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config);
1373 
1378  virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config);
1379 
1384  virtual void Compute_Mass_Matrix(CElement *element_container, CConfig *config);
1385 
1390  virtual void Compute_Dead_Load(CElement *element_container, CConfig *config);
1391 
1396  virtual void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config);
1397 
1402  void CreateBasis(su2double *val_Normal);
1403 
1404 };
1405 
1413 class CUpwCUSP_Flow : public CNumerics {
1414 
1415 private:
1416  unsigned short iDim, iVar, jVar;
1417  su2double *Diff_U, *Diff_Flux,
1418  *Velocity_i, *Velocity_j,
1419  *MeanVelocity, ProjVelocity,
1420  Density_i, Density_j, Energy_i, Energy_j,
1421  sq_vel_i, sq_vel_j,
1422  MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy,
1423  *ProjFlux, *ProjFlux_i, *ProjFlux_j,
1424  cte_0, cte_1,
1425  LamdaNeg, LamdaPos, Beta, Nu_c, U_i[5], U_j[5], MeanSoundSpeed, Mach,
1426  **Jacobian;
1427  bool implicit,
1428  grid_movement;
1430 public:
1431 
1438  CUpwCUSP_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1439 
1443  ~CUpwCUSP_Flow(void);
1444 
1452  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
1453  CConfig *config);
1454 };
1455 
1463 class CUpwRoe_Flow : public CNumerics {
1464 private:
1465  bool implicit, grid_movement;
1466  su2double *Diff_U;
1467  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1468  su2double *ProjFlux_i, *ProjFlux_j;
1469  su2double *delta_wave, *delta_vel;
1470  su2double *Lambda, *Epsilon, MaxLambda, Delta;
1471  su2double **P_Tensor, **invP_Tensor;
1472  su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i,
1473  Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed,
1474  ProjVelocity, ProjVelocity_i, ProjVelocity_j, RoeSoundSpeed2, kappa;
1475  unsigned short iDim, iVar, jVar, kVar;
1476 
1477 public:
1478 
1485  CUpwRoe_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1486 
1490  ~CUpwRoe_Flow(void);
1491 
1499  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1500 };
1501 
1502 
1511 private:
1512 
1513  bool implicit, grid_movement;
1514 
1515  su2double *Diff_U;
1516  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1517  su2double *ProjFlux_i, *ProjFlux_j;
1518  su2double *delta_wave, *delta_vel;
1519  su2double *Lambda, *Epsilon, MaxLambda, Delta;
1520  su2double **P_Tensor, **invP_Tensor;
1521  su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i,
1522 
1523  Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeSoundSpeed2,
1524  ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho, kappa;
1525  unsigned short iDim, iVar, jVar, kVar;
1526 
1527 
1528  su2double StaticEnthalpy_i, StaticEnergy_i, StaticEnthalpy_j, StaticEnergy_j, Kappa_i, Kappa_j, Chi_i, Chi_j, Velocity2_i, Velocity2_j;
1529  su2double RoeKappa, RoeChi, RoeKappaStaticEnthalpy;
1530 
1531 public:
1532 
1539  CUpwGeneralRoe_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1540 
1544  ~CUpwGeneralRoe_Flow(void);
1545 
1553  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1554 
1560  void ComputeRoeAverage();
1561 };
1562 
1563 
1571 class CUpwMSW_Flow : public CNumerics {
1572 private:
1573  bool implicit;
1574  su2double *Diff_U;
1575  su2double *u_i, *u_j, *ust_i, *ust_j;
1576  su2double *Fc_i, *Fc_j;
1577  su2double *Lambda_i, *Lambda_j;
1578  su2double rhos_i, rhos_j;
1579  su2double *Ust_i, *Ust_j, *Vst_i, *Vst_j, *Velst_i, *Velst_j;
1580  su2double **P_Tensor, **invP_Tensor;
1581  unsigned short nPrimVar, nVar, nDim;
1582 
1583 public:
1584 
1591  CUpwMSW_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1592 
1596  ~CUpwMSW_Flow(void);
1597 
1605  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1606 
1607 };
1608 
1616 class CUpwTurkel_Flow : public CNumerics {
1617 private:
1618  bool implicit, grid_movement;
1619  su2double *Diff_U;
1620  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1621  su2double *ProjFlux_i, *ProjFlux_j;
1622  su2double *Lambda, *Epsilon;
1623  su2double **absPeJac, **invRinvPe, **R_Tensor, **Matrix, **Art_Visc;
1624  su2double sq_vel, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i,
1625  Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoePressure, RoeDensity, RoeEnthalpy, RoeSoundSpeed,
1626  ProjVelocity, ProjVelocity_i, ProjVelocity_j;
1627  unsigned short iDim, iVar, jVar, kVar;
1628  su2double Beta, Beta_min, Beta_max;
1629  su2double r_hat, s_hat, t_hat, rhoB2a2, sqr_one_m_Betasqr_Lam1;
1630  su2double Beta2, one_m_Betasqr, one_p_Betasqr, sqr_two_Beta_c_Area;
1631  su2double local_Mach;
1632 
1633 public:
1634 
1641  CUpwTurkel_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1642 
1646  ~CUpwTurkel_Flow(void);
1647 
1655  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1656 
1661  su2double GetPrecond_Beta();
1662 };
1663 
1671 class CUpwArtComp_Flow : public CNumerics {
1672 private:
1673  bool implicit;
1674  bool gravity;
1675  su2double Froude;
1676  su2double *Diff_U;
1677  su2double *Velocity_i, *Velocity_j, *MeanVelocity;
1678  su2double *ProjFlux_i, *ProjFlux_j;
1679  su2double *Lambda, *Epsilon;
1680  su2double **P_Tensor, **invP_Tensor;
1681  su2double Proj_ModJac_Tensor_ij, Pressure_i,
1682  Pressure_j, MeanDensity, MeanSoundSpeed, MeanPressure, MeanBetaInc2,
1683  ProjVelocity;
1684  unsigned short iDim, iVar, jVar, kVar;
1685 
1686 public:
1687 
1694  CUpwArtComp_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1695 
1699  ~CUpwArtComp_Flow(void);
1700 
1708  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1709 };
1710 
1719 class CUpwRoe_AdjFlow : public CNumerics {
1720 private:
1721  su2double *Residual_Roe;
1722  su2double area, Sx, Sy, Sz, rarea, nx, ny, nz, rho_l, u_l, v_l, w_l, h_l, rho_r,
1723  u_r, v_r, w_r, h_r, psi1, psi2, psi3, psi4, psi5;
1724  su2double h, u, v, w, c, psi1_l, psi2_l, psi3_l, psi4_l, psi5_l,
1725  psi1_r, psi2_r, psi3_r, psi4_r, psi5_r, q_l, q_r, Q_l, Q_r, vn,
1726  rrho_l, weight, rweight1, cc;
1727  su2double l1psi, l2psi, absQ, absQp, absQm, q2, alpha, beta_u, beta_v, beta_w, Q, l1l2p, l1l2m, eta;
1728  su2double RoeDensity, RoeSoundSpeed, *RoeVelocity, *Lambda, *Velocity_i, *Velocity_j, **ProjFlux_i, **ProjFlux_j,
1729  Proj_ModJac_Tensor_ij, **Proj_ModJac_Tensor, Energy_i, Energy_j, **P_Tensor, **invP_Tensor;
1730  unsigned short iDim, iVar, jVar, kVar;
1731  bool implicit, grid_movement;
1732 
1733 public:
1734 
1741  CUpwRoe_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1742 
1746  ~CUpwRoe_AdjFlow(void);
1747 
1758  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii,
1759  su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
1760 };
1761 
1771 private:
1772  su2double Area, *Lambda, *Velocity_i, *Velocity_j, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j,
1773  Proj_ModJac_Tensor_ij, **Proj_ModJac_Tensor, **P_Tensor, **invP_Tensor, MeanDensity,
1774  MeanPressure, MeanBetaInc2, ProjVelocity, *MeanVelocity, MeanSoundSpeed;
1775  unsigned short iDim, iVar, jVar, kVar;
1776  bool implicit;
1777 
1778 public:
1779 
1786  CUpwRoeArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1787 
1791  ~CUpwRoeArtComp_AdjFlow(void);
1792 
1803  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii,
1804  su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
1805 };
1806 
1814 class CUpwAUSM_Flow : public CNumerics {
1815 private:
1816  bool implicit;
1817  su2double *Diff_U;
1818  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1819  su2double *ProjFlux_i, *ProjFlux_j;
1820  su2double *delta_wave, *delta_vel;
1821  su2double *Lambda, *Epsilon;
1822  su2double **P_Tensor, **invP_Tensor;
1823  su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i,
1824  Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed,
1825  ProjVelocity, ProjVelocity_i, ProjVelocity_j;
1826  unsigned short iDim, iVar, jVar, kVar;
1827  su2double mL, mR, mLP, mRM, mF, pLP, pRM, pF, Phi;
1828 
1829 public:
1830 
1837  CUpwAUSM_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1838 
1842  ~CUpwAUSM_Flow(void);
1843 
1851  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1852 };
1853 
1861 class CUpwHLLC_Flow : public CNumerics {
1862 private:
1863  bool implicit, grid_movement;
1864  unsigned short iDim, jDim, iVar, jVar;
1865 
1866  su2double *IntermediateState;
1867  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1868 
1869  su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i;
1870  su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j;
1871 
1872  su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel;
1873 
1874  su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa;
1875 
1876  su2double Omega, RHO, OmegaSM;
1877  su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU;
1878 
1879 public:
1880 
1887  CUpwHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1888 
1892  ~CUpwHLLC_Flow(void);
1893 
1901  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1902 
1903 };
1904 
1913 private:
1914  bool implicit, grid_movement;
1915  unsigned short iDim, jDim, iVar, jVar;
1916 
1917  su2double *IntermediateState;
1918  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
1919 
1920  su2double sq_vel_i, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i, ProjVelocity_i, StaticEnthalpy_i, StaticEnergy_i;
1921  su2double sq_vel_j, Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, ProjVelocity_j, StaticEnthalpy_j, StaticEnergy_j;
1922 
1923  su2double sq_velRoe, RoeDensity, RoeEnthalpy, RoeSoundSpeed, RoeProjVelocity, ProjInterfaceVel;
1924  su2double Kappa_i, Kappa_j, Chi_i, Chi_j, RoeKappa, RoeChi, RoeKappaStaticEnthalpy;
1925 
1926  su2double sL, sR, sM, pStar, EStar, rhoSL, rhoSR, Rrho, kappa;
1927 
1928  su2double Omega, RHO, OmegaSM;
1929  su2double *dSm_dU, *dPI_dU, *drhoStar_dU, *dpStar_dU, *dEStar_dU;
1930 
1931 
1932 public:
1933 
1940  CUpwGeneralHLLC_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1941 
1945  ~CUpwGeneralHLLC_Flow(void);
1946 
1955  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
1956 
1961  void VinokurMontagne();
1962 };
1963 
1971 class CUpwLin_TransLM : public CNumerics {
1972 private:
1973  su2double *Velocity_i;
1974  su2double *Velocity_j;
1975  bool implicit, grid_movement, incompressible;
1976  su2double Density_i, Density_j, q_ij, a0, a1;
1977  unsigned short iDim;
1978 
1979 public:
1980 
1987  CUpwLin_TransLM(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
1988 
1992  ~CUpwLin_TransLM(void);
1993 
2001  void ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2002 };
2003 
2011 class CUpwLin_AdjTurb : public CNumerics {
2012 private:
2013  su2double *Velocity_i;
2014 
2015 public:
2016 
2023  CUpwLin_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2024 
2028  ~CUpwLin_AdjTurb(void);
2029 
2037  void ComputeResidual (su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2038 };
2039 
2047 class CUpwSca_TurbSA : public CNumerics {
2048 private:
2049  su2double *Velocity_i, *Velocity_j;
2050  bool implicit, grid_movement, incompressible;
2051  su2double q_ij, a0, a1;
2052  unsigned short iDim;
2053 
2054 public:
2055 
2062  CUpwSca_TurbSA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2063 
2067  ~CUpwSca_TurbSA(void);
2068 
2076  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2077 };
2078 
2086 class CUpwSca_TurbML : public CNumerics {
2087 private:
2088  su2double *Velocity_i, *Velocity_j;
2089  bool implicit, grid_movement, incompressible;
2090  su2double q_ij, a0, a1;
2091  unsigned short iDim;
2092 
2093 public:
2094 
2101  CUpwSca_TurbML(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2102 
2106  ~CUpwSca_TurbML(void);
2107 
2115  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2116 };
2117 
2125 class CUpwSca_TurbSST : public CNumerics {
2126 private:
2127  su2double *Velocity_i, *Velocity_j;
2128  bool implicit, grid_movement, incompressible;
2129  su2double Density_i, Density_j,
2130  q_ij,
2131  a0, a1;
2132  unsigned short iDim;
2133 
2134 public:
2135 
2142  CUpwSca_TurbSST(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2143 
2147  ~CUpwSca_TurbSST(void);
2148 
2156  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2157 };
2158 
2166 class CUpwSca_TransLM : public CNumerics {
2167 private:
2168  su2double *Velocity_i, *Velocity_j;
2169  bool implicit, grid_movement;
2170  su2double q_ij, a0, a1;
2171  unsigned short iDim;
2172 
2173 public:
2174 
2181  CUpwSca_TransLM(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2182 
2186  ~CUpwSca_TransLM(void);
2187 
2195  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2196 };
2197 
2205 class CUpwSca_AdjTurb : public CNumerics {
2206 private:
2207  su2double *Velocity_i, *Velocity_j;
2208 
2209 public:
2210 
2217  CUpwSca_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2218 
2222  ~CUpwSca_AdjTurb(void);
2223 
2233  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
2234  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
2235 };
2236 
2237 
2245 class CCentJST_KE_Flow : public CNumerics {
2246 
2247 private:
2248  unsigned short iDim, iVar, jVar;
2249  su2double *Diff_U, *Diff_Lapl,
2250  *Velocity_i, *Velocity_j,
2251  *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j,
2252  Density_i, Density_j, Energy_i, Energy_j,
2253  sq_vel_i, sq_vel_j,
2254  MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy,
2255  Param_p, Param_Kappa_2, Param_Kappa_4,
2256  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2257  Phi_i, Phi_j, sc2, sc4, StretchingFactor,
2258  *ProjFlux,
2259  Epsilon_2, cte_0, cte_1,
2260  ProjGridVel;
2261  bool implicit,
2262  grid_movement;
2265 public:
2266 
2273  CCentJST_KE_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2274 
2278  ~CCentJST_KE_Flow(void);
2279 
2288  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
2289  CConfig *config);
2290 };
2291 
2299 class CCentJST_Flow : public CNumerics {
2300 
2301 private:
2302  unsigned short iDim, iVar, jVar;
2303  su2double *Diff_U, *Diff_Lapl,
2304  *Velocity_i, *Velocity_j,
2305  *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j,
2306  Density_i, Density_j, Energy_i, Energy_j,
2307  sq_vel_i, sq_vel_j,
2308  MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy,
2309  Param_p, Param_Kappa_2, Param_Kappa_4,
2310  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2311  Phi_i, Phi_j, sc2, sc4, StretchingFactor,
2312  *ProjFlux,
2313  Epsilon_2, Epsilon_4, cte_0, cte_1,
2314  ProjGridVel;
2315  bool implicit,
2316  grid_movement;
2319 public:
2320 
2327  CCentJST_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2328 
2332  ~CCentJST_Flow(void);
2333 
2342  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
2343  CConfig *config);
2344 };
2345 
2354 
2355 private:
2356  unsigned short iDim, iVar, jVar;
2357  su2double *Diff_U, *Diff_Lapl,
2358  *Velocity_i, *Velocity_j,
2359  *MeanVelocity, ProjVelocity_i, ProjVelocity_j,
2360  sq_vel_i, sq_vel_j,
2361  MeanDensity, MeanPressure, MeanBetaInc2,
2362  Param_p, Param_Kappa_2, Param_Kappa_4,
2363  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2364  Phi_i, Phi_j, sc2, sc4, StretchingFactor,
2365  *ProjFlux,
2366  Epsilon_2, Epsilon_4, cte_0, cte_1;
2367  bool implicit,
2368  grid_movement,
2369  gravity;
2370  su2double Froude;
2372 public:
2373 
2380  CCentJSTArtComp_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2381 
2385  ~CCentJSTArtComp_Flow(void);
2386 
2395  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
2396  CConfig *config);
2397 };
2398 
2406 class CCentJST_AdjFlow : public CNumerics {
2407 private:
2408  su2double *Diff_Psi, *Diff_Lapl;
2409  su2double *Velocity_i, *Velocity_j;
2410  su2double *MeanPhi;
2411  unsigned short iDim, jDim, iVar, jVar;
2412  su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2;
2413  su2double MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda;
2414  su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2;
2415  bool implicit, grid_movement;
2416 
2417 public:
2418 
2425  CCentJST_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2426 
2430  ~CCentJST_AdjFlow(void);
2431 
2444  void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j,
2445  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj,
2446  CConfig *config);
2447 };
2448 
2457 private:
2458  su2double sc2, *Diff_Psi, *Diff_Lapl;
2459  su2double *Velocity_i, *Velocity_j;
2460  su2double **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j;
2461  unsigned short iDim, iVar, jVar;
2462  su2double Residual, ProjVelocity_i, ProjVelocity_j;
2463  su2double Param_p, Param_Kappa_4, Param_Kappa_2, Local_Lambda_i, Local_Lambda_j, MeanLambda;
2464  su2double Phi_i, Phi_j, sc4, StretchingFactor, Epsilon_4, Epsilon_2;
2465  bool implicit;
2466 
2467 public:
2468 
2475  CCentJSTArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2476 
2480  ~CCentJSTArtComp_AdjFlow(void);
2481 
2494  void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j,
2495  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj,
2496  CConfig *config);
2497 };
2498 
2506 class CCentLax_Flow : public CNumerics {
2507 private:
2508  unsigned short iDim, iVar, jVar;
2509  su2double *Diff_U,
2510  *Velocity_i, *Velocity_j,
2511  *MeanVelocity, ProjVelocity, ProjVelocity_i, ProjVelocity_j,
2512  *ProjFlux,
2513  Density_i, Density_j, Energy_i, Energy_j,
2514  sq_vel_i, sq_vel_j,
2515  MeanDensity, MeanPressure, MeanEnthalpy, MeanEnergy,
2516  Param_p, Param_Kappa_0,
2517  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2518  Phi_i, Phi_j, sc0, StretchingFactor,
2519  Epsilon_0, cte;
2520  bool implicit,
2521  grid_movement;
2522  su2double ProjGridVel;
2523 
2524 public:
2525 
2532  CCentLax_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2533 
2537  ~CCentLax_Flow(void);
2538 
2547  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
2548  CConfig *config);
2549 };
2550 
2559 private:
2560  unsigned short iDim, iVar, jVar;
2561  su2double *Diff_U,
2562  *Velocity_i, *Velocity_j,
2563  *MeanVelocity, ProjVelocity_i, ProjVelocity_j,
2564  *ProjFlux,
2565  sq_vel_i, sq_vel_j,
2566  MeanDensity, MeanPressure, MeanBetaInc2,
2567  Param_p, Param_Kappa_0,
2568  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2569  Phi_i, Phi_j, sc0, StretchingFactor,
2570  Epsilon_0;
2571  bool implicit,
2572  grid_movement,
2573  gravity;
2574  su2double Froude;
2575 
2576 public:
2577 
2584  CCentLaxArtComp_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2585 
2589  ~CCentLaxArtComp_Flow(void);
2590 
2599  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j,
2600  CConfig *config);
2601 };
2602 
2610 class CCentLax_AdjFlow : public CNumerics {
2611 private:
2612  su2double *Diff_Psi;
2613  su2double *Velocity_i, *Velocity_j;
2614  su2double *MeanPhi;
2615  unsigned short iDim, jDim, iVar, jVar;
2616  su2double Residual, ProjVelocity_i, ProjVelocity_j, ProjPhi, ProjPhi_Vel, sq_vel, phis1, phis2,
2617  MeanPsiRho, MeanPsiE, Param_p, Param_Kappa_0, Local_Lambda_i, Local_Lambda_j, MeanLambda,
2618  Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0;
2619  bool implicit, grid_movement;
2620 
2621 public:
2622 
2629  CCentLax_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2630 
2634  ~CCentLax_AdjFlow(void);
2635 
2648  void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j,
2649  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj,
2650  CConfig *config);
2651 };
2652 
2661 private:
2662  su2double *Diff_Psi;
2663  su2double *Velocity_i, *Velocity_j;
2664  su2double *MeanPhi, **Proj_Jac_Tensor_i, **Proj_Jac_Tensor_j;
2665  unsigned short iDim, iVar, jVar;
2666  su2double Residual, ProjVelocity_i, ProjVelocity_j, Param_p, Param_Kappa_0,
2667  Local_Lambda_i, Local_Lambda_j, MeanLambda,
2668  Phi_i, Phi_j, sc2, StretchingFactor, Epsilon_0;
2669  bool implicit;
2670 
2671 public:
2672 
2679  CCentLaxArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2680 
2684  ~CCentLaxArtComp_AdjFlow(void);
2685 
2698  void ComputeResidual (su2double *val_resconv_i, su2double *val_resvisc_i, su2double *val_resconv_j, su2double *val_resvisc_j,
2699  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij, su2double **val_Jacobian_ji, su2double **val_Jacobian_jj,
2700  CConfig *config);
2701 };
2702 
2710 class CAvgGrad_Flow : public CNumerics {
2711 private:
2712  unsigned short iDim, iVar, jVar;
2713  su2double *Mean_PrimVar,
2714  *PrimVar_i, *PrimVar_j,
2715  **Mean_GradPrimVar,
2716  Mean_Laminar_Viscosity,
2717  Mean_Eddy_Viscosity,
2718  Mean_turb_ke,
2719  dist_ij;
2720  bool implicit;
2722 public:
2723 
2730  CAvgGrad_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2731 
2735  ~CAvgGrad_Flow(void);
2736 
2744  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2745 };
2746 
2756 private:
2757  unsigned short iDim, iVar, jVar;
2758  su2double *Mean_PrimVar,
2759  *Mean_SecVar,
2760  *PrimVar_i, *PrimVar_j,
2761  **Mean_GradPrimVar,
2762  Mean_Laminar_Viscosity,
2763  Mean_Eddy_Viscosity,
2764  Mean_Thermal_Conductivity,
2765  Mean_Cp,
2766  Mean_turb_ke,
2767  dist_ij;
2768  bool implicit;
2770 public:
2771 
2778  CGeneralAvgGrad_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2779 
2783  ~CGeneralAvgGrad_Flow(void);
2784 
2792  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2793 };
2794 
2803 private:
2804  unsigned short iDim, iVar, jVar;
2805  su2double **Mean_GradPrimVar,
2806  Mean_Laminar_Viscosity, Mean_Eddy_Viscosity,
2807  dist_ij;
2808  bool implicit;
2810 public:
2811 
2818  CAvgGradArtComp_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2819 
2823  ~CAvgGradArtComp_Flow(void);
2831  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
2832 };
2833 
2841 class CAvgGrad_TurbSA : public CNumerics {
2842 private:
2843 
2844  su2double **Mean_GradTurbVar;
2845  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge;
2846  su2double *Edge_Vector;
2847  bool implicit, incompressible;
2848  su2double sigma;
2849  su2double nu_i, nu_j, nu_e;
2850  su2double dist_ij_2;
2851  su2double proj_vector_ij;
2852  unsigned short iVar, iDim;
2853 
2854 public:
2855 
2862  CAvgGrad_TurbSA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2863 
2867  ~CAvgGrad_TurbSA(void);
2868 
2876  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
2877 };
2878 
2887 private:
2888 
2889  su2double **Mean_GradTurbVar;
2890  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge;
2891  su2double *Edge_Vector;
2892  bool implicit, incompressible;
2893  su2double sigma;
2894  su2double cn1, fn, Xi;
2895  su2double nu_i, nu_j, nu_ij, nu_tilde_ij, nu_e;
2896  su2double dist_ij_2;
2897  su2double proj_vector_ij;
2898  unsigned short iVar, iDim;
2899 
2900 public:
2901 
2908  CAvgGrad_TurbSA_Neg(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2909 
2913  ~CAvgGrad_TurbSA_Neg(void);
2914 
2922  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
2923 };
2924 
2932 class CAvgGrad_TurbML : public CNumerics {
2933 private:
2934  su2double **Mean_GradTurbVar;
2935  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge;
2936  su2double *Edge_Vector;
2937  bool implicit, incompressible;
2938  su2double sigma;
2939  su2double nu_i, nu_j, nu_e;
2940  su2double dist_ij_2;
2941  su2double proj_vector_ij;
2942  unsigned short iVar, iDim;
2943 
2944 public:
2945 
2952  CAvgGrad_TurbML(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2953 
2957  ~CAvgGrad_TurbML(void);
2958 
2966  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
2967 };
2968 
2976 class CAvgGrad_TransLM : public CNumerics {
2977 private:
2978  su2double **Mean_GradTransVar;
2979  su2double *Proj_Mean_GradTransVar_Kappa, *Proj_Mean_GradTransVar_Edge;
2980  su2double *Edge_Vector;
2981  bool implicit, incompressible;
2982  su2double sigma;
2983  //su2double dist_ij_2;
2984  //su2double proj_vector_ij;
2985  //unsigned short iVar, iDim;
2986 
2987 public:
2988 
2995  CAvgGrad_TransLM(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
2996 
3000  ~CAvgGrad_TransLM(void);
3001 
3009  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3010 };
3011 
3019 class CAvgGrad_AdjFlow : public CNumerics {
3020 private:
3021  su2double *Velocity_i;
3022  su2double *Velocity_j;
3023  su2double *Mean_Velocity;
3024  su2double *Mean_GradPsiE;
3025  su2double **Mean_GradPhi;
3026  su2double *Edge_Vector;
3027  bool implicit;
3029 public:
3030 
3037  CAvgGrad_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3038 
3042  ~CAvgGrad_AdjFlow(void);
3043 
3049  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j,
3050  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3051  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3052 };
3053 
3062 private:
3063  unsigned short iDim, iVar, jVar;
3064  su2double **Mean_GradPsiVar,
3065  Mean_Laminar_Viscosity, Mean_Eddy_Viscosity,
3066  dist_ij;
3067  bool implicit;
3069 public:
3070 
3077  CAvgGradArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3078 
3082  ~CAvgGradArtComp_AdjFlow(void);
3083 
3089  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j,
3090  su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3091  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3092 };
3093 
3102 private:
3103  unsigned short iDim, iVar, jVar;
3104  su2double *Mean_PrimVar,
3105  *PrimVar_i, *PrimVar_j,
3106  *Edge_Vector,
3107  **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge,
3108  Mean_Laminar_Viscosity,
3109  Mean_Eddy_Viscosity,
3110  Mean_turb_ke,
3111  dist_ij_2;
3112  bool implicit;
3113  bool limiter;
3115 public:
3116 
3123  CAvgGradCorrected_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3124 
3128  ~CAvgGradCorrected_Flow(void);
3129 
3137  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
3138 };
3139 
3140 
3149 private:
3150  unsigned short iDim, iVar, jVar;
3151  su2double *Mean_PrimVar,
3152  *Mean_SecVar,
3153  *PrimVar_i, *PrimVar_j,
3154  *Edge_Vector,
3155  **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge,
3156  Mean_Laminar_Viscosity,
3157  Mean_Eddy_Viscosity,
3158  Mean_Thermal_Conductivity,
3159  Mean_Cp,
3160  Mean_turb_ke,
3161  dist_ij_2;
3162  bool implicit;
3164 public:
3165 
3172  CGeneralAvgGradCorrected_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3173 
3178 
3186  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
3187 };
3188 
3197 private:
3198  unsigned short iDim, iVar, jVar;
3199  su2double *PrimVar_i, *PrimVar_j,
3200  *Edge_Vector,
3201  **Mean_GradPrimVar, *Proj_Mean_GradPrimVar_Edge,
3202  Mean_Laminar_Viscosity, Mean_Eddy_Viscosity,
3203  dist_ij_2;
3204  bool implicit;
3206 public:
3207 
3214  CAvgGradCorrectedArtComp_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3215 
3220 
3228  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
3229 };
3230 
3239 private:
3240  su2double **Mean_GradTurbVar;
3241  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected;
3242  su2double *Edge_Vector;
3243  bool implicit, incompressible;
3244  su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij;
3245  unsigned short iVar, iDim;
3246 
3247 public:
3248 
3255  CAvgGradCorrected_TurbSA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3256 
3260  ~CAvgGradCorrected_TurbSA(void);
3261 
3269  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3270 };
3271 
3280 private:
3281 
3282  su2double **Mean_GradTurbVar;
3283  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected;
3284  su2double *Edge_Vector;
3285  su2double sigma;
3286  su2double cn1, fn, Xi;
3287  su2double nu_ij, nu_tilde_ij;
3288  bool implicit, incompressible;
3289  su2double nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij;
3290  unsigned short iVar, iDim;
3291 
3292 public:
3293 
3300  CAvgGradCorrected_TurbSA_Neg(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3301 
3306 
3314  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3315 };
3316 
3325 private:
3326  su2double **Mean_GradTurbVar;
3327  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected;
3328  su2double *Edge_Vector;
3329  bool implicit, incompressible;
3330  su2double sigma, nu_i, nu_j, nu_e, dist_ij_2, proj_vector_ij;
3331  unsigned short iVar, iDim;
3332 
3333 public:
3334 
3341  CAvgGradCorrected_TurbML(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3342 
3346  ~CAvgGradCorrected_TurbML(void);
3347 
3355  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3356 };
3357 
3366 private:
3367  su2double **Mean_GradTurbVar;
3368  su2double *Proj_Mean_GradTurbVar_Kappa, *Proj_Mean_GradTurbVar_Edge, *Proj_Mean_GradTurbVar_Corrected;
3369  su2double *Edge_Vector;
3370  bool implicit, incompressible;
3371  su2double sigma;
3372 
3373 public:
3374 
3381  CAvgGradCorrected_TransLM(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3382 
3387 
3395  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3396 };
3397 
3405 class CAvgGrad_TurbSST : public CNumerics {
3406 private:
3407  su2double sigma_k1,
3408  sigma_k2,
3409  sigma_om1,
3410  sigma_om2;
3411 
3412  su2double diff_kine,
3413  diff_omega;
3415  su2double *Edge_Vector,
3416  dist_ij_2,
3417  proj_vector_ij;
3419  su2double **Mean_GradTurbVar,
3420  *Proj_Mean_GradTurbVar_Normal,
3421  *Proj_Mean_GradTurbVar_Edge,
3422  *Proj_Mean_GradTurbVar_Corrected;
3423 
3424  su2double F1_i, F1_j;
3426  bool implicit, incompressible;
3427  unsigned short iVar, iDim;
3428 
3429 public:
3430 
3437  CAvgGrad_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config);
3438 
3442  ~CAvgGrad_TurbSST(void);
3443 
3447  void SetF1blending(su2double val_F1_i, su2double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;}
3448 
3456  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3457 
3458 };
3459 
3468 private:
3469  su2double sigma_k1,
3470  sigma_k2,
3471  sigma_om1,
3472  sigma_om2;
3473 
3474  su2double diff_kine,
3475  diff_omega;
3477  su2double *Edge_Vector,
3478  dist_ij_2,
3479  proj_vector_ij;
3481  su2double **Mean_GradTurbVar,
3482  *Proj_Mean_GradTurbVar_Normal,
3483  *Proj_Mean_GradTurbVar_Edge,
3484  *Proj_Mean_GradTurbVar_Corrected;
3485 
3486  su2double F1_i, F1_j;
3488  bool implicit, incompressible;
3489  unsigned short iVar, iDim;
3490 
3491 public:
3492 
3499  CAvgGradCorrected_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config);
3500 
3505 
3509  void SetF1blending(su2double val_F1_i, su2double val_F1_j) { F1_i = val_F1_i; F1_j = val_F1_j;}
3510 
3518  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, su2double **Jacobian_j, CConfig *config);
3519 
3520 };
3521 
3530 private:
3531  su2double *Velocity_i;
3532  su2double *Velocity_j;
3533  su2double *Mean_Velocity;
3534  su2double **Mean_GradPsiVar;
3535  su2double *Edge_Vector;
3536  su2double *Proj_Mean_GradPsiVar_Edge;
3537  su2double *Mean_GradPsiE;
3538  su2double **Mean_GradPhi;
3539  bool implicit;
3541 public:
3542 
3549  CAvgGradCorrected_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3550 
3555 
3566  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3567  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3568 };
3569 
3578 private:
3579  unsigned short iDim, iVar, jVar;
3580  su2double *PsiVar_i, *PsiVar_j,
3581  *Edge_Vector,
3582  **Mean_GradPsiVar, *Proj_Mean_GradPsiVar_Edge,
3583  Mean_Laminar_Viscosity, Mean_Eddy_Viscosity,
3584  dist_ij_2;
3585  bool implicit;
3587 public:
3588 
3595  CAvgGradCorrectedArtComp_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3596 
3601 
3612  void ComputeResidual (su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3613  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3614 };
3615 
3624 private:
3625  su2double **Mean_GradTurbPsi;
3626  su2double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected;
3627  su2double *Edge_Vector;
3628 
3629 public:
3630 
3637  CAvgGradCorrected_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3638 
3643 
3652  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
3653 
3664  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3665  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3666 };
3667 
3675 class CAvgGrad_AdjTurb : public CNumerics {
3676 private:
3677  su2double **Mean_GradTurbPsi;
3678  su2double *Proj_Mean_GradTurbPsi_Kappa, *Proj_Mean_GradTurbPsi_Edge, *Proj_Mean_GradTurbPsi_Corrected;
3679  su2double *Edge_Vector;
3680 
3681 public:
3682 
3689  CAvgGrad_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3690 
3694  ~CAvgGrad_AdjTurb(void);
3695 
3704  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
3705 
3716  void ComputeResidual(su2double *val_residual_i, su2double *val_residual_j, su2double **val_Jacobian_ii, su2double **val_Jacobian_ij,
3717  su2double **val_Jacobian_ji, su2double **val_Jacobian_jj, CConfig *config);
3718 };
3719 
3727 class CGalerkin_Flow : public CNumerics {
3728 public:
3729 
3736  CGalerkin_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3737 
3741  ~CGalerkin_Flow(void);
3742 
3748  void ComputeResidual (su2double **val_stiffmatrix_elem, CConfig *config);
3749 };
3750 
3758 class CFEM_Elasticity : public CNumerics {
3759 
3760 protected:
3761 
3762  su2double E;
3763  su2double Nu;
3764  su2double Rho_s;
3765  su2double Mu;
3766  su2double Lambda;
3767  su2double Kappa;
3770  su2double **Ba_Mat,
3771  **Bb_Mat;
3772  su2double *Ni_Vec;
3773  su2double **D_Mat;
3774  su2double **KAux_ab;
3775  su2double **GradNi_Ref_Mat;
3776  su2double **GradNi_Curr_Mat;
3778  su2double *FAux_Dead_Load;
3780 public:
3781 
3788  CFEM_Elasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3789 
3793  virtual ~CFEM_Elasticity(void);
3794 
3795  void Compute_Mass_Matrix(CElement *element_container, CConfig *config);
3796 
3797  void Compute_Dead_Load(CElement *element_container, CConfig *config);
3798 
3799  virtual void Compute_Tangent_Matrix(CElement *element_container, CConfig *config);
3800 
3801  virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config);
3802 
3803  virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config);
3804 
3805  virtual void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config);
3806 
3807  virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config);
3808 
3809  virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config);
3810 
3811  virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config);
3812 
3813 };
3814 
3823 
3824  su2double **nodalDisplacement;
3825 
3826 public:
3827 
3834  CFEM_LinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3835 
3839  ~CFEM_LinearElasticity(void);
3840 
3841  void Compute_Tangent_Matrix(CElement *element_container, CConfig *config);
3842 
3843  void Compute_Constitutive_Matrix(void);
3845 
3846  void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config);
3847 
3848 // virtual void Compute_Stress_Tensor(void);
3849 
3850 // virtual void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config);
3851 
3852 // virtual void Compute_NodalStress_Term(CElement *element_container, CConfig *config);
3853 
3854 };
3855 
3864 
3865 protected:
3866 
3867  su2double **F_Mat;
3868  su2double **b_Mat;
3869  su2double **currentCoord;
3870  su2double **Stress_Tensor;
3872  su2double **KAux_P_ab;
3873  su2double *KAux_t_a;
3875  su2double J_F;
3877  su2double f33;
3879 public:
3880 
3887  CFEM_NonlinearElasticity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3888 
3892  virtual ~CFEM_NonlinearElasticity(void);
3893 
3894  void Compute_Tangent_Matrix(CElement *element_container, CConfig *config);
3895 
3896  void Compute_MeanDilatation_Term(CElement *element_container, CConfig *config);
3897 
3898  void Compute_NodalStress_Term(CElement *element_container, CConfig *config);
3899 
3900  void Compute_Averaged_NodalStress(CElement *element_container, CConfig *config);
3901 
3902  virtual void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config);
3903 
3904  virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config);
3905 
3906  virtual void Compute_Stress_Tensor(CElement *element_container, CConfig *config);
3907 
3908 
3909 };
3910 
3919 
3920 public:
3921 
3928  CFEM_NeoHookean_Comp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3929 
3933  ~CFEM_NeoHookean_Comp(void);
3934 
3935  void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config);
3936 
3937  void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config);
3939 
3940  void Compute_Stress_Tensor(CElement *element_container, CConfig *config);
3941 
3942 };
3943 
3952 
3953 public:
3954 
3961  CFEM_NeoHookean_Incomp(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3962 
3966  ~CFEM_NeoHookean_Incomp(void);
3967 
3968  void Compute_Plane_Stress_Term(CElement *element_container, CConfig *config);
3969 
3970  void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config);
3972 
3973  void Compute_Stress_Tensor(CElement *element_container, CConfig *config);
3974 
3975 };
3976 
3977 
3978 
3986 class CSourceNothing : public CNumerics {
3987 public:
3988 
3995  CSourceNothing(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
3996 
4000  ~CSourceNothing(void);
4001 };
4002 
4011 private:
4012  su2double cv1_3;
4013  su2double k2;
4014  su2double cb1;
4015  su2double cw2;
4016  su2double ct3;
4017  su2double ct4;
4018  su2double cw3_6;
4019  su2double cb2_sigma;
4020  su2double sigma;
4021  su2double cb2;
4022  su2double cw1;
4023  unsigned short iDim;
4024  su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2;
4025  su2double r, g, g_6, glim, fw;
4026  su2double norm2_Grad;
4027  su2double dfv1, dfv2, dShat;
4028  su2double dr, dg, dfw;
4029  bool incompressible;
4030  bool rotating_frame;
4031  bool transition;
4032  su2double intermittency;
4033  su2double Production, Destruction, CrossProduction;
4034 
4035 public:
4036 
4043  CSourcePieceWise_TurbSA(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4044 
4048  ~CSourcePieceWise_TurbSA(void);
4049 
4057  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4058 
4063  void SetIntermittency(su2double intermittency_in);
4064 
4069  void SetProduction(su2double val_production);
4070 
4075  void SetDestruction(su2double val_destruction);
4076 
4081  void SetCrossProduction(su2double val_crossproduction);
4082 
4086  su2double GetProduction(void);
4087 
4091  su2double GetDestruction(void);
4092 
4096  su2double GetCrossProduction(void);
4097 };
4098 
4107 private:
4108  su2double cv1_3;
4109  su2double k2;
4110  su2double cb1;
4111  su2double cw2;
4112  su2double ct3;
4113  su2double ct4;
4114  su2double cw3_6;
4115  su2double cb2_sigma;
4116  su2double sigma;
4117  su2double cb2;
4118  su2double cw1;
4119  unsigned short iDim;
4120  su2double nu, Ji, fv1, fv2, ft2, Omega, S, Shat, inv_Shat, dist_i_2, Ji_2, Ji_3, inv_k2_d2;
4121  su2double r, g, g_6, glim, fw;
4122  su2double norm2_Grad;
4123  su2double dfv1, dfv2, dShat;
4124  su2double dr, dg, dfw;
4125  bool incompressible;
4126  bool rotating_frame;
4127  su2double intermittency;
4128  su2double Production, Destruction, CrossProduction;
4129 
4130 public:
4131 
4138  CSourcePieceWise_TurbSA_Neg(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4139 
4144 
4152  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4153 
4158  void SetIntermittency(su2double intermittency_in);
4159 
4164  void SetProduction(su2double val_production);
4165 
4170  void SetDestruction(su2double val_destruction);
4171 
4176  void SetCrossProduction(su2double val_crossproduction);
4177 
4181  su2double GetProduction(void);
4182 
4186  su2double GetDestruction(void);
4187 
4191  su2double GetCrossProduction(void);
4192 };
4193 
4202 private:
4203 
4204  /*-- SA model constants --*/
4205  su2double cv1_3;
4206  su2double k2;
4207  su2double cb1;
4208  su2double cw2;
4209  su2double cw3_6;
4210  su2double sigma;
4211  su2double cb2;
4212  su2double cw1;
4213 
4214  /*-- gamma-theta model constants --*/
4215  su2double c_e1;
4216  su2double c_a1;
4217  su2double c_e2;
4218  su2double c_a2;
4219  su2double sigmaf;
4220  su2double s1;
4221  su2double c_theta;
4222  su2double sigmat;
4223 
4224  /*-- Correlation constants --*/
4225  su2double flen_global;
4226  su2double alpha_global;
4227  su2double Vorticity;
4228 
4229  bool implicit;
4230 
4231 public:
4232  bool debugme; // For debugging only, remove this. -AA
4233 
4240  CSourcePieceWise_TransLM(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4241 
4245  ~CSourcePieceWise_TransLM(void);
4246 
4254  void ComputeResidual_TransLM(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config, su2double &gamma_sep);
4255 
4256  void CSourcePieceWise_TransLM__ComputeResidual_TransLM_d(su2double *TransVar_i, su2double *TransVar_id, su2double *val_residual, su2double *val_residuald, CConfig *config);
4257 };
4258 
4267 private:
4268  su2double F1_i,
4269  F1_j,
4270  F2_i,
4271  F2_j;
4272 
4273  su2double alfa_1,
4274  alfa_2,
4275  beta_1,
4276  beta_2,
4277  sigma_omega_1,
4278  sigma_omega_2,
4279  beta_star,
4280  a1;
4281 
4282  su2double CDkw_i, CDkw_j;
4283 
4284  bool incompressible;
4285 
4286 public:
4287 
4294  CSourcePieceWise_TurbSST(unsigned short val_nDim, unsigned short val_nVar, su2double* constants, CConfig *config);
4295 
4299  ~CSourcePieceWise_TurbSST(void);
4300 
4306  void SetF1blending(su2double val_F1_i, su2double val_F1_j);
4307 
4313  void SetF2blending(su2double val_F2_i, su2double val_F2_j);
4314 
4320  virtual void SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j);
4321 
4329  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4330 
4331 };
4332 
4340 class CSourceGravity : public CNumerics {
4341  su2double Froude;
4342  bool compressible, incompressible;
4343 
4344 public:
4345 
4351  CSourceGravity(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4352 
4356  ~CSourceGravity(void);
4357 
4363  void ComputeResidual(su2double *val_residual, CConfig *config);
4364 };
4365 
4374 private:
4375  su2double *Velocity, *GradDensity, *GradInvDensity, *dPoDensity2, *alpha, *beta, *Sigma_5_vec;
4376  su2double **GradVel_o_Rho, **sigma, **Sigma_phi, **Sigma_5_Tensor, **Sigma;
4377 
4378 public:
4379 
4386  CSourceViscous_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4387 
4391  ~CSourceViscous_AdjFlow(void);
4392 
4398  void ComputeResidual (su2double *val_residual, CConfig *config);
4399 
4400 };
4401 
4410 private:
4411  su2double **tau, *Velocity;
4412 
4413 public:
4414 
4421  CSourcePieceWise_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4422 
4426  ~CSourcePieceWise_AdjTurb(void);
4427 
4435  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4436 };
4437 
4439 private:
4440  su2double *Velocity, *Residual_i, *Residual_j, *Mean_Residual;
4441  su2double **Mean_PrimVar_Grad;
4442 
4443 public:
4444 
4451  CSourceConservative_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4452 
4457 
4463  void ComputeResidual(su2double *val_residual, CConfig *config);
4464 };
4465 
4474 public:
4475 
4482  CSourceConservative_AdjTurb(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4483 
4488 
4496  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4497 };
4498 
4507 public:
4508 
4515  CSourceRotatingFrame_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4516 
4521 
4528  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
4529 };
4530 
4539 public:
4540 
4547  CSourceRotatingFrame_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4548 
4553 
4560  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
4561 };
4562 
4571 public:
4572 
4579  CSourceAxisymmetric_Flow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4580 
4584  ~CSourceAxisymmetric_Flow(void);
4585 
4591  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config);
4592 
4593 };
4594 
4603 public:
4604 
4611  CSourceAxisymmetric_AdjFlow(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4612 
4617 
4623  void ComputeResidual(su2double *val_residual, su2double **Jacobian_i, CConfig *config);
4624 };
4625 
4633 class CSourceWindGust : public CNumerics {
4634 public:
4635 
4642  CSourceWindGust(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4643 
4647  ~CSourceWindGust(void);
4648 
4655  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
4656 };
4657 
4665 class CSource_Template : public CNumerics {
4666 public:
4667 
4675  CSource_Template(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4676 
4677 
4684  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, CConfig *config);
4685 
4689  ~CSource_Template(void);
4690 };
4691 
4700 private:
4701 
4702  /* define private variables here */
4703  bool implicit;
4704  su2double *Diff_U;
4705  su2double *Velocity_i, *Velocity_j, *RoeVelocity;
4706  su2double *ProjFlux_i, *ProjFlux_j;
4707  su2double *delta_wave, *delta_vel;
4708  su2double *Lambda, *Epsilon;
4709  su2double **P_Tensor, **invP_Tensor;
4710  su2double sq_vel, Proj_ModJac_Tensor_ij, Density_i, Energy_i, SoundSpeed_i, Pressure_i, Enthalpy_i,
4711  Density_j, Energy_j, SoundSpeed_j, Pressure_j, Enthalpy_j, R, RoeDensity, RoeEnthalpy, RoeSoundSpeed,
4712  ProjVelocity, ProjVelocity_i, ProjVelocity_j, proj_delta_vel, delta_p, delta_rho;
4713  unsigned short iDim, iVar, jVar, kVar;
4714 
4715 public:
4716 
4723  CConvective_Template(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4724 
4728  ~CConvective_Template(void);
4729 
4737  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4738 };
4739 
4748 private:
4749 
4750 public:
4751 
4758  CViscous_Template(unsigned short val_nDim, unsigned short val_nVar, CConfig *config);
4759 
4763  ~CViscous_Template(void);
4764 
4772  void ComputeResidual(su2double *val_residual, su2double **val_Jacobian_i, su2double **val_Jacobian_j, CConfig *config);
4773 };
4774 
4775 #include "numerics_structure.inl"
Class for source term integration of the adjoint turbulent equation.
Definition: numerics_structure.hpp:4409
Class for computing the stiffness matrix of a linear, elastic problem.
Definition: numerics_structure.hpp:3822
su2double * GridVel_j
Grid velocity at point j.
Definition: numerics_structure.hpp:127
Class for computing the adjoint viscous terms.
Definition: numerics_structure.hpp:3019
Source term class for rotating frame adjoint.
Definition: numerics_structure.hpp:4538
su2double * Proj_Flux_Tensor
Flux tensor projected in a direction.
Definition: numerics_structure.hpp:73
su2double * V_j
Vector of primitive variables at point j.
Definition: numerics_structure.hpp:139
su2double * TurbVar_jd
Vector of derivative of turbulent variables at point j.
Definition: numerics_structure.hpp:147
Class for computing the stiffness matrix of the Galerkin method.
Definition: numerics_structure.hpp:3727
su2double Rho_s
Structural density.
Definition: numerics_structure.hpp:3764
Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model)...
Definition: numerics_structure.hpp:2932
su2double * PrimVar_Lim_j
Limiter of primitive variables at point j.
Definition: numerics_structure.hpp:164
su2double Gamma_Minus_One
Fluids&#39;s Gamma - 1.0 .
Definition: numerics_structure.hpp:63
Class for adjoint turbulent using average of gradients with a correction.
Definition: numerics_structure.hpp:3623
Class for computing the adjoint viscous terms, including correction.
Definition: numerics_structure.hpp:3529
su2double ** Bb_Mat
Matrix B for node b - Auxiliary.
Definition: numerics_structure.hpp:3770
su2double Density_j
Density at point j.
Definition: numerics_structure.hpp:101
Class for solving an approximate Riemann solver of Roe for the flow equations.
Definition: numerics_structure.hpp:1463
Class for computing viscous term using an average of gradients.
Definition: numerics_structure.hpp:2802
Class for adjoint turbulent using average of gradients with a correction.
Definition: numerics_structure.hpp:3675
su2double Laminar_Viscosity_jd
Variation of laminar viscosity at point j.
Definition: numerics_structure.hpp:82
unsigned short Neighbor_j
Number of neighbors of the point j.
Definition: numerics_structure.hpp:184
Class for computing the adjoint viscous terms, including correction.
Definition: numerics_structure.hpp:3577
su2double Prandtl_Lam
Laminar Prandtl&#39;s number.
Definition: numerics_structure.hpp:67
su2double Volume
Volume of the control volume around point i.
Definition: numerics_structure.hpp:189
Class for computing the Lax-Friedrich centered scheme.
Definition: numerics_structure.hpp:2506
virtual void Compute_Constitutive_Matrix(CElement *element_container, CConfig *config)
A virtual member to compute the constitutive matrix in an element for structural problems.
Definition: numerics_structure.inl:76
Class for doing a scalar upwind solver for the adjoint turbulence equations.
Definition: numerics_structure.hpp:2205
su2double Lambda
Lame&#39;s coeficient.
Definition: numerics_structure.hpp:3766
Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model)...
Definition: numerics_structure.hpp:2886
su2double ** PsiVar_Grad_j
Gradient of adjoint variables at point j.
Definition: numerics_structure.hpp:168
su2double * U_nP1
Vector of conservative variables at time n+1.
Definition: numerics_structure.hpp:195
su2double * PsiVar_Lim_j
Limiter of adjoint variables at point j.
Definition: numerics_structure.hpp:166
su2double DensityInc_j
Incompressible density at point j.
Definition: numerics_structure.hpp:103
su2double * KAux_t_a
Auxiliar matrix for the pressure term.
Definition: numerics_structure.hpp:3873
Class for source term for solving axisymmetric problems.
Definition: numerics_structure.hpp:4570
su2double * Theta_v
Characteristic vibrational temperature.
Definition: numerics_structure.hpp:92
su2double ** Stress_Tensor
Cauchy stress tensor.
Definition: numerics_structure.hpp:3870
su2double ** TransVar_Grad_j
Gradient of turbulent variables at point j.
Definition: numerics_structure.hpp:172
su2double * UZeroOrder_j
Vector of conservative variables at point j without reconstruction.
Definition: numerics_structure.hpp:129
Class for solving an approximate Riemann solver of Roe with Turkel Preconditioning for the flow equat...
Definition: numerics_structure.hpp:1616
su2double * Diffusion_Coeff_j
Species diffusion coefficients at point j.
Definition: numerics_structure.hpp:80
su2double StrainMag_j
Strain rate magnitude.
Definition: numerics_structure.hpp:204
Definition: numerics_structure.hpp:4699
Class for computing viscous term using an average of gradients with correction (artificial compresibi...
Definition: numerics_structure.hpp:3196
su2double * Psi_j
Vector of adjoint variables at point j.
Definition: numerics_structure.hpp:143
void SetF1blending(su2double val_F1_i, su2double val_F1_j)
Sets value of first blending function.
Definition: numerics_structure.hpp:3509
Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations.
Definition: numerics_structure.hpp:2086
su2double * AuxVar_Grad_j
Gradient of an auxiliary variable at point i.
Definition: numerics_structure.hpp:176
su2double * Coord_j
Cartesians coordinates of point j.
Definition: numerics_structure.hpp:178
Class for doing a scalar upwind solver for the Spalar-Allmaral turbulence model equations.
Definition: numerics_structure.hpp:2047
Class for and adjoint centered scheme - JST.
Definition: numerics_structure.hpp:2456
su2double ** GradNi_Curr_Mat
Gradients of Ni - Auxiliary.
Definition: numerics_structure.hpp:3776
virtual void SetF1blending(su2double val_F1_i, su2double val_F1_j)
Set the value of the first blending function.
Definition: numerics_structure.hpp:446
su2double ** tau
Viscous stress tensor.
Definition: numerics_structure.hpp:77
su2double Gamma
Fluid&#39;s Gamma constant (ratio of specific heats).
Definition: numerics_structure.hpp:62
virtual void SetCrossDiff(su2double val_CDkw_i, su2double val_CDkw_j)
Set the value of the cross diffusion for the SST model.
Definition: numerics_structure.hpp:460
su2double J_F
Jacobian of the transformation (determinant of F)
Definition: numerics_structure.hpp:3875
Class for a rotating frame source term.
Definition: numerics_structure.hpp:4506
su2double * DeltaU_j
Vector of linearized variables at point j.
Definition: numerics_structure.hpp:145
su2double Lambda_j
Spectral radius at point j.
Definition: numerics_structure.hpp:107
Class for source term integration in adjoint problem.
Definition: numerics_structure.hpp:4373
su2double * S_j
Vector of secondary variables at point j.
Definition: numerics_structure.hpp:141
Class for computing the Lax-Friedrich centered scheme (artificial compressibility).
Definition: numerics_structure.hpp:2558
Class for integrating the source terms of the Spalart-Allmaras turbulence model equation.
Definition: numerics_structure.hpp:4106
Class for centered scheme - JST (artificial compressibility).
Definition: numerics_structure.hpp:2353
su2double ** KAux_ab
Node ab stiffness matrix - Auxiliary.
Definition: numerics_structure.hpp:3774
Class for solving an approximate Riemann solver of Roe for the adjoint flow equations.
Definition: numerics_structure.hpp:1719
Class for computing viscous term using the average of gradients with a correction.
Definition: numerics_structure.hpp:3101
su2double ** ConsVar_Grad_j
Gradient of conservative variables at point j.
Definition: numerics_structure.hpp:155
virtual void SetF2blending(su2double val_F1_i, su2double val_F1_j)
Set the value of the second blending function.
Definition: numerics_structure.hpp:453
su2double Sensor_j
Pressure sensor at point j.
Definition: numerics_structure.hpp:125
Class for computing the adjoint viscous terms.
Definition: numerics_structure.hpp:3061
Class for source term for solving axisymmetric problems.
Definition: numerics_structure.hpp:4602
su2double ** currentCoord
Current coordinates.
Definition: numerics_structure.hpp:3869
Class for a source term due to a wind gust.
Definition: numerics_structure.hpp:4633
Class for and adjoint centered scheme - JST.
Definition: numerics_structure.hpp:2406
Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbule...
Definition: numerics_structure.hpp:3279
bool plane_stress
Checks if we are solving a plane stress case.
Definition: numerics_structure.hpp:3768
Class for computing viscous term using average of gradient with correction (Menter SST turbulence mod...
Definition: numerics_structure.hpp:3405
In-Line subroutines of the numerics_structure.hpp file.
su2double ** F_Mat
Deformation gradient.
Definition: numerics_structure.hpp:3867
su2double Prandtl_Turb
Turbulent Prandtl&#39;s number.
Definition: numerics_structure.hpp:68
unsigned short nVar
Number of dimensions and variables.
Definition: numerics_structure.hpp:61
su2double f33
Plane stress term for non-linear 2D plane stress analysis.
Definition: numerics_structure.hpp:3877
su2double dist_j
Distance of point j to the nearest wall.
Definition: numerics_structure.hpp:115
su2double LambdaComb_j
Spectral radius at point j.
Definition: numerics_structure.hpp:109
su2double BetaInc2_j
Beta incompressible at point j.
Definition: numerics_structure.hpp:105
Class for performing a linear upwind solver for the adjoint turbulence equations. ...
Definition: numerics_structure.hpp:2011
Class for centered shceme - JST.
Definition: numerics_structure.hpp:2299
Class for computing viscous term using average of gradients.
Definition: numerics_structure.hpp:4747
su2double ** KAux_P_ab
Auxiliar matrix for the pressure term.
Definition: numerics_structure.hpp:3872
Class for solving a flux-vector splitting method by Steger & Warming, modified version.
Definition: numerics_structure.hpp:1571
su2double * UnitNormald
derivatve of unitary normal vector.
Definition: numerics_structure.hpp:186
Class for computing the Lax-Friedrich adjoint centered scheme.
Definition: numerics_structure.hpp:2610
Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbule...
Definition: numerics_structure.hpp:3238
su2double Pressure_j
Pressure at point j.
Definition: numerics_structure.hpp:97
Class for computing the constitutive and stress tensors for a neo-Hookean material model...
Definition: numerics_structure.hpp:3951
Class for computing viscous term using the average of gradients.
Definition: numerics_structure.hpp:2755
Headers of the main subroutines for storing all the variables for each kind of governing equation (di...
Class for solving an approximate Riemann AUSM.
Definition: numerics_structure.hpp:1814
Class for defining the numerical methods.
Definition: numerics_structure.hpp:59
su2double * Und_Lapl_j
Undivided laplacians at point j.
Definition: numerics_structure.hpp:123
su2double Eddy_Viscosity_j
Eddy viscosity at point j.
Definition: numerics_structure.hpp:93
Class for computing viscous term using the average of gradients with a correction.
Definition: numerics_structure.hpp:3148
Class for computing the constitutive and stress tensors for a neo-Hookean material model...
Definition: numerics_structure.hpp:3918
su2double Gas_Constant
Gas constant.
Definition: numerics_structure.hpp:64
Definition: numerics_structure.hpp:3863
su2double Volume_nP1
Volume of the control volume at time n+1.
Definition: numerics_structure.hpp:192
su2double Enthalpy_j
Enthalpy at point j.
Definition: numerics_structure.hpp:113
Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model)...
Definition: numerics_structure.hpp:2841
su2double Temp_j
Temperature at point j.
Definition: numerics_structure.hpp:117
Class for solving an approximate Riemann HLLC.
Definition: numerics_structure.hpp:1861
su2double * TurbPsi_j
Vector of adjoint turbulent variables at point j.
Definition: numerics_structure.hpp:153
su2double turb_ke_j
Turbulent kinetic energy at point j.
Definition: numerics_structure.hpp:95
Class for solving an approximate Riemann solver of Roe for the adjoint flow equations.
Definition: numerics_structure.hpp:1770
void SetSecondary(su2double &data, const double &val)
Set the secondary value of the datatype (needs to be implemented for each new type).
Definition: codi_forward_structure.inl:40
su2double ** TurbVar_Grad_j
Gradient of turbulent variables at point j.
Definition: numerics_structure.hpp:170
Class for solving an approximate Riemann HLLC.
Definition: numerics_structure.hpp:1912
su2double Thermal_Conductivity_ve_j
Thermal conductivity at point j.
Definition: numerics_structure.hpp:86
su2double GravityForce_j
Gravity force at point j.
Definition: numerics_structure.hpp:99
su2double Cp_j
Cp at point j.
Definition: numerics_structure.hpp:90
Class for computing viscous term using the average of gradients.
Definition: numerics_structure.hpp:2710
Class for doing a scalar upwind solver for the Menter SST turbulence model equations.
Definition: numerics_structure.hpp:2125
su2double Kappa
Compressibility constant.
Definition: numerics_structure.hpp:3767
su2double vel2_inf
value of the square of freestream speed.
Definition: numerics_structure.hpp:198
Class for computing the Lax-Friedrich adjoint centered scheme.
Definition: numerics_structure.hpp:2660
Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbule...
Definition: numerics_structure.hpp:3324
su2double ** GradNi_Ref_Mat
Gradients of Ni - Auxiliary.
Definition: numerics_structure.hpp:3775
su2double * Ni_Vec
Vector of shape functions - Auxiliary.
Definition: numerics_structure.hpp:3772
Class for source term integration in adjoint turbulent problem using a conservative scheme...
Definition: numerics_structure.hpp:4473
su2double * WindGustDer_j
Wind gust derivatives at point j.
Definition: numerics_structure.hpp:201
Class for integrating the source terms of the Menter SST turbulence model equations.
Definition: numerics_structure.hpp:4266
su2double ** TurbPsi_Grad_j
Gradient of adjoint turbulent variables at point j.
Definition: numerics_structure.hpp:174
su2double ** D_Mat
Constitutive matrix - Auxiliary.
Definition: numerics_structure.hpp:3773
Class for the source term integration of the gravity force.
Definition: numerics_structure.hpp:4340
su2double * Temp_vib_j
Temperature vibrational at point j.
Definition: numerics_structure.hpp:121
su2double * Temp_tr_j
Temperature transl-rot at point j.
Definition: numerics_structure.hpp:119
Class for integrating the source terms of the Spalart-Allmaras turbulence model equation.
Definition: numerics_structure.hpp:4201
su2double Nu
Poisson&#39;s ratio.
Definition: numerics_structure.hpp:3763
su2double Mu
Lame&#39;s coeficient.
Definition: numerics_structure.hpp:3765
Definition: numerics_structure.hpp:4438
su2double ** b_Mat
Left Cauchy-Green Tensor.
Definition: numerics_structure.hpp:3868
su2double SoundSpeed_j
Sound speed at point j.
Definition: numerics_structure.hpp:111
Class for solving an approximate Riemann solver of Roe for the incompressible flow equations...
Definition: numerics_structure.hpp:1671
Class for computing viscous term using average of gradient with correction (Menter SST turbulence mod...
Definition: numerics_structure.hpp:3467
su2double * Vector
Auxiliary vector.
Definition: numerics_structure.hpp:65
su2double * FAux_Dead_Load
Auxiliar vector for the dead loads.
Definition: numerics_structure.hpp:3778
su2double E
Young&#39;s modulus of elasticity.
Definition: numerics_structure.hpp:3762
Class for performing a linear upwind solver for the Spalart-Allmaras turbulence model equations with ...
Definition: numerics_structure.hpp:1971
Definition: numerics_structure.hpp:2245
Class for solving an approximate Riemann solver of Roe for the flow equations for a general fluid mod...
Definition: numerics_structure.hpp:1510
Generic class for computing the tangent matrix and the residual for structural problems.
Definition: numerics_structure.hpp:3758
Class for computing viscous term using average of gradients with correction (Spalart-Allmaras turbule...
Definition: numerics_structure.hpp:3365
Class for computing viscous term using average of gradients (Spalart-Allmaras Turbulence model)...
Definition: numerics_structure.hpp:2976
Class for centered scheme - CUSP.
Definition: numerics_structure.hpp:1413
su2double * Vorticity_j
Vorticity.
Definition: numerics_structure.hpp:203
void SetF1blending(su2double val_F1_i, su2double val_F1_j)
Sets value of first blending function.
Definition: numerics_structure.hpp:3447
su2double * TransVar_j
Vector of turbulent variables at point j.
Definition: numerics_structure.hpp:151
su2double ** PrimVar_Grad_j
Gradient of primitive variables at point j.
Definition: numerics_structure.hpp:162
Class for integrating the source terms of the Spalart-Allmaras turbulence model equation.
Definition: numerics_structure.hpp:4010
Main class for defining the problem; basically this class reads the configuration file...
Definition: config_structure.hpp:68
su2double * WindGust_j
Wind gust at point j.
Definition: numerics_structure.hpp:199
Main class for defining the element structure.
Definition: element_structure.hpp:57
Dummy class.
Definition: numerics_structure.hpp:4665
Dummy class.
Definition: numerics_structure.hpp:3986
Class for doing a scalar upwind solver for the Spalart-Allmaras turbulence model equations with trans...
Definition: numerics_structure.hpp:2166