-
Notifications
You must be signed in to change notification settings - Fork 3
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
[WIP] Add functionality to have user-specific convergence criteria for nonlinear solvers #341
base: main
Are you sure you want to change the base?
Conversation
This reverts commit 7adcc4b.
b755a1c
to
b02eead
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #341 +/- ##
==========================================
+ Coverage 80.86% 80.88% +0.02%
==========================================
Files 68 69 +1
Lines 2299 2312 +13
==========================================
+ Hits 1859 1870 +11
- Misses 440 442 +2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
@@ -32,24 +30,28 @@ struct NRSettings | |||
* \struct NewtonRaphsonConfig | |||
* \brief Config for the Newton-Raphson solver. | |||
*/ | |||
template <typename LS = utils::SolverDefault, typename UF = utils::UpdateDefault> | |||
template <ConvergenceCriterion CC = ConvergenceCriterion::ResiduumNorm, typename LS = utils::SolverDefault, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<typename NLS>
struct ResidualNorm
template<>
struct ResidualNorm<NRwithsubsidary>
See #182
TO-DOs
NRConvergenceCriteria
to criteria-dependent structs. This should then be overloaded withbool operator()(...){}
for different solvers. Remove theMAKE_ENUM
and then pass the criteria-dependent structs directly to the nonlinear solvers. This would allow easy extensibility for the users.ikarus-examples
, if neededDUNE::AlwaysFalse
as per the comments (seeconvergencecriteria.hh
)Decisions to be made
solverState
is needed to have nice constructors. See also refactor observer patterns and unify logging information #260