bool CNSVariable::SetPrimVar_Compressible(double eddy_visc, double turb_ke, CFluidModel *FluidModel) { unsigned short iVar; bool check_dens = false, check_press = false, check_sos = false, check_temp = false, RightVol = true; SetVelocity(); // Computes velocity and velocity^2 double density = GetDensity(); double staticEnergy = GetEnergy()-0.5*Velocity2 - turb_ke; /* check will be moved inside fluid model plus error description strings*/ FluidModel->SetTDState_rhoe(density, staticEnergy); check_dens = SetDensity(); check_press = SetPressure(FluidModel->GetPressure()); check_sos = SetSoundSpeed(FluidModel->GetSoundSpeed2()); check_temp = SetTemperature(FluidModel->GetTemperature()); /*--- Check that the solution has a physical meaning ---*/ if (check_dens || check_press || check_sos || check_temp) { /*--- Copy the old solution ---*/ for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = Solution_Old[iVar]; /*--- Recompute the primitive variables ---*/ SetVelocity(); // Computes velocity and velocity^2 double density = GetDensity(); double staticEnergy = GetEnergy()-0.5*Velocity2 - turb_ke; /* check will be moved inside fluid model plus error description strings*/ FluidModel->SetTDState_rhoe(density, staticEnergy); check_dens = SetDensity(); check_press = SetPressure(FluidModel->GetPressure()); check_sos = SetSoundSpeed(FluidModel->GetSoundSpeed2()); check_temp = SetTemperature(FluidModel->GetTemperature()); RightVol = false; } /*--- Set enthalpy ---*/ SetEnthalpy(); // Requires pressure computation. /*--- Set laminar viscosity ---*/ SetLaminarViscosity(FluidModel->GetLaminarViscosity(FluidModel->GetTemperature(), GetDensity())); /*--- Set eddy viscosity ---*/ SetEddyViscosity(eddy_visc); return RightVol; }
bool CNSVariable::SetPrimVar_Compressible(double eddy_visc, double turb_ke, CConfig *config) { unsigned short iVar; bool check_dens = false, check_press = false, check_sos = false, check_temp = false, RightVol = true; double Gas_Constant = config->GetGas_ConstantND(); double Gamma = config->GetGamma(); SetVelocity(); // Computes velocity and velocity^2 check_dens = SetDensity(); // Check the density check_press = SetPressure(Gamma, turb_ke); // Requires velocity2 computation. check_sos = SetSoundSpeed(Gamma); // Requires pressure computation. check_temp = SetTemperature(Gas_Constant); // Requires pressure computation. /*--- Check that the solution has a physical meaning ---*/ if (check_dens || check_press || check_sos || check_temp) { /*--- Copy the old solution ---*/ for (iVar = 0; iVar < nVar; iVar++) Solution[iVar] = Solution_Old[iVar]; /*--- Recompute the primitive variables ---*/ SetVelocity(); check_dens = SetDensity(); check_press = SetPressure(Gamma, turb_ke); check_sos = SetSoundSpeed(Gamma); check_temp = SetTemperature(Gas_Constant); RightVol = false; } /*--- Set enthalpy ---*/ SetEnthalpy(); // Requires pressure computation. /*--- Set laminar viscosity ---*/ SetLaminarViscosity(config); // Requires temperature computation. /*--- Set eddy viscosity ---*/ SetEddyViscosity(eddy_visc); return RightVol; }