Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streamwise Periodic restarts using flow.meta + Multizone PerSurface output #1527

Merged
merged 28 commits into from
Feb 2, 2022
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
46799db
Multiply heat OF by specified weight.
TobiKattmann Jan 24, 2022
2811d45
Pressure_Drop computed with first two markers, additional follwoing w…
TobiKattmann Jan 24, 2022
9e702e7
Merge branch 'develop' of https://github.com/su2code/su2 into develop
TobiKattmann Jan 24, 2022
c113541
Add dp for streamwise massflow to flow-metadata to allow restarts wit…
TobiKattmann Jan 25, 2022
cc00b17
Fix builds for github due to warning.
TobiKattmann Jan 25, 2022
c62e553
Merge branch 'develop' into massflow_flowmeta
TobiKattmann Jan 25, 2022
db52fb1
Try to add *_SURF hist output for Multizone cases.
TobiKattmann Jan 28, 2022
5dd641c
Remove DV_MARKER check for multiple zones.
TobiKattmann Jan 30, 2022
c3a1241
Merge branch 'massflow_flowmeta' of https://github.com/su2code/su2 in…
TobiKattmann Jan 30, 2022
7ba1efc
Multizone PerSurf Hist output now working
TobiKattmann Feb 1, 2022
5241071
Adapt reg test for mutlizone per Surf output (on screen that is for n…
TobiKattmann Feb 1, 2022
16611fd
Polishing of PerSurf Multizone output
TobiKattmann Feb 1, 2022
bdc59ff
Apply suggestions from code review
TobiKattmann Feb 1, 2022
7e5893c
Add now written PerSurf values to Reg test_vals.
TobiKattmann Feb 1, 2022
d6924f4
Merge branch 'massflow_flowmeta' of https://github.com/su2code/su2 in…
TobiKattmann Feb 1, 2022
982e9fc
Change a reg test to restart with flow.meta
TobiKattmann Feb 1, 2022
8f7f84c
Tmp change of github workflow to load correct Testcases.
TobiKattmann Feb 1, 2022
63804a8
Rmv WALL_TIME from screen out to make reg test work.
TobiKattmann Feb 1, 2022
32b8427
Fix reg tests that would pass where they should actually fail.
TobiKattmann Feb 1, 2022
ed6b29c
Revert passed=False as the code assumes True until proven otherwise .…
TobiKattmann Feb 1, 2022
f7f4c6d
Cleanup suggestions from code review
TobiKattmann Feb 2, 2022
75746ac
Additional warning for mutlizone, if DV_MARKERs not found.
TobiKattmann Feb 2, 2022
2cbbe23
Pass vector of strings by reference.
TobiKattmann Feb 2, 2022
4baa963
revert tmp changes to .github/workflows/regression.yml
TobiKattmann Feb 2, 2022
6e06a34
Only Write screen output on Master node
TobiKattmann Feb 2, 2022
be3bb45
Merge remote-tracking branch 'origin/develop' into massflow_flowmeta
TobiKattmann Feb 2, 2022
a4d0060
Update reg test value
TobiKattmann Feb 2, 2022
fd9a4d5
Merge branch 'develop' into massflow_flowmeta
TobiKattmann Feb 2, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
uses: docker://su2code/test-su2:20200303
with:
# -t <Tutorials-branch> -c <Testcases-branch>
args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}}
args: -b ${{github.ref}} -t develop -c massflow_flowmeta -s ${{matrix.testscript}}
TobiKattmann marked this conversation as resolved.
Show resolved Hide resolved
unit_tests:
runs-on: ubuntu-latest
name: Unit Tests
Expand Down
5 changes: 5 additions & 0 deletions Common/include/CConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5989,6 +5989,11 @@ class CConfig {
*/
su2double GetStreamwise_Periodic_PressureDrop(void) const { return Streamwise_Periodic_PressureDrop; }

/*!
* \brief Set the value of the pressure delta from which body force vector is computed. Necessary for Restart metadata.
*/
void SetStreamwise_Periodic_PressureDrop(su2double Streamwise_Periodic_PressureDrop_) { Streamwise_Periodic_PressureDrop = Streamwise_Periodic_PressureDrop_; }

/*!
* \brief Get the value of the massflow from which body force vector is computed.
* \return Massflow for body force computation.
Expand Down
9 changes: 6 additions & 3 deletions Common/src/CConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4788,8 +4788,8 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i
pressure drop objective function is selected. ---*/

for (unsigned short iObj = 0; iObj < nObj; iObj++) {
if ((Kind_ObjFunc[iObj] == SURFACE_PRESSURE_DROP) && (nMarker_Analyze != 2)) {
SU2_MPI::Error("Must list two markers for the pressure drop objective function.\n Expected format: MARKER_ANALYZE= (outlet_name, inlet_name).", CURRENT_FUNCTION);
if ((Kind_ObjFunc[iObj] == SURFACE_PRESSURE_DROP) && (nMarker_Analyze < 2)) {
SU2_MPI::Error("Must list the first two markers for the pressure drop objective function.\n Expected format: MARKER_ANALYZE= (outlet_name, inlet_name, ...).", CURRENT_FUNCTION);
}
}

Expand Down Expand Up @@ -5733,7 +5733,10 @@ void CConfig::SetMarkers(SU2_COMPONENT val_software) {
break;
}
}
if(!found) {
// In case of multiple zones, the markers might appear only in zonal config and not in the Master.
// A loop over all zones would need to be included which is not straight forward as this can only be
// checked once all zonal configs are read.
if(!found && (nZone==1)) {
SU2_MPI::Error("DV_MARKER contains marker names that do not exist in the lists of BCs in the config file.", CURRENT_FUNCTION);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warn instead of error then? (when nZone != 1)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point, done in 75746ac

}
}
Expand Down
5 changes: 3 additions & 2 deletions SU2_CFD/include/output/CMultizoneOutput.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,15 @@ class CMultizoneOutput final: public COutput {
/*!
* \brief Load the multizone history output field values
* \param[in] output - Container holding the output instances per zone.
* \param[in] config - Definition of the particular problem.
*/
void LoadMultizoneHistoryData(const COutput* const* output) override;
void LoadMultizoneHistoryData(const COutput* const* output, const CConfig* const* config) override;

/*!
* \brief Set the available multizone history output fields
* \param[in] output - Container holding the output instances per zone.
*/
void SetMultizoneHistoryOutputFields(const COutput* const* output) override;
void SetMultizoneHistoryOutputFields(const COutput* const* output, const CConfig* const* config) override;

/*!
* \brief Determines if the history file output.
Expand Down
21 changes: 19 additions & 2 deletions SU2_CFD/include/output/COutput.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,14 @@ class COutput {
return historyOutput_List;
}

/*!
* \brief Get the list of all per-surface fields
* \return Vector container all output per-surface fields
*/
const vector<string>& GetHistoryOutputPerSurface_List() const {
return historyOutputPerSurface_List;
}

/*!
* \brief Get the map containing all output fields
* \return Map containing all output fields
Expand All @@ -440,6 +448,14 @@ class COutput {
return historyOutput_Map;
}

/*!
* \brief Get the map containing all output per-surface fields
* \return Map containing all output per-surface fields
*/
const map<string, vector<HistoryOutputField>>& GetHistoryPerSurfaceFields() const {
return historyOutputPerSurface_Map;
}

/*!
* \brief Monitor the convergence of an output field
* \param[in] config - Definition of the particular problem.
Expand Down Expand Up @@ -824,8 +840,9 @@ class COutput {
/*!
* \brief Load the multizone history output field values
* \param[in] output - Container holding the output instances per zone.
* \param[in] config - Definition of the particular problem.
*/
inline virtual void LoadMultizoneHistoryData(const COutput* const* output) {}
inline virtual void LoadMultizoneHistoryData(const COutput* const* output, const CConfig* const* config) {}

/*!
* \brief Set the available history output fields
Expand All @@ -837,7 +854,7 @@ class COutput {
* \brief Set the available multizone history output fields
* \param[in] output - Container holding the output instances per zone.
*/
inline virtual void SetMultizoneHistoryOutputFields(const COutput* const* output) {}
inline virtual void SetMultizoneHistoryOutputFields(const COutput* const* output, const CConfig* const* config) {}

/*!
* \brief Write any additional files defined for the current solver.
Expand Down
8 changes: 5 additions & 3 deletions SU2_CFD/include/solvers/CHeatSolver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,15 +313,17 @@ class CHeatSolver final : public CSolver {
* \param[in] solver - Container vector with all the solutions.
*/
void Evaluate_ObjFunc(const CConfig *config, CSolver**) override {
const auto weight = config->GetWeight_ObjFunc(0);

switch (config->GetKind_ObjFunc()) {
case TOTAL_HEATFLUX:
Total_ComboObj = Total_HeatFlux;
Total_ComboObj = weight * Total_HeatFlux;
break;
case AVG_TEMPERATURE:
Total_ComboObj = Total_AverageT;
Total_ComboObj = weight * Total_AverageT;
break;
case CUSTOM_OBJFUNC:
Total_ComboObj = Total_Custom_ObjFunc;
Total_ComboObj = weight * Total_Custom_ObjFunc;
break;
default:
Total_ComboObj = 0.0;
Expand Down
15 changes: 11 additions & 4 deletions SU2_CFD/src/output/CFlowOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ void CFlowOutput::AddAnalyzeSurfaceOutput(const CConfig *config){
/// DESCRIPTION: Average total pressure
AddHistoryOutput("SURFACE_TOTAL_PRESSURE", "Avg_TotalPress", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total average total pressure on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT);
/// DESCRIPTION: Pressure drop
if (config->GetnMarker_Analyze() == 2) {
if (config->GetnMarker_Analyze() >= 2) {
AddHistoryOutput("SURFACE_PRESSURE_DROP", "Pressure_Drop", ScreenOutputFormat::SCIENTIFIC, "FLOW_COEFF", "Total pressure drop on all markers set in MARKER_ANALYZE", HistoryFieldType::COEFFICIENT);
} else if (rank == MASTER_NODE) {
cout << "\nWARNING: SURFACE_PRESSURE_DROP can only be computed for 2 surfaces (outlet, inlet)\n" << endl;
cout << "\nWARNING: SURFACE_PRESSURE_DROP can only be computed for at least 2 surfaces (outlet, inlet, ...)\n" << endl;
}
if (config->GetKind_Species_Model() != SPECIES_MODEL::NONE) {
/// DESCRIPTION: Average Species
Expand Down Expand Up @@ -530,7 +530,7 @@ void CFlowOutput::SetAnalyzeSurface(const CSolver* const*solver, const CGeometry
which require the outlet to be listed first. This is a simple first version
that could be generalized to a different orders/lists/etc. ---*/

if (nMarker_Analyze == 2) {
if (nMarker_Analyze >= 2) {
su2double PressureDrop = (Surface_Pressure_Total[1] - Surface_Pressure_Total[0]) * config->GetPressure_Ref();
for (iMarker_Analyze = 0; iMarker_Analyze < nMarker_Analyze; iMarker_Analyze++) {
config->SetSurface_PressureDrop(iMarker_Analyze, PressureDrop);
Expand Down Expand Up @@ -1736,7 +1736,8 @@ void CFlowOutput::Set_NearfieldInverseDesign(CSolver *solver, const CGeometry *g

void CFlowOutput::WriteAdditionalFiles(CConfig *config, CGeometry *geometry, CSolver **solver_container){

if (config->GetFixed_CL_Mode()){
if (config->GetFixed_CL_Mode() ||
(config->GetKind_Streamwise_Periodic() == ENUM_STREAMWISE_PERIODIC::MASSFLOW)){
WriteMetaData(config);
}

Expand All @@ -1757,6 +1758,8 @@ void CFlowOutput::WriteMetaData(const CConfig *config){
/*--- All processors open the file. ---*/

if (rank == MASTER_NODE) {
cout << "Writing Flow Meta-Data file: " << filename << endl;

meta_file.open(filename.c_str(), ios::out);
meta_file.precision(15);

Expand All @@ -1783,6 +1786,10 @@ void CFlowOutput::WriteMetaData(const CConfig *config){
config->GetKind_Solver() == MAIN_SOLVER::DISC_ADJ_RANS )) {
meta_file << "SENS_AOA=" << GetHistoryFieldValue("SENS_AOA") * PI_NUMBER / 180.0 << endl;
}

if(config->GetKind_Streamwise_Periodic() == ENUM_STREAMWISE_PERIODIC::MASSFLOW) {
meta_file << "STREAMWISE_PERIODIC_PRESSURE_DROP=" << GetHistoryFieldValue("STREAMWISE_DP") << endl;
}
}

meta_file.close();
Expand Down
75 changes: 73 additions & 2 deletions SU2_CFD/src/output/CMultizoneOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ CMultizoneOutput::CMultizoneOutput(const CConfig* driver_config, const CConfig*

}

void CMultizoneOutput::LoadMultizoneHistoryData(const COutput* const* output) {
void CMultizoneOutput::LoadMultizoneHistoryData(const COutput* const* output, const CConfig* const* config) {

string nameMultizone, zoneIndex;
su2double comboValue = 0;
Expand All @@ -97,11 +97,34 @@ void CMultizoneOutput::LoadMultizoneHistoryData(const COutput* const* output) {
comboValue += item.second.value;
}
}

/*-- Load the PerSurface values.- ---*/
for (const auto& item : output[iZone]->GetHistoryPerSurfaceFields()) {
const auto& name = item.first;
nameMultizone = name + zoneIndex;

/*--- Determine whether nMaker_Analyze/Monitoring has to be looped. ---*/
const auto& group = item.second[0].outputGroup;
unsigned short nMarker = 0;
if (group == "FLOW_COEFF_SURF")
nMarker = config[iZone]->GetnMarker_Analyze();
else if (group == "AERO_COEFF_SURF")
nMarker = config[iZone]->GetnMarker_Monitoring();
else
SU2_MPI::Error("Per Surface output group unknown: " + group, CURRENT_FUNCTION);

for (unsigned short iMarker = 0; iMarker < nMarker; iMarker++) {
SetHistoryOutputPerSurfaceValue(nameMultizone, item.second[iMarker].value, iMarker);
if (name == "COMBO") {
comboValue += item.second[iMarker].value;
}
TobiKattmann marked this conversation as resolved.
Show resolved Hide resolved
}// for iMarker
}// for HistPerSurfFields
}
SetHistoryOutputValue("COMBO", comboValue);
}

void CMultizoneOutput::SetMultizoneHistoryOutputFields(const COutput* const* output) {
void CMultizoneOutput::SetMultizoneHistoryOutputFields(const COutput* const* output, const CConfig* const* config) {

string name, header, group, zoneIndex;

Expand All @@ -125,6 +148,54 @@ void CMultizoneOutput::SetMultizoneHistoryOutputFields(const COutput* const* out
AddHistoryOutput(name, header, field.screenFormat, group, "", field.fieldType );
}
}

/*--- Prepare Marker lists that are passed to 'AddHistoryOutputPerSurface'. ---*/
vector<string> Marker_Analyze;
for (unsigned short iMarker_Analyze = 0; iMarker_Analyze < config[iZone]->GetnMarker_Analyze(); iMarker_Analyze++) {
Marker_Analyze.push_back(config[iZone]->GetMarker_Analyze_TagBound(iMarker_Analyze));
}

vector<string> Marker_Monitoring;
for (unsigned short iMarker_Monitoring = 0; iMarker_Monitoring < config[iZone]->GetnMarker_Monitoring(); iMarker_Monitoring++) {
Marker_Monitoring.push_back(config[iZone]->GetMarker_Monitoring_TagBound(iMarker_Monitoring));
}

/*--- Add the PerSurface outputs. ---*/
const auto& ZoneHistoryPerSurfaceFields = output[iZone]->GetHistoryPerSurfaceFields();

for (const auto& nameSinglezone : output[iZone]->GetHistoryOutputPerSurface_List()) {

const auto& field = ZoneHistoryPerSurfaceFields.at(nameSinglezone);

name = nameSinglezone + zoneIndex;

/*--- Remove the unnecessary Marker name from the fieldName, i.e. "Avg_Massflow(inlet)"->"Avg_Massflow". ---*/
/*--- Note that index zero in 'field[0]' refers to a specific Marker. Some attributes remain constant over the markers
like the first part of the name, the screenFormat and the fieldType. ---*/
string baseheader = field[0].fieldName;
std::string::size_type pos = baseheader.find('(');
if (pos != std::string::npos)
baseheader = baseheader.substr(0, pos);
TobiKattmann marked this conversation as resolved.
Show resolved Hide resolved
else
SU2_MPI::Error("Cannot process PerSurface *_SURF history output: " + baseheader, CURRENT_FUNCTION);

header = baseheader + zoneIndex;
/*--- Attach zone-index to the group after determining which group it is. ---*/
group = field[0].outputGroup;

/*--- Determine whether Maker_Analyze/Monitoring has to be used. ---*/
vector<string> Marker;
if (group == "FLOW_COEFF_SURF")
Marker = Marker_Analyze;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

find a way to avoid copying a vector of strings

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... found a working *|& permutation that does the job in 2cbbe23

else if (group == "AERO_COEFF_SURF")
Marker = Marker_Monitoring;
else
SU2_MPI::Error("Per Surface output group unknown: " + group, CURRENT_FUNCTION);

group += zoneIndex;

AddHistoryOutputPerSurface(name, header, field[0].screenFormat, group, Marker, field[0].fieldType );
}
}
AddHistoryOutput("COMBO", "ComboObj", ScreenOutputFormat::SCIENTIFIC, "COMBO", "Combined obj. function value.", HistoryFieldType::COEFFICIENT);
}
Expand Down
4 changes: 2 additions & 2 deletions SU2_CFD/src/output/COutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ void COutput::SetMultizoneHistory_Output(COutput **output, CConfig **config, CCo

LoadCommonHistoryData(driver_config);

LoadMultizoneHistoryData(output);
LoadMultizoneHistoryData(output, config);

Convergence_Monitoring(driver_config, curOuterIter);

Expand Down Expand Up @@ -1365,7 +1365,7 @@ void COutput::PreprocessMultizoneHistoryOutput(COutput **output, CConfig **confi

/*--- Set the History output fields using a virtual function call to the child implementation ---*/

SetMultizoneHistoryOutputFields(output);
SetMultizoneHistoryOutputFields(output, config);

/*--- Postprocess the history fields. Creates new fields based on the ones set in the child classes ---*/

Expand Down
5 changes: 2 additions & 3 deletions SU2_CFD/src/solvers/CEulerSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,10 @@ CEulerSolver::CEulerSolver(CGeometry *geometry, CConfig *config,
else Unst_RestartIter = SU2_TYPE::Int(config->GetRestart_Iter())-1;
}

string filename_ = "flow";
filename_ = config->GetFilename(filename_, ".meta", Unst_RestartIter);

/*--- Read and store the restart metadata. ---*/

string filename_ = "flow";
filename_ = config->GetFilename(filename_, ".meta", Unst_RestartIter);
Read_SU2_Restart_Metadata(geometry, config, adjoint, filename_);

}
Expand Down
11 changes: 9 additions & 2 deletions SU2_CFD/src/solvers/CIncEulerSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ CIncEulerSolver::CIncEulerSolver(CGeometry *geometry, CConfig *config, unsigned
ifstream restart_file;
unsigned short nZone = geometry->GetnZone();
bool restart = (config->GetRestart() || config->GetRestart_Flow());
int Unst_RestartIter;
int Unst_RestartIter = 0;
unsigned short iZone = config->GetiZone();
bool dual_time = ((config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_1ST) ||
(config->GetTime_Marching() == TIME_MARCHING::DT_STEPPING_2ND));
Expand Down Expand Up @@ -91,9 +91,16 @@ CIncEulerSolver::CIncEulerSolver(CGeometry *geometry, CConfig *config, unsigned

/*--- Read and store the restart metadata. ---*/

// Read_SU2_Restart_Metadata(geometry, config, false, filename_);
filename_ = "flow";
filename_ = config->GetFilename(filename_, ".meta", Unst_RestartIter);
Read_SU2_Restart_Metadata(geometry, config, adjoint, filename_);

}
if (restart && (config->GetKind_Streamwise_Periodic() == ENUM_STREAMWISE_PERIODIC::MASSFLOW)) {
string filename_ = "flow";
filename_ = config->GetFilename(filename_, ".meta", Unst_RestartIter);
Read_SU2_Restart_Metadata(geometry, config, adjoint, filename_);
}

/*--- Set the gamma value ---*/

Expand Down
8 changes: 4 additions & 4 deletions SU2_CFD/src/solvers/CIncNSSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ void CIncNSSolver::GetStreamwise_Periodic_Properties(const CGeometry *geometry,
} // loop periodic boundaries
} // loop MarkerAll

// MPI Communication: Sum Area, Sum rho*A & T*A and divide by AreaGlobbal, sum massflow
// MPI Communication: Sum Area, Sum rho*A & T*A and divide by AreaGlobal, sum massflow
su2double Area_Global(0), Average_Density_Global(0), MassFlow_Global(0), Temperature_Global(0);
SU2_MPI::Allreduce(&Area_Local, &Area_Global, 1, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm());
SU2_MPI::Allreduce(&Average_Density_Local, &Average_Density_Global, 1, MPI_DOUBLE, MPI_SUM, SU2_MPI::GetComm());
Expand Down Expand Up @@ -216,10 +216,10 @@ void CIncNSSolver::GetStreamwise_Periodic_Properties(const CGeometry *geometry,
(e.g. 4x for INC_RANS restart). Each time, the pressure drop gets updated. For INC_RANS restarts
it gets called 2x before the restart files are read such that the current massflow is
Area*inital-velocity which can be way off!
With this there is still a slight inconsitency wrt to a non-restarted simulation: The restarted "zero-th"
With this there is still a slight inconsistency wrt to a non-restarted simulation: The restarted "zero-th"
iteration does not get a pressure-update but the continuing simulation would have an update here. This can be
fully neglected if the pressure drop is converged. And for all other cases it should be minor difference at
best ---*/
best. ---*/
if((nZone==1 && InnerIter>0) ||
(nZone>1 && OuterIter>0)) {
SPvals.Streamwise_Periodic_PressureDrop = Pressure_Drop_new;
Expand All @@ -232,7 +232,7 @@ void CIncNSSolver::GetStreamwise_Periodic_Properties(const CGeometry *geometry,
/*---------------------------------------------------------------------------------------------*/
/*--- 3. Compute the integrated Heatflow [W] for the energy equation source term, heatflux ---*/
/*--- boundary term and recovered Temperature. The computation is not completely clear. ---*/
/*--- Here the Heatflux from all Bounary markers in the config-file is used. ---*/
/*--- Here the Heatflux from all Boundary markers in the config-file is used. ---*/
/*---------------------------------------------------------------------------------------------*/

su2double HeatFlow_Local = 0.0, HeatFlow_Global = 0.0;
Expand Down
Loading