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

Solid to solid conjugate heat transfer #2152

Merged
merged 28 commits into from
Aug 29, 2024
Merged

Conversation

EvertBunschoten
Copy link
Member

@EvertBunschoten EvertBunschoten commented Oct 27, 2023

Proposed Changes

Allow for conjugate heat transfer between solid domains and the modeling of contact resistance.

Related Work

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • Configuration option for contact resistance at interfaces.
  • Communicate contact resistance values between config and CInterface.
  • Test grid independence of contact resistance model.
  • Test case with both solid-solid and solid-fluid.
  • Add test case to regression tests.
  • Update documentation.
  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

@EvertBunschoten EvertBunschoten self-assigned this Oct 27, 2023
@pcarruscag pcarruscag changed the base branch from master to develop October 27, 2023 14:01
Copy link
Member

@pcarruscag pcarruscag left a comment

Choose a reason for hiding this comment

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

I get the idea but from the numerical standpoint this is an even worse idea than the way we do fluid-fluid interfaces.
Additive decomposition of elliptic equations is not effective at all.
Are you looking to model contact between multiple solid materials?

@EvertBunschoten
Copy link
Member Author

I get the idea but from the numerical standpoint this is an even worse idea than the way we do fluid-fluid interfaces. Additive decomposition of elliptic equations is not effective at all. Are you looking to model contact between multiple solid materials?

Yes, I'm looking to model the transfer of heat between multiple solid zones with different thermal properties. Eventually I'd like to model contact resistance of such interfaces as well, where the user could specify the contact resistance value of each solid-to-solid interface. This is something that me and Praharsh will be working on.

@pcarruscag
Copy link
Member

Okay, then allow me to save you guys some time, implement something similar to what we use for the FEA solver.
See the use of element_properties in CFEASolver.cpp.

@EvertBunschoten
Copy link
Member Author

Okay, then allow me to save you guys some time, implement something similar to what we use for the FEA solver. See the use of element_properties in CFEASolver.cpp.

Thanks for the suggestion! We'll have a look.

@NAnand-TUD
Copy link

Good job @EvertBunschoten. If you want we can schedule a call together and plan the development a bit.

@EvertBunschoten
Copy link
Member Author

CHT_Fluid_Solid

Was able to run a case with fluid and two solids with contact resistance between the solid domains. By setting a non-zero contact resistance between the solid domains there appears a temperature discontinuity between the solids, but by setting the contact resistance value to zero on the fluid-to-solid interfaces, the temperature trends are continuous.
Further testing still required on more complicated cases, but the core functionality seems to work so far.

Common/include/CConfig.hpp Fixed Show fixed Hide fixed
@EvertBunschoten
Copy link
Member Author

I get the idea but from the numerical standpoint this is an even worse idea than the way we do fluid-fluid interfaces. Additive decomposition of elliptic equations is not effective at all. Are you looking to model contact between multiple solid materials?

Hi Pedro. What do you mean by additive decomposition? And what do you mean by "effective" in this context? In terms of stability, the model converges rapidly, even when initializing one zone at a temperature far above that of the neighboring zone.

@pcarruscag
Copy link
Member

https://en.wikipedia.org/wiki/Additive_Schwarz_method
How large are the meshes in your examples? I expect convergence will slow down as you go to bigger problems.

@pcarruscag
Copy link
Member

You had I comment but I don't see it here.
In any case, it's the total time to solution (same residual drop) that I expect will get worse. At constant CFL.

@EvertBunschoten
Copy link
Member Author

You had I comment but I don't see it here. In any case, it's the total time to solution (same residual drop) that I expect will get worse. At constant CFL.

Sorry for replying so late, I had to put this project on the back burner for a bit. I made a mistake in my previous analysis, which is why I removed the message. I now ran five simulations with only solid to solid CHT heat transfer with contact resistance. With each simulation I quadrupled the number of mesh elements and ran with a constant CFL.
iterations
The number of iterations required until convergence seems to scale linearly with the number of elements. However, this was not the case for total simulation time, which scales quadratically.
simtime

@pcarruscag
Copy link
Member

@EvertBunschoten even if the performance isn't great this is a pretty small change so I think we can merge it.
Do you have time to wrap it up and add a simple regression test?

@EvertBunschoten
Copy link
Member Author

@EvertBunschoten even if the performance isn't great this is a pretty small change so I think we can merge it. Do you have time to wrap it up and add a simple regression test?

I just added a test case and tutorial under the TestCases and Tutorials repo under the same branch name. I'm also writing a short tutorial on the SU2 website repo.

@pcarruscag pcarruscag marked this pull request as ready for review August 11, 2024 16:35
.github/workflows/regression.yml Outdated Show resolved Hide resolved
Common/src/CConfig.cpp Outdated Show resolved Hide resolved
SU2_CFD/src/drivers/CDriver.cpp Outdated Show resolved Hide resolved
Common/src/CConfig.cpp Outdated Show resolved Hide resolved
Common/src/CConfig.cpp Outdated Show resolved Hide resolved
TestCases/parallel_regression.py Outdated Show resolved Hide resolved
@EvertBunschoten EvertBunschoten merged commit 66ed495 into develop Aug 29, 2024
35 checks passed
@EvertBunschoten EvertBunschoten deleted the feature_solid-solid_cht branch August 29, 2024 17:55
@@ -209,7 +209,7 @@ jobs:
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}}
args: -b ${{github.ref}} -t feature_solid-solid_cht -c develop -s ${{matrix.testscript}}
Copy link
Member

Choose a reason for hiding this comment

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

Bloody hell mate...

Copy link
Member Author

Choose a reason for hiding this comment

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

doh!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants