Skip to content

[solver] Configuration and input procedure #1577

@maxfirmbach

Description

@maxfirmbach

Description

For ease of use (and sharing) we should aim to move the linear solver and preconditioner configuration to its own input file, which is referred to in the 4C input file (similar to external mesh files). There are also still open questions in which file format that should happen etc.

As a starting point some initial cleanup of the solver input would be beneficial (see 4C_linear_solver_method_input.{hpp,cpp}):

Moving to a purely config file based linear solver input:

  • For iterative solvers this is already in place, for direct solvers not (we might want to think about a unified approach).
  • Remove / reduce the translation steps in 4C_linear_solver_method_linalg.{hpp, cpp}.
  • Think about when and where to read in the config file and when to translate to a parameter list.
  • Discuss which file format to use, a discussion already has been started in [solver] Convert preconditioner config files to YAML #409 preferring yaml to be in line with our 4C input file format.
  • Remove left over input parameters.

After we unified the linear solver and preconditioners under Stratimikos (see #1400), we should make use of that and straighten everything to make the config work with Stratimikos.

In the scope of this effort we should also update the linear solver documentation as outlined in #68.

Example:

Stratimikos: 
  Linear Solver Type: Belos
  Linear Solver Types: 
    Belos: 
      Solver Type: Block GMRES
      Solver Types: 
        Block GMRES: 
          Convergence Tolerance: 1.0e-05
          Output Frequency: 10
          Output Style: 1
          Verbosity: 33
          Maximum Iterations: 100
          Block Size: 1
          Num Blocks: 50
          Flexible Gmres: false
          VerboseObject:
            Verbosity Level: low
  Preconditioner Type: Ifpack2
  Preconditioner Types: 
    Ifpack2: 
      Overlap: 1
      Prec Type: ILUT
      Ifpack2 Settings: 
        fact: drop tolerance: 0.0
        fact: ilut level-of-fill: 1.0
        fact: level-of-fill: 1

Interested Parties

@mayrmt @reginabuehler

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions