Skip to content

Commit 8a5ca6c

Browse files
committed
remove non-conservative class
1 parent 7049631 commit 8a5ca6c

File tree

1 file changed

+0
-141
lines changed

1 file changed

+0
-141
lines changed

SU2_CFD/include/numerics/scalar/scalar_diffusion.hpp

Lines changed: 0 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -153,144 +153,3 @@ class CAvgGrad_Scalar : public CNumerics {
153153
return ResidualType<>(Flux, Jacobian_i, Jacobian_j);
154154
}
155155
};
156-
157-
/*!
158-
* \class CAvgGrad_Scalar_NonCons
159-
* \brief Template class for computing non-conservative viscous residual of scalar values
160-
* \details This class serves as a template for the non-conservative scalar viscous
161-
* residual classes. The general structure of a viscous residual calculation
162-
* is the same for many different models, which leads to a lot of repeated code.
163-
* By using the template design pattern, these sections of repeated code are
164-
* moved to a shared base class, and the specifics of each model
165-
* are implemented by derived classes. In order to add a new residual
166-
* calculation for a viscous residual, extend this class and implement
167-
* the pure virtual functions with model-specific behavior.
168-
* \ingroup ViscDiscr
169-
* \author C. Pederson, A. Bueno, and F. Palacios
170-
*/
171-
template <class FlowIndices>
172-
class CAvgGrad_Scalar_NonCons : public CNumerics {
173-
protected:
174-
enum : unsigned short {MAXNVAR = 8};
175-
176-
const FlowIndices idx; /*!< \brief Object to manage the access to the flow primitives. */
177-
su2double Proj_Mean_GradScalarVar[MAXNVAR]; /*!< \brief Mean_gradScalarVar DOT normal, corrected if required. */
178-
su2double proj_vector_ij = 0.0; /*!< \brief (Edge_Vector DOT normal)/|Edge_Vector|^2 */
179-
su2double Flux_ij[MAXNVAR]; /*!< \brief Final result, diffusive flux/residual going from node i to j. */
180-
su2double Flux_ji[MAXNVAR]; /*!< \brief Final result, diffusive flux/residual going from node j to i */
181-
su2double* Jacobian_ii[MAXNVAR]; /*!< \brief Flux_ij Jacobian w.r.t. node i. */
182-
su2double* Jacobian_ij[MAXNVAR]; /*!< \brief Flux_ij Jacobian w.r.t. node j. */
183-
su2double* Jacobian_ji[MAXNVAR]; /*!< \brief Flux_ji Jacobian w.r.t. node i. */
184-
su2double* Jacobian_jj[MAXNVAR]; /*!< \brief Flux_ji Jacobian w.r.t. node j. */
185-
su2double JacobianBuffer[4*MAXNVAR*MAXNVAR]; /*!< \brief Static storage for the two Jacobians. */
186-
187-
const bool correct_gradient = false, incompressible = false;
188-
189-
/*!
190-
* \brief A pure virtual function; Adds any extra variables to AD
191-
*/
192-
virtual void ExtraADPreaccIn() = 0;
193-
194-
/*!
195-
* \brief Model-specific steps in the ComputeResidual method, derived classes
196-
* should compute the non-conservative Fluxes (i/j) and Jacobians (i/j) inside this method.
197-
* \param[out] val_residual_i - Pointer to the total residual at point i.
198-
* \param[out] val_residual_j - Pointer to the total viscosity residual at point j.
199-
* \param[out] val_Jacobian_ii - Jacobian of the numerical method at node i (implicit computation) from node i.
200-
* \param[out] val_Jacobian_ij - Jacobian of the numerical method at node i (implicit computation) from node j.
201-
* \param[out] val_Jacobian_ji - Jacobian of the numerical method at node j (implicit computation) from node i.
202-
* \param[out] val_Jacobian_jj - Jacobian of the numerical method at node j (implicit computation) from node j.
203-
* \param[in] config - Definition of the particular problem.
204-
*/
205-
virtual void FinishResidualCalc(su2double *val_residual_i,
206-
su2double *val_residual_j,
207-
su2double **val_Jacobian_ii,
208-
su2double **val_Jacobian_ij,
209-
su2double **val_Jacobian_ji,
210-
su2double **val_Jacobian_jj, const CConfig* config) = 0;
211-
212-
public:
213-
/*!
214-
* \brief Constructor of the class.
215-
* \param[in] val_nDim - Number of dimensions of the problem.
216-
* \param[in] val_nVar - Number of variables of the problem.
217-
* \param[in] correct_gradient - Whether to correct gradient for skewness.
218-
* \param[in] config - Definition of the particular problem.
219-
*/
220-
CAvgGrad_Scalar_NonCons(unsigned short val_nDim, unsigned short val_nVar, bool correct_grad,
221-
const CConfig* config)
222-
: CNumerics(val_nDim, val_nVar, config),
223-
idx(val_nDim, config->GetnSpecies()),
224-
correct_gradient(correct_grad),
225-
incompressible(config->GetKind_Regime() == ENUM_REGIME::INCOMPRESSIBLE) {
226-
if (nVar > MAXNVAR) {
227-
SU2_MPI::Error("Static arrays are too small.", CURRENT_FUNCTION);
228-
}
229-
for (unsigned short iVar = 0; iVar < nVar; ++iVar) {
230-
Jacobian_ii[iVar] = &JacobianBuffer[iVar * nVar + 0 * MAXNVAR * MAXNVAR];
231-
Jacobian_ij[iVar] = &JacobianBuffer[iVar * nVar + 1 * MAXNVAR * MAXNVAR];
232-
Jacobian_ji[iVar] = &JacobianBuffer[iVar * nVar + 2 * MAXNVAR * MAXNVAR];
233-
Jacobian_jj[iVar] = &JacobianBuffer[iVar * nVar + 3 * MAXNVAR * MAXNVAR];
234-
}
235-
236-
/*--- Initialize the JacobianBuffer to zero. ---*/
237-
for (unsigned short iVar = 0; iVar < 4 * MAXNVAR * MAXNVAR; iVar++) {
238-
JacobianBuffer[iVar] = 0.0;
239-
}
240-
}
241-
242-
/*!
243-
* \brief Compute the viscous residual using an average of gradients without correction.
244-
* \param[in] config - Definition of the particular problem.
245-
* \return A lightweight const-view (read-only) of the residual/flux and Jacobians.
246-
*/
247-
virtual void ComputeResidual(su2double *val_residual_i,
248-
su2double *val_residual_j,
249-
su2double **val_Jacobian_ii,
250-
su2double **val_Jacobian_ij,
251-
su2double **val_Jacobian_ji,
252-
su2double **val_Jacobian_jj, const CConfig* config) final {
253-
AD::StartPreacc();
254-
AD::SetPreaccIn(Coord_i, nDim);
255-
AD::SetPreaccIn(Coord_j, nDim);
256-
AD::SetPreaccIn(Normal, nDim);
257-
AD::SetPreaccIn(ScalarVar_Grad_i, nVar, nDim);
258-
AD::SetPreaccIn(ScalarVar_Grad_j, nVar, nDim);
259-
if (correct_gradient) {
260-
AD::SetPreaccIn(ScalarVar_i, nVar);
261-
AD::SetPreaccIn(ScalarVar_j, nVar);
262-
}
263-
if (!std::is_same<FlowIndices, CNoFlowIndices>::value) {
264-
AD::SetPreaccIn(V_i[idx.Density()], V_i[idx.LaminarViscosity()], V_i[idx.EddyViscosity()]);
265-
AD::SetPreaccIn(V_j[idx.Density()], V_j[idx.LaminarViscosity()], V_j[idx.EddyViscosity()]);
266-
267-
Density_i = V_i[idx.Density()];
268-
Density_j = V_j[idx.Density()];
269-
Laminar_Viscosity_i = V_i[idx.LaminarViscosity()];
270-
Laminar_Viscosity_j = V_j[idx.LaminarViscosity()];
271-
Eddy_Viscosity_i = V_i[idx.EddyViscosity()];
272-
Eddy_Viscosity_j = V_j[idx.EddyViscosity()];
273-
}
274-
275-
ExtraADPreaccIn();
276-
277-
su2double ProjGradScalarVarNoCorr[MAXNVAR];
278-
proj_vector_ij = ComputeProjectedGradient(nDim, nVar, Normal, Coord_i, Coord_j, ScalarVar_Grad_i, ScalarVar_Grad_j,
279-
correct_gradient, ScalarVar_i, ScalarVar_j, ProjGradScalarVarNoCorr,
280-
Proj_Mean_GradScalarVar);
281-
FinishResidualCalc(val_residual_i, val_residual_j, val_Jacobian_ii, val_Jacobian_ij, val_Jacobian_ji, val_Jacobian_jj, config);
282-
for (unsigned short iVar = 0; iVar < nVar; iVar++) {
283-
val_residual_i[iVar]=Flux_ij[iVar];
284-
val_residual_j[iVar]=Flux_ji[iVar];
285-
val_Jacobian_ii[iVar] = Jacobian_ii[iVar];
286-
val_Jacobian_ij[iVar] = Jacobian_ij[iVar];
287-
val_Jacobian_ji[iVar] = Jacobian_ji[iVar];
288-
val_Jacobian_jj[iVar] = Jacobian_jj[iVar];
289-
}
290-
AD::SetPreaccOut(Flux_ij, Flux_ji, nVar);
291-
AD::EndPreacc();
292-
293-
// return (Flux_ij, Flux_ji, Jacobian_ii, Jacobian_ij, Jacobian_ji, Jacobian_jj);
294-
295-
}
296-
};

0 commit comments

Comments
 (0)