Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
fffbc97
Throw error message in case the multizone discrete adjoint solver wil…
oleburghardt Aug 14, 2024
ba6ee1c
Softcode indentifier/index.
oleburghardt Aug 15, 2024
c54597b
Add tag type option to build system.
oleburghardt Aug 15, 2024
a24fc80
Add option to use RealReverseTag as AD type.
oleburghardt Aug 25, 2024
263faa0
Temporarily adjust/hardcode type size for memory alignment in vectori…
oleburghardt Aug 25, 2024
11d34b3
Add config option and indicator for a debug discrete adjoint run.
oleburghardt Sep 24, 2024
756dc57
Add routines for setting tags to AD structure.
oleburghardt Sep 24, 2024
b1e4f69
Add kinds of recording for tag tapes.
oleburghardt Sep 24, 2024
cc7b0cf
Comment out checks in AD structure whether an identifier is active. T…
oleburghardt Sep 24, 2024
44cde90
Add first WIP version of the tag debug mode to the (multizone) discre…
oleburghardt Sep 24, 2024
0bbd832
Revert small change (will be added to CoDi soon).
oleburghardt Sep 24, 2024
89f6fe9
Resolve tagging issue in PassiveAssign
joshkellyjak Mar 6, 2025
9b44431
Quick fix for new GetValue.
oleburghardt Mar 17, 2025
a9f851c
Align and improve debug mode screen output.
oleburghardt Mar 19, 2025
409a763
Further align debug mode screen output.
oleburghardt Mar 19, 2025
13bfa9a
Remove identifier check for preaccumulation, as now covered by CoDi.
oleburghardt Mar 20, 2025
9373983
Remove printing objective function recording index to screen.
oleburghardt Mar 20, 2025
c848c13
Merge branch 'develop' of https://github.com/su2code/SU2 into feature…
oleburghardt Apr 3, 2025
76ad14b
Small fix.
oleburghardt Apr 3, 2025
67c97dd
Simplify config (build type determines the run mode anyway).
oleburghardt Apr 3, 2025
72a6b2a
Add debug mode message.
oleburghardt Apr 3, 2025
bb0f66e
New messages on master rank only.
oleburghardt Apr 3, 2025
99e1551
Turn OUTPUT_WRT_FREQ error for disc. adj. multizone into a warning.
oleburghardt Apr 4, 2025
f12232f
Clang format.
oleburghardt Apr 4, 2025
16e27a2
Clang format.
oleburghardt Apr 7, 2025
8eae2da
Merge branch 'develop' of https://github.com/su2code/SU2 into feature…
oleburghardt Apr 14, 2025
b613bb5
Merge branch 'develop' of https://github.com/su2code/SU2 into feature…
oleburghardt Apr 15, 2025
0eaad4d
Throw error message in case the multizone discrete adjoint solver wil…
oleburghardt Aug 14, 2024
6e2f468
Softcode indentifier/index.
oleburghardt Aug 15, 2024
1ed6c8d
Add tag type option to build system.
oleburghardt Aug 15, 2024
d7e63eb
Add option to use RealReverseTag as AD type.
oleburghardt Aug 25, 2024
036fe69
Temporarily adjust/hardcode type size for memory alignment in vectori…
oleburghardt Aug 25, 2024
ec79b1e
Add config option and indicator for a debug discrete adjoint run.
oleburghardt Sep 24, 2024
b4d797a
Add routines for setting tags to AD structure.
oleburghardt Sep 24, 2024
642c341
Add kinds of recording for tag tapes.
oleburghardt Sep 24, 2024
5aaaa9b
Comment out checks in AD structure whether an identifier is active. T…
oleburghardt Sep 24, 2024
727d303
Add first WIP version of the tag debug mode to the (multizone) discre…
oleburghardt Sep 24, 2024
cd42571
Revert small change (will be added to CoDi soon).
oleburghardt Sep 24, 2024
b839e3a
Resolve tagging issue in PassiveAssign
joshkellyjak Mar 6, 2025
cbaafb3
Quick fix for new GetValue.
oleburghardt Mar 17, 2025
b1144d4
Align and improve debug mode screen output.
oleburghardt Mar 19, 2025
5f15309
Further align debug mode screen output.
oleburghardt Mar 19, 2025
f1a54e9
Remove identifier check for preaccumulation, as now covered by CoDi.
oleburghardt Mar 20, 2025
5f8113d
Remove printing objective function recording index to screen.
oleburghardt Mar 20, 2025
92e58ed
Small fix.
oleburghardt Apr 3, 2025
008b2dc
Simplify config (build type determines the run mode anyway).
oleburghardt Apr 3, 2025
baf99a9
Add debug mode message.
oleburghardt Apr 3, 2025
3a9825a
New messages on master rank only.
oleburghardt Apr 3, 2025
ef29b2b
Turn OUTPUT_WRT_FREQ error for disc. adj. multizone into a warning.
oleburghardt Apr 4, 2025
645d144
Clang format.
oleburghardt Apr 4, 2025
eb5fb72
Clang format.
oleburghardt Apr 7, 2025
3f0d95d
Merge branch 'develop' of https://github.com/su2code/SU2 into feature…
oleburghardt May 7, 2025
21290cb
Resolve merge issue.
oleburghardt May 7, 2025
05bb80e
Add option to debug mode to check for mesh coordinates as tape input,…
oleburghardt May 8, 2025
b69abb5
Rename FULL_TAPE to FULL_SOLVER_TAPE.
oleburghardt May 8, 2025
7753a99
Fix preaccumulation error.
oleburghardt May 8, 2025
8611b55
Merge branch 'feature_tape_debug_mode' of https://github.com/su2code/…
oleburghardt May 8, 2025
f30b478
AD fixes for RegisterVariables (however, it needs more maintenance).
oleburghardt May 8, 2025
1e57b74
Small rework of debug mode recording w.r.t. mesh coordinates, improve…
oleburghardt May 8, 2025
fe5b0fb
AD fixes for RegisterVariables, part 2.
oleburghardt May 12, 2025
427e500
Remove unnecessary virtual function, further fixes in RegisterVariables.
oleburghardt May 16, 2025
35d187f
Add AD functions to handle and report errors appearing in a tape debu…
oleburghardt May 16, 2025
5c36308
Add screen and file output to DebugRun in multizone discrete adjoint …
oleburghardt May 16, 2025
28c2f28
Merge branch 'develop' of https://github.com/su2code/SU2 into feature…
oleburghardt May 16, 2025
9f30725
Clang format.
oleburghardt May 16, 2025
521844a
Small fix (vla error).
oleburghardt May 17, 2025
b3db38d
Add tag tape build to regression, upload under folder name ReverseTag…
oleburghardt May 29, 2025
e146d3c
Test for failing serial regression AD (discadj_multiple_ffd_py).
oleburghardt May 29, 2025
9282363
Add job to regression (discadj_tape_tests), using standard serial_reg…
oleburghardt May 30, 2025
8fe3f90
Small fix.
oleburghardt May 30, 2025
8f2d45a
Small fix.
oleburghardt May 30, 2025
f7254c2
Small fix.
oleburghardt May 30, 2025
63accc0
Add --tagtape option to regression script parser.
oleburghardt May 30, 2025
4b3ad4f
Small fix.
oleburghardt May 30, 2025
06f6ad6
Improve new error report functions in ad_structure.hpp.
oleburghardt Jun 10, 2025
b99c085
Improve new error report functions in ad_structure.hpp.
oleburghardt Jun 10, 2025
d94306d
Add initializations to ErrorReport struct.
oleburghardt Jun 10, 2025
9eee303
Remove empty line.
oleburghardt Jun 10, 2025
8a00108
Small follow-up fixes for error report function changes.
oleburghardt Jun 10, 2025
b82fa32
Follow-up fix for error report initialization.
oleburghardt Jun 10, 2025
b5680c8
Further small fixes for tape debug mode.
oleburghardt Jun 10, 2025
577c546
Rename new enums for tape debug mode and make them enum classes.
oleburghardt Jun 10, 2025
009c689
Update for alignment in vectorization.hpp.
oleburghardt Jun 10, 2025
32bad7a
Remove unused variable.
oleburghardt Jun 11, 2025
96be84f
Add config option to determine whether multizone restart and solution…
oleburghardt Jun 11, 2025
8d5adc1
Add test case (discrete adjoint for inviscid NACA0012 via multizone d…
oleburghardt Jun 11, 2025
08e1858
Add config file belonging to new test case.
oleburghardt Jun 11, 2025
d8f3746
CodeFactor-encouraged format of new test case.
oleburghardt Jun 11, 2025
49f802a
Small fix.
oleburghardt Jun 11, 2025
0fb8b29
Small update for new tag error callback function.
oleburghardt Jun 11, 2025
b1915e7
Add 'tapetests' argument to (regression) test case functions to infor…
oleburghardt Jun 17, 2025
fd918ee
Some renamings for error reports of new tape test mode.
oleburghardt Jun 17, 2025
7c9d4b3
Add tape test output examination, enable new 'discadj_naca0012_via_mz…
oleburghardt Jun 17, 2025
eb819d2
Small fixes for new tape test output examination.
oleburghardt Jun 17, 2025
5ca673c
Provide new tape test case the correct SU2_CFD_AD build (left as sani…
oleburghardt Jun 17, 2025
ff1249a
Add new config options for tape test mode to config_template.cfg.
oleburghardt Jun 17, 2025
62a5f42
Add new config option to config_template.cfg for whether solution/res…
oleburghardt Jun 17, 2025
9fcb160
Small changes in error report functions for new tape test mode.
oleburghardt Jun 20, 2025
9bfbd40
Clang format.
oleburghardt Jun 21, 2025
3f25e60
Update for alignment in vectorization.hpp.
oleburghardt Jun 21, 2025
91e6172
Fix typo in CConfig.cpp.
oleburghardt Jun 22, 2025
4a7c1ef
Small change in output of tape test mode.
oleburghardt Jun 22, 2025
aa5d8f2
Exclude max variables from recording (follow-up from fixing preaccumu…
oleburghardt Jun 24, 2025
3662df8
Merge remote-tracking branch 'origin/feature_tape_debug_mode' into fe…
oleburghardt Jun 24, 2025
af95ea7
Merge remote-tracking branch 'origin/develop' into feature_tape_debug…
oleburghardt Jun 24, 2025
b298741
Undo excluding max computations from preaccumulation region, fix prea…
oleburghardt Jun 24, 2025
619b6cf
Small update in new tape test mode for MPI gather call.
oleburghardt Jun 25, 2025
9b7e676
Const new TapeTestGatherErrors.
oleburghardt Jun 25, 2025
7a26ddb
Merge remote-tracking branch 'origin/develop' into feature_tape_debug…
oleburghardt Jun 26, 2025
3890998
Update Common/include/basic_types/ad_structure.hpp
pcarruscag Jun 28, 2025
a426000
make omega/strain max passive
pcarruscag Jun 28, 2025
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
53 changes: 52 additions & 1 deletion .github/workflows/regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
strategy:
fail-fast: false
matrix:
config_set: [BaseMPI, ReverseMPI, ForwardMPI, BaseNoMPI, ReverseNoMPI, ForwardNoMPI, BaseOMP, ReverseOMP, ForwardOMP]
config_set: [BaseMPI, ReverseMPI, ForwardMPI, BaseNoMPI, ReverseNoMPI, ForwardNoMPI, ReverseTagNoMPI, BaseOMP, ReverseOMP, ForwardOMP]
include:
- config_set: BaseMPI
flags: '-Denable-pywrapper=true -Denable-coolprop=true -Denable-mpp=true -Dinstall-mpp=true -Denable-mlpcpp=true -Denable-tests=true --warnlevel=2'
Expand All @@ -37,6 +37,8 @@ jobs:
flags: '-Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-pywrapper=true -Denable-tests=true --warnlevel=3 --werror'
- config_set: ForwardNoMPI
flags: '-Denable-directdiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-tests=true --warnlevel=3 --werror'
- config_set: ReverseTagNoMPI
flags: '-Denable-autodiff=true -Denable-normal=false -Dwith-mpi=disabled -Denable-pywrapper=true -Denable-tests=true --warnlevel=3 --werror -Dcodi-tape=Tag'
- config_set: BaseOMP
flags: '-Dwith-omp=true -Denable-mixedprec=true -Denable-pywrapper=true -Denable-tecio=false --warnlevel=3 --werror'
- config_set: ReverseOMP
Expand Down Expand Up @@ -215,6 +217,55 @@ jobs:
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
discadj_tape_tests:
if: inputs.runner != 'ARM64'
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
name: Tape Tests
needs: build
strategy:
fail-fast: false
matrix:
testscript: ['serial_regression_AD.py']
include:
- testscript: 'serial_regression_AD.py'
tag: TagNoMPI
steps:
- name: Pre Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
- name: Download All artifacts
uses: actions/download-artifact@v4
- name: Uncompress and Move Binaries
run: |
BIN_FOLDER="$PWD/install/bin"
mkdir -p $BIN_FOLDER
ls -lah $BIN_FOLDER
for type in Base Reverse Forward; do
TYPE_FOLDER="${type}${{matrix.tag}}"
echo "Processing '$TYPE_FOLDER' ..."
if [ -d $TYPE_FOLDER ]; then
pushd $TYPE_FOLDER
ls -lah
tar -zxvf install_bin.tgz
ls -lah install/bin/
cp -r install/* $BIN_FOLDER/../
popd;
fi
done
chmod a+x $BIN_FOLDER/*
ls -lahR $BIN_FOLDER
- name: Run Tests in Container
uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536
with:
# -t <Tutorials-branch> -c <Testcases-branch>
args: -b ${{github.ref}} -t develop -c develop -s ${{matrix.testscript}} -a "--tapetests"
- name: Cleanup
uses: docker://ghcr.io/su2code/su2/test-su2:240320-1536
with:
entrypoint: /bin/rm
args: -rf install install_bin.tgz src ccache ${{ matrix.config_set }}
thread_sanitizer_tests:
if: inputs.runner != 'ARM64'
runs-on: ${{ inputs.runner || 'ubuntu-latest' }}
Expand Down
55 changes: 49 additions & 6 deletions Common/include/CConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -597,8 +597,10 @@ class CConfig {
//bool ContactResistance = false; /*!< \brief Apply contact resistance for conjugate heat transfer. */
unsigned short nID_DV; /*!< \brief ID for the region of FEM when computed using direct differentiation. */

bool AD_Mode; /*!< \brief Algorithmic Differentiation support. */
bool AD_Preaccumulation; /*!< \brief Enable or disable preaccumulation in the AD mode. */
bool AD_Mode; /*!< \brief Algorithmic Differentiation support. */
bool AD_Preaccumulation; /*!< \brief Enable or disable preaccumulation in the AD mode. */
CHECK_TAPE_TYPE AD_CheckTapeType; /*!< \brief Type of tape that is checked in a tape debug run. */
CHECK_TAPE_VARIABLES AD_CheckTapeVariables; /*!< \brief Type of variables that are checked in a tape debug run. */
STRUCT_COMPRESS Kind_Material_Compress; /*!< \brief Determines if the material is compressible or incompressible (structural analysis). */
STRUCT_MODEL Kind_Material; /*!< \brief Determines the material model to be used (structural analysis). */
STRUCT_DEFORMATION Kind_Struct_Solver; /*!< \brief Determines the geometric condition (small or large deformations) for structural analysis. */
Expand Down Expand Up @@ -822,6 +824,7 @@ class CConfig {
SurfSens_FileName, /*!< \brief Output file for the sensitivity on the surface (discrete adjoint). */
VolSens_FileName, /*!< \brief Output file for the sensitivity in the volume (discrete adjoint). */
ObjFunc_Hess_FileName; /*!< \brief Hessian approximation obtained by the Sobolev smoothing solver. */
bool Multizone_Adapt_FileName; /*!< \brief Append zone number to solution and restart file names. */

bool
Wrt_Performance, /*!< \brief Write the performance summary at the end of a calculation. */
Expand Down Expand Up @@ -1055,7 +1058,8 @@ class CConfig {
long ParMETIS_pointWgt; /*!< \brief Load balancing weight given to points. */
long ParMETIS_edgeWgt; /*!< \brief Load balancing weight given to edges. */
unsigned short DirectDiff; /*!< \brief Direct Differentation mode. */
bool DiscreteAdjoint; /*!< \brief AD-based discrete adjoint mode. */
bool DiscreteAdjoint, /*!< \brief AD-based discrete adjoint mode. */
DiscreteAdjointDebug; /*!< \brief Discrete adjoint debug mode using tags. */
su2double Const_DES; /*!< \brief Detached Eddy Simulation Constant. */
WINDOW_FUNCTION Kind_WindowFct; /*!< \brief Type of window (weight) function for objective functional. */
unsigned short Kind_HybridRANSLES; /*!< \brief Kind of Hybrid RANS/LES. */
Expand Down Expand Up @@ -1897,6 +1901,12 @@ 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 @@ -1922,6 +1932,12 @@ 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 @@ -5384,19 +5400,25 @@ class CConfig {
bool GetWrt_Volume_Overwrite(void) const { return Wrt_Volume_Overwrite; }

/*!
* \brief Provides the number of varaibles.
* \brief Get whether filenames are appended the zone number automatically (multiphysics solver).
* \return Flag for appending zone numbers to restart and solution filenames. If Flag=true, zone numer is appended.
*/
bool GetMultizone_AdaptFilename(void) const { return Multizone_Adapt_FileName; }

/*!
* \brief Provides the number of variables.
* \return Number of variables.
*/
unsigned short GetnVar(void);

/*!
* \brief Provides the number of varaibles.
* \brief Provides the number of variables.
* \return Number of variables.
*/
unsigned short GetnZone(void) const { return nZone; }

/*!
* \brief Provides the number of varaibles.
* \brief Provides the number of variables.
* \return Number of variables.
*/
unsigned short GetiZone(void) const { return iZone; }
Expand Down Expand Up @@ -8779,6 +8801,12 @@ class CConfig {
*/
bool GetDiscrete_Adjoint(void) const { return DiscreteAdjoint; }

/*!
* \brief Get the indicator whether a debug run for the discrete adjoint solver will be started.
* \return the discrete adjoint debug indicator.
*/
bool GetDiscrete_Adjoint_Debug(void) const { return DiscreteAdjointDebug; }

/*!
* \brief Get the number of subiterations while a ramp is applied.
* \return Number of FSI subiters.
Expand Down Expand Up @@ -9216,6 +9244,16 @@ class CConfig {
*/
su2double GetConst_DES(void) const { return Const_DES; }

/*!
* \brief Get the type of tape that will be checked in a tape debug run.
*/
CHECK_TAPE_TYPE GetAD_CheckTapeType(void) const { return AD_CheckTapeType; }

/*!
* \brief Get the type of variables that will be checked for in a tape debug run.
*/
CHECK_TAPE_VARIABLES GetAD_CheckTapeVariables(void) const { return AD_CheckTapeVariables; }

/*!
* \brief Get if AD preaccumulation should be performed.
*/
Expand Down Expand Up @@ -9605,6 +9643,11 @@ class CConfig {
*/
unsigned short GetnVolumeOutputFiles() const { return nVolumeOutputFiles; }

/*!
* \brief GetnVolumeOutputFrequencies
*/
unsigned short GetnVolumeOutputFrequencies() const { return nVolumeOutputFrequencies; }

/*!
* \brief GetVolumeOutputFrequency
* \param[in] iFile: index of file number for which the writing frequency needs to be returned.
Expand Down
Loading