Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
98989f7
Fixes from tagging tool
Feb 18, 2025
6082eac
Config catch + fix preacc in ComputeVorticityandStrainMag
Feb 18, 2025
b3267b6
Initial add turbo obj functions
Feb 20, 2025
c459ce9
Initial refactoring of turboperformance into solver for correct recor…
Mar 11, 2025
4a58b8c
Merge remote-tracking branch 'origin/fix_small_AD_issues' into featur…
Mar 21, 2025
1614784
Adding geometry to AD recording for turbo calcs. (NOT WORKING CURRENTLY)
May 1, 2025
d43fef5
Singlezone working with validated gradients and turbo obj funcs. Need…
Jun 9, 2025
6c9de92
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Aug 25, 2025
0e03ead
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Aug 31, 2025
ae2f001
Messy commit of refactoring
joshkellyjak Oct 6, 2025
32956c4
Cleaned up branch + Euler MZ working / Issues with RANS remain + Init…
joshkellyjak Oct 12, 2025
435bea6
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Oct 12, 2025
912aeea
merge issue
joshkellyjak Oct 12, 2025
a0bfb53
Unused var
joshkellyjak Oct 12, 2025
1303145
Unused var
joshkellyjak Oct 12, 2025
23bf8c3
Fixes to fluid interface for disc adj + proper recording of turb vari…
joshkellyjak Nov 10, 2025
af78550
Initial reformat of mixing plane implementation
joshkellyjak Nov 13, 2025
2c8bf76
Fixes
joshkellyjak Nov 13, 2025
a5d0d73
Fixing mixing state data structure
joshkellyjak Nov 13, 2025
542e3cb
Correct targetVars
joshkellyjak Nov 13, 2025
9a201ac
Fixes + working MPI MP interface
joshkellyjak Nov 15, 2025
43f729f
remove test
joshkellyjak Nov 15, 2025
f5566b8
Working RANS mixing-plane 2D (3D tbc)
joshkellyjak Nov 16, 2025
1d7a125
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Nov 16, 2025
674545a
MPI + Various Bug Fixes
joshkellyjak Nov 17, 2025
d03e11f
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
joshkellyjak Nov 17, 2025
6302217
config fix
joshkellyjak Nov 17, 2025
408cda4
fix
joshkellyjak Nov 17, 2025
23d0a6e
bug fixes for 3D MP
joshkellyjak Nov 26, 2025
3c73946
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Nov 29, 2025
744d823
Overload compile issues
joshkellyjak Nov 29, 2025
a065954
compiler warnings
Nov 29, 2025
3616b15
compiler warnings
joshkellyjak Nov 29, 2025
ea53796
compiler warnings + unused code
joshkellyjak Nov 29, 2025
c3d8fb5
Grid Velocity fixes for fluid-fluid interfaces
joshkellyjak Nov 30, 2025
2daecb7
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Nov 30, 2025
0e331f8
CodeQL Comments
joshkellyjak Nov 30, 2025
79533db
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
joshkellyjak Nov 30, 2025
75a7160
Compiler warning
joshkellyjak Nov 30, 2025
cdc4bd6
formatting
joshkellyjak Nov 30, 2025
4b25e22
Compiler warnings
joshkellyjak Dec 1, 2025
8f361bf
Resolve casting complaints
joshkellyjak Dec 1, 2025
fac7b3c
Unused var
joshkellyjak Dec 1, 2025
f3daa3d
Added fluid interface testcases
joshkellyjak Dec 1, 2025
030b1b3
Unused var
joshkellyjak Dec 1, 2025
69e812d
Added writing of mixing plane interpolator to file + interpolation fixes
joshkellyjak Dec 7, 2025
ed89e9d
MP bug fix and additional interpolation warning details
joshkellyjak Dec 8, 2025
e440f9c
MPI correction
joshkellyjak Dec 8, 2025
ce08ca6
Proper identification of MP boundaries w/ MPI + filename fix
joshkellyjak Dec 8, 2025
771c098
Interpolator correction
joshkellyjak Dec 8, 2025
3150c51
MPI fixes
joshkellyjak Dec 8, 2025
96e830f
MPI issues
joshkellyjak Dec 8, 2025
51a1a86
Remove SetAverageValues
joshkellyjak Dec 8, 2025
0d1ac6d
Fix type definition of marker buffer
joshkellyjak Dec 8, 2025
fd20657
Assorted MPI Fixes and updates of interpolation classes to account fo…
joshkellyjak Dec 9, 2025
7b78f06
Fix identification of marker boundaries at mixing plane interface
joshkellyjak Dec 9, 2025
49de8bb
Fix dummy run
joshkellyjak Dec 30, 2025
80027e8
Improve readability of direct residual in adjoint problems
joshkellyjak Jan 9, 2026
e598597
Remove deprecated functions, fix MPI in MP preprocessing
joshkellyjak Jan 30, 2026
8a418d2
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Jan 30, 2026
061a0b5
unused vars
joshkellyjak Jan 30, 2026
98301d9
type comaprison warning
joshkellyjak Jan 30, 2026
46a4332
spelling
joshkellyjak Jan 30, 2026
4924347
type compare
joshkellyjak Jan 30, 2026
136daa7
types
joshkellyjak Jan 30, 2026
b9b34ba
Changes to the tape debug mode, improving the detection of errors whe…
oleburghardt Feb 4, 2026
db1d77a
Clean tape for cross-zone geometry
joshkellyjak Mar 6, 2026
7033568
Generic interface for turbomachinery objectives, remove unused functions
joshkellyjak Mar 10, 2026
e3b7771
Remove unused functions
joshkellyjak Mar 10, 2026
f238d20
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Mar 10, 2026
3b890a1
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
joshkellyjak Mar 10, 2026
7d5dd95
Formatting of new methods
joshkellyjak Mar 10, 2026
d571714
Fix data race in mixing plane donor communication
joshkellyjak Mar 24, 2026
42c18c1
Remove OUTPUT_WRT_FREQ option for mz disc adj test
joshkellyjak Mar 24, 2026
6d4b56d
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Mar 24, 2026
38604f7
Update regression workflows
joshkellyjak Mar 24, 2026
8e57e62
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
joshkellyjak Mar 24, 2026
f0e7698
Refactor mixing-plane interpolator for conciseness + remove unused va…
joshkellyjak Mar 25, 2026
cecebab
Remove unused vars
joshkellyjak Mar 25, 2026
15dda50
Changes for comments
joshkellyjak Mar 25, 2026
07e5e3f
Integral promotion sign correction
joshkellyjak Mar 26, 2026
03834cc
Integral promotion
joshkellyjak Mar 26, 2026
9d60e63
Casting before multiplication
joshkellyjak Mar 26, 2026
24773b0
Casting before multiplication
joshkellyjak Mar 26, 2026
3fad1e2
More commments
joshkellyjak Mar 26, 2026
67def4e
Somewhat clunky but transferable fix for proper registration in Regis…
oleburghardt Mar 26, 2026
e278519
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
oleburghardt Mar 26, 2026
fe952a0
Make AD registration in RegisterVariables consistent.
oleburghardt Mar 26, 2026
7430276
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Mar 31, 2026
505bef4
Fix MP bug & update flamelet testcase to remove OUTPUT_WRT_FREQ for adj
joshkellyjak Mar 31, 2026
f3de17d
update reg-tests
joshkellyjak Apr 1, 2026
1942560
Init axial stage adj reg test
joshkellyjak Apr 3, 2026
00e07b2
Format disc_adj_turbo/axial_stage_2d cfg
joshkellyjak Apr 3, 2026
8986e77
Update reg-tests
joshkellyjak Apr 3, 2026
5703633
Merge branch 'develop' into feature_mz_turbomachinery_adjoint
joshkellyjak Apr 3, 2026
6c4a045
Remove discrete adjoint multizone restart error.
oleburghardt Apr 4, 2026
3b30b64
Merge branch 'feature_mz_turbomachinery_adjoint' of https://github.co…
oleburghardt Apr 4, 2026
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 @@ -211,7 +211,7 @@ jobs:
uses: docker://ghcr.io/su2code/su2/test-su2:250717-1402
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 feature_mz_turbomachinery_adjoint -s ${{matrix.testscript}}
- name: Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:250717-1402
with:
Expand Down
19 changes: 7 additions & 12 deletions Common/include/CConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1973,12 +1973,6 @@ class CConfig {
*/
su2double GetPressure_FreeStreamND(void) const { return Pressure_FreeStreamND; }

/*!
* \brief Get a reference to the non-dimensionalized freestream pressure (used for AD tracking).
* \return Reference to non-dimensionalized freestream pressure.
*/
su2double& GetPressure_FreeStreamND(void) { return Pressure_FreeStreamND; }

/*!
* \brief Get the value of the thermodynamic pressure.
* \return Thermodynamic pressure.
Expand All @@ -2004,12 +1998,6 @@ class CConfig {
*/
su2double GetTemperature_FreeStreamND(void) const { return Temperature_FreeStreamND; }

/*!
* \brief Get a reference to the non-dimensionalized freestream temperature (used for AD tracking).
* \return Reference to non-dimensionalized freestream temperature.
*/
su2double& GetTemperature_FreeStreamND(void) { return Temperature_FreeStreamND; }

/*!
* \brief Get the value of the non-dimensionalized vibrational-electronic freestream temperature.
* \return Non-dimensionalized vibrational-electronic freestream temperature.
Expand Down Expand Up @@ -10122,6 +10110,13 @@ class CConfig {
*/
short FindInterfaceMarker(unsigned short iInterface) const;

/*!
* \brief Find the marker index (if any) that is part of a mixing plane interface pair.
* \param[in] nMarker - Number of the marker in a zone being tested, starting at 0.
* \return value > 1 if (on this mpi rank) the zone defined by config is part of the mixing plane.
*/
short FindMixingPlaneInterfaceMarker(unsigned short nMarker, unsigned short iMarkerInt) const;

/*!
* \brief Get whether or not to save solution data to libROM.
* \return True if specified in config file.
Expand Down
5 changes: 3 additions & 2 deletions Common/include/geometry/CGeometry.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ class CGeometry {
inline virtual void GatherInOutAverageValues(CConfig* config, bool allocate) {}

/*!
* \brief Store all the turboperformance in the solver in ZONE_0.
* \brief Store all the turboperformance in the solver in final zone.
* \param[in] donor_geometry - Solution from the donor mesh.
* \param[in] target_geometry - Solution from the target mesh.
* \param[in] donorZone - counter of the donor solution
Expand Down Expand Up @@ -1862,7 +1862,8 @@ class CGeometry {
* \param[in] config_container - Definition of the particular problem.
* \param[in] geometry_container - Geometrical definition of the problem.
*/
static void ComputeWallDistance(const CConfig* const* config_container, CGeometry**** geometry_container);
static void ComputeWallDistance(const CConfig* const* config_container, CGeometry**** geometry_container,
const int record_zone = -1);

/*!
* \brief Set the amount of nonconvex elements in the mesh.
Expand Down
15 changes: 13 additions & 2 deletions Common/include/interface_interpolation/CInterpolator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,13 @@ class CInterpolator {
coefficient.resize(nDonor);
}
};
vector<vector<CDonorInfo> > targetVertices; /*! \brief Donor information per marker per vertex of the target. */
vector<vector<CDonorInfo>> targetVertices; /*! \brief Donor information per marker per vertex of the target. */

struct CSpanDonorInfo {
size_t donorSpan; // Refers to donor span
su2double coefficient; // Refers to coefficient
};
vector<vector<CSpanDonorInfo>> targetSpans; // <iMarkerInt<TargetSpan<CSpanDonorInfo>>

/*!
* \brief Constructor of the class.
Expand All @@ -125,13 +131,18 @@ class CInterpolator {
* \note Main method that derived classes must implement.
* \param[in] config - Definition of the particular problem.
*/
virtual void SetTransferCoeff(const CConfig* const* config) = 0;
virtual void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) = 0;

/*!
* \brief Print information about the interpolation.
*/
virtual void PrintStatistics(void) const {}

/*!
* \brief Write mixing plane interpolation details to file
*/
inline virtual void WriteInterpolationDetails(const string& filename, const CConfig* const* config){};

/*!
* \brief Check whether an interface should be processed or not, i.e. if it is part of the zones.
* \param[in] val_markDonor - Marker tag from donor zone.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ namespace CInterpolatorFactory {
*/
CInterpolator* CreateInterpolator(CGeometry**** geometry_container, const CConfig* const* config,
const CInterpolator* transpInterpolator, unsigned iZone, unsigned jZone,
bool verbose = true);
bool mixing_plane, bool verbose = true);
} // namespace CInterpolatorFactory
2 changes: 1 addition & 1 deletion Common/include/interface_interpolation/CIsoparametric.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ class CIsoparametric final : public CInterpolator {
* \brief Set up transfer matrix defining relation between two meshes
* \param[in] config - Definition of the particular problem.
*/
void SetTransferCoeff(const CConfig* const* config) override;
void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;

/*!
* \brief Print information about the interpolation.
Expand Down
2 changes: 1 addition & 1 deletion Common/include/interface_interpolation/CMirror.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,5 @@ class CMirror final : public CInterpolator {
* \brief Set up transfer matrix defining relation between two meshes
* \param[in] config - Definition of the particular problem.
*/
void SetTransferCoeff(const CConfig* const* config) override;
void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;
};
101 changes: 101 additions & 0 deletions Common/include/interface_interpolation/CMixingPlane.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/*!
* \file CMixingPlane.hpp
* \brief Header of mixing plane interpolation methods.
* \author J. Kelly
* \version 8.3.0 "Harrier"
*
* SU2 Project Website: https://su2code.github.io
*
* The SU2 Project is maintained by the SU2 Foundation
* (http://su2foundation.org)
*
* Copyright 2012-2025, SU2 Contributors (cf. AUTHORS.md)
*
* SU2 is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* SU2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with SU2. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once
#include "CInterpolator.hpp"
#include "../option_structure.hpp"

/*!
* \brief Mixing plane interpolation.
* \note This contains several interpolation methods used in the mixing plane interpolation
* and enables the mixing state class structure for proper recording in AD mode
* \ingroup Interfaces
*/
class CMixingPlane final : public CInterpolator {
public:
CMixingPlane(CGeometry**** geometry_container, const CConfig* const* config, unsigned int iZone, unsigned int jZone);

void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;

inline CSpanDonorInfo MapMatchingSpan(unsigned short iSpanTarget) { return {iSpanTarget, 0.0}; }

inline CSpanDonorInfo MapNearestSpan(const su2double iSpanTargetValue, const su2double* spanValuesDonor,
unsigned long nSpanDonor) {
unsigned short tSpan = 0; // Nearest donor span index
auto minDist = std::numeric_limits<su2double>::max();

for (auto iSpanDonor = 0u; iSpanDonor < nSpanDonor - 1; iSpanDonor++) {
const auto dist = abs(iSpanTargetValue - spanValuesDonor[iSpanDonor]);
if (dist < minDist) {
minDist = dist;
tSpan = iSpanDonor;
}
}
return {tSpan, 0.0};
};

inline CSpanDonorInfo MapLinearInterpolationSpan(const su2double iSpanTargetValue, const su2double* spanValuesDonor,
unsigned long nSpanDonor, int rank) {
unsigned short kSpan = 0; // Lower bound donor span for interpolation
auto minDist = std::numeric_limits<su2double>::max();
su2double coeff = 0.0; // Interpolation coefficient

if (iSpanTargetValue <= spanValuesDonor[0]) {
PrintClampingWarning(rank, true);
return {0, 0.0};
}

if (iSpanTargetValue >= spanValuesDonor[nSpanDonor - 1]) {
PrintClampingWarning(rank, false);
return {nSpanDonor - 1, 0.0};
}

for (auto iSpanDonor = 0u; iSpanDonor < nSpanDonor - 1; iSpanDonor++) {
const auto dist = abs(iSpanTargetValue - spanValuesDonor[iSpanDonor]);
if (dist < minDist && iSpanTargetValue >= spanValuesDonor[iSpanDonor]) {
kSpan = iSpanDonor;
minDist = dist;
}
}
coeff = (iSpanTargetValue - spanValuesDonor[kSpan]) / (spanValuesDonor[kSpan + 1] - spanValuesDonor[kSpan]);
return {kSpan, coeff};
};

inline void PrintClampingWarning(int rank, bool atHub) {
if (rank != MASTER_NODE) return;
cout << "Warning! Target spans exist outside the bounds of donor spans! Clamping interpolator..." << endl;
cout << (atHub ? "This is an issue at the hub." : "This is an issue at the shroud.") << endl;
cout << "Setting coeff = 0.0 and transferring endwall value!" << endl;
};

/*!
* \brief Write interpolation details to file.
* \param[in] filename - Name of output file.
* \param[in] config - Configuration for all zones.
*/
void WriteInterpolationDetails(const string& filename, const CConfig* const* config) override;
};
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class CNearestNeighbor final : public CInterpolator {
* \brief Set up transfer matrix defining relation between two meshes.
* \param[in] config - Definition of the particular problem.
*/
void SetTransferCoeff(const CConfig* const* config) override;
void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;

/*!
* \brief Print interpolation statistics.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class CRadialBasisFunction final : public CInterpolator {
* \brief Set up transfer matrix defining relation between two meshes
* \param[in] config - Definition of the particular problem.
*/
void SetTransferCoeff(const CConfig* const* config) override;
void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;

/*!
* \brief Print information about the interpolation.
Expand Down
2 changes: 1 addition & 1 deletion Common/include/interface_interpolation/CSlidingMesh.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class CSlidingMesh final : public CInterpolator {
* \brief Set up transfer matrix defining relation between two meshes
* \param[in] config - Definition of the particular problem.
*/
void SetTransferCoeff(const CConfig* const* config) override;
void SetTransferCoeff(CGeometry**** geometry, const CConfig* const* config) override;

private:
/*!
Expand Down
14 changes: 8 additions & 6 deletions Common/include/option_structure.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2100,6 +2100,9 @@ enum ENUM_OBJECTIVE {
TOPOL_DISCRETENESS = 63, /*!< \brief Measure of the discreteness of the current topology. */
TOPOL_COMPLIANCE = 64, /*!< \brief Measure of the discreteness of the current topology. */
STRESS_PENALTY = 65, /*!< \brief Penalty function of VM stresses above a maximum value. */
ENTROPY_GENERATION = 80, /*!< \brief Entropy generation turbomachinery objective function. */
TOTAL_PRESSURE_LOSS = 81, /*!< \brief Total pressure loss turbomachinery objective function. */
KINETIC_ENERGY_LOSS = 82 /*!< \breif Kinetic energy loss coefficient turbomachinery objective function. */
};
static const MapType<std::string, ENUM_OBJECTIVE> Objective_Map = {
MakePair("DRAG", DRAG_COEFFICIENT)
Expand Down Expand Up @@ -2142,6 +2145,9 @@ static const MapType<std::string, ENUM_OBJECTIVE> Objective_Map = {
MakePair("TOPOL_DISCRETENESS", TOPOL_DISCRETENESS)
MakePair("TOPOL_COMPLIANCE", TOPOL_COMPLIANCE)
MakePair("STRESS_PENALTY", STRESS_PENALTY)
MakePair("ENTROPY_GENERATION", ENTROPY_GENERATION)
MakePair("TOTAL_PRESSURE_LOSS", TOTAL_PRESSURE_LOSS)
MakePair("KINETIC_ENERGY_LOSS", KINETIC_ENERGY_LOSS)
};

/*!
Expand Down Expand Up @@ -2616,19 +2622,15 @@ enum class CHECK_TAPE_VARIABLES {
};
static const MapType<std::string, CHECK_TAPE_VARIABLES> CheckTapeVariables_Map = {
MakePair("SOLVER_VARIABLES", CHECK_TAPE_VARIABLES::SOLVER_VARIABLES)
MakePair("SOLVER_VARIABLES_AND_MESH_COORDINATES", CHECK_TAPE_VARIABLES::MESH_COORDINATES)
MakePair("MESH_COORDINATES", CHECK_TAPE_VARIABLES::MESH_COORDINATES)
};

enum class RECORDING {
CLEAR_INDICES,
SOLUTION_VARIABLES,
MESH_COORDS,
MESH_DEFORM,
SOLUTION_AND_MESH,
TAG_INIT_SOLVER_VARIABLES,
TAG_CHECK_SOLVER_VARIABLES,
TAG_INIT_SOLVER_AND_MESH,
TAG_CHECK_SOLVER_AND_MESH
SOLUTION_AND_MESH
};

/*!
Expand Down
29 changes: 23 additions & 6 deletions Common/src/CConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3514,12 +3514,7 @@ void CConfig::SetPostprocessing(SU2_COMPONENT val_software, unsigned short val_i

/*--- Using default frequency of 250 for all files when steady, and 1 for unsteady. ---*/
for (auto iVolumeFreq = 0; iVolumeFreq < nVolumeOutputFrequencies; iVolumeFreq++){
if (Multizone_Problem && DiscreteAdjoint) {
VolumeOutputFrequencies[iVolumeFreq] = Time_Domain ? 1 : nOuterIter;
}
else {
VolumeOutputFrequencies[iVolumeFreq] = Time_Domain ? 1 : 250;
}
VolumeOutputFrequencies[iVolumeFreq] = Time_Domain ? 1 : nOuterIter;
}
} else if (nVolumeOutputFrequencies < nVolumeOutputFiles) {
/*--- If there are fewer frequencies than files, repeat the last frequency.
Expand Down Expand Up @@ -7002,6 +6997,7 @@ void CConfig::SetOutput(SU2_COMPONENT val_software, unsigned short val_izone) {
case TOPOL_DISCRETENESS: cout << "Topology discreteness objective function." << endl; break;
case TOPOL_COMPLIANCE: cout << "Topology compliance objective function." << endl; break;
case STRESS_PENALTY: cout << "Stress penalty objective function." << endl; break;
case ENTROPY_GENERATION: cout << "Entropy generation objective function." << endl; break;
}
}
else {
Expand Down Expand Up @@ -8595,6 +8591,7 @@ CConfig::~CConfig() {

delete [] nBlades;
delete [] FreeStreamTurboNormal;

}

/*--- Input is the filename base, output is the completed filename. ---*/
Expand Down Expand Up @@ -8738,6 +8735,9 @@ string CConfig::GetObjFunc_Extension(string val_filename) const {
case TOPOL_DISCRETENESS: AdjExt = "_topdisc"; break;
case TOPOL_COMPLIANCE: AdjExt = "_topcomp"; break;
case STRESS_PENALTY: AdjExt = "_stress"; break;
case ENTROPY_GENERATION: AdjExt = "_entg"; break;
case TOTAL_PRESSURE_LOSS: AdjExt = "_tot_press_loss"; break;
case KINETIC_ENERGY_LOSS: AdjExt = "_kin_en_loss"; break;
}
}
else{
Expand Down Expand Up @@ -10038,6 +10038,23 @@ short CConfig::FindInterfaceMarker(unsigned short iInterface) const {
return -1;
}

short CConfig::FindMixingPlaneInterfaceMarker(unsigned short nMarker, unsigned short iMarkerInt) const {
short mark;
for (auto iMarker = 0; iMarker < nMarker; iMarker++){
/*--- If the tag GetMarker_All_MixingPlaneInterface equals the index we are looping at ---*/
if (GetMarker_All_MixingPlaneInterface(iMarker) == iMarkerInt){
/*--- We have identified the local index of the marker ---*/
/*--- Store the identifier for the marker ---*/
mark = iMarker;
/*--- Exit the for loop: we have found the local index for Mixing-Plane interface ---*/
return mark;
}
/*--- If the tag hasn't matched any tag within the donor markers ---*/
mark = -1;
}
return mark;
}

void CConfig::Tick(double *val_start_time) {

#ifdef PROFILE
Expand Down
8 changes: 7 additions & 1 deletion Common/src/geometry/CGeometry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4153,7 +4153,8 @@ su2double NearestNeighborDistance(CGeometry* geometry, const CConfig* config, co
}
} // namespace

void CGeometry::ComputeWallDistance(const CConfig* const* config_container, CGeometry**** geometry_container) {
void CGeometry::ComputeWallDistance(const CConfig* const* config_container, CGeometry**** geometry_container,
const int record_zone) {
int nZone = config_container[ZONE_0]->GetnZone();
bool allEmpty = true;
vector<bool> wallDistanceNeeded(nZone, false);
Expand Down Expand Up @@ -4221,6 +4222,11 @@ void CGeometry::ComputeWallDistance(const CConfig* const* config_container, CGeo
}

for (int iZone = 0; iZone < nZone; iZone++) {
/*--- When recording for a specific zone, only compute nearest-neighbor distances (which read vertex
* normals) for that zone. Reading normals from other zones at this tape position would create
* cross-zone AD dependencies before those zones have had their geometry updated. ---*/
if (record_zone >= 0 && iZone != record_zone) continue;

/*--- For the FEM solver, we use a different mesh structure ---*/
MAIN_SOLVER kindSolver = config_container[iZone]->GetKind_Solver();
if (!wallDistanceNeeded[iZone] || kindSolver == MAIN_SOLVER::FEM_LES || kindSolver == MAIN_SOLVER::FEM_RANS) {
Expand Down
Loading
Loading