LLNL / serac

Serac is a high order nonlinear thermomechanical simulation code
BSD 3-Clause "New" or "Revised" License
186 stars 33 forks source link

Consolidate enums of nonlinear solvers and preconditioners #1231

Open chapman39 opened 1 month ago

chapman39 commented 1 month ago
          These maps and string things can potentially move into the library.  In fact, I made something similar  a few months back. [see inline std::string nonlinearName(const NonlinearSolver& s), line ~159 in solver_config.hpp].  Maybe think about consolidating those designs.  I'm not particular to the way I did it, so just choose one and put it all in solver_config.hpp?

_Originally posted by @tupek2 in https://github.com/LLNL/serac/pull/1222#discussion_r1752289573_

chapman39 commented 1 month ago

benchmark_solid_nonlinear_solve.cpp and solvers_config.hpp have conflicting enums and we should just use one. this might lead to reorganizing the benchmark, since there is no linear solver option. instead some linear solver options are put into the preconditioner enum, for example STRUMPACK.

https://github.com/LLNL/serac/pull/1222/files#diff-4e5ed49121ba3a516e4cc5c5b6ddfe1bb805da4096412c7d8ee6d118c2c27e2eR156-R160

https://github.com/LLNL/serac/blob/develop/src/serac/numerics/solver_config.hpp