2929#include " ../../../include/interfaces/cht/CConjugateHeatInterface.hpp"
3030#include " ../../../Common/include/CConfig.hpp"
3131#include " ../../../Common/include/geometry/CGeometry.hpp"
32+ #include " ../../../Common/include/toolboxes/geometry_toolbox.hpp"
3233#include " ../../../include/solvers/CSolver.hpp"
3334
3435CConjugateHeatInterface::CConjugateHeatInterface (unsigned short val_nVar, unsigned short val_nConst) :
@@ -39,47 +40,28 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet
3940 const CConfig *donor_config, unsigned long Marker_Donor,
4041 unsigned long Vertex_Donor, unsigned long Point_Donor) {
4142
42- unsigned short nDim, iDim;
43- unsigned long iPoint, PointNormal;
43+ const auto nDim = donor_geometry->GetnDim ();
4444
45- su2double *Coord, *Coord_Normal, *Normal, *Edge_Vector, dist, dist2, Area,
46- Twall, Tnormal, dTdn, rho_cp_solid, Prandtl_Lam, laminar_viscosity,
45+ su2double Twall, Tnormal, dTdn, rho_cp_solid, Prandtl_Lam, laminar_viscosity,
4746 thermal_diffusivity, thermal_conductivity=0.0 , thermal_conductivityND,
4847 heat_flux_density=0.0 , conductivity_over_dist=0.0 ;
4948
50- nDim = donor_geometry-> GetnDim ();
49+ /* --- Check whether the current zone is a solid zone or a fluid zone --- */
5150
52- Edge_Vector = new su2double[nDim];
51+ const bool compressible_flow = (donor_config->GetKind_Regime () == COMPRESSIBLE);
52+ const bool incompressible_flow = (donor_config->GetKind_Regime () == INCOMPRESSIBLE) && donor_config->GetEnergy_Equation ();
53+ const bool heat_equation = (donor_config->GetKind_Solver () == HEAT_EQUATION) ||
54+ (donor_config->GetKind_Solver () == DISC_ADJ_HEAT);
5355
54- /* --- Check whether the current zone is a solid zone or a fluid zone ---*/
56+ const auto Coord = donor_geometry->nodes ->GetCoord (Point_Donor);
57+ const auto PointNormal = donor_geometry->vertex [Marker_Donor][Vertex_Donor]->GetNormal_Neighbor ();
58+ const auto Coord_Normal = donor_geometry->nodes ->GetCoord (PointNormal);
5559
56- bool compressible_flow = ((donor_config->GetKind_Solver () == NAVIER_STOKES)
57- || (donor_config->GetKind_Solver () == RANS)
58- || (donor_config->GetKind_Solver () == DISC_ADJ_NAVIER_STOKES)
59- || (donor_config->GetKind_Solver () == DISC_ADJ_RANS));
60- bool incompressible_flow = (((donor_config->GetKind_Solver () == INC_NAVIER_STOKES)
61- || (donor_config->GetKind_Solver () == INC_RANS)
62- || (donor_config->GetKind_Solver () == DISC_ADJ_INC_NAVIER_STOKES)
63- || (donor_config->GetKind_Solver () == DISC_ADJ_INC_RANS))
64- && (donor_config->GetEnergy_Equation ()));
65- bool heat_equation = ((donor_config->GetKind_Solver () == HEAT_EQUATION)
66- || (donor_config->GetKind_Solver () == DISC_ADJ_HEAT));
67-
68- Coord = donor_geometry->nodes ->GetCoord (Point_Donor);
69-
70- Normal = donor_geometry->vertex [Marker_Donor][Vertex_Donor]->GetNormal ();
71- PointNormal = donor_geometry->vertex [Marker_Donor][Vertex_Donor]->GetNormal_Neighbor ();
72- Coord_Normal = donor_geometry->nodes ->GetCoord (PointNormal);
73-
74- Twall = 0.0 ; Tnormal = 0.0 ; dTdn = 0.0 ; dist2 = 0.0 ; Area = 0.0 ;
75-
76- for (iDim = 0 ; iDim < nDim; iDim++) {
77- Edge_Vector[iDim] = Coord_Normal[iDim] - Coord[iDim];
78- dist2 += Edge_Vector[iDim]*Edge_Vector[iDim];
79- Area += Normal[iDim]*Normal[iDim];
80- }
81- dist = sqrt (dist2);
82- Area = sqrt (Area);
60+ Twall = 0.0 ; Tnormal = 0.0 ; dTdn = 0.0 ;
61+
62+ su2double Edge_Vector[3 ] = {0.0 };
63+ GeometryToolbox::Distance (nDim, Coord_Normal, Coord, Edge_Vector);
64+ su2double dist = GeometryToolbox::Norm (nDim, Edge_Vector);
8365
8466 /* --- Retrieve temperature solution and its gradient ---*/
8567
@@ -102,6 +84,8 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet
10284 Tnormal = donor_solution->GetNodes ()->GetSolution (PointNormal,0 );
10385
10486 // TODO: Check if these improve accuracy, if needed at all
87+ // const auto Normal = donor_geometry->vertex[Marker_Donor][Vertex_Donor]->GetNormal();
88+ // su2double Area = GeometryToolbox::Norm(nDim, Normal);
10589 // for (iDim = 0; iDim < nDim; iDim++) {
10690 // dTdn += (Twall - Tnormal)/dist * (Edge_Vector[iDim]/dist) * (Normal[iDim]/Area);
10791 // }
@@ -137,7 +121,7 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet
137121 }
138122 else if (incompressible_flow) {
139123
140- iPoint = donor_geometry->vertex [Marker_Donor][Vertex_Donor]->GetNode ();
124+ const auto iPoint = donor_geometry->vertex [Marker_Donor][Vertex_Donor]->GetNode ();
141125
142126 thermal_conductivityND = donor_solution->GetNodes ()->GetThermalConductivity (iPoint);
143127 heat_flux_density = thermal_conductivityND*dTdn;
@@ -189,10 +173,6 @@ void CConjugateHeatInterface::GetDonor_Variable(CSolver *donor_solution, CGeomet
189173 Donor_Variable[3 ] = Tnormal*donor_config->GetTemperature_Ref ();
190174 }
191175
192-
193-
194- delete [] Edge_Vector;
195-
196176}
197177
198178void CConjugateHeatInterface::SetTarget_Variable (CSolver *target_solution, CGeometry *target_geometry,
0 commit comments