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

3D coupled deliverable #209

Merged
merged 142 commits into from
Oct 31, 2023
Merged

3D coupled deliverable #209

merged 142 commits into from
Oct 31, 2023

Conversation

oparry-ukaea
Copy link
Contributor

@oparry-ukaea oparry-ukaea commented Aug 24, 2023

Description

A 2D Hasegawa-Wakatani solver which works in a 3D domain. Earlier form submitted for the NEPTUNE 3D coupled fluid-particle deliverable in Sept 2023.

Fixes #207

Type of change

  • New feature (non-breaking change which adds functionality)
  • Requires documentation updates

Testing

  • HWTest.Coupled2Din3DHWMassCons (in test/integration/solvers/H3LAPD/test_H3LAPD.cpp)

    • Runs the H3LAPD solver with the "HW2Din3DSystem" equation system for a small number of steps with periodic BCs on all sides.
    • Tests for fluid-particle mass conservation
    • Sets HW constants to alpha=kappa=0
    • Passes iff mass is conserved to a tolerance of 1e-12 AND the solver returns 0.
  • HWTest.2Din3DHWGrowthRates (in test/integration/solvers/H3LAPD/test_H3LAPD.cpp)

    • Runs the H3LAPD solver with the "HW2Din3DSystem" equation system for a small number of steps with periodic BCs on all sides.
    • Particle number is set to 0.
    • Tests that growth rate of energy and enstrophy match analytical expected rates as defined in equations 6 and 7 of Numata et al. 2007.
    • Passes iff rates match to a tolerance of 5e-3 AND the solver returns 0.

Test Configuration:

OS: Ubuntu 22.04
Compiler: GCC 11.3.0 / OneAPI v2022.1.0
SYCL implementation: Hipsycl v0.9.2 / DPC++ v2022.1.0
MPI details: MPICH v4.0.2
Hardware: CPU (Intel Alder Lake)

Checklist:

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any new dependencies are automatically built for users via cmake
  • I have used understandable variable names
  • I have run clang-format against my *.hpp and *.cpp changes
  • I have run cmake-format against my changes to CMakeLists.txt
  • I have made corresponding changes to the documentation
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings

@oparry-ukaea oparry-ukaea marked this pull request as ready for review October 24, 2023 13:40
@oparry-ukaea oparry-ukaea requested a review from jwscook October 24, 2023 13:40
@oparry-ukaea
Copy link
Contributor Author

No need to look at solvers/H3LAPD/EquationSystems/LAPDSystem.* - those files can be reviewed as part of #181

@oparry-ukaea
Copy link
Contributor Author

To do:

  • Extract NeutralParticleSystem::get_from_session() and NeutralParticleSystem::expint_barry_approx(), which both duplicate functions in the SimpleSOL and Electrostatic2D3V solvers.
    Can do that as a separate PR.

@oparry-ukaea oparry-ukaea removed the request for review from jwscook October 31, 2023 15:00
@will-saunders-ukaea
Copy link
Contributor

I ran the tests with:
Intel OpenCL - passed modulo some SimpleSOL.1D errors - quite sure these are unrelated to this PR (seen before)
Hipsycl OMP - passed
Hipsycl nvcxx - passed modulo the tests which are not compliant with sycl (the original 1D work)

I am happy to merge.

@oparry-ukaea
Copy link
Contributor Author

Ready to merge from my side too 👍

@oparry-ukaea oparry-ukaea merged commit 0d3c970 into main Oct 31, 2023
@oparry-ukaea oparry-ukaea deleted the feature/3D-coupled-deliverable branch October 31, 2023 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

HW + neutrals in 3D exhibiting turbulence
2 participants