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

LBM #71

Merged
merged 22 commits into from
Sep 7, 2021
Merged

LBM #71

merged 22 commits into from
Sep 7, 2021

Conversation

AliKarakus
Copy link
Collaborator

DG / Lattice-Boltzmann solver with basic functionality.

@codecov
Copy link

codecov bot commented Aug 29, 2021

Codecov Report

Merging #71 (5f734db) into master (d5a931a) will not change coverage.
The diff coverage is n/a.

❗ Current head 5f734db differs from pull request most recent head 40b5863. Consider uploading reports for the commit 40b5863 to get more accurate results
Impacted file tree graph

@@           Coverage Diff           @@
##           master      #71   +/-   ##
=======================================
  Coverage   70.22%   70.22%           
=======================================
  Files          12       12           
  Lines         131      131           
=======================================
  Hits           92       92           
  Misses         39       39           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d5a931a...40b5863. Read the comment docs.

Copy link
Contributor

@tcew tcew left a comment

Choose a reason for hiding this comment

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

LGTM.

Can you elaborate a bit on the difference to bns.

@AliKarakus
Copy link
Collaborator Author

LGTM.

Can you elaborate a bit on the difference to bns.

Both solvers govern the same physics and expecting to achieve similar results for low Mach flows. I think there are couple points of using DG- LBM, ​
--> it is very straight-forward to extend to different physics i.e. heat transfer, natural convection, multi-phase (I am working on connecting with Level-Set method for sharp interfaces) and multi-relaxation.
​--> comparing with BNS especially in boundary layers.
--> possible publications with extending to deforming meshes, pml, multi-phase, etc.

Copy link
Member

@noelchalmers noelchalmers left a comment

Choose a reason for hiding this comment

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

This looks really good to me. A couple questions/comments:

  • I think it's a good idea to make the default final time t=10 in the setup.rcs so that the runs produce several frames.
  • Same comment for the testing runs. Otherwise only a small number of timesteps are actually performed. (Changing this will require updated 'golden' norms).
  • I suspect there is a subtle bug in the Quad2D code path. Running the default setup to t=10 doesn't pass the 'eyeball' norm. The Gaussian doesn't seem to move at all.

I see a several places where early PML and/or Multirate support is enabled/commented. @AliKarakus is the plan to add these features in the future? They're not hurting anything so no worries either way.

I also did some quick profiling on large problem setups. Probably unsurprisingly, several kernels are register heavy, the volume and phaseField kernels in particular are often at <30% peak DRAM BW. Not a problem, just an FYI.

I second @tcew 's comment. I'm not particularly familiar with LBM, so it would be cool to see the full formulation written somewhere!

Thanks @AliKarakus !

@noelchalmers
Copy link
Member

@AliKarakus @tcew These test runs are going to be bitten by the latest OCCA changes complaining about @barrier("local"). Let ignore these test fails for the moment.

Should we make occa a git submodule to avoid this kind of thing in the future?

@tcew
Copy link
Contributor

tcew commented Sep 7, 2021

Should we make occa a git submodule to avoid this kind of thing in the future?

Yes. I think this is a very good and timely idea.

I anticipate quite a few changes in occa and we do not want to be continually held up.

@AliKarakus
Copy link
Collaborator Author

@noelchalmers Thanks for the feedback, I double checked all the tests on my local machine. Everything works smoothly.

--> I see a several places where early PML and/or Multirate support is enabled/commented. @AliKarakus is the plan to add these features in the future? They're not hurting anything so no worries either way.

I am going to work on a PML formulation, but multi-rate time-stepping creates some issues because of the time-step size dependent properties in LBM. Need to check details a little more. Currently my target is to combine this basic DG-LBM formulation with Level-Set for bubble dynamics and contact line problems.

--->I also did some quick profiling on large problem setups. Probably unsurprisingly, several kernels are register heavy, the volume and phaseField kernels in particular are often at <30% peak DRAM BW. Not a problem, just an FYI.

Yes, I think this problem is arising from the high number of fields i.e. 9 for 2D and 15 or 19 for 3D. At the moment, I don't know how to overcome this performance issue quickly as BNS outperforms LBM even in 2D test cases.

--->I'm not particularly familiar with LBM, so it would be cool to see the full formulation written somewhere!
It will be available soon (hopefully) with DG-LBM/LS paper.

Thanks a lot @noelchalmers and @tcew .

@noelchalmers
Copy link
Member

@AliKarakus Can you merge the latest master branch? That should fix our OCCA issues and re-run the CI checks.

@tcew
Copy link
Contributor

tcew commented Sep 7, 2021

@AliKarakus @noelchalmers - the Lbs tests seem to take quite a while. In particular the tet 3d case seems to take 20 minutes unless I misread the test report.

@noelchalmers
Copy link
Member

LGTM. The whole suite of tests take around 24 minutes.

@tcew
Copy link
Contributor

tcew commented Sep 7, 2021

LGTM. The whole suite of tests take around 24 minutes.

@noelchalmers would you like to do the honors and merge this at your convenience ?

@noelchalmers noelchalmers merged commit 45c913c into master Sep 7, 2021
@tcew
Copy link
Contributor

tcew commented Sep 7, 2021

Great work @AliKarakus and thanks to @noelchalmers for overseeing the merge !

@AliKarakus
Copy link
Collaborator Author

Thanks @tcew and @noelchalmers. I am deleting the lbm branch now.

@AliKarakus AliKarakus deleted the lbm branch September 7, 2021 21:53
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.

3 participants