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

Create Infrastructure for embedded preferred linear solver settings #1077

Open
psakievich opened this issue Nov 14, 2022 · 0 comments
Open
Assignees

Comments

@psakievich
Copy link
Contributor

psakievich commented Nov 14, 2022

Our solvers currently utilize external files to set specific optimization parameters
MueLue: https://github.com/Exawind/nalu-wind/tree/master/reg_tests/xml
Hypre: https://github.com/Exawind/nalu-wind/tree/master/reg_tests/hypre_settings

The result of this is that end users are often running old outdated solver settings.

This feature request is for infrastructure to allow users to move from blocks like this:

    # File containing hypre specific configuration options
    hypre_cfg_file: ../../hypre_settings/hypre_blade_resolved.yaml
    # YAML node used for this linear solver
    hypre_cfg_node: hypre_simple_precon

  - name: solve_elliptic
    type: hypre
    method: hypre_gmres
    preconditioner: boomerAMG
    tolerance: 1e-12
    max_iterations: 200
    kspace: 75
    output_level: 0
    write_matrix_files: no
    reuse_linear_system: yes
    recompute_preconditioner_frequency: 100
    simple_hypre_matrix_assemble: no
    dump_hypre_matrix_stats: no
    write_preassembly_matrix_files: no

to something like this:

  - name: solve_elliptic
    solver_preset: hypre_blade_resolved

The infrastructure should be a map of some form so it is extendable for the different key solver scenarios we want to support.

Once this feature is implemented we will ask the solvers teams to populate some preconfigured cases that are embedded in the source code (@jhux2 @PaulMullowney). We should also preserve the old interface to allow for maximum flexibility.

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

No branches or pull requests

2 participants