Comments (4)
As mentioned previously I would be surprised if the fix implemented in c97610b is the source of the issue as I would expect the other turbomachinery cases to fail as well. Looking at the testcase there would be two things I would try.
-
Converge the solution very tightly, however I expect that this may be difficult, save the converged solution. Restart the solver and run for 1 iteration and compare the results of the two. Inspect the solution and see if there is anything obvious, this may give a hint as to where the problem lay. Maybe also include linear solver information in the output to see if the desired convergence is being achieved in the initial iterations.
-
Furthermore inspect the residuals of the initial converged solution as it approaches the restart point, a jump in residuals could indicate that the solver is not converging smoothly before the termination of the initial solution. I suggest maybe increasing the value of ENTROPY_FIX_COEFF, say 0.1 and see what happens.
If you can't converge the solution tightly in point 1, apply the increased entropy fix in point 2 and retry. If you would like @alecappiello once you have tried this we can organise a call to discuss early next week.
from su2.
@joshkellyjak The memory access violation described here does not occur unconditionally, it depends on the test case. The iterations of the inner loop for jSpan == 0
and jSpan == nSpanDonor - 1
(that we removed in the fix) only have an effect if the if-conditions in the loop body evaluate to true
. I checked this for the serial test cases in the test file's "turbomachinery" section.
aachen_turbine_restart
: iterations both withjSpan == 0
andjSpan == nSpanDonor - 1
have an effect, the latter trigger the memory access violationsjones_turbocharger_restart
: some iterations withjSpan == 0
have an effect, but iterations for largerjSpan
usually overwrite the results; also, the casejSpan == 0
does not trigger the memory access violationaxial_stage2D
: the problematic code is not executed by this test casetransonic_stator_restart
: the problematic code is not executed by this test case
I think these observations point to why only the Aachen test case had address sanitizer findings, and why only the results of the Aachen test case were affected by the attempted fix. The other test cases basically "do not care" whether we do the extra iterations.
@alecappiello Regarding your earlier question about the restart file. Restart files are to some extent specific to the version of SU2 they were obtained with, in the sense that newer versions of SU2 can behave differently if they use an old restart file. I was wondering if this is the case here, too. If the memory access violation had manifested itself in the restart file, a version of SU2 with the memory access violation fixed could give different results. The observations above point to why only the Aachen test case is affected.
from su2.
I'll try and find some time to have a look at this today. I think the issue is in the jSpan == nSpanDonor - 1
. The final value in both the donor and target arrays are 1D values, the values at nSpanDonor - 2 are the values at the shroud. I think the original proposed fix is still needed here as further down you have an array accessing a postion of kSpan + 1
which iirc resulted in the memory access violation. I think what has happened here is the Aachen case triggers this condition, and results in an error in the calculation of the coefficient for the linear interpolation. When we fixed it, we changed the simulation enough that it throws the residuals off as the computational problem is inherently different. A good test for this would be to extract the values at the interface from the turbomachinery special output with and without this change to see if this is the case. When we were first designing this case @alecappiello had an issue getting the results in one of the zones to agree with experimental results, this could be why?
from su2.
Related Issues (20)
- Wall emissivity array out of bounds HOT 1
- Using surface deformation to produce pitching on a surface with two or more markers results on inaccurate displacements on shared nodes between markers HOT 5
- Drag Coefficinet is too high
- Instability with Riemann BC, possibly coupled with periodics?
- Restart file interpolation sporadically hangs with mpi HOT 1
- Question regarding Description of available screen/history output fields HOT 2
- Thread Sanitizer CI Crashes
- Parallel Computation fails
- Is it possible to calculate the flow field directly without outputting the mesh after the mesh is deformed?
- Interface between the moving and stationary zones generates wrong results as the moving zone rotates HOT 8
- Non deterministic convergence history using NEWTON-KRYLOV with OMP HOT 2
- 3D Flow around object example
- SU2 V8 missing functions in PythonWrapper HOT 1
- SU2 V8.01: Apparently improper message: DV_VALUE does not contain enough entries to match DV_KIND or DV_PARAM. HOT 2
- MARKER_ENGINE_INFLOW seems to be not working as intended. HOT 3
- Add Supersonic Inlet Profile HOT 2
- Correct gradients at boundaries HOT 12
- To invoke SU2 from c++ HOT 1
- About Binary Executables' error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from su2.