Documentation 6b54b78464
Loading...
Searching...
No Matches
CFEM_DG_EulerSolver Class Reference

Main class for defining the Euler Discontinuous Galerkin finite element flow solver. More...

#include <CFEM_DG_EulerSolver.hpp>

Inheritance diagram for CFEM_DG_EulerSolver:
[legend]

Public Member Functions

 CFEM_DG_EulerSolver (void)
 Constructor of the class.
 
 CFEM_DG_EulerSolver (CConfig *config, unsigned short val_nDim, unsigned short iMesh)
 
 CFEM_DG_EulerSolver (CGeometry *geometry, CConfig *config, unsigned short iMesh)
 
 ~CFEM_DG_EulerSolver (void) override
 Destructor of the class.
 
void SetNondimensionalization (CConfig *config, unsigned short iMesh, const bool writeOutput)
 Set the fluid solver nondimensionalization.
 
su2double * GetVecSolDOFs (void) final
 Get a pointer to the vector of the solution degrees of freedom.
 
unsigned long GetnDOFsGlobal (void) const final
 Get the global number of solution degrees of freedom for the calculation.
 
CFluidModel * GetFluidModel (void) const final
 Compute the pressure at the infinity.
 
su2double GetDensity_Inf (void) const final
 Compute the density at the infinity.
 
su2double GetModVelocity_Inf (void) const final
 Compute 2-norm of the velocity at the infinity.
 
su2double GetDensity_Energy_Inf (void) const final
 Compute the density multiply by energy at the infinity.
 
su2double GetPressure_Inf (void) const final
 Compute the pressure at the infinity.
 
su2double GetVelocity_Inf (unsigned short val_dim) const final
 Get the velocity at the infinity.
 
su2double * GetVelocity_Inf (void) final
 Get the velocity at the infinity.
 
void SetPressure_Inf (su2double p_inf) final
 Set the freestream pressure.
 
void SetTemperature_Inf (su2double t_inf) final
 Set the freestream temperature.
 
void SetInitialCondition (CGeometry **geometry, CSolver ***solver_container, CConfig *config, unsigned long TimeIter) final
 Set the initial condition for the Euler Equations.
 
void Set_OldSolution () final
 Set the working solution of the first time level to the current solution. Used for Runge-Kutta type schemes.
 
void Set_NewSolution () final
 Set the new solution to the current solution for classical RK.
 
void SetTime_Step (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned long Iteration) override
 Function to compute the time step for solving the Euler equations.
 
void CheckTimeSynchronization (CConfig *config, const su2double TimeSync, su2double &timeEvolved, bool &syncTimeReached) final
 Function, which checks whether or not the time synchronization point is reached when explicit time stepping is used.
 
void ProcessTaskList_DG (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh) final
 Function, which processes the list of tasks to be executed by the DG solver.
 
void ADER_SpaceTimeIntegration (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh, unsigned short RunTime_EqSystem) final
 Function, to carry out the space time integration for ADER with time accurate local time stepping.
 
void ComputeSpatialJacobian (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics, CConfig *config, unsigned short iMesh, unsigned short RunTime_EqSystem) final
 Function, which controls the computation of the spatial Jacobian.
 
void TolerancesADERPredictorStep (void)
 Function, which determines the values of the tolerances in the predictor step of ADER-DG.
 
void ADER_DG_PredictorStep (CConfig *config, const unsigned long elemBeg, const unsigned long elemEnd, su2double *workArray)
 Function, carries out the predictor step of the ADER-DG time integration.
 
void ADER_DG_TimeInterpolatePredictorSol (CConfig *config, const unsigned short iTime, const unsigned long elemBeg, const unsigned long elemEnd, const unsigned long nAdjElem, const unsigned long *adjElem, const bool secondPartTimeInt, su2double *solTimeLevel)
 Function, which interpolates the predictor solution of ADER-DG to the time value that corresponds to iTime.
 
virtual void Shock_Capturing_DG (CConfig *config, const unsigned long elemBeg, const unsigned long elemEnd, su2double *workArray)
 Compute the artificial viscosity for shock capturing in DG. It is a virtual function, because this function is overruled for Navier-Stokes.
 
virtual void Volume_Residual (CConfig *config, const unsigned long elemBeg, const unsigned long elemEnd, su2double *workArray)
 Compute the volume contributions to the spatial residual. It is a virtual function, because this function is overruled for Navier-Stokes.
 
void Boundary_Conditions (const unsigned short timeLevel, CConfig *config, CNumerics **numerics, const bool haloInfoNeededForBC, su2double *workArray)
 Function, which computes the spatial residual for the DG discretization.
 
virtual void ResidualFaces (CConfig *config, const unsigned long indFaceBeg, const unsigned long indFaceEnd, unsigned long &indResFaces, CNumerics *numerics, su2double *workArray)
 Compute the spatial residual for the given range of faces. It is a virtual function, because this function is overruled for Navier-Stokes.
 
void AccumulateSpaceTimeResidualADEROwnedElem (CConfig *config, const unsigned short timeLevel, const unsigned short intPoint)
 Function, which accumulates the space time residual of the ADER-DG time integration scheme for the owned elements.
 
void AccumulateSpaceTimeResidualADERHaloElem (CConfig *config, const unsigned short timeLevel, const unsigned short intPoint)
 Function, which accumulates the space time residual of the ADER-DG time integration scheme for the halo elements.
 
void Preprocessing (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep, unsigned short RunTime_EqSystem, bool Output) final
 Compute primitive variables and their gradients.
 
void Postprocessing (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh) final
 
virtual void BC_Euler_Wall (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, su2double *workArray)
 Impose via the residual the Euler wall boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_Far_Field (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, su2double *workArray)
 Impose the far-field boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_Sym_Plane (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, su2double *workArray)
 Impose the symmetry boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_Supersonic_Outlet (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, su2double *workArray)
 Impose the supersonic outlet boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_Inlet (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, unsigned short val_marker, su2double *workArray)
 Impose the subsonic inlet boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_Outlet (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, unsigned short val_marker, su2double *workArray)
 Impose the outlet boundary condition.It is a virtual function, because for Navier-Stokes it is overwritten.
 
virtual void BC_HeatFlux_Wall (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, unsigned short val_marker, su2double *workArray)
 Impose a constant heat-flux condition at the wall. It is a virtual function, such that it can be overwritten for Navier-Stokes.
 
virtual void BC_Isothermal_Wall (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, unsigned short val_marker, su2double *workArray)
 Impose an isothermal condition at the wall. It is a virtual function, such that it can be overwritten for Navier-Stokes.
 
virtual void BC_Riemann (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, unsigned short val_marker, su2double *workArray)
 Impose the boundary condition using characteristic reconstruction. It is a virtual function, such that it can be overwritten for Navier-Stokes.
 
virtual void BC_Custom (CConfig *config, const unsigned long surfElemBeg, const unsigned long surfElemEnd, const CSurfaceElementFEM *surfElem, su2double *resFaces, CNumerics *conv_numerics, su2double *workArray)
 Impose the user customized boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.
 
void ExplicitRK_Iteration (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep) final
 Update the solution using a Runge-Kutta scheme.
 
void ClassicalRK4_Iteration (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep) final
 Update the solution using the classical fourth-order Runge-Kutta scheme.
 
void SetResidual_RMS_FEM (CGeometry *geometry, CConfig *config)
 Update the solution using the classical fourth-order Runge-Kutta scheme.
 
void ComputeVerificationError (CGeometry *geometry, CConfig *config) final
 Compute the global error measures (L2, Linf) for verification cases.
 
void ADER_DG_Iteration (const unsigned long elemBeg, const unsigned long elemEnd)
 Update the solution for the ADER-DG scheme for the given range of elements.
 
void Pressure_Forces (const CGeometry *geometry, const CConfig *config) final
 Compute the pressure forces and all the adimensional coefficients.
 
void LoadRestart (CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter, bool val_update_geo) final
 Load a solution from a restart file.
 
su2double GetCL_Inv (unsigned short val_marker) const final
 Provide the non dimensional lift coefficient (inviscid contribution).
 
su2double GetSurface_CL (unsigned short val_marker) const final
 Provide the non dimensional lift coefficient.
 
su2double GetSurface_CD (unsigned short val_marker) const final
 Provide the non dimensional drag coefficient.
 
su2double GetSurface_CSF (unsigned short val_marker) const final
 Provide the non dimensional side-force coefficient.
 
su2double GetSurface_CEff (unsigned short val_marker) const final
 Provide the non dimensional side-force coefficient.
 
su2double GetSurface_CFx (unsigned short val_marker) const final
 Provide the non dimensional x force coefficient.
 
su2double GetSurface_CFy (unsigned short val_marker) const final
 Provide the non dimensional y force coefficient.
 
su2double GetSurface_CFz (unsigned short val_marker) const final
 Provide the non dimensional z force coefficient.
 
su2double GetSurface_CMx (unsigned short val_marker) const final
 Provide the non dimensional x moment coefficient.
 
su2double GetSurface_CMy (unsigned short val_marker) const final
 Provide the non dimensional y moment coefficient.
 
su2double GetSurface_CMz (unsigned short val_marker) const final
 Provide the non dimensional z moment coefficient.
 
su2double GetSurface_CL_Inv (unsigned short val_marker) const final
 Provide the non dimensional lift coefficient.
 
su2double GetSurface_CD_Inv (unsigned short val_marker) const final
 Provide the non dimensional drag coefficient.
 
su2double GetSurface_CSF_Inv (unsigned short val_marker) const final
 Provide the non dimensional side-force coefficient.
 
su2double GetSurface_CEff_Inv (unsigned short val_marker) const final
 Provide the non dimensional side-force coefficient.
 
su2double GetSurface_CFx_Inv (unsigned short val_marker) const final
 Provide the non dimensional x force coefficient.
 
su2double GetSurface_CFy_Inv (unsigned short val_marker) const final
 Provide the non dimensional y force coefficient.
 
su2double GetSurface_CFz_Inv (unsigned short val_marker) const final
 Provide the non dimensional z force coefficient.
 
su2double GetSurface_CMx_Inv (unsigned short val_marker) const final
 Provide the non dimensional x moment coefficient.
 
su2double GetSurface_CMy_Inv (unsigned short val_marker) const final
 Provide the non dimensional y moment coefficient.
 
su2double GetSurface_CMz_Inv (unsigned short val_marker) const final
 Provide the non dimensional z moment coefficient.
 
su2double GetCD_Inv (unsigned short val_marker) const final
 Provide the non dimensional drag coefficient (inviscid contribution).
 
su2double GetCSF_Inv (unsigned short val_marker) const final
 Provide the non dimensional sideforce coefficient (inviscid contribution).
 
su2double GetCEff_Inv (unsigned short val_marker) const final
 Provide the non dimensional efficiency coefficient (inviscid contribution).
 
su2double GetTotal_CSF () const final
 Provide the total (inviscid + viscous) non dimensional sideforce coefficient.
 
su2double GetTotal_CEff () const final
 Provide the total (inviscid + viscous) non dimensional efficiency coefficient.
 
void SetTotal_CL (su2double val_Total_CL) final
 Store the total (inviscid + viscous) non dimensional lift coefficient.
 
su2double GetAeroCoeffsReferenceForce () const final
 Get the reference force used to compute CL, CD, etc.
 
su2double GetTotal_CL () const final
 Provide the total (inviscid + viscous) non dimensional lift coefficient.
 
su2double GetTotal_CD () const final
 Provide the total (inviscid + viscous) non dimensional drag coefficient.
 
su2double GetTotal_CMx () const final
 Provide the total (inviscid + viscous) non dimensional x moment coefficient.
 
su2double GetTotal_CMy () const final
 Provide the total (inviscid + viscous) non dimensional y moment coefficient.
 
su2double GetTotal_CMz () const final
 Provide the total (inviscid + viscous) non dimensional z moment coefficient.
 
su2double GetTotal_CFx () const final
 Provide the total (inviscid + viscous) non dimensional x force coefficient.
 
su2double GetTotal_CFy () const final
 Provide the total (inviscid + viscous) non dimensional y force coefficient.
 
su2double GetTotal_CFz () const final
 Provide the total (inviscid + viscous) non dimensional z force coefficient.
 
void SetTotal_CD (su2double val_Total_CD) final
 Store the total (inviscid + viscous) non dimensional drag coefficient.
 
su2double GetAllBound_CL_Inv () const final
 Get the inviscid contribution to the lift coefficient.
 
su2double GetAllBound_CD_Inv () const final
 Get the inviscid contribution to the drag coefficient.
 
su2double GetAllBound_CSF_Inv () const final
 Get the inviscid contribution to the sideforce coefficient.
 
su2double GetAllBound_CEff_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CMx_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CMy_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CMz_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CFx_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CFy_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
su2double GetAllBound_CFz_Inv () const final
 Get the inviscid contribution to the efficiency coefficient.
 
virtual void BC_Euler_Wall (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Far_Field (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Sym_Plane (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Sym_Plane (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 Impose via the residual the Euler boundary condition.
 
virtual void BC_Supersonic_Outlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Inlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Outlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_HeatFlux_Wall (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Isothermal_Wall (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Riemann (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Custom (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
- Public Member Functions inherited from CSolver
 CSolver (LINEAR_SOLVER_MODE linear_solver_mode=LINEAR_SOLVER_MODE::STANDARD)
 Constructor of the class.
 
virtual ~CSolver (void)
 Destructor of the class.
 
CVariable * GetNodes ()
 Allow outside access to the nodes of the solver, containing conservatives, primitives, etc.
 
const CVariable * GetNodes () const
 
bool HasPeriodicRotation (const CConfig &config) const
 
void GetCommCountAndType (const CConfig *config, MPI_QUANTITIES commType, unsigned short &COUNT_PER_POINT, COMM_TYPE &MPI_TYPE) const
 Helper function to define the type and number of variables per point for each communication type.
 
void InitiateComms (CGeometry *geometry, const CConfig *config, MPI_QUANTITIES commType)
 Routine to load a solver quantity into the data structures for MPI point-to-point communication and to launch non-blocking sends and recvs.
 
void CompleteComms (CGeometry *geometry, const CConfig *config, MPI_QUANTITIES commType)
 Routine to complete the set of non-blocking communications launched by InitiateComms() and unpacking of the data in the solver class.
 
void GetPeriodicCommCountAndType (const CConfig *config, unsigned short commType, unsigned short &COUNT_PER_POINT, COMM_TYPE &MPI_TYPE, unsigned short &ICOUNT, unsigned short &JCOUNT) const
 Helper function to define the type and number of variables per point for each communication type.
 
void InitiatePeriodicComms (CGeometry *geometry, const CConfig *config, unsigned short val_periodic_index, unsigned short commType)
 Routine to load a solver quantity into the data structures for MPI periodic communication and to launch non-blocking sends and recvs.
 
void CompletePeriodicComms (CGeometry *geometry, const CConfig *config, unsigned short val_periodic_index, unsigned short commType)
 Routine to complete the set of non-blocking periodic communications launched by InitiatePeriodicComms() and unpacking of the data in the solver class.
 
void SetIterLinSolver (unsigned short val_iterlinsolver)
 Set number of linear solver iterations.
 
void SetResLinSolver (su2double val_reslinsolver)
 Set the final linear solver residual.
 
void SetResidual_RMS (const CGeometry *geometry, const CConfig *config, bool force=false)
 Set the value of the max residual and RMS residual.
 
void SetResidual_BGS (const CGeometry *geometry, const CConfig *config)
 Communicate the value of the max residual and RMS residual.
 
void ComputeResidual_Multizone (const CGeometry *geometry, const CConfig *config)
 Set the value of the max residual and RMS residual.
 
virtual void SetDualTime_Mesh (void)
 Move the mesh in time.
 
bool GetAdjoint (void) const
 Get information whether the initialization is an adjoint solver or not.
 
unsigned short GetIterLinSolver (void) const
 Get number of linear solver iterations.
 
su2double GetResLinSolver (void) const
 Get the final linear solver residual.
 
su2double GetMax_Delta_Time (void) const
 Get the value of the maximum delta time.
 
su2double GetMin_Delta_Time (void) const
 Get the value of the minimum delta time.
 
su2double GetMax_CFL_Local (void) const
 Get the value of the maximum local CFL number.
 
su2double GetMin_CFL_Local (void) const
 Get the value of the minimum local CFL number.
 
su2double GetAvg_CFL_Local (void) const
 Get the value of the average local CFL number.
 
void SetCFL_Local_Stats (su2double val_cfl)
 Set min/max/avg local CFL summary statistics.
 
unsigned short GetnVar (void) const
 Get the number of variables of the problem.
 
unsigned short GetnPrimVar (void) const
 Get the number of variables of the problem.
 
unsigned short GetnPrimVarGrad (void) const
 Get the number of variables of the problem.
 
unsigned short GetnSecondaryVar (void) const
 Get the number of variables of the problem.
 
unsigned short GetnOutputVariables (void) const
 Get the number of variables of the problem.
 
virtual void SetResidual_DualTime (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iRKStep, unsigned short iMesh, unsigned short RunTime_EqSystem)
 A virtual member.
 
su2double GetRes_RMS (unsigned short val_var) const
 Get the maximal residual, this is useful for the convergence history.
 
su2double GetRes_Max (unsigned short val_var) const
 Get the maximal residual, this is useful for the convergence history.
 
su2double GetRes_BGS (unsigned short val_var) const
 Get the residual for BGS subiterations.
 
su2double GetRes_Max_BGS (unsigned short val_var) const
 Get the maximal residual for BGS subiterations.
 
virtual su2double GetRes_FEM (unsigned short val_var) const
 Get the residual for FEM structural analysis.
 
unsigned long GetPoint_Max (unsigned short val_var) const
 Get the maximal residual, this is useful for the convergence history.
 
const su2double * GetPoint_Max_Coord (unsigned short val_var) const
 Get the location of the maximal residual, this is useful for the convergence history.
 
unsigned long GetPoint_Max_BGS (unsigned short val_var) const
 Get the maximal residual, this is useful for the convergence history.
 
const su2double * GetPoint_Max_Coord_BGS (unsigned short val_var) const
 Get the location of the maximal residual, this is useful for the convergence history.
 
void SetRotatingFrame_GCL (CGeometry *geometry, const CConfig *config)
 Set Value of the residual due to the Geometric Conservation Law (GCL) for steady rotating frame problems.
 
void SetAuxVar_Gradient_GG (CGeometry *geometry, const CConfig *config)
 Compute the Green-Gauss gradient of the auxiliary variable.
 
void SetAuxVar_Gradient_LS (CGeometry *geometry, const CConfig *config)
 Compute the Least Squares gradient of the auxiliary variable.
 
void Add_External_To_Solution ()
 Add External to Solution vector.
 
void Add_Solution_To_External ()
 Add the current Solution vector to External.
 
void Update_Cross_Term (CConfig *config, su2passivematrix &cross_term)
 Update a given cross-term with relaxation and the running total (External).
 
void SetSolution_Gradient_GG (CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction=false)
 Compute the Green-Gauss gradient of the solution.
 
void SetSolution_Gradient_LS (CGeometry *geometry, const CConfig *config, short idxVel, bool reconstruction=false)
 Compute the Least Squares gradient of the solution.
 
void SetGridVel_Gradient (CGeometry *geometry, const CConfig *config) const
 Compute the Least Squares gradient of the grid velocity.
 
void SetSolution_Limiter (CGeometry *geometry, const CConfig *config)
 Compute slope limiter.
 
virtual void SetPrimitive_Limiter (CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual su2double GetFlameThickness () const
 A virtual member.
 
su2double MUSCL_Reconstruction (const su2double *grad, const su2double *vector_ij, su2double delta_ij, su2double kappa, su2double ramp_val) const
 Compute the projection of a variable for MUSCL reconstruction.
 
void Restart_OldGeometry (CGeometry *geometry, CConfig *config) const
 Load the geometries at the previous time states n and nM1.
 
virtual void Postprocessing (CGeometry *geometry, CConfig *config, CNumerics **numerics, bool of_comp_mode=false)
 A virtual member, overloaded.
 
virtual void Centered_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep)
 A virtual member.
 
virtual void Upwind_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh)
 A virtual member.
 
virtual void Preprocessing (CGeometry *geometry, CSolver **solver_container, CConfig *config, CNumerics **numerics, unsigned short iMesh, unsigned long Iteration, unsigned short RunTime_EqSystem, bool Output)
 A virtual member overloaded.
 
virtual void ComputeEdgeMassFluxesRhieChow (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void ApplyPressureVelocityCorrection (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void Set_Heatflux_Areas (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void Evaluate_ObjFunc (const CConfig *config, CSolver **solver)
 Compute weighted-sum "combo" objective output.
 
virtual void MultigridProjectEulerWall (CGeometry *, const CConfig *, bool)
 Enforce Euler wall BC on a restricted or prolongated multigrid solution by projecting the momentum to the tangent plane of the wall.
 
virtual void BC_Clamped (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Clamped_Post (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_DispDir (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Normal_Displacement (CGeometry *geometry, CNumerics *numerics, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Normal_Load (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Dir_Load (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Sine_Load (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Damper (CGeometry *geometry, const CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Periodic (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config)
 A virtual member.
 
virtual void BC_Fluid_Interface (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config)
 Impose the interface state across sliding meshes.
 
virtual void BC_ActDisk_Inlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_ActDisk_Outlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_ActDisk (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker, bool val_inlet_surface)
 A virtual member.
 
virtual void BC_HeatTransfer_Wall (const CGeometry *geometry, const CConfig *config, const unsigned short val_marker)
 Impose a heat flux by prescribing a heat transfer coefficient and a temperature at infinity.
 
virtual void BC_TurboRiemann (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void PreprocessBC_Giles (CGeometry *geometry, CConfig *config, CNumerics *conv_numerics, unsigned short marker_flag)
 It computes Fourier transformation for the needed quantities along the pitch for each span in turbomachinery analysis.
 
virtual void BC_Giles (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual std::shared_ptr< CTurboOutput > GetTurboBladePerformance () const
 
virtual void BC_Inlet_Turbo (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Inlet_MixingPlane (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Supersonic_Inlet (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Engine_Inflow (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Engine_Exhaust (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_ConjugateHeat_Interface (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void BC_Smoluchowski_Maxwell (CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config, unsigned short val_marker)
 A virtual member.
 
virtual void Impose_Fixed_Values (const CGeometry *geometry, const CConfig *config)
 Virtual function to apply something like a strong BC to the whole domain.
 
virtual su2double GetMixingState (unsigned short val_marker, unsigned long val_span, unsigned short val_state) const
 Get a component of the donor-side averaged state at a mixing plane interface.
 
virtual void SetMixingState (unsigned short val_marker, unsigned long val_span, unsigned short val_state, su2double component)
 Set a component of the donor-side averaged state at a mixing plane interface nodes.
 
virtual su2double GetSlidingState (unsigned short val_marker, unsigned long val_vertex, unsigned short val_state, unsigned long donor_index) const
 Get the outer state for fluid interface nodes.
 
virtual void SetSlidingStateStructure (unsigned short val_marker, unsigned long val_vertex)
 Allocates the final pointer of SlidingState depending on how many donor vertex donate to it. That number is stored in SlidingStateNodes[val_marker][val_vertex].
 
virtual void SetSlidingState (unsigned short val_marker, unsigned long val_vertex, unsigned short val_state, unsigned long donor_index, su2double component)
 Set the outer state for fluid interface nodes.
 
virtual int GetnSlidingStates (unsigned short val_marker, unsigned long val_vertex) const
 Get the number of outer states for fluid interface nodes.
 
virtual void SetnSlidingStates (unsigned short val_marker, unsigned long val_vertex, int value)
 Set the number of outer states for fluid interface nodes.
 
virtual void SetConjugateHeatVariable (unsigned short val_marker, unsigned long val_vertex, unsigned short pos_var, su2double relaxation_factor, su2double val_var)
 Set the conjugate heat variables.
 
virtual su2double GetConjugateHeatVariable (unsigned short val_marker, unsigned long val_vertex, unsigned short pos_var) const
 Set the conjugate heat variables.
 
virtual void ExplicitEuler_Iteration (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void PrepareImplicitIteration (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void CompleteImplicitIteration (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void ImplicitEuler_Iteration (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
void AdaptCFLNumber (CGeometry **geometry, CSolver ***solver_container, CConfig *config)
 Adapt the CFL number based on the local under-relaxation parameters computed for each nonlinear iteration.
 
virtual void IdentifySolutionOutliers (const CConfig *config, unsigned long iter)
 Identify points where the solution is an outlier (physics-specific concept) so that solvers can try to restore them to a stable condition.
 
void ResetCFLAdapt ()
 Reset the local CFL adaption variables.
 
virtual void ImplicitNewmark_Iteration (const CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void ImplicitNewmark_Update (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void ImplicitNewmark_Relaxation (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void GeneralizedAlpha_Iteration (const CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void GeneralizedAlpha_UpdateDisp (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void GeneralizedAlpha_UpdateSolution (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void GeneralizedAlpha_UpdateLoads (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void Momentum_Forces (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void Friction_Forces (const CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void Heat_Fluxes (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void SetPrimitive_Gradient_GG (CGeometry *geometry, const CConfig *config, bool reconstruction=false)
 A virtual member.
 
virtual void SetPrimitive_Gradient_LS (CGeometry *geometry, const CConfig *config, bool reconstruction=false)
 A virtual member.
 
virtual void Viscous_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh, unsigned short iRKStep)
 A virtual member.
 
virtual void Source_Residual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh)
 A virtual member.
 
virtual void Source_Template (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config, unsigned short iMesh)
 A virtual member.
 
virtual void SetCSensitivity (unsigned short val_marker, unsigned long val_vertex, su2double val_sensitivity)
 A virtual member.
 
virtual void SetForceProj_Vector (CGeometry *geometry, CSolver **solver_container, CConfig *config)
 A virtual member.
 
virtual void SetTotal_NetThrust (su2double val_Total_NetThrust)
 A virtual member.
 
virtual void SetTotal_Power (su2double val_Total_Power)
 A virtual member.
 
virtual void SetTotal_SolidCD (su2double val_Total_SolidCD)
 A virtual member.
 
virtual void SetTotal_ReverseFlow (su2double val_Total_ReverseFlow)
 A virtual member.
 
virtual void SetTotal_MFR (su2double val_Total_MFR)
 A virtual member.
 
virtual void SetTotal_Prop_Eff (su2double val_Total_Prop_Eff)
 A virtual member.
 
virtual void SetTotal_ByPassProp_Eff (su2double val_Total_ByPassProp_Eff)
 A virtual member.
 
virtual void SetTotal_Adiab_Eff (su2double val_Total_Adiab_Eff)
 A virtual member.
 
virtual void SetTotal_Poly_Eff (su2double val_Total_Poly_Eff)
 A virtual member.
 
virtual void SetTotal_IDC (su2double val_Total_IDC)
 A virtual member.
 
virtual void SetTotal_IDC_Mach (su2double val_Total_IDC_Mach)
 A virtual member.
 
virtual void SetTotal_IDR (su2double val_Total_IDR)
 A virtual member.
 
virtual void SetTotal_DC60 (su2double val_Total_DC60)
 A virtual member.
 
virtual void SetTotal_CT (su2double val_Total_CT)
 A virtual member.
 
virtual void SetTotal_CQ (su2double val_Total_CQ)
 A virtual member.
 
virtual void SetTotal_HeatFlux (su2double val_Total_Heat)
 A virtual member.
 
virtual void SetTotal_MaxHeatFlux (su2double val_Total_MaxHeat)
 A virtual member.
 
virtual void Inviscid_Sensitivity (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config)
 A virtual member.
 
virtual void Smooth_Sensitivity (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config)
 A virtual member.
 
virtual void Viscous_Sensitivity (CGeometry *geometry, CSolver **solver_container, CNumerics *numerics, CConfig *config)
 A virtual member.
 
su2double GetTotal_ComboObj () const
 Provide the total "combo" objective (weighted sum of other values).
 
void SetTotal_Custom_ObjFunc (su2double value)
 Sets the value of the custom objective function.
 
virtual su2double GetCL_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CL_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CD_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CSF_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CEff_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFx_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFy_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFz_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMx_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMy_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMz_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_Buffet_Metric (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CL_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CD_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CSF_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CEff_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFx_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFy_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CFz_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMx_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMy_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_CMz_Mnt (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetCSF_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetInflow_MassFlow (unsigned short val_marker) const
 A virtual member.
 
virtual bool FixedCL_Convergence (CConfig *config, bool convergence)
 A virtual member.
 
virtual bool GetStart_AoA_FD (void) const
 A virtual member.
 
virtual bool GetEnd_AoA_FD (void) const
 A virtual member.
 
virtual unsigned long GetIter_Update_AoA (void) const
 A virtual member.
 
virtual su2double GetPrevious_AoA (void) const
 A virtual member.
 
virtual su2double GetAoA_inc (void) const
 A virtual member.
 
virtual su2double GetExhaust_MassFlow (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetInflow_Pressure (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetInflow_Mach (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_HF_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetSurface_MaxHF_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetCD_Visc (unsigned short val_marker) const
 A virtual member.
 
virtual su2double GetTotal_CT () const
 A virtual member.
 
virtual su2double GetTotal_CQ () const
 A virtual member.
 
virtual su2double GetTotal_HeatFlux () const
 A virtual member.
 
virtual su2double GetTotal_MaxHeatFlux () const
 A virtual member.
 
virtual su2double GetTotal_AvgTemperature () const
 A virtual member.
 
virtual su2double GetTotal_CMerit () const
 A virtual member.
 
virtual su2double GetTotal_CEquivArea () const
 A virtual member.
 
virtual su2double GetTotal_AeroCD () const
 A virtual member.
 
virtual su2double GetTotal_CpDiff () const
 A virtual member.
 
virtual su2double GetTotal_HeatFluxDiff () const
 A virtual member.
 
virtual su2double GetTotal_CFEA () const
 A virtual member.
 
virtual su2double GetTotal_CNearFieldOF () const
 A virtual member.
 
virtual su2double GetTotal_OFRefGeom () const
 A virtual member.
 
virtual su2double GetTotal_OFRefNode () const
 A virtual member.
 
virtual su2double GetTotal_OFVolFrac () const
 A virtual member.
 
virtual su2double GetTotal_OFDiscreteness () const
 Retrieve the value of the discreteness objective function.
 
virtual su2double GetTotal_OFCompliance () const
 A virtual member.
 
virtual su2double GetTotal_OFStressPenalty () const
 A virtual member.
 
virtual bool IsElementBased (void) const
 A virtual member.
 
virtual void SetTotal_CEquivArea (su2double val_cequivarea)
 A virtual member.
 
virtual void SetTotal_AeroCD (su2double val_aerocd)
 A virtual member.
 
virtual void SetTotal_CpDiff (su2double val_pressure)
 A virtual member.
 
virtual void SetTotal_HeatFluxDiff (su2double val_heat)
 A virtual member.
 
virtual void SetTotal_CFEA (su2double val_cfea)
 A virtual member.
 
virtual void SetTotal_OFRefGeom (su2double val_ofrefgeom)
 A virtual member.
 
virtual void SetTotal_OFRefNode (su2double val_ofrefnode)
 A virtual member.
 
virtual void SetTotal_CNearFieldOF (su2double val_cnearfieldpress)
 A virtual member.
 
virtual su2double GetReferenceDynamicPressure () const
 Get the reference dynamic pressure, for Cp, Cf, etc.
 
virtual su2double GetTotal_NetThrust () const
 A virtual member.
 
virtual su2double GetTotal_Power () const
 A virtual member.
 
virtual su2double GetTotal_SolidCD () const
 A virtual member.
 
virtual su2double GetTotal_ReverseFlow () const
 A virtual member.
 
virtual su2double GetTotal_MFR () const
 A virtual member.
 
virtual su2double GetTotal_Prop_Eff () const
 A virtual member.
 
virtual su2double GetTotal_ByPassProp_Eff () const
 A virtual member.
 
virtual su2double GetTotal_Adiab_Eff () const
 A virtual member.
 
virtual su2double GetTotal_Poly_Eff () const
 A virtual member.
 
virtual su2double GetTotal_IDC () const
 A virtual member.
 
virtual su2double GetTotal_IDC_Mach () const
 A virtual member.
 
virtual su2double GetTotal_IDR () const
 A virtual member.
 
virtual su2double GetTotal_DC60 () const
 A virtual member.
 
virtual su2double GetTotal_CoPx () const
 A virtual member.
 
virtual su2double GetTotal_CoPy () const
 A virtual member.
 
virtual su2double GetTotal_CoPz () const
 A virtual member.
 
virtual su2double GetAllBound_CoPx_Inv () const
 A virtual member.
 
virtual su2double GetAllBound_CoPy_Inv () const
 A virtual member.
 
virtual su2double GetAllBound_CoPz_Inv () const
 A virtual member.
 
virtual su2double GetAllBound_CL_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CD_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CSF_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CEff_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CMx_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CMy_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CMz_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CoPx_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CoPy_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CoPz_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CFx_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CFy_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CFz_Visc () const
 A virtual member.
 
virtual su2double GetAllBound_CL_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CD_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CSF_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CEff_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CMx_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CMy_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CMz_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CoPx_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CoPy_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CoPz_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CFx_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CFy_Mnt () const
 A virtual member.
 
virtual su2double GetAllBound_CFz_Mnt () const
 A virtual member.
 
virtual su2double GetTotal_Buffet_Metric () const
 A virtual member.
 
virtual su2double GetCPressure (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetCPressureTarget (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual void SetCPressureTarget (unsigned short val_marker, unsigned long val_vertex, su2double val_pressure)
 A virtual member.
 
virtual void SetCharacPrimVar (unsigned short val_marker, unsigned long val_vertex, unsigned short val_var, su2double val_value)
 A virtual member.
 
virtual unsigned long GetDonorGlobalIndex (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual void SetDonorGlobalIndex (unsigned short val_marker, unsigned long val_vertex, unsigned long val_index)
 A virtual member.
 
virtual su2double * GetCharacPrimVar (unsigned short val_marker, unsigned long val_vertex)
 A virtual member.
 
virtual su2double GetInletTtotal (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetInletPtotal (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetInletFlowDir (unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim) const
 A virtual member.
 
virtual void SetCustomBoundaryScalar (unsigned short val_marker, unsigned long val_vertex, vector< passivedouble > val_customBoundaryScalar)
 Set the value of the customized normal scalar values/flux at a specified vertex on a specified marker.
 
virtual void SetInletTtotal (unsigned short val_marker, unsigned long val_vertex, su2double val_ttotal)
 A virtual member.
 
virtual void SetInletPtotal (unsigned short val_marker, unsigned long val_vertex, su2double val_ptotal)
 A virtual member.
 
virtual void SetInletFlowDir (unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim, su2double val_flowdir)
 A virtual member.
 
virtual void UpdateFarfieldVelocity (const CConfig *config)
 Updates the components of the farfield velocity vector.
 
virtual void SetInlet_TurbVar (unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim, su2double val_turb_var)
 A virtual member.
 
virtual void SetUniformInlet (const CConfig *config, unsigned short iMarker)
 A virtual member.
 
virtual void SetInletAtVertex (const su2double *val_inlet, unsigned short iMarker, unsigned long iVertex)
 A virtual member.
 
virtual su2double GetInletAtVertex (unsigned short iMarker, unsigned long iVertex, const CGeometry *geometry, su2double *val_inlet) const
 Get the set of values imposed at an inlet.
 
virtual void UpdateCustomBoundaryConditions (CGeometry **geometry_container, CSolver ***solver_container, CConfig *config)
 Update the multi-grid structure for the customized boundary conditions.
 
virtual su2double GetCSkinFriction (unsigned short val_marker, unsigned long val_vertex, unsigned short val_dim) const
 A virtual member.
 
virtual su2double GetWallShearStress (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetHeatFlux (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetHeatFluxTarget (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual void SetHeatFluxTarget (unsigned short val_marker, unsigned long val_vertex, su2double val_heat)
 A virtual member.
 
virtual su2double GetBuffetSensor (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetYPlus (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetUTau (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual su2double GetEddyViscWall (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual const su2activevector * GetEdgeMassFluxes () const
 A virtual member.
 
virtual su2double GetStrainMag_Max (void) const
 A virtual member.
 
virtual su2double GetOmega_Max (void) const
 A virtual member.
 
virtual su2double GetPsiRho_Inf (void) const
 A virtual member.
 
virtual su2double GetPsiE_Inf (void) const
 A virtual member.
 
virtual su2double GetPhi_Inf (unsigned short val_dim) const
 A virtual member.
 
virtual su2double GetTotal_Sens_Geo () const
 A virtual member.
 
virtual su2double GetTotal_Sens_Mach () const
 A virtual member.
 
virtual su2double GetTotal_Sens_AoA () const
 A virtual member.
 
virtual su2double GetTotal_Sens_Press () const
 Set the total farfield pressure sensitivity coefficient.
 
virtual su2double GetTotal_Sens_Temp () const
 Set the total farfield temperature sensitivity coefficient.
 
virtual su2double GetTotal_Sens_BPress () const
 Get the total back pressure sensitivity coefficient.
 
virtual su2double GetTotal_Sens_Density () const
 A virtual member.
 
virtual su2double GetTotal_Sens_ModVel () const
 A virtual member.
 
virtual su2double GetViscosity_Inf (void) const
 A virtual member.
 
virtual su2double GetNuTilde_Inf (void) const
 A virtual member.
 
virtual su2double GetTke_Inf (void) const
 A virtual member.
 
virtual su2double GetOmega_Inf (void) const
 A virtual member.
 
virtual su2double GetIntermittency_Inf () const
 Get value of the Intermittency.
 
virtual su2double GetReThetaT_Inf () const
 Get value of the momentum thickness Reynolds number.
 
virtual su2double GetTotal_Sens_E (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetTotal_Sens_Nu (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetTotal_Sens_Rho (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetTotal_Sens_Rho_DL (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetTotal_Sens_EField (unsigned short iEField) const
 A virtual member.
 
virtual su2double GetTotal_Sens_DVFEA (unsigned short iDVFEA) const
 A virtual member.
 
virtual su2double GetVal_Young (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetVal_Poisson (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetVal_Rho (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetVal_Rho_DL (unsigned short iVal) const
 A virtual member.
 
virtual unsigned short GetnEField (void) const
 A virtual member.
 
virtual unsigned short GetnDVFEA (void) const
 A virtual member.
 
virtual su2double GetVal_EField (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetVal_DVFEA (unsigned short iVal) const
 A virtual member.
 
virtual su2double GetCSensitivity (unsigned short val_marker, unsigned long val_vertex) const
 A virtual member.
 
virtual const su2double * GetConstants () const
 A virtual member.
 
virtual void SetForceCoeff (su2double val_forcecoeff_history)
 A virtual member.
 
virtual void SetRelaxCoeff (su2double val_relaxcoeff_history)
 A virtual member.
 
virtual void SetFSI_Residual (su2double val_FSI_residual)
 A virtual member.
 
virtual su2double GetForceCoeff (void) const
 A virtual member.
 
virtual su2double GetRelaxCoeff (void) const
 A virtual member.
 
virtual su2double GetFSI_Residual (void) const
 A virtual member.
 
virtual void PredictStruct_Displacement (CGeometry *geometry, const CConfig *config)
 A virtual member.
 
virtual void ComputeAitken_Coefficient (CGeometry *geometry, const CConfig *config, unsigned long iOuterIter)
 A virtual member.
 
virtual void SetAitken_Relaxation (CGeometry *geometry, const CConfig *config)
 A virtual member.
 
void BasicLoadRestart (CGeometry *geometry, const CConfig *config, const string &filename, unsigned long skipVars)
 Loads the solution from the restart file.
 
void Read_SU2_Restart_ASCII (CGeometry *geometry, const CConfig *config, string val_filename)
 Read a native SU2 restart file in ASCII format.
 
void Read_SU2_Restart_Binary (CGeometry *geometry, const CConfig *config, string val_filename)
 Read a native SU2 restart file in binary format.
 
void Read_SU2_Restart_Metadata (CGeometry *geometry, CConfig *config, bool adjoint_run, const string &val_filename) const
 Read the metadata from a native SU2 restart file (ASCII or binary).
 
void LoadInletProfile (CGeometry **geometry, CSolver ***solver, CConfig *config, int val_iter, unsigned short val_kind_solver, unsigned short val_kind_marker) const
 Load a inlet profile data from file into a particular solver.
 
virtual void LoadRestart_FSI (CGeometry *geometry, CConfig *config, int val_iter)
 A virtual member.
 
virtual unsigned short Get_iElem_iDe (unsigned long iElem) const
 A virtual member.
 
virtual void Set_DV_Val (su2double val_EField, unsigned short i_DV)
 A virtual member.
 
virtual su2double Get_DV_Val (unsigned short i_DV) const
 A virtual member.
 
void GaussElimination (su2double **A, su2double *rhs, unsigned short nVar)
 Gauss method for solving a linear system.
 
void Aeroelastic (CSurfaceMovement *surface_movement, CGeometry *geometry, CConfig *config, unsigned long TimeIter)
 Prepares and solves the aeroelastic equations.
 
void SetUpTypicalSectionWingModel (vector< vector< su2double > > &PHI, vector< su2double > &w, CConfig *config)
 Sets up the generalized eigenvectors and eigenvalues needed to solve the aeroelastic equations.
 
void SolveTypicalSectionWingModel (CGeometry *geometry, su2double Cl, su2double Cm, CConfig *config, unsigned short val_Marker, vector< su2double > &displacements)
 Solve the typical section wing model.
 
virtual void RegisterSolution (CGeometry *geometry_container, CConfig *config)
 A virtual member.
 
virtual void RegisterOutput (CGeometry *geometry_container, CConfig *config)
 A virtual member.
 
virtual void SetAdjoint_Output (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void ExtractAdjoint_Solution (CGeometry *geometry, CConfig *config, bool CrossTerm)
 A virtual member.
 
virtual unsigned long RegisterSolutionExtra (bool input, const CConfig *config)
 Register In- or Output.
 
virtual void SetAdjoint_SolutionExtra (const su2activevector &adj_sol, const CConfig *config)
 Seed the adjoint of the extra solution at the output.
 
virtual void ExtractAdjoint_SolutionExtra (su2activevector &adj_sol, const CConfig *config)
 Extract the adjoint of the extra solution at the input.
 
virtual void SetSurface_Sensitivity (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void SetSensitivity (CGeometry *geometry, CConfig *config, CSolver *target_solver=nullptr)
 A virtual member. Extract and set the geometrical sensitivity.
 
virtual void SetFSI_ConvValue (unsigned short val_index, su2double val_criteria)
 A virtual member.
 
virtual su2double GetFSI_ConvValue (unsigned short val_index) const
 A virtual member.
 
virtual su2double Compute_LoadCoefficient (su2double CurrentTime, su2double RampTime, const CConfig *config)
 A virtual member.
 
virtual void Compute_StiffMatrix (CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void Compute_StiffMatrix_NodalStressRes (CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void Compute_MassMatrix (const CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void Compute_MassRes (const CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void Compute_NodalStressRes (CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void Compute_BodyForces (CGeometry *geometry, CNumerics **numerics, const CConfig *config)
 A virtual member.
 
virtual void SetVolumetricHeatSource (CGeometry *geometry, CConfig *config)
 A virtual member. Set the volumetric heat source.
 
virtual void Solve_System (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void SetWAitken_Dyn_tn1 ()
 A virtual member.
 
virtual void SetLoad_Increment (unsigned long iInc, su2double loadInc)
 A virtual member.
 
virtual su2double GetLoad_Increment () const
 A virtual member.
 
virtual void SetDensity_Inf (su2double rho_inf)
 A virtual member.
 
virtual void SetVelocity_Inf (unsigned short val_dim, su2double val_velocity)
 A virtual member.
 
virtual void SetRecording (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void RegisterVariables (CGeometry *geometry, CConfig *config, bool reset=false)
 A virtual member.
 
virtual void ExtractAdjoint_Variables (CGeometry *geometry, CConfig *config)
 A virtual member.
 
virtual void SetFreeStream_Solution (const CConfig *config)
 A virtual member.
 
virtual void InitTurboContainers (CGeometry *geometry, CConfig **config, unsigned short iZone)
 A virtual member.
 
virtual vector< su2double > GetTurboPrimitive (unsigned short iBlade, unsigned short iSpan, bool Inlet)
 Get Primal variables for turbo performance computation iteration can be executed by multiple threads.
 
virtual void PreprocessAverage (CSolver **solver, CGeometry *geometry, CConfig *config, unsigned short marker_flag)
 virtual member.
 
virtual void TurboAverageProcess (CSolver **solver, CGeometry *geometry, CConfig *config, unsigned short marker_flag)
 virtual member.
 
virtual void GatherInOutAverageValues (CConfig *config, CGeometry *geometry)
 virtual member.
 
virtual void ComputeTurboBladePerformance (CGeometry *geometry, CConfig *config, unsigned short iBlade)
 
virtual su2double GetAverageDensity (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetAverageMassFlowRate (unsigned short valMarker) const
 virtual member
 
virtual su2double GetAveragePressure (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual const su2double * GetAverageTurboVelocity (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetAverageNu (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetAverageKine (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetAverageOmega (unsigned short valMarker, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetDensityIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetPressureIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual const su2double * GetTurboVelocityIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetDensityOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetPressureOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual const su2double * GetTurboVelocityOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetKineIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetOmegaIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetNuIn (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetKineOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetOmegaOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual su2double GetNuOut (unsigned short inMarkerTP, unsigned short valSpan) const
 A virtual member.
 
virtual void SetDensityIn (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetPressureIn (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetTurboVelocityIn (const su2double *value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetDensityOut (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetPressureOut (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetTurboVelocityOut (const su2double *value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetKineIn (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetOmegaIn (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetNuIn (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetKineOut (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetOmegaOut (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetNuOut (su2double value, unsigned short inMarkerTP, unsigned short valSpan)
 A virtual member.
 
virtual void SetFreeStream_TurboSolution (CConfig *config)
 A virtual member.
 
virtual void DeformMesh (CGeometry **geometry, CNumerics **numerics, CConfig *config)
 A virtual member.
 
virtual void DeformMesh (CGeometry *geometry, CNumerics **numerics, CConfig *config)
 A virtual member.
 
virtual void SetMesh_Stiffness (CNumerics **numerics, CConfig *config)
 A virtual member.
 
virtual void ApplyGradientSmoothingVolume (CGeometry *geometry, CNumerics *numerics, const CConfig *config)
 A virtual member.
 
virtual void ApplyGradientSmoothingSurface (CGeometry *geometry, CNumerics *numerics, const CConfig *config)
 A virtual member.
 
virtual void ApplyGradientSmoothingDV (CGeometry *geometry, CNumerics *numerics, CSurfaceMovement *surface_movement, CVolumetricMovement *grid_movement, CConfig *config, su2double **Gradient)
 All steps required for smoothing the whole system on DV level in an iterative way.
 
virtual void RecordTapeAndCalculateOriginalGradient (CGeometry *geometry, CSurfaceMovement *surface_movement, CVolumetricMovement *grid_movement, CConfig *config, su2double **Gradient)
 A virtual member.
 
virtual void ReadSensFromGeometry (const CGeometry *geometry)
 A virtual member.
 
virtual void WriteSensToGeometry (CGeometry *geometry) const
 A virtual member.
 
void SetImplicitPeriodic (bool val_implicit_periodic)
 Routine that sets the flag controlling implicit treatment for periodic BCs.
 
void SetRotatePeriodic (bool val_rotate_periodic)
 Routine that sets the flag controlling solution rotation for periodic BCs.
 
su2activematrix * GetPeriodicProjections (const CGeometry &geometry, const CConfig &config)
 Storage for the limiters with rotational periodicity: the min and max, over the edges of the periodic matches of each point, of the reconstruction increments (communicated with PERIODIC_LIM_PRIM_1).
 
su2double * GetPeriodicProjection (unsigned long iPoint)
 Reconstruction increment bounds for a periodic receive point, nullptr for other points.
 
const string & GetSolverName () const
 Retrieve the solver name for output purposes.
 
vector< string > GetSolutionFields () const
 Get the solution fields.
 
void ComputeVertexTractions (CGeometry *geometry, const CConfig *config)
 Compute the tractions at the vertices.
 
su2double GetVertexTractions (unsigned short iMarker, unsigned long iVertex, unsigned short iDim) const
 Set the adjoints of the vertex tractions.
 
void RegisterVertexTractions (CGeometry *geometry, const CConfig *config)
 Register the vertex tractions as output.
 
void StoreVertexTractionsAdjoint (unsigned short iMarker, unsigned long iVertex, unsigned short iDim, su2double val_adjoint)
 Store the adjoints of the vertex tractions.
 
void SetVertexTractionsAdjoint (CGeometry *geometry, const CConfig *config)
 Set the adjoints of the vertex tractions to the AD structure.
 
virtual su2double GetMinimum_Volume () const
 Get minimun volume in the mesh.
 
virtual su2double GetMaximum_Volume () const
 Get maximum volume in the mesh.
 
virtual bool GetHasHybridParallel () const
 Whether the methods of the solver called by multi/single-grid iteration can be executed by multiple threads.
 
virtual StreamwisePeriodicValues GetStreamwisePeriodicValues () const
 Get values for streamwise periodic flow: delta P, m_dot, inlet T, integrated heat, etc.
 
virtual void SetMomCoeff (CGeometry *geometry, CSolver **solver_container, CConfig *config, bool periodic, unsigned short iMesh)
 A virtual member.
 
virtual void ComputeHbyA (CGeometry *geometry, CSolver **solver_container, CConfig *config, unsigned short iMesh)
 A virtual member.
 
void SavelibROM (CGeometry *geometry, CConfig *config, bool converged)
 Save snapshot or POD data using libROM.
 
void CustomSourceResidual (CGeometry *geometry, CSolver **solver_container, CNumerics **numerics_container, CConfig *config, unsigned short iMesh)
 

Protected Member Functions

void Initiate_MPI_Communication (CConfig *config, const unsigned short timeLevel)
 Routine that initiates the non-blocking communication between ranks for the givem time level.
 
void Initiate_MPI_ReverseCommunication (CConfig *config, const unsigned short timeLevel)
 Routine that initiates the reverse non-blocking communication between ranks.
 
bool Complete_MPI_Communication (CConfig *config, const unsigned short timeLevel, const bool commMustBeCompleted)
 Routine that completes the non-blocking communication between ranks.
 
bool Complete_MPI_ReverseCommunication (CConfig *config, const unsigned short timeLevel, const bool commMustBeCompleted)
 Routine that completes the reverse non-blocking communication between ranks.
 
void ComputeInviscidFluxesFace (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const unsigned long nPoints, const su2double *normalsFace[], const su2double *gridVelsFace[], const su2double *solL, const su2double *solR, su2double *fluxes, CNumerics *numerics)
 Function, which computes the inviscid fluxes in face points.
 
void InviscidFluxesInternalMatchingFace (CConfig *config, const unsigned long lBeg, const unsigned long lEnd, const unsigned short NPad, su2double *solIntL, su2double *solIntR, su2double *fluxes, CNumerics *numerics)
 Function, which computes the inviscid fluxes in the face integration points of a chunk of matching internal faces.
 
void LeftStatesIntegrationPointsBoundaryFace (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const CSurfaceElementFEM *surfElem, su2double *solFace, su2double *solIntL)
 Function, which computes the left state of a boundary face.
 
void BoundaryStates_Euler_Wall (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const CSurfaceElementFEM *surfElem, const su2double *solIntL, su2double *solIntR)
 Function, which computes the boundary states in the integration points of the boundary face by applying the inviscid wall boundary conditions.
 
void BoundaryStates_Inlet (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const CSurfaceElementFEM *surfElem, unsigned short val_marker, const su2double *solIntL, su2double *solIntR)
 Function, which computes the boundary states in the integration points of the boundary face by applying the inlet boundary conditions.
 
void BoundaryStates_Outlet (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const CSurfaceElementFEM *surfElem, unsigned short val_marker, const su2double *solIntL, su2double *solIntR)
 Function, which computes the boundary states in the integration points of the boundary face by applying the outlet boundary conditions.
 
void BoundaryStates_Riemann (CConfig *config, const unsigned short nFaceSimul, const unsigned short NPad, const CSurfaceElementFEM *surfElem, unsigned short val_marker, const su2double *solIntL, su2double *solIntR)
 Function, which computes the boundary states in the integration points of the boundary face by applying the Riemann boundary conditions.
 
template<class TElemType >
void MetaDataChunkOfElem (const TElemType *elem, const unsigned long l, const unsigned long elemEnd, const unsigned short nElemSimul, const unsigned short nPadMin, unsigned long &lEnd, unsigned short &ind, unsigned short &llEnd, unsigned short &NPad)
 Template function, which determines some meta data for the chunk of elements/faces that must be treated simulaneously.
 
- Protected Member Functions inherited from CSolver
void SetBaseClassPointerToNodes ()
 Call this method to set "base_nodes" after the "nodes" variable of the derived solver is instantiated.
 
void SetUndivided_Laplacian (CGeometry *geometry, const CConfig *config)
 Compute the undivided laplacian for the solution variables.
 
void SetVerificationSolution (unsigned short nDim, unsigned short nVar, CConfig *config)
 Allocate the memory for the verification solution, if necessary.
 
void ResidualReductions_FromAllThreads (const CGeometry *geometry, const CConfig *config, const su2double *resRMS, const su2double *resMax, const unsigned long *idxMax)
 "Add" local residual variables of all threads to compute global residual variables.
 
void SetResToZero ()
 Set the RMS and MAX residual to zero.
 
void AddRes_Max (unsigned short val_var, su2double val_residual, unsigned long val_point, const su2double *val_coord)
 Adds the maximal residual, this is useful for the convergence history.
 
void AddRes_Max_BGS (unsigned short val_var, su2double val_residual, unsigned long val_point, const su2double *val_coord)
 Adds the maximal residual for BGS subiterations.
 

Protected Attributes

su2double Gamma
 Fluid's Gamma constant (ratio of specific heats).
 
su2double Gamma_Minus_One
 Fluids's Gamma - 1.0 .
 
CFluidModel * FluidModel
 fluid model used in the solver
 
su2double Mach_Inf
 Mach number at infinity.
 
su2double Density_Inf
 Density at infinity.
 
su2double Energy_Inf
 Energy at infinity.
 
su2double Temperature_Inf
 Energy at infinity.
 
su2double Pressure_Inf
 Pressure at infinity.
 
su2double * Velocity_Inf
 Flow velocity vector at infinity.
 
vector< su2double > ConsVarFreeStream
 Vector, which contains the free stream conservative variables.
 
su2double * CL_Inv
 Lift coefficient (inviscid contribution) for each boundary.
 
su2double * CD_Inv
 Drag coefficient (inviscid contribution) for each boundary.
 
su2double * CSF_Inv
 Sideforce coefficient (inviscid contribution) for each boundary.
 
su2double * CFx_Inv
 x Force coefficient (inviscid contribution) for each boundary.
 
su2double * CFy_Inv
 y Force coefficient (inviscid contribution) for each boundary.
 
su2double * CFz_Inv
 z Force coefficient (inviscid contribution) for each boundary.
 
su2double * CMx_Inv
 x Moment coefficient (inviscid contribution) for each boundary.
 
su2double * CMy_Inv
 y Moment coefficient (inviscid contribution) for each boundary.
 
su2double * CMz_Inv
 z Moment coefficient (inviscid contribution) for each boundary.
 
su2double * CEff_Inv
 Efficiency (Cl/Cd) (inviscid contribution) for each boundary.
 
su2double * Surface_CL_Inv
 Lift coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CD_Inv
 Drag coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CSF_Inv
 Side-force coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CFx_Inv
 x Force coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CFy_Inv
 y Force coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CFz_Inv
 z Force coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CMx_Inv
 x Moment coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CMy_Inv
 y Moment coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CMz_Inv
 z Moment coefficient (inviscid contribution) for each monitoring surface.
 
su2double * Surface_CEff_Inv
 Efficiency (Cl/Cd) (inviscid contribution) for each monitoring surface.
 
su2double AllBound_CL_Inv
 Total lift coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CD_Inv
 Total drag coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CSF_Inv
 Total sideforce coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CFx_Inv
 Total x force coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CFy_Inv
 Total y force coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CFz_Inv
 Total z force coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CMx_Inv
 Total x moment coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CMy_Inv
 Total y moment coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CMz_Inv
 Total z moment coefficient (inviscid contribution) for all the boundaries.
 
su2double AllBound_CEff_Inv
 Total efficiency (Cl/Cd) (inviscid contribution) for all the boundaries.
 
su2double AeroCoeffForceRef
 Reference force for coefficients.
 
su2double Total_CL
 Total lift coefficient for all the boundaries.
 
su2double Total_CD
 Total drag coefficient for all the boundaries.
 
su2double Total_CSF
 Total sideforce coefficient for all the boundaries.
 
su2double Total_CFx
 Total x force coefficient for all the boundaries.
 
su2double Total_CFy
 Total y force coefficient for all the boundaries.
 
su2double Total_CFz
 Total z force coefficient for all the boundaries.
 
su2double Total_CMx
 Total x moment coefficient for all the boundaries.
 
su2double Total_CMy
 Total y moment coefficient for all the boundaries.
 
su2double Total_CMz
 Total z moment coefficient for all the boundaries.
 
su2double Total_CEff
 Total efficiency coefficient for all the boundaries.
 
su2double * Surface_CL
 Lift coefficient for each monitoring surface.
 
su2double * Surface_CD
 Drag coefficient for each monitoring surface.
 
su2double * Surface_CSF
 Side-force coefficient for each monitoring surface.
 
su2double * Surface_CFx
 x Force coefficient for each monitoring surface.
 
su2double * Surface_CFy
 y Force coefficient for each monitoring surface.
 
su2double * Surface_CFz
 z Force coefficient for each monitoring surface.
 
su2double * Surface_CMx
 x Moment coefficient for each monitoring surface.
 
su2double * Surface_CMy
 y Moment coefficient for each monitoring surface.
 
su2double * Surface_CMz
 z Moment coefficient for each monitoring surface.
 
su2double * Surface_CEff
 Efficiency (Cl/Cd) for each monitoring surface.
 
unsigned long nDOFsLocTot
 Total number of local DOFs, including halos.
 
unsigned long nDOFsLocOwned
 Number of owned local DOFs.
 
unsigned long nDOFsGlobal
 Number of global DOFs.
 
unsigned long nVolElemTot
 Total number of local volume elements, including halos.
 
unsigned long nVolElemOwned
 Number of owned local volume elements.
 
CVolumeElementFEM * volElem
 Array of the local volume elements, including halos.
 
const unsigned long * nVolElemOwnedPerTimeLevel
 Number of owned local volume elements per time level. Cumulative storage.
 
const unsigned long * nVolElemInternalPerTimeLevel
 Number of internal local volume elements per time level. Internal means that the solution data does not need to be communicated.
 
const unsigned long * nVolElemHaloPerTimeLevel
 Number of halo volume elements per time level. Cumulative storage.
 
vector< vector< unsigned long > > ownedElemAdjLowTimeLevel
 List of owned elements per time level that are adjacent to elements of the lower time level.
 
vector< vector< unsigned long > > haloElemAdjLowTimeLevel
 List of halo elements per time level that are adjacent to elements of the lower time level.
 
unsigned long nMeshPoints
 Number of mesh points in the local part of the grid.
 
CPointFEM * meshPoints
 Array of the points of the FEM mesh.
 
const unsigned long * nMatchingInternalFacesWithHaloElem
 Number of local matching internal faces per time level between an owned and a halo element. Cumulative storage.
 
const unsigned long * nMatchingInternalFacesLocalElem
 Number of local matching internal faces per time level between local elements. Cumulative storage.
 
CInternalFaceElementFEM * matchingInternalFaces
 Array of the local matching internal faces.
 
CBoundaryFEM * boundaries
 Array of the boundaries of the FEM mesh.
 
unsigned short nStandardBoundaryFacesSol
 Number of standard boundary faces used for solution of the DG solver.
 
unsigned short nStandardElementsSol
 Number of standard volume elements used for solution of the DG solver.
 
unsigned short nStandardMatchingFacesSol
 Number of standard matching internal faces used for solution of the DG solver.
 
const CFEMStandardBoundaryFace * standardBoundaryFacesSol
 Array that contains the standard boundary faces used for the solution of the DG solver.
 
const CFEMStandardElement * standardElementsSol
 Array that contains the standard volume elements used for the solution of the DG solver.
 
const CFEMStandardInternalFace * standardMatchingFacesSol
 Array that contains the standard matching internal faces used for the solution of the DG solver.
 
const su2double * timeCoefADER_DG
 The time coefficients in the iteration matrix of the ADER-DG predictor step.
 
const su2double * timeInterpolDOFToIntegrationADER_DG
 The interpolation matrix between the time DOFs and the time integration points for ADER-DG.
 
const su2double * timeInterpolAdjDOFToIntegrationADER_DG
 The interpolation matrix between the time DOFs of adjacent elements of a higher time level and the time integration points for ADER-DG.
 
unsigned int sizeWorkArray
 The size of the work array needed.
 
vector< su2double > TolSolADER
 Vector, which stores the tolerances for the conserved variables in the ADER predictor step.
 
vector< su2double > VecSolDOFs
 Vector, which stores the solution variables in the owned DOFs.
 
vector< su2double > VecSolDOFsNew
 Vector, which stores the new solution variables in the owned DOFs (needed for classical RK4 scheme).
 
vector< su2double > VecDeltaTime
 Vector, which stores the time steps of the owned volume elements.
 
vector< su2double > VecSolDOFsPredictorADER
 Vector, which stores the ADER predictor solution in the owned DOFs. These are both space and time DOFs.
 
vector< vector< su2double > > VecWorkSolDOFs
 Working double vector to store the conserved variables for the DOFs for the different time levels.
 
vector< su2double > VecResDOFs
 Vector, which stores the residuals in the owned DOFs.
 
vector< su2double > VecResFaces
 Vector, which stores the residuals of the DOFs that come from the faces, both boundary and internal.
 
vector< su2double > VecTotResDOFsADER
 Vector, which stores the accumulated residuals of the owned DOFs for the ADER corrector step.
 
vector< unsigned long > nEntriesResFaces
 Number of entries for the DOFs in the residual of the faces. Cumulative storage.
 
vector< unsigned long > entriesResFaces
 The corresponding entries in the residual of the faces.
 
vector< unsigned long > nEntriesResAdjFaces
 Number of entries for the DOFs in the residual of the faces, where the face is adjacent to an element of lower time level. Cumulative storage.
 
vector< unsigned long > entriesResAdjFaces
 The corresponding entries in the residual of the faces.
 
vector< vector< unsigned long > > startLocResFacesMarkers
 The starting location in the residual of the faces for the time levels of the boundary markers.
 
vector< unsigned long > startLocResInternalFacesLocalElem
 The starting location in the residual of the faces for the time levels of internal faces between locally owned elements.
 
vector< unsigned long > startLocResInternalFacesWithHaloElem
 The starting location in the residual of the faces for the time levels of internal faces between an owned and a halo element.
 
bool symmetrizingTermsPresent
 Whether or not symmetrizing terms are present in the discretization.
 
vector< unsigned long > nDOFsPerRank
 Number of DOFs per rank in cumulative storage format.
 
vector< vector< unsigned long > > nonZeroEntriesJacobian
 The ID's of the DOFs for the non-zero entries of the Jacobian for the locally owned DOFs.
 
int nGlobalColors
 Number of global colors for the Jacobian computation.
 
vector< vector< unsigned long > > localDOFsPerColor
 Double vector, which contains for every color the local DOFs.
 
vector< vector< int > > colorToIndEntriesJacobian
 Double vector, which contains for every local DOF the mapping from the color to the entry in the Jacobian. A -1 indicates that the color does not contribute to the Jacobian of the DOF.
 
CBlasStructure * blasFunctions
 Pointer to the object to carry out the BLAS functionalities.
 
- Protected Attributes inherited from CSolver
int rank
 MPI Rank.
 
int size
 MPI Size.
 
bool adjoint
 Boolean to determine whether solver is initialized as a direct or an adjoint solver.
 
unsigned short MGLevel
 Multigrid level of this solver object.
 
unsigned short IterLinSolver
 Linear solver iterations.
 
su2double ResLinSolver
 Final linear solver residual.
 
unsigned short NonLinRes_Counter
 Number of elements of the nonlinear residual indicator series.
 
vector< su2double > NonLinRes_Series
 Vector holding the nonlinear residual indicator series.
 
su2double Old_Func
 Old value of the nonlinear residual indicator.
 
su2double New_Func
 Current value of the nonlinear residual indicator.
 
unsigned short nVar
 Number of variables of the problem.
 
unsigned short nPrimVar
 Number of primitive variables of the problem.
 
unsigned short nPrimVarGrad
 Number of primitive variables of the problem in the gradient computation.
 
unsigned short nSecondaryVar
 Number of primitive variables of the problem.
 
unsigned short nVarGrad
 Number of variables for deallocating the LS Cvector.
 
unsigned short nDim
 Number of dimensions of the problem.
 
unsigned long nPoint
 Number of points of the computational grid.
 
unsigned long nPointDomain
 Number of points of the computational grid.
 
su2double Max_Delta_Time
 Maximum value of the delta time for all the control volumes.
 
su2double Min_Delta_Time
 Minimum value of the delta time for all the control volumes.
 
su2double Max_CFL_Local
 Maximum value of the CFL across all the control volumes.
 
su2double Min_CFL_Local
 Minimum value of the CFL across all the control volumes.
 
su2double Avg_CFL_Local
 Average value of the CFL across all the control volumes.
 
vector< su2double > Residual_RMS
 Vector with the mean residual for each variable.
 
vector< su2double > Residual_Max
 Vector with the maximal residual for each variable.
 
vector< su2double > Residual_BGS
 Vector with the mean residual for each variable for BGS subiterations.
 
vector< su2double > Residual_Max_BGS
 Vector with the maximal residual for each variable for BGS subiterations.
 
vector< unsigned long > Point_Max
 Vector with the maximal residual for each variable.
 
vector< unsigned long > Point_Max_BGS
 Vector with the maximal residual for each variable.
 
su2activematrix Point_Max_Coord
 Vector with pointers to the coords of the maximal residual for each variable.
 
su2activematrix Point_Max_Coord_BGS
 Vector with pointers to the coords of the maximal residual for each variable.
 
su2double Total_Custom_ObjFunc = 0.0
 Total custom objective function.
 
su2double Total_ComboObj = 0.0
 Total 'combo' objective for all monitored boundaries.
 
su2double * Residual
 Auxiliary nVar vector.
 
su2double * Residual_i
 Auxiliary nVar vector for storing the residual at point i.
 
su2double * Residual_j
 Auxiliary nVar vector for storing the residual at point j.
 
su2double * Solution
 Auxiliary nVar vector.
 
su2double * Solution_i
 Auxiliary nVar vector for storing the solution at point i.
 
su2double * Solution_j
 Auxiliary nVar vector for storing the solution at point j.
 
su2double * Vector
 Auxiliary nDim vector.
 
su2double * Vector_i
 Auxiliary nDim vector to do the reconstruction of the variables at point i.
 
su2double * Vector_j
 Auxiliary nDim vector to do the reconstruction of the variables at point j.
 
su2double * Res_Conv
 Auxiliary nVar vector for storing the convective residual.
 
su2double * Res_Visc
 Auxiliary nVar vector for storing the viscous residual.
 
su2double * Res_Sour
 Auxiliary nVar vector for storing the viscous residual.
 
su2double * Res_Conv_i
 Auxiliary vector for storing the convective residual at point i.
 
su2double * Res_Visc_i
 Auxiliary vector for storing the viscous residual at point i.
 
su2double * Res_Conv_j
 Auxiliary vector for storing the convective residual at point j.
 
su2double * Res_Visc_j
 Auxiliary vector for storing the viscous residual at point j.
 
su2double ** Jacobian_i
 Auxiliary matrices for storing point to point Jacobians at point i.
 
su2double ** Jacobian_j
 Auxiliary matrices for storing point to point Jacobians at point j.
 
su2double ** Jacobian_ii
 Auxiliary matrices for storing point to point Jacobians.
 
su2double ** Jacobian_ij
 Auxiliary matrices for storing point to point Jacobians.
 
su2double ** Jacobian_ji
 Auxiliary matrices for storing point to point Jacobians.
 
su2double ** Jacobian_jj
 Auxiliary matrices for storing point to point Jacobians.
 
su2activevector iPoint_UndLapl
 Auxiliary variable for the undivided Laplacians.
 
su2activevector jPoint_UndLapl
 Auxiliary variable for the undivided Laplacians.
 
vector< int > Restart_Vars
 Auxiliary structure for holding the number of variables and points in a restart.
 
int Restart_ExtIter
 Auxiliary structure for holding the external iteration offset from a restart.
 
vector< passivedouble > Restart_Data
 Auxiliary structure for holding the data values from a restart.
 
unsigned short nOutputVariables
 Number of variables to write.
 
unsigned long nMarker
 Total number of markers using the grid information.
 
vector< unsigned long > nVertex
 Store nVertex at each marker for deallocation.
 
bool rotate_periodic
 Flag that controls whether the periodic solution needs to be rotated for the solver.
 
bool implicit_periodic
 Flag that controls whether the implicit system should be treated by the periodic BC comms.
 
su2activematrix PeriodicProj
 Min/max reconstruction increments at periodic receive points (for limiters).
 
std::unordered_map< unsigned long, size_t > PeriodicProjIndex
 Local point to compact projection row.
 
bool dynamic_grid
 Flag that determines whether the grid is dynamic (moving or deforming + grid velocities).
 
vector< su2activematrix > VertexTraction
 
vector< su2activematrix > VertexTractionAdjoint
 
std::shared_ptr< CTurboOutput > TurbomachineryPerformance
 turbo performance calculator.
 
string SolverName
 Store the name of the solver for output purposes.
 

Additional Inherited Members

- Static Public Member Functions inherited from CSolver
static void MultigridRestriction (const CGeometry &geoFine, const su2activematrix &varsFine, const CGeometry &geoCoarse, su2activematrix &varsCoarse)
 Interpolate variables to a coarser grid level.
 
- Public Attributes inherited from CSolver
CSysVector< su2double > LinSysSol
 vector to store iterative solution of implicit linear system.
 
CSysVector< su2double > LinSysRes
 vector to store iterative residual of implicit linear system.
 
CSysMatrix< su2mixedfloat > Jacobian
 Complete sparse Jacobian structure for implicit computations.
 
CSysSolve< su2mixedfloat > System
 Linear solver/smoother.
 
CSysVector< su2double > OutputVariables
 vector to store the extra variables to be written.
 
string * OutputHeadingNames
 vector of strings to store the headings for the exra variables
 
CVerificationSolution * VerificationSolution
 Verification solution class used within the solver.
 
vector< string > fields
 
- Protected Types inherited from CSolver
enum  : size_t { OMP_MIN_SIZE = 32 }
 
- Static Protected Member Functions inherited from CSolver
static void ResidualReductions_PerThread (unsigned long iPoint, unsigned short iVar, su2double res, su2double *resRMS, su2double *resMax, unsigned long *idxMax)
 "Add" residual at (iPoint,iVar) to residual variables local to the thread.
 

Detailed Description

Main class for defining the Euler Discontinuous Galerkin finite element flow solver.

Author
E. van der Weide, T. Economon, J. Alonso
Version
8.5.0 "Harrier"

Constructor & Destructor Documentation

◆ CFEM_DG_EulerSolver() [1/3]

CFEM_DG_EulerSolver::CFEM_DG_EulerSolver ( void  )

Constructor of the class.

◆ CFEM_DG_EulerSolver() [2/3]

CFEM_DG_EulerSolver::CFEM_DG_EulerSolver ( CConfig *  config,
unsigned short  val_nDim,
unsigned short  iMesh 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]config- Definition of the particular problem.
[in]val_nDim- Dimension of the problem (2D or 3D).
[in]iMesh- Index of the mesh in multigrid computations.

◆ CFEM_DG_EulerSolver() [3/3]

CFEM_DG_EulerSolver::CFEM_DG_EulerSolver ( CGeometry *  geometry,
CConfig *  config,
unsigned short  iMesh 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.

◆ ~CFEM_DG_EulerSolver()

CFEM_DG_EulerSolver::~CFEM_DG_EulerSolver ( void  )
override

Destructor of the class.

Member Function Documentation

◆ AccumulateSpaceTimeResidualADERHaloElem()

void CFEM_DG_EulerSolver::AccumulateSpaceTimeResidualADERHaloElem ( CConfig *  config,
const unsigned short  timeLevel,
const unsigned short  intPoint 
)

Function, which accumulates the space time residual of the ADER-DG time integration scheme for the halo elements.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- time level for which the residuals must be accumulated.
[in]intPoint- Index of the time integration point.

◆ AccumulateSpaceTimeResidualADEROwnedElem()

void CFEM_DG_EulerSolver::AccumulateSpaceTimeResidualADEROwnedElem ( CConfig *  config,
const unsigned short  timeLevel,
const unsigned short  intPoint 
)

Function, which accumulates the space time residual of the ADER-DG time integration scheme for the owned elements.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- time level for which the residuals must be accumulated.
[in]intPoint- Index of the time integration point.

◆ ADER_DG_Iteration()

void CFEM_DG_EulerSolver::ADER_DG_Iteration ( const unsigned long  elemBeg,
const unsigned long  elemEnd 
)

Update the solution for the ADER-DG scheme for the given range of elements.

Parameters
[in]elemBeg- Begin index of the element range to be computed.
[in]elemEnd- End index (not included) of the element range to be computed.

◆ ADER_DG_PredictorStep()

void CFEM_DG_EulerSolver::ADER_DG_PredictorStep ( CConfig *  config,
const unsigned long  elemBeg,
const unsigned long  elemEnd,
su2double *  workArray 
)

Function, carries out the predictor step of the ADER-DG time integration.

Parameters
[in]config- Definition of the particular problem.
[in]elemBeg- Begin index of the element range to be computed.
[in]elemEnd- End index (not included) of the element range to be computed.
[out]workArray- Work array.

◆ ADER_DG_TimeInterpolatePredictorSol()

void CFEM_DG_EulerSolver::ADER_DG_TimeInterpolatePredictorSol ( CConfig *  config,
const unsigned short  iTime,
const unsigned long  elemBeg,
const unsigned long  elemEnd,
const unsigned long  nAdjElem,
const unsigned long *  adjElem,
const bool  secondPartTimeInt,
su2double *  solTimeLevel 
)

Function, which interpolates the predictor solution of ADER-DG to the time value that corresponds to iTime.

Parameters
[in]config- Definition of the particular problem.
[in]iTime- Time index of the time integration point for the integration over the time slab in the corrector step of ADER-DG.
[in]elemBeg- Begin index of the element range to be computed. This range is for elements of the same time level.
[in]elemEnd- End index (not included) of the element range to be computed.
[in]nAdjElem- Number of elements of the next time level, which are adjacent to elements of the current time level.
[in]adjElem- The ID's of the adjacent elements.
[in]secondPartTimeInt- Whether or not this is the second part of the time interval for the adjacent elements.
[out]solTimeLevel- Array in which the interpolated solution for the time level considered must be stored.

◆ ADER_SpaceTimeIntegration()

void CFEM_DG_EulerSolver::ADER_SpaceTimeIntegration ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics **  numerics,
CConfig *  config,
unsigned short  iMesh,
unsigned short  RunTime_EqSystem 
)
finalvirtual

Function, to carry out the space time integration for ADER with time accurate local time stepping.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.

Reimplemented from CSolver.

◆ BC_Custom() [1/2]

void CFEM_DG_EulerSolver::BC_Custom ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
su2double *  workArray 
)
virtual

Impose the user customized boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Custom() [2/2]

virtual void CSolver::BC_Custom ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the convective numerical method.
[in]visc_numerics- Description of the viscous numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Euler_Wall() [1/2]

void CFEM_DG_EulerSolver::BC_Euler_Wall ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
su2double *  workArray 
)
virtual

Impose via the residual the Euler wall boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Euler_Wall() [2/2]

virtual void CSolver::BC_Euler_Wall ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Far_Field() [1/2]

void CFEM_DG_EulerSolver::BC_Far_Field ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
su2double *  workArray 
)
virtual

Impose the far-field boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Far_Field() [2/2]

virtual void CSolver::BC_Far_Field ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_HeatFlux_Wall() [1/2]

virtual void CFEM_DG_EulerSolver::BC_HeatFlux_Wall ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
unsigned short  val_marker,
su2double *  workArray 
)
inlinevirtual

Impose a constant heat-flux condition at the wall. It is a virtual function, such that it can be overwritten for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[in]val_marker- Surface marker where the boundary condition is applied.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_HeatFlux_Wall() [2/2]

virtual void CSolver::BC_HeatFlux_Wall ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Inlet() [1/2]

void CFEM_DG_EulerSolver::BC_Inlet ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
unsigned short  val_marker,
su2double *  workArray 
)
virtual

Impose the subsonic inlet boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[in]val_marker- Surface marker where the boundary condition is applied.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Inlet() [2/2]

virtual void CSolver::BC_Inlet ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Isothermal_Wall() [1/2]

virtual void CFEM_DG_EulerSolver::BC_Isothermal_Wall ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
unsigned short  val_marker,
su2double *  workArray 
)
inlinevirtual

Impose an isothermal condition at the wall. It is a virtual function, such that it can be overwritten for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[in]val_marker- Surface marker where the boundary condition is applied.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Isothermal_Wall() [2/2]

virtual void CSolver::BC_Isothermal_Wall ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Outlet() [1/2]

void CFEM_DG_EulerSolver::BC_Outlet ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
unsigned short  val_marker,
su2double *  workArray 
)
virtual

Impose the outlet boundary condition.It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[in]val_marker- Surface marker where the boundary condition is applied.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Outlet() [2/2]

virtual void CSolver::BC_Outlet ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Riemann() [1/2]

void CFEM_DG_EulerSolver::BC_Riemann ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
unsigned short  val_marker,
su2double *  workArray 
)
virtual

Impose the boundary condition using characteristic reconstruction. It is a virtual function, such that it can be overwritten for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[in]val_marker- Surface marker where the boundary condition is applied.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Riemann() [2/2]

virtual void CSolver::BC_Riemann ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Supersonic_Outlet() [1/2]

void CFEM_DG_EulerSolver::BC_Supersonic_Outlet ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
su2double *  workArray 
)
virtual

Impose the supersonic outlet boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Supersonic_Outlet() [2/2]

virtual void CSolver::BC_Supersonic_Outlet ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Sym_Plane() [1/3]

void CFEM_DG_EulerSolver::BC_Sym_Plane ( CConfig *  config,
const unsigned long  surfElemBeg,
const unsigned long  surfElemEnd,
const CSurfaceElementFEM *  surfElem,
su2double *  resFaces,
CNumerics *  conv_numerics,
su2double *  workArray 
)
virtual

Impose the symmetry boundary condition. It is a virtual function, because for Navier-Stokes it is overwritten.

Parameters
[in]config- Definition of the particular problem.
[in]surfElemBeg- Start index in the list of surface elements.
[in]surfElemEnd- End index (not included) in the list of surface elements.
[in]surfElem- Array of surface elements for which the boundary conditions must be imposed.
[out]resFaces- Array where the residual contribution from the surface elements must be stored.
[in]conv_numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ BC_Sym_Plane() [2/3]

virtual void CSolver::BC_Sym_Plane ( CGeometry *  geometry,
const CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

A virtual member.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ BC_Sym_Plane() [3/3]

virtual void CSolver::BC_Sym_Plane ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics *  conv_numerics,
CNumerics *  visc_numerics,
CConfig *  config,
unsigned short  val_marker 
)
inlinevirtual

Impose via the residual the Euler boundary condition.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]conv_numerics- Description of the numerical method.
[in]visc_numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]val_marker- Surface marker where the boundary condition is applied.

Reimplemented from CSolver.

◆ Boundary_Conditions()

void CFEM_DG_EulerSolver::Boundary_Conditions ( const unsigned short  timeLevel,
CConfig *  config,
CNumerics **  numerics,
const bool  haloInfoNeededForBC,
su2double *  workArray 
)

Function, which computes the spatial residual for the DG discretization.

Parameters
[in]timeLevel- Time level of the time accurate local time stepping, if relevant.
[in]config- Definition of the particular problem.
[in]numerics- Description of the numerical method.
[in]haloInfoNeededForBC- If true, treat boundaries for which halo data is needed. If false, treat boundaries for which only owned data is needed.
[out]workArray- Work array.

◆ BoundaryStates_Euler_Wall()

void CFEM_DG_EulerSolver::BoundaryStates_Euler_Wall ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const CSurfaceElementFEM *  surfElem,
const su2double *  solIntL,
su2double *  solIntR 
)
protected

Function, which computes the boundary states in the integration points of the boundary face by applying the inviscid wall boundary conditions.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]surfElem- Surface boundary elements for which the left state must be computed.
[in]solIntL- Left states in the integration points of the face.
[out]solIntR- Right states in the integration points of the face.

◆ BoundaryStates_Inlet()

void CFEM_DG_EulerSolver::BoundaryStates_Inlet ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const CSurfaceElementFEM *  surfElem,
unsigned short  val_marker,
const su2double *  solIntL,
su2double *  solIntR 
)
protected

Function, which computes the boundary states in the integration points of the boundary face by applying the inlet boundary conditions.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of fused faces, i.e. the number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]surfElem- Surface boundary element for which the left state must be computed.
[in]val_marker- Surface marker where the boundary condition is applied.
[in]solIntL- Left states in the integration points of the face.
[out]solIntR- Right states in the integration points of the face.

◆ BoundaryStates_Outlet()

void CFEM_DG_EulerSolver::BoundaryStates_Outlet ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const CSurfaceElementFEM *  surfElem,
unsigned short  val_marker,
const su2double *  solIntL,
su2double *  solIntR 
)
protected

Function, which computes the boundary states in the integration points of the boundary face by applying the outlet boundary conditions.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of fused faces, i.e. the number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]surfElem- Surface boundary element for which the left state must be computed.
[in]val_marker- Surface marker where the boundary condition is applied.
[in]solIntL- Left states in the integration points of the face.
[out]solIntR- Right states in the integration points of the face.

◆ BoundaryStates_Riemann()

void CFEM_DG_EulerSolver::BoundaryStates_Riemann ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const CSurfaceElementFEM *  surfElem,
unsigned short  val_marker,
const su2double *  solIntL,
su2double *  solIntR 
)
protected

Function, which computes the boundary states in the integration points of the boundary face by applying the Riemann boundary conditions.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of fused faces, i.e. the number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]surfElem- Surface boundary element for which the left state must be computed.
[in]val_marker- Surface marker where the boundary condition is applied.
[in]solIntL- Left states in the integration points of the face.
[out]solIntR- Right states in the integration points of the face.

◆ CheckTimeSynchronization()

void CFEM_DG_EulerSolver::CheckTimeSynchronization ( CConfig *  config,
const su2double  TimeSync,
su2double &  timeEvolved,
bool &  syncTimeReached 
)
finalvirtual

Function, which checks whether or not the time synchronization point is reached when explicit time stepping is used.

Parameters
[in]config- Definition of the particular problem.
[in]TimeSync- The synchronization time.
[in,out]timeEvolved- On input the time evolved before the time step, on output the time evolved after the time step.
[out]syncTimeReached- Whether or not the synchronization time is reached.

Reimplemented from CSolver.

◆ ClassicalRK4_Iteration()

void CFEM_DG_EulerSolver::ClassicalRK4_Iteration ( CGeometry *  geometry,
CSolver **  solver_container,
CConfig *  config,
unsigned short  iRKStep 
)
finalvirtual

Update the solution using the classical fourth-order Runge-Kutta scheme.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]iRKStep- Current step of the Runge-Kutta iteration.

Reimplemented from CSolver.

◆ Complete_MPI_Communication()

bool CFEM_DG_EulerSolver::Complete_MPI_Communication ( CConfig *  config,
const unsigned short  timeLevel,
const bool  commMustBeCompleted 
)
protected

Routine that completes the non-blocking communication between ranks.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- The time level for which the communication may be completed.
[in]commMustBeCompleted- Whether or not the communication must be completed.
Returns
Whether or not the communication has been completed.

◆ Complete_MPI_ReverseCommunication()

bool CFEM_DG_EulerSolver::Complete_MPI_ReverseCommunication ( CConfig *  config,
const unsigned short  timeLevel,
const bool  commMustBeCompleted 
)
protected

Routine that completes the reverse non-blocking communication between ranks.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- The time level for which the communication may be completed.
[in]commMustBeCompleted- Whether or not the communication must be completed.
Returns
Whether or not the communication has been completed.

◆ ComputeInviscidFluxesFace()

void CFEM_DG_EulerSolver::ComputeInviscidFluxesFace ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const unsigned long  nPoints,
const su2double *  normalsFace[],
const su2double *  gridVelsFace[],
const su2double *  solL,
const su2double *  solR,
su2double *  fluxes,
CNumerics *  numerics 
)
protected

Function, which computes the inviscid fluxes in face points.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]nPoints- Number of points per face for which the fluxes must be computed.
[in]normalsFace- The normals in the points for the faces.
[in]gridVelsFace- The grid velocities in the points for the faces.
[in]solL- Solution in the left state of the points.
[in]solR- Solution in the right state of the points.
[out]fluxes- Inviscid fluxes in the points.
[in]numerics- Object, which contains the Riemann solver.

◆ ComputeSpatialJacobian()

void CFEM_DG_EulerSolver::ComputeSpatialJacobian ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics **  numerics,
CConfig *  config,
unsigned short  iMesh,
unsigned short  RunTime_EqSystem 
)
finalvirtual

Function, which controls the computation of the spatial Jacobian.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.

Reimplemented from CSolver.

◆ ComputeVerificationError()

void CFEM_DG_EulerSolver::ComputeVerificationError ( CGeometry *  geometry,
CConfig *  config 
)
finalvirtual

Compute the global error measures (L2, Linf) for verification cases.

Parameters
[in]geometry- Geometrical definition.
[in]config- Definition of the particular problem.

Reimplemented from CSolver.

◆ ExplicitRK_Iteration()

void CFEM_DG_EulerSolver::ExplicitRK_Iteration ( CGeometry *  geometry,
CSolver **  solver_container,
CConfig *  config,
unsigned short  iRKStep 
)
finalvirtual

Update the solution using a Runge-Kutta scheme.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]iRKStep- Current step of the Runge-Kutta iteration.

Reimplemented from CSolver.

◆ GetAeroCoeffsReferenceForce()

su2double CFEM_DG_EulerSolver::GetAeroCoeffsReferenceForce ( ) const
inlinefinalvirtual

Get the reference force used to compute CL, CD, etc.

Reimplemented from CSolver.

◆ GetAllBound_CD_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CD_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the drag coefficient.

Returns
Value of the drag coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CEff_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CEff_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CFx_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CFx_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CFy_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CFy_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CFz_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CFz_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CL_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CL_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the lift coefficient.

Returns
Value of the lift coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CMx_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CMx_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CMy_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CMy_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CMz_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CMz_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetAllBound_CSF_Inv()

su2double CFEM_DG_EulerSolver::GetAllBound_CSF_Inv ( ) const
inlinefinalvirtual

Get the inviscid contribution to the sideforce coefficient.

Returns
Value of the sideforce coefficient (inviscid contribution).

Reimplemented from CSolver.

◆ GetCD_Inv()

su2double CFEM_DG_EulerSolver::GetCD_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional drag coefficient (inviscid contribution).

Parameters
val_markerSurface where the coeficient is going to be computed.
Returns
Value of the drag coefficient (inviscid contribution) on the surface val_marker.

Reimplemented from CSolver.

◆ GetCEff_Inv()

su2double CFEM_DG_EulerSolver::GetCEff_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional efficiency coefficient (inviscid contribution).

Parameters
val_markerSurface where the coeficient is going to be computed.
Returns
Value of the efficiency coefficient (inviscid contribution) on the surface val_marker.

Reimplemented from CSolver.

◆ GetCL_Inv()

su2double CFEM_DG_EulerSolver::GetCL_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional lift coefficient (inviscid contribution).

Parameters
val_markerSurface where the coefficient is going to be computed.
Returns
Value of the lift coefficient (inviscid contribution) on the surface val_marker.

Reimplemented from CSolver.

◆ GetCSF_Inv()

su2double CFEM_DG_EulerSolver::GetCSF_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional sideforce coefficient (inviscid contribution).

Parameters
val_markerSurface where the coeficient is going to be computed.
Returns
Value of the sideforce coefficient (inviscid contribution) on the surface val_marker.

Reimplemented from CSolver.

◆ GetDensity_Energy_Inf()

su2double CFEM_DG_EulerSolver::GetDensity_Energy_Inf ( void  ) const
inlinefinalvirtual

Compute the density multiply by energy at the infinity.

Returns
Value of the density multiply by energy at the infinity.

Reimplemented from CSolver.

◆ GetDensity_Inf()

su2double CFEM_DG_EulerSolver::GetDensity_Inf ( void  ) const
inlinefinalvirtual

Compute the density at the infinity.

Returns
Value of the density at the infinity.

Reimplemented from CSolver.

◆ GetFluidModel()

CFluidModel * CFEM_DG_EulerSolver::GetFluidModel ( void  ) const
inlinefinalvirtual

Compute the pressure at the infinity.

Returns
Value of the pressure at the infinity.

Reimplemented from CSolver.

◆ GetModVelocity_Inf()

su2double CFEM_DG_EulerSolver::GetModVelocity_Inf ( void  ) const
inlinefinalvirtual

Compute 2-norm of the velocity at the infinity.

Returns
Value of the 2-norm of the velocity at the infinity.

Reimplemented from CSolver.

◆ GetnDOFsGlobal()

unsigned long CFEM_DG_EulerSolver::GetnDOFsGlobal ( void  ) const
inlinefinalvirtual

Get the global number of solution degrees of freedom for the calculation.

Returns
Global number of solution degrees of freedom

Reimplemented from CSolver.

◆ GetPressure_Inf()

su2double CFEM_DG_EulerSolver::GetPressure_Inf ( void  ) const
inlinefinalvirtual

Compute the pressure at the infinity.

Returns
Value of the pressure at the infinity.

Reimplemented from CSolver.

◆ GetSurface_CD()

su2double CFEM_DG_EulerSolver::GetSurface_CD ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional drag coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the drag coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CD_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CD_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional drag coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the drag coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CEff()

su2double CFEM_DG_EulerSolver::GetSurface_CEff ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional side-force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the side-force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CEff_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CEff_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional side-force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the side-force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFx()

su2double CFEM_DG_EulerSolver::GetSurface_CFx ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional x force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the x force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFx_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CFx_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional x force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the x force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFy()

su2double CFEM_DG_EulerSolver::GetSurface_CFy ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional y force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the y force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFy_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CFy_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional y force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the y force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFz()

su2double CFEM_DG_EulerSolver::GetSurface_CFz ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional z force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the z force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CFz_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CFz_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional z force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the z force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CL()

su2double CFEM_DG_EulerSolver::GetSurface_CL ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional lift coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the lift coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CL_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CL_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional lift coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the lift coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMx()

su2double CFEM_DG_EulerSolver::GetSurface_CMx ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional x moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the x moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMx_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CMx_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional x moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the x moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMy()

su2double CFEM_DG_EulerSolver::GetSurface_CMy ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional y moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the y moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMy_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CMy_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional y moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the y moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMz()

su2double CFEM_DG_EulerSolver::GetSurface_CMz ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional z moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the z moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CMz_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CMz_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional z moment coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the z moment coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CSF()

su2double CFEM_DG_EulerSolver::GetSurface_CSF ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional side-force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the side-force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetSurface_CSF_Inv()

su2double CFEM_DG_EulerSolver::GetSurface_CSF_Inv ( unsigned short  val_marker) const
inlinefinalvirtual

Provide the non dimensional side-force coefficient.

Parameters
[in]val_marker- Surface marker where the coefficient is computed.
Returns
Value of the side-force coefficient on the surface val_marker.

Reimplemented from CSolver.

◆ GetTotal_CD()

su2double CFEM_DG_EulerSolver::GetTotal_CD ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional drag coefficient.

Returns
Value of the drag coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CEff()

su2double CFEM_DG_EulerSolver::GetTotal_CEff ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional efficiency coefficient.

Returns
Value of the efficiency coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CFx()

su2double CFEM_DG_EulerSolver::GetTotal_CFx ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional x force coefficient.

Returns
Value of the force x coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CFy()

su2double CFEM_DG_EulerSolver::GetTotal_CFy ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional y force coefficient.

Returns
Value of the force y coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CFz()

su2double CFEM_DG_EulerSolver::GetTotal_CFz ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional z force coefficient.

Returns
Value of the force z coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CL()

su2double CFEM_DG_EulerSolver::GetTotal_CL ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional lift coefficient.

Returns
Value of the lift coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CMx()

su2double CFEM_DG_EulerSolver::GetTotal_CMx ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional x moment coefficient.

Returns
Value of the moment x coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CMy()

su2double CFEM_DG_EulerSolver::GetTotal_CMy ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional y moment coefficient.

Returns
Value of the moment y coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CMz()

su2double CFEM_DG_EulerSolver::GetTotal_CMz ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional z moment coefficient.

Returns
Value of the moment z coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetTotal_CSF()

su2double CFEM_DG_EulerSolver::GetTotal_CSF ( ) const
inlinefinalvirtual

Provide the total (inviscid + viscous) non dimensional sideforce coefficient.

Returns
Value of the sideforce coefficient (inviscid + viscous contribution).

Reimplemented from CSolver.

◆ GetVecSolDOFs()

su2double * CFEM_DG_EulerSolver::GetVecSolDOFs ( void  )
inlinefinalvirtual

Get a pointer to the vector of the solution degrees of freedom.

Returns
Pointer to the vector of the solution degrees of freedom.

Reimplemented from CSolver.

◆ GetVelocity_Inf() [1/2]

su2double CFEM_DG_EulerSolver::GetVelocity_Inf ( unsigned short  val_dim) const
inlinefinalvirtual

Get the velocity at the infinity.

Parameters
[in]val_dim- Index of the velocity vector.
Returns
Value of the velocity at the infinity.

Reimplemented from CSolver.

◆ GetVelocity_Inf() [2/2]

su2double * CFEM_DG_EulerSolver::GetVelocity_Inf ( void  )
inlinefinalvirtual

Get the velocity at the infinity.

Returns
Value of the velocity at the infinity.

Reimplemented from CSolver.

◆ Initiate_MPI_Communication()

void CFEM_DG_EulerSolver::Initiate_MPI_Communication ( CConfig *  config,
const unsigned short  timeLevel 
)
protected

Routine that initiates the non-blocking communication between ranks for the givem time level.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- The time level for which the communication must be initiated.

◆ Initiate_MPI_ReverseCommunication()

void CFEM_DG_EulerSolver::Initiate_MPI_ReverseCommunication ( CConfig *  config,
const unsigned short  timeLevel 
)
protected

Routine that initiates the reverse non-blocking communication between ranks.

Parameters
[in]config- Definition of the particular problem.
[in]timeLevel- The time level for which the reverse communication must be initiated.

◆ InviscidFluxesInternalMatchingFace()

void CFEM_DG_EulerSolver::InviscidFluxesInternalMatchingFace ( CConfig *  config,
const unsigned long  lBeg,
const unsigned long  lEnd,
const unsigned short  NPad,
su2double *  solIntL,
su2double *  solIntR,
su2double *  fluxes,
CNumerics *  numerics 
)
protected

Function, which computes the inviscid fluxes in the face integration points of a chunk of matching internal faces.

Parameters
[in]config- Definition of the particular problem.
[in]lBeg- Start index in matchingInternalFaces for which the inviscid fluxes should be computed.
[in]lEnd- End index (not included) in matchingInternalFaces for which the inviscid fluxes should be computed.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[out]solIntL- Solution in the left state of the integration points.
[out]solIntR- Solution in the right state of the integration points.
[out]fluxes- Inviscid fluxes in the integration points.
[in]numerics- Object, which contains the Riemann solver.

◆ LeftStatesIntegrationPointsBoundaryFace()

void CFEM_DG_EulerSolver::LeftStatesIntegrationPointsBoundaryFace ( CConfig *  config,
const unsigned short  nFaceSimul,
const unsigned short  NPad,
const CSurfaceElementFEM *  surfElem,
su2double *  solFace,
su2double *  solIntL 
)
protected

Function, which computes the left state of a boundary face.

Parameters
[in]config- Definition of the particular problem.
[in]nFaceSimul- Number of faces that are treated simultaneously to improve performance.
[in]NPad- Value of the padding parameter to obtain optimal performance in the gemm computations.
[in]surfElem- Surface boundary elements for which the left state must be computed.
[out]solFace- Temporary storage for the solution in the DOFs.
[out]solIntL- Left states in the integration points of the face.

◆ LoadRestart()

void CFEM_DG_EulerSolver::LoadRestart ( CGeometry **  geometry,
CSolver ***  solver,
CConfig *  config,
int  val_iter,
bool  val_update_geo 
)
finalvirtual

Load a solution from a restart file.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver- Container vector with all of the solvers.
[in]config- Definition of the particular problem.
[in]val_iter- Current external iteration number.
[in]val_update_geo- Flag for updating coords and grid velocity.

Reimplemented from CSolver.

◆ MetaDataChunkOfElem()

template<class TElemType >
void CFEM_DG_EulerSolver::MetaDataChunkOfElem ( const TElemType *  elem,
const unsigned long  l,
const unsigned long  elemEnd,
const unsigned short  nElemSimul,
const unsigned short  nPadMin,
unsigned long &  lEnd,
unsigned short &  ind,
unsigned short &  llEnd,
unsigned short &  NPad 
)
inlineprotected

Template function, which determines some meta data for the chunk of elements/faces that must be treated simulaneously.

Parameters
[in]elem- Const pointer the volume or face elements for which the meta data must be computed.
[in]l- Start index for the current chunk of elements/faces.
[in]elemEnd- End index (index not included) of the elements to be treated in the residual computation from which this function is called.
[in]nElemSimul- Desired number of elements/faces that must be treated simultaneously for optimal performance.
[in]nPadMin- Minimum number of the padding value in the gemm calls.
[out]lEnd- Actual end index (not included) for this chunk of elements.
[out]ind- Index in the standard elements to which this chunk of elements can be mapped.
[out]llEnd- Actual number of elements/faces that are treated simultaneously, llEnd = lEnd - l.
[out]NPad- Actual padded N value in the gemm computations for this chunk of elements.

◆ Postprocessing()

void CFEM_DG_EulerSolver::Postprocessing ( CGeometry *  geometry,
CSolver **  solver_container,
CConfig *  config,
unsigned short  iMesh 
)
finalvirtual
Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.

Reimplemented from CSolver.

◆ Preprocessing()

void CFEM_DG_EulerSolver::Preprocessing ( CGeometry *  geometry,
CSolver **  solver_container,
CConfig *  config,
unsigned short  iMesh,
unsigned short  iRKStep,
unsigned short  RunTime_EqSystem,
bool  Output 
)
finalvirtual

Compute primitive variables and their gradients.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]iStep- Current step in the time accurate local time stepping algorithm, if appropriate.
[in]RunTime_EqSystem- System of equations which is going to be solved.

Reimplemented from CSolver.

◆ Pressure_Forces()

void CFEM_DG_EulerSolver::Pressure_Forces ( const CGeometry *  geometry,
const CConfig *  config 
)
finalvirtual

Compute the pressure forces and all the adimensional coefficients.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

Reimplemented from CSolver.

◆ ProcessTaskList_DG()

void CFEM_DG_EulerSolver::ProcessTaskList_DG ( CGeometry *  geometry,
CSolver **  solver_container,
CNumerics **  numerics,
CConfig *  config,
unsigned short  iMesh 
)
finalvirtual

Function, which processes the list of tasks to be executed by the DG solver.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]numerics- Description of the numerical method.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.

Reimplemented from CSolver.

◆ ResidualFaces()

void CFEM_DG_EulerSolver::ResidualFaces ( CConfig *  config,
const unsigned long  indFaceBeg,
const unsigned long  indFaceEnd,
unsigned long &  indResFaces,
CNumerics *  numerics,
su2double *  workArray 
)
virtual

Compute the spatial residual for the given range of faces. It is a virtual function, because this function is overruled for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]indFaceBeg- Starting index in the matching faces.
[in]indFaceEnd- End index in the matching faces.
[in,out]indResFaces- Index where to store the residuals in the vector of face residuals.
[in]numerics- Description of the numerical method.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ Set_NewSolution()

void CFEM_DG_EulerSolver::Set_NewSolution ( )
finalvirtual

Set the new solution to the current solution for classical RK.

Reimplemented from CSolver.

◆ Set_OldSolution()

void CFEM_DG_EulerSolver::Set_OldSolution ( )
finalvirtual

Set the working solution of the first time level to the current solution. Used for Runge-Kutta type schemes.

Reimplemented from CSolver.

◆ SetInitialCondition()

void CFEM_DG_EulerSolver::SetInitialCondition ( CGeometry **  geometry,
CSolver ***  solver_container,
CConfig *  config,
unsigned long  TimeIter 
)
finalvirtual

Set the initial condition for the Euler Equations.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container with all the solutions.
[in]config- Definition of the particular problem.
[in]ExtIter- External iteration.

Reimplemented from CSolver.

◆ SetNondimensionalization()

void CFEM_DG_EulerSolver::SetNondimensionalization ( CConfig *  config,
unsigned short  iMesh,
const bool  writeOutput 
)

Set the fluid solver nondimensionalization.

Parameters
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.
[in]writeOutput- Whether or not output must be written.

◆ SetPressure_Inf()

void CFEM_DG_EulerSolver::SetPressure_Inf ( su2double  p_inf)
inlinefinalvirtual

Set the freestream pressure.

Parameters
[in]Valueof freestream pressure.

Reimplemented from CSolver.

◆ SetResidual_RMS_FEM()

void CFEM_DG_EulerSolver::SetResidual_RMS_FEM ( CGeometry *  geometry,
CConfig *  config 
)

Update the solution using the classical fourth-order Runge-Kutta scheme.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]config- Definition of the particular problem.

◆ SetTemperature_Inf()

void CFEM_DG_EulerSolver::SetTemperature_Inf ( su2double  t_inf)
inlinefinalvirtual

Set the freestream temperature.

Parameters
[in]Valueof freestream temperature.

Reimplemented from CSolver.

◆ SetTime_Step()

void CFEM_DG_EulerSolver::SetTime_Step ( CGeometry *  geometry,
CSolver **  solver_container,
CConfig *  config,
unsigned short  iMesh,
unsigned long  Iteration 
)
overridevirtual

Function to compute the time step for solving the Euler equations.

Parameters
[in]geometry- Geometrical definition of the problem.
[in]solver_container- Container vector with all the solutions.
[in]config- Definition of the particular problem.
[in]iMesh- Index of the mesh in multigrid computations.
[in]Iteration- Value of the current iteration.

Reimplemented from CSolver.

Reimplemented in CFEM_DG_NSSolver.

◆ SetTotal_CD()

void CFEM_DG_EulerSolver::SetTotal_CD ( su2double  val_Total_CD)
inlinefinalvirtual

Store the total (inviscid + viscous) non dimensional drag coefficient.

Parameters
[in]val_Total_CD- Value of the total drag coefficient.

Reimplemented from CSolver.

◆ SetTotal_CL()

void CFEM_DG_EulerSolver::SetTotal_CL ( su2double  val_Total_CL)
inlinefinalvirtual

Store the total (inviscid + viscous) non dimensional lift coefficient.

Parameters
[in]val_Total_CL- Value of the total lift coefficient.

Reimplemented from CSolver.

◆ Shock_Capturing_DG()

void CFEM_DG_EulerSolver::Shock_Capturing_DG ( CConfig *  config,
const unsigned long  elemBeg,
const unsigned long  elemEnd,
su2double *  workArray 
)
virtual

Compute the artificial viscosity for shock capturing in DG. It is a virtual function, because this function is overruled for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]elemBeg- Begin index of the element range to be computed.
[in]elemEnd- End index (not included) of the element range to be computed.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

◆ TolerancesADERPredictorStep()

void CFEM_DG_EulerSolver::TolerancesADERPredictorStep ( void  )

Function, which determines the values of the tolerances in the predictor step of ADER-DG.

◆ Volume_Residual()

void CFEM_DG_EulerSolver::Volume_Residual ( CConfig *  config,
const unsigned long  elemBeg,
const unsigned long  elemEnd,
su2double *  workArray 
)
virtual

Compute the volume contributions to the spatial residual. It is a virtual function, because this function is overruled for Navier-Stokes.

Parameters
[in]config- Definition of the particular problem.
[in]elemBeg- Begin index of the element range to be computed.
[in]elemEnd- End index (not included) of the element range to be computed.
[out]workArray- Work array.

Reimplemented in CFEM_DG_NSSolver.

Member Data Documentation

◆ AeroCoeffForceRef

su2double CFEM_DG_EulerSolver::AeroCoeffForceRef
protected

Reference force for coefficients.

◆ AllBound_CD_Inv

su2double CFEM_DG_EulerSolver::AllBound_CD_Inv
protected

Total drag coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CEff_Inv

su2double CFEM_DG_EulerSolver::AllBound_CEff_Inv
protected

Total efficiency (Cl/Cd) (inviscid contribution) for all the boundaries.

◆ AllBound_CFx_Inv

su2double CFEM_DG_EulerSolver::AllBound_CFx_Inv
protected

Total x force coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CFy_Inv

su2double CFEM_DG_EulerSolver::AllBound_CFy_Inv
protected

Total y force coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CFz_Inv

su2double CFEM_DG_EulerSolver::AllBound_CFz_Inv
protected

Total z force coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CL_Inv

su2double CFEM_DG_EulerSolver::AllBound_CL_Inv
protected

Total lift coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CMx_Inv

su2double CFEM_DG_EulerSolver::AllBound_CMx_Inv
protected

Total x moment coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CMy_Inv

su2double CFEM_DG_EulerSolver::AllBound_CMy_Inv
protected

Total y moment coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CMz_Inv

su2double CFEM_DG_EulerSolver::AllBound_CMz_Inv
protected

Total z moment coefficient (inviscid contribution) for all the boundaries.

◆ AllBound_CSF_Inv

su2double CFEM_DG_EulerSolver::AllBound_CSF_Inv
protected

Total sideforce coefficient (inviscid contribution) for all the boundaries.

◆ blasFunctions

CBlasStructure* CFEM_DG_EulerSolver::blasFunctions
protected

Pointer to the object to carry out the BLAS functionalities.

◆ boundaries

CBoundaryFEM* CFEM_DG_EulerSolver::boundaries
protected

Array of the boundaries of the FEM mesh.

◆ CD_Inv

su2double * CFEM_DG_EulerSolver::CD_Inv
protected

Drag coefficient (inviscid contribution) for each boundary.

◆ CEff_Inv

su2double * CFEM_DG_EulerSolver::CEff_Inv
protected

Efficiency (Cl/Cd) (inviscid contribution) for each boundary.

◆ CFx_Inv

su2double * CFEM_DG_EulerSolver::CFx_Inv
protected

x Force coefficient (inviscid contribution) for each boundary.

◆ CFy_Inv

su2double * CFEM_DG_EulerSolver::CFy_Inv
protected

y Force coefficient (inviscid contribution) for each boundary.

◆ CFz_Inv

su2double * CFEM_DG_EulerSolver::CFz_Inv
protected

z Force coefficient (inviscid contribution) for each boundary.

◆ CL_Inv

su2double* CFEM_DG_EulerSolver::CL_Inv
protected

Lift coefficient (inviscid contribution) for each boundary.

◆ CMx_Inv

su2double * CFEM_DG_EulerSolver::CMx_Inv
protected

x Moment coefficient (inviscid contribution) for each boundary.

◆ CMy_Inv

su2double * CFEM_DG_EulerSolver::CMy_Inv
protected

y Moment coefficient (inviscid contribution) for each boundary.

◆ CMz_Inv

su2double * CFEM_DG_EulerSolver::CMz_Inv
protected

z Moment coefficient (inviscid contribution) for each boundary.

◆ colorToIndEntriesJacobian

vector<vector<int> > CFEM_DG_EulerSolver::colorToIndEntriesJacobian
protected

Double vector, which contains for every local DOF the mapping from the color to the entry in the Jacobian. A -1 indicates that the color does not contribute to the Jacobian of the DOF.

◆ ConsVarFreeStream

vector<su2double> CFEM_DG_EulerSolver::ConsVarFreeStream
protected

Vector, which contains the free stream conservative variables.

◆ CSF_Inv

su2double * CFEM_DG_EulerSolver::CSF_Inv
protected

Sideforce coefficient (inviscid contribution) for each boundary.

◆ Density_Inf

su2double CFEM_DG_EulerSolver::Density_Inf
protected

Density at infinity.

◆ Energy_Inf

su2double CFEM_DG_EulerSolver::Energy_Inf
protected

Energy at infinity.

◆ entriesResAdjFaces

vector<unsigned long> CFEM_DG_EulerSolver::entriesResAdjFaces
protected

The corresponding entries in the residual of the faces.

◆ entriesResFaces

vector<unsigned long> CFEM_DG_EulerSolver::entriesResFaces
protected

The corresponding entries in the residual of the faces.

◆ FluidModel

CFluidModel* CFEM_DG_EulerSolver::FluidModel
protected

fluid model used in the solver

◆ Gamma

su2double CFEM_DG_EulerSolver::Gamma
protected

Fluid's Gamma constant (ratio of specific heats).

◆ Gamma_Minus_One

su2double CFEM_DG_EulerSolver::Gamma_Minus_One
protected

Fluids's Gamma - 1.0 .

◆ haloElemAdjLowTimeLevel

vector<vector<unsigned long> > CFEM_DG_EulerSolver::haloElemAdjLowTimeLevel
protected

List of halo elements per time level that are adjacent to elements of the lower time level.

◆ localDOFsPerColor

vector<vector<unsigned long> > CFEM_DG_EulerSolver::localDOFsPerColor
protected

Double vector, which contains for every color the local DOFs.

◆ Mach_Inf

su2double CFEM_DG_EulerSolver::Mach_Inf
protected

Mach number at infinity.

◆ matchingInternalFaces

CInternalFaceElementFEM* CFEM_DG_EulerSolver::matchingInternalFaces
protected

Array of the local matching internal faces.

◆ meshPoints

CPointFEM* CFEM_DG_EulerSolver::meshPoints
protected

Array of the points of the FEM mesh.

◆ nDOFsGlobal

unsigned long CFEM_DG_EulerSolver::nDOFsGlobal
protected

Number of global DOFs.

◆ nDOFsLocOwned

unsigned long CFEM_DG_EulerSolver::nDOFsLocOwned
protected

Number of owned local DOFs.

◆ nDOFsLocTot

unsigned long CFEM_DG_EulerSolver::nDOFsLocTot
protected

Total number of local DOFs, including halos.

◆ nDOFsPerRank

vector<unsigned long> CFEM_DG_EulerSolver::nDOFsPerRank
protected

Number of DOFs per rank in cumulative storage format.

◆ nEntriesResAdjFaces

vector<unsigned long> CFEM_DG_EulerSolver::nEntriesResAdjFaces
protected

Number of entries for the DOFs in the residual of the faces, where the face is adjacent to an element of lower time level. Cumulative storage.

◆ nEntriesResFaces

vector<unsigned long> CFEM_DG_EulerSolver::nEntriesResFaces
protected

Number of entries for the DOFs in the residual of the faces. Cumulative storage.

◆ nGlobalColors

int CFEM_DG_EulerSolver::nGlobalColors
protected

Number of global colors for the Jacobian computation.

◆ nMatchingInternalFacesLocalElem

const unsigned long* CFEM_DG_EulerSolver::nMatchingInternalFacesLocalElem
protected

Number of local matching internal faces per time level between local elements. Cumulative storage.

◆ nMatchingInternalFacesWithHaloElem

const unsigned long* CFEM_DG_EulerSolver::nMatchingInternalFacesWithHaloElem
protected

Number of local matching internal faces per time level between an owned and a halo element. Cumulative storage.

◆ nMeshPoints

unsigned long CFEM_DG_EulerSolver::nMeshPoints
protected

Number of mesh points in the local part of the grid.

◆ nonZeroEntriesJacobian

vector<vector<unsigned long> > CFEM_DG_EulerSolver::nonZeroEntriesJacobian
protected

The ID's of the DOFs for the non-zero entries of the Jacobian for the locally owned DOFs.

◆ nStandardBoundaryFacesSol

unsigned short CFEM_DG_EulerSolver::nStandardBoundaryFacesSol
protected

Number of standard boundary faces used for solution of the DG solver.

◆ nStandardElementsSol

unsigned short CFEM_DG_EulerSolver::nStandardElementsSol
protected

Number of standard volume elements used for solution of the DG solver.

◆ nStandardMatchingFacesSol

unsigned short CFEM_DG_EulerSolver::nStandardMatchingFacesSol
protected

Number of standard matching internal faces used for solution of the DG solver.

◆ nVolElemHaloPerTimeLevel

const unsigned long* CFEM_DG_EulerSolver::nVolElemHaloPerTimeLevel
protected

Number of halo volume elements per time level. Cumulative storage.

◆ nVolElemInternalPerTimeLevel

const unsigned long* CFEM_DG_EulerSolver::nVolElemInternalPerTimeLevel
protected

Number of internal local volume elements per time level. Internal means that the solution data does not need to be communicated.

◆ nVolElemOwned

unsigned long CFEM_DG_EulerSolver::nVolElemOwned
protected

Number of owned local volume elements.

◆ nVolElemOwnedPerTimeLevel

const unsigned long* CFEM_DG_EulerSolver::nVolElemOwnedPerTimeLevel
protected

Number of owned local volume elements per time level. Cumulative storage.

◆ nVolElemTot

unsigned long CFEM_DG_EulerSolver::nVolElemTot
protected

Total number of local volume elements, including halos.

◆ ownedElemAdjLowTimeLevel

vector<vector<unsigned long> > CFEM_DG_EulerSolver::ownedElemAdjLowTimeLevel
protected

List of owned elements per time level that are adjacent to elements of the lower time level.

◆ Pressure_Inf

su2double CFEM_DG_EulerSolver::Pressure_Inf
protected

Pressure at infinity.

◆ sizeWorkArray

unsigned int CFEM_DG_EulerSolver::sizeWorkArray
protected

The size of the work array needed.

◆ standardBoundaryFacesSol

const CFEMStandardBoundaryFace* CFEM_DG_EulerSolver::standardBoundaryFacesSol
protected

Array that contains the standard boundary faces used for the solution of the DG solver.

◆ standardElementsSol

const CFEMStandardElement* CFEM_DG_EulerSolver::standardElementsSol
protected

Array that contains the standard volume elements used for the solution of the DG solver.

◆ standardMatchingFacesSol

const CFEMStandardInternalFace* CFEM_DG_EulerSolver::standardMatchingFacesSol
protected

Array that contains the standard matching internal faces used for the solution of the DG solver.

◆ startLocResFacesMarkers

vector<vector<unsigned long> > CFEM_DG_EulerSolver::startLocResFacesMarkers
protected

The starting location in the residual of the faces for the time levels of the boundary markers.

◆ startLocResInternalFacesLocalElem

vector<unsigned long> CFEM_DG_EulerSolver::startLocResInternalFacesLocalElem
protected

The starting location in the residual of the faces for the time levels of internal faces between locally owned elements.

◆ startLocResInternalFacesWithHaloElem

vector<unsigned long> CFEM_DG_EulerSolver::startLocResInternalFacesWithHaloElem
protected

The starting location in the residual of the faces for the time levels of internal faces between an owned and a halo element.

◆ Surface_CD

su2double * CFEM_DG_EulerSolver::Surface_CD
protected

Drag coefficient for each monitoring surface.

◆ Surface_CD_Inv

su2double * CFEM_DG_EulerSolver::Surface_CD_Inv
protected

Drag coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CEff

su2double * CFEM_DG_EulerSolver::Surface_CEff
protected

Efficiency (Cl/Cd) for each monitoring surface.

◆ Surface_CEff_Inv

su2double * CFEM_DG_EulerSolver::Surface_CEff_Inv
protected

Efficiency (Cl/Cd) (inviscid contribution) for each monitoring surface.

◆ Surface_CFx

su2double * CFEM_DG_EulerSolver::Surface_CFx
protected

x Force coefficient for each monitoring surface.

◆ Surface_CFx_Inv

su2double * CFEM_DG_EulerSolver::Surface_CFx_Inv
protected

x Force coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CFy

su2double * CFEM_DG_EulerSolver::Surface_CFy
protected

y Force coefficient for each monitoring surface.

◆ Surface_CFy_Inv

su2double * CFEM_DG_EulerSolver::Surface_CFy_Inv
protected

y Force coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CFz

su2double * CFEM_DG_EulerSolver::Surface_CFz
protected

z Force coefficient for each monitoring surface.

◆ Surface_CFz_Inv

su2double * CFEM_DG_EulerSolver::Surface_CFz_Inv
protected

z Force coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CL

su2double* CFEM_DG_EulerSolver::Surface_CL
protected

Lift coefficient for each monitoring surface.

◆ Surface_CL_Inv

su2double* CFEM_DG_EulerSolver::Surface_CL_Inv
protected

Lift coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CMx

su2double * CFEM_DG_EulerSolver::Surface_CMx
protected

x Moment coefficient for each monitoring surface.

◆ Surface_CMx_Inv

su2double * CFEM_DG_EulerSolver::Surface_CMx_Inv
protected

x Moment coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CMy

su2double * CFEM_DG_EulerSolver::Surface_CMy
protected

y Moment coefficient for each monitoring surface.

◆ Surface_CMy_Inv

su2double * CFEM_DG_EulerSolver::Surface_CMy_Inv
protected

y Moment coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CMz

su2double * CFEM_DG_EulerSolver::Surface_CMz
protected

z Moment coefficient for each monitoring surface.

◆ Surface_CMz_Inv

su2double * CFEM_DG_EulerSolver::Surface_CMz_Inv
protected

z Moment coefficient (inviscid contribution) for each monitoring surface.

◆ Surface_CSF

su2double * CFEM_DG_EulerSolver::Surface_CSF
protected

Side-force coefficient for each monitoring surface.

◆ Surface_CSF_Inv

su2double * CFEM_DG_EulerSolver::Surface_CSF_Inv
protected

Side-force coefficient (inviscid contribution) for each monitoring surface.

◆ symmetrizingTermsPresent

bool CFEM_DG_EulerSolver::symmetrizingTermsPresent
protected

Whether or not symmetrizing terms are present in the discretization.

◆ Temperature_Inf

su2double CFEM_DG_EulerSolver::Temperature_Inf
protected

Energy at infinity.

◆ timeCoefADER_DG

const su2double* CFEM_DG_EulerSolver::timeCoefADER_DG
protected

The time coefficients in the iteration matrix of the ADER-DG predictor step.

◆ timeInterpolAdjDOFToIntegrationADER_DG

const su2double* CFEM_DG_EulerSolver::timeInterpolAdjDOFToIntegrationADER_DG
protected

The interpolation matrix between the time DOFs of adjacent elements of a higher time level and the time integration points for ADER-DG.

◆ timeInterpolDOFToIntegrationADER_DG

const su2double* CFEM_DG_EulerSolver::timeInterpolDOFToIntegrationADER_DG
protected

The interpolation matrix between the time DOFs and the time integration points for ADER-DG.

◆ TolSolADER

vector<su2double> CFEM_DG_EulerSolver::TolSolADER
protected

Vector, which stores the tolerances for the conserved variables in the ADER predictor step.

◆ Total_CD

su2double CFEM_DG_EulerSolver::Total_CD
protected

Total drag coefficient for all the boundaries.

◆ Total_CEff

su2double CFEM_DG_EulerSolver::Total_CEff
protected

Total efficiency coefficient for all the boundaries.

◆ Total_CFx

su2double CFEM_DG_EulerSolver::Total_CFx
protected

Total x force coefficient for all the boundaries.

◆ Total_CFy

su2double CFEM_DG_EulerSolver::Total_CFy
protected

Total y force coefficient for all the boundaries.

◆ Total_CFz

su2double CFEM_DG_EulerSolver::Total_CFz
protected

Total z force coefficient for all the boundaries.

◆ Total_CL

su2double CFEM_DG_EulerSolver::Total_CL
protected

Total lift coefficient for all the boundaries.

◆ Total_CMx

su2double CFEM_DG_EulerSolver::Total_CMx
protected

Total x moment coefficient for all the boundaries.

◆ Total_CMy

su2double CFEM_DG_EulerSolver::Total_CMy
protected

Total y moment coefficient for all the boundaries.

◆ Total_CMz

su2double CFEM_DG_EulerSolver::Total_CMz
protected

Total z moment coefficient for all the boundaries.

◆ Total_CSF

su2double CFEM_DG_EulerSolver::Total_CSF
protected

Total sideforce coefficient for all the boundaries.

◆ VecDeltaTime

vector<su2double> CFEM_DG_EulerSolver::VecDeltaTime
protected

Vector, which stores the time steps of the owned volume elements.

◆ VecResDOFs

vector<su2double> CFEM_DG_EulerSolver::VecResDOFs
protected

Vector, which stores the residuals in the owned DOFs.

◆ VecResFaces

vector<su2double> CFEM_DG_EulerSolver::VecResFaces
protected

Vector, which stores the residuals of the DOFs that come from the faces, both boundary and internal.

◆ VecSolDOFs

vector<su2double> CFEM_DG_EulerSolver::VecSolDOFs
protected

Vector, which stores the solution variables in the owned DOFs.

◆ VecSolDOFsNew

vector<su2double> CFEM_DG_EulerSolver::VecSolDOFsNew
protected

Vector, which stores the new solution variables in the owned DOFs (needed for classical RK4 scheme).

◆ VecSolDOFsPredictorADER

vector<su2double> CFEM_DG_EulerSolver::VecSolDOFsPredictorADER
protected

Vector, which stores the ADER predictor solution in the owned DOFs. These are both space and time DOFs.

◆ VecTotResDOFsADER

vector<su2double> CFEM_DG_EulerSolver::VecTotResDOFsADER
protected

Vector, which stores the accumulated residuals of the owned DOFs for the ADER corrector step.

◆ VecWorkSolDOFs

vector<vector<su2double> > CFEM_DG_EulerSolver::VecWorkSolDOFs
protected

Working double vector to store the conserved variables for the DOFs for the different time levels.

◆ Velocity_Inf

su2double * CFEM_DG_EulerSolver::Velocity_Inf
protected

Flow velocity vector at infinity.

◆ volElem

CVolumeElementFEM* CFEM_DG_EulerSolver::volElem
protected

Array of the local volume elements, including halos.


The documentation for this class was generated from the following files: