-
Notifications
You must be signed in to change notification settings - Fork 38
Body force convergence, convergence issues #103
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
Conversation
…g message passing
… use scientific notation
|
Hello @jeremyfirst22, Thanks for the pull requests — we really appreciate your effort in contributing to the improvement of LBPM. When you submitted the first bug fix, it occurred to me that the best approach might be to include the barrier code inside the PACK function, which would ensure the same behavior as in the CPU code. For future pull requests, I just ask that you separate them by individual feature or bug fix so we can discuss and evaluate each change more easily. For example, in your latest submission, you proposed three different bug fixes. It would be much better if each of these fixes were submitted as separate pull requests, which would make the discussion and testing of each change simpler and more effective. Best Regards, Diogo Nardelli Siebert |
|
As implemented there is no race condition in |
|
@diogosiebert The reason I did not put the It could be just as easily be nested within the MPI_COMM_SCALBL.Isend routine itself (as @JamesEMcClure suggests), which would keep the code open for overlapping work with communication. But I do not think there is any benefit to wrapping the DeviceBarrier in pragmas like And noted about splitting each bugfix into a separate PR. I will close this PR and submit a PR per feature/bugfix. Thank you both for the comments! -- Jeremy |
Bugfixes
timestepof the Restart.db was never read, leading to a restart starting with timestep = 0 and overwriting previous output files.min_steady_timestepsdatabase parameter was never used to exit upon converged Ca, sinceCa_previouswas never updated, causing((fabs((Ca - Ca_previous) / Ca) < tolerance)to always be false. Added abreakto exit once the steady point is achieved to avoid continuing to write steady point information until theEXIT_TIMESTEPis achieved.Features
lbpm_color_unsteady_simulatormodule to run an unsteady simulation until the water saturation converges below the suppliedtolerance(default = 0, i.e., always run totimestepMax)#75). Now, once the proportional scaling brackets the target, we switch to the bisection method for guaranteed convergence. Resolves Endless overshoot/undershoot Capillary number using Fractional Flow Protocol #75.Cleanup
ForwardStepfunction to share between the twoRunfunctions.I've targeted this PR to dev, but the bugfixes may better be merged into master (particularly the first). Please let me know if you'd like me to split this PR and merge the bugfixes directly into master.