@@ -77,8 +77,8 @@ class CVariable {
7777 MatrixType Solution_Max; /* !< \brief Max solution for limiter computation. */
7878 MatrixType Solution_Min; /* !< \brief Min solution for limiter computation. */
7979
80- VectorType AuxVar; /* !< \brief Auxiliar variable for gradient computation. */
81- MatrixType Grad_AuxVar; /* !< \brief Gradient of the auxiliar variable . */
80+ MatrixType AuxVar; /* !< \brief Auxiliar variable for gradient computation. */
81+ CVectorOfMatrix Grad_AuxVar; /* !< \brief Gradient of the auxilliary variables of the problem . */
8282
8383 VectorType Max_Lambda_Inv; /* !< \brief Maximun inviscid eingenvalue. */
8484 VectorType Max_Lambda_Visc; /* !< \brief Maximun viscous eingenvalue. */
@@ -105,6 +105,7 @@ class CVariable {
105105 unsigned long nPrimVarGrad = 0 ; /* !< \brief Number of primitives for which a gradient is computed. */
106106 unsigned long nSecondaryVar = 0 ; /* !< \brief Number of secondary variables. */
107107 unsigned long nSecondaryVarGrad = 0 ; /* !< \brief Number of secondaries for which a gradient is computed. */
108+ unsigned long nAuxVar = 0 ; /* !< \brief Number of auxiliary variables. */
108109
109110 /* --- Only allow default construction by derived classes. ---*/
110111 CVariable () = default ;
@@ -137,6 +138,11 @@ class CVariable {
137138 */
138139 virtual ~CVariable () = default ;
139140
141+ /* !
142+ * \brief Get the number of auxiliary variables.
143+ */
144+ inline unsigned long GetnAuxVar () const { return nAuxVar; }
145+
140146 /* !
141147 * \brief Set the value of the solution, all variables.
142148 * \param[in] iPoint - Point index.
@@ -564,65 +570,62 @@ class CVariable {
564570 inline su2double GetLocalCFL (unsigned long iPoint) const { return LocalCFL (iPoint); }
565571
566572 /* !
567- * \brief Set auxiliar variables, we are looking for the gradient of that variable.
568- * \param[in] iPoint - Point index.
569- * \param[in] val_auxvar - Value of the auxiliar variable.
573+ * \brief Get the entire Aux matrix of the problem.
574+ * \return Reference to the aux var matrix.
570575 */
571- inline void SetAuxVar ( unsigned long iPoint, su2double val_auxvar) { AuxVar (iPoint) = val_auxvar ; }
576+ inline const MatrixType& GetAuxVar ( void ) const { return AuxVar ; }
572577
573578 /* !
574- * \brief Get the value of the auxiliary variable.
575- * \param[in] iPoint - Point index.
576- * \return Value of the auxiliary variable.
579+ * \brief Get the Aux var value at Point i, variable j.
577580 */
578- inline su2double GetAuxVar (unsigned long iPoint) const { return AuxVar (iPoint); }
581+ inline su2double GetAuxVar (unsigned long iPoint, unsigned long iVar = 0 ) const { return AuxVar (iPoint,iVar ); }
579582
580583 /* !
581- * \brief Get the auxiliary variable.
582- * \return 2D view of the auxiliary variable.
584+ * \brief Set auxiliary variables.
585+ * \param[in] iPoint - Point index.
586+ * \param[in] iVar - Varriable indexs
587+ * \param[in] val_auxvar - Value of the auxiliar variable.
583588 */
584- inline C2DDummyLastView< const VectorType> GetAuxVar ( void ) const {
585- return C2DDummyLastView< const VectorType>( AuxVar) ;
589+ inline void SetAuxVar ( unsigned long iPoint, unsigned long iVar, const su2double auxvar) {
590+ AuxVar (iPoint,iVar) = auxvar ;
586591 }
587592
588593 /* !
589- * \brief Set the value of the auxiliary variable gradient .
594+ * \brief Set value of auxillary gradients .
590595 * \param[in] iPoint - Point index.
596+ * \param[in] iVar - Index of the variable.
591597 * \param[in] iDim - Index of the dimension.
592- * \param[in] val_gradient - Value of the gradient for the index <i>iDim</i> .
598+ * \param[in] value - Value of the gradient.
593599 */
594- inline void SetAuxVarGradient (unsigned long iPoint, unsigned long iDim, su2double val_gradient) { Grad_AuxVar (iPoint,iDim) = val_gradient; }
600+ inline void SetAuxVarGradient (unsigned long iPoint, unsigned long iVar, unsigned long iDim, su2double value) {
601+ Grad_AuxVar (iPoint,iVar,iDim) = value;
602+ }
595603
596604 /* !
597- * \brief Add a value to the auxiliary variable gradient.
598- * \param[in] iPoint - Point index.
599- * \param[in] iDim - Index of the dimension.
600- * \param[in] val_value - Value of the gradient to be added for the index <i>iDim</i>.
605+ * \brief Get the gradient of the auxilary variables.
606+ * \return Reference to gradient.
601607 */
602- inline void AddAuxVarGradient ( unsigned long iPoint, unsigned long iDim, su2double val_value ) { Grad_AuxVar (iPoint,iDim) += val_value; }
608+ inline CVectorOfMatrix& GetAuxVarGradient ( void ) { return Grad_AuxVar; }
603609
604610 /* !
605- * \brief Get the gradient of the auxiliary variable .
611+ * \brief Get the value of the auxilliary gradient .
606612 * \param[in] iPoint - Point index.
607- * \return Value of the gradient of the auxiliary variable.
608- */
609- inline su2double *GetAuxVarGradient (unsigned long iPoint) { return Grad_AuxVar[iPoint]; }
610-
611- /* !
612- * \brief Get the gradient of the auxiliary variable.
613- * \return 3D view of the gradient of the auxiliary variable.
613+ * \param[in] iVar - Index of the variable.
614+ * \param[in] iDim - Index of the dimension.
615+ * \return Value of the solution gradient.
614616 */
615- inline C3DDummyMiddleView<MatrixType> GetAuxVarGradient () {
616- return C3DDummyMiddleView<MatrixType>( Grad_AuxVar);
617+ inline su2double GetAuxVarGradient (unsigned long iPoint, unsigned long iVar, unsigned long iDim) const {
618+ return Grad_AuxVar (iPoint,iVar,iDim );
617619 }
618620
619621 /* !
620- * \brief Get the gradient of the auxiliary variable .
622+ * \brief Get the value of the auxilliary gradient .
621623 * \param[in] iPoint - Point index.
622- * \param[in] iDim - Index of the dimension.
623- * \return Value of the gradient of the auxiliary variable for the dimension <i>iDim</i>.
624+ * \return Value of the solution gradient.
624625 */
625- inline su2double GetAuxVarGradient (unsigned long iPoint, unsigned long iDim) const { return Grad_AuxVar (iPoint,iDim); }
626+ inline su2double** GetAuxVarGradient (unsigned long iPoint) {
627+ return Grad_AuxVar[iPoint];
628+ }
626629
627630 /* !
628631 * \brief Add a value to the truncation error.
0 commit comments