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

Vof geometric reinitialization architecture #1451

Merged
merged 11 commits into from
Mar 13, 2025

Conversation

hepap
Copy link
Collaborator

@hepap hepap commented Mar 10, 2025

Description

This PR adds the (almost) empty architecture of the SignedDistanceSolver and its coupling in the VOF solver (geometric reinitialization method ) , following the structure of the already existing vof_advection prototype. The parameters associated to the geometric reinitialization method for the VOF solver are also added.

Some methods of the SignedDistanceSolver are implemented to be able to test this new architecture.

Testing

One unit is implemented:

interface_tools_signed_distance: This test checks the instanciation of the InterfaceTools::SignedDistanceSolver class from within an abitrary structure that replicates the usual physical solver structure. This is a dummy test intended to check the architecture, and not the SignedDistanceSolver performances yet! When the implementation of the SignedDistanceSolver will be completed, this test will be extended to a verification of the signed distance computation for a sphere.

Documentation

The new parameters are not documented yet because they are not currently used. They will be in the next PR implementing the solver itself.

Miscellaneous (will be removed when merged)

Following this PR, the complete solver will be implemented.

Checklist (will be removed when merged)

See this page for more information about the pull request process.

Code related list:

  • All in-code documentation related to this PR is up to date (Doxygen format)
  • Copyright headers are present and up to date
  • Lethe documentation is up to date
  • New feature has unit test(s) (preferred) or application test(s), and restart files are in the generator folder
  • The branch is rebased onto master
  • Changelog (CHANGELOG.md) is up to date
  • Code is indented with indent-all and .prm files (examples and tests) with prm-indent

Pull request related list:

  • Labels are applied
  • There are at least 2 reviewers (or 1 if small feature) excluding the responsible for the merge
  • If this PR closes an issue or is related to a project, it is linked in the "Projects" or "Development" section
  • If the fix is temporary, an issue is opened
  • The PR description is cleaned and ready for merge

@hepap hepap requested review from blaisb, lpsaavedra, brunaccampos and AmishgaAlphonius and removed request for lpsaavedra March 10, 2025 19:17
Copy link
Contributor

@blaisb blaisb left a comment

Choose a reason for hiding this comment

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

Just a few comments there and there, this is very good work @hepap . We will have to think of a way to merge that into deal.II

attach_solution_to_output(DataOut<dim> &data_out);

/// DoFHandler describing the problem
DoFHandler<dim> dof_handler;
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there a reason why the dof_handler is public? You use it elsewhere I guess?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It is to use it when we will interpolate the signed distance to the main solver (VOF) dofhandler

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I can add a get_dof_handler method also :)

Comment on lines +560 to +565
prm.declare_entry(
"enable",
"false",
Patterns::Bool(),
"Enables the interface reinitialization with the geometric method "
"<true|false>");
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it not be better to instead a parameter which would be:
retinitialization method = "none, pde, projection, geometric" and then enter that section?
It's not the best idea to have a ton of enable / everywhere and to rely on checking. This way we would have less parameters.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I agree. Do I do it in this PR or I open a refactoring one? @blaisb

Copy link
Contributor

Choose a reason for hiding this comment

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

I'll merge the PR as is now, this could be in another PR?

Copy link
Collaborator

@brunaccampos brunaccampos left a comment

Choose a reason for hiding this comment

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

Small comments only :)

Copy link
Collaborator

@AmishgaAlphonius AmishgaAlphonius left a comment

Choose a reason for hiding this comment

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

Great work!
Only a few typos to point-out :)

@hepap hepap force-pushed the vof_geometric_reinitialization_architecture branch from 56859d7 to 81c393e Compare March 13, 2025 19:01
@blaisb blaisb merged commit 1a9488c into master Mar 13, 2025
11 checks passed
@blaisb blaisb deleted the vof_geometric_reinitialization_architecture branch March 13, 2025 21:22
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.

4 participants