Skip to content

Commit e198acf

Browse files
committed
Revert "Remove now superfluous SurfaceArea computation since that is computed centrally."
This reverts commit 6452710.
1 parent 6452710 commit e198acf

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

SU2_CFD/include/solvers/CHeatSolver.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class CHeatSolver final : public CSolver {
5454
su2double AllBound_AverageT;
5555
vector<su2double> Primitive_Flow_i;
5656
vector<su2double> Primitive_Flow_j;
57+
vector<su2double> Surface_Areas;
5758
su2double Total_HeatFlux_Areas;
5859
su2double Total_HeatFlux_Areas_Monitor;
5960
vector<su2activematrix> ConjugateVar;

SU2_CFD/src/solvers/CHeatSolver.cpp

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ CHeatSolver::CHeatSolver(CGeometry *geometry, CConfig *config, unsigned short iM
9898

9999
HeatFlux_per_Marker.resize(nMarker, 0.0);
100100
AverageT_per_Marker.resize(nMarker, 0.0);
101+
Surface_Areas.resize(config->GetnMarker_HeatFlux(), 0.0);
101102

102103
Set_Heatflux_Areas(geometry, config);
103104

@@ -518,8 +519,14 @@ void CHeatSolver::Viscous_Residual(CGeometry *geometry, CSolver **solver_contain
518519

519520
void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
520521

521-
su2double Local_HeatFlux_Areas_Monitor, Area, *Normal;
522+
string HeatFlux_Tag, Marker_Tag;
522523

524+
su2double *Local_Surface_Areas, Local_HeatFlux_Areas_Monitor, Area, *Normal;
525+
Local_Surface_Areas = new su2double[config->GetnMarker_HeatFlux()];
526+
527+
for (auto iMarker_HeatFlux = 0u; iMarker_HeatFlux < config->GetnMarker_HeatFlux(); iMarker_HeatFlux++ ) {
528+
Local_Surface_Areas[iMarker_HeatFlux] = 0.0;
529+
}
523530
Local_HeatFlux_Areas_Monitor = 0.0;
524531

525532
for (auto iMarker = 0u; iMarker < nMarker; iMarker++) {
@@ -528,11 +535,13 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
528535

529536
for (auto iMarker_HeatFlux = 0u; iMarker_HeatFlux < config->GetnMarker_HeatFlux(); iMarker_HeatFlux++ ) {
530537

531-
const auto HeatFlux_Tag = config->GetMarker_HeatFlux_TagBound(iMarker_HeatFlux);
532-
const auto Marker_Tag = config->GetMarker_All_TagBound(iMarker);
538+
HeatFlux_Tag = config->GetMarker_HeatFlux_TagBound(iMarker_HeatFlux);
539+
Marker_Tag = config->GetMarker_All_TagBound(iMarker);
533540

534541
if (Marker_Tag == HeatFlux_Tag) {
535542

543+
Local_Surface_Areas[iMarker_HeatFlux] = 0.0;
544+
536545
for(auto iVertex = 0ul; iVertex < geometry->nVertex[iMarker]; iVertex++ ) {
537546

538547
const auto iPoint = geometry->vertex[iMarker][iVertex]->GetNode();
@@ -542,6 +551,8 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
542551
Normal = geometry->vertex[iMarker][iVertex]->GetNormal();
543552
Area = GeometryToolbox::Norm(nDim, Normal);
544553

554+
Local_Surface_Areas[iMarker_HeatFlux] += Area;
555+
545556
if(Monitoring == YES)
546557
Local_HeatFlux_Areas_Monitor += Area;
547558

@@ -550,12 +561,15 @@ void CHeatSolver::Set_Heatflux_Areas(CGeometry *geometry, CConfig *config) {
550561
}
551562
}
552563

564+
SU2_MPI::Allreduce(Local_Surface_Areas, Surface_Areas.data(), Surface_Areas.size(), MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm());
553565
SU2_MPI::Allreduce(&Local_HeatFlux_Areas_Monitor, &Total_HeatFlux_Areas_Monitor, 1, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm());
554566

555567
Total_HeatFlux_Areas = 0.0;
556568
for(auto iMarker_HeatFlux = 0u; iMarker_HeatFlux < config->GetnMarker_HeatFlux(); iMarker_HeatFlux++ ) {
557569
Total_HeatFlux_Areas += Surface_Areas[iMarker_HeatFlux];
558570
}
571+
572+
delete[] Local_Surface_Areas;
559573
}
560574

561575
void CHeatSolver::BC_Isothermal_Wall(CGeometry *geometry, CSolver **solver_container, CNumerics *conv_numerics, CNumerics *visc_numerics, CConfig *config,

0 commit comments

Comments
 (0)