version 0.4.1
nonlinearsolverstate.hh
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2021-2025 The Ikarus Developers ikarus@ibb.uni-stuttgart.de
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
9#pragma once
10
13
14namespace Ikarus {
15
22template <typename D, typename CT>
24{
25 using Domain = D;
26 using CorrectionType = CT;
27
28 const Domain& domain;
31};
32
33namespace Impl {
34
35 template <typename SignatureTraits, int n>
36 struct CorrectionType;
37
38 template <typename SignatureTraits>
39 struct CorrectionType<SignatureTraits, 1>
40 {
41 using type = typename SignatureTraits::template Range<0>;
42 };
43
44 template <typename SignatureTraits>
45 struct CorrectionType<SignatureTraits, 2>
46 {
47 using type = typename SignatureTraits::template Range<1>;
48 };
49
50 template <typename F>
51 struct NonlinearSolverStateFactory
52 {
53 private:
54 using SignatureTraits = typename F::Traits;
55 using Domain = typename SignatureTraits::Domain;
56
57 constexpr static int nDerivatives = F::nDerivatives;
58
59 public:
60 using type = NonlinearSolverState<Domain, typename CorrectionType<SignatureTraits, nDerivatives>::type>;
61 };
62} // namespace Impl
63
69template <typename F>
71
72} // namespace Ikarus
Contains stl-like type traits.
Implementation of the solver information returned by the nonlinear solvers.
Definition: assemblermanipulatorbuildingblocks.hh:22
State for nonlinear solvers.
Definition: nonlinearsolverstate.hh:24
const CorrectionType & correction
Definition: nonlinearsolverstate.hh:29
D Domain
Definition: nonlinearsolverstate.hh:25
CT CorrectionType
Definition: nonlinearsolverstate.hh:26
const Domain & domain
Definition: nonlinearsolverstate.hh:28
const NonLinearSolverInformation & information
Definition: nonlinearsolverstate.hh:30
Information about the result of a non-linear solver.
Definition: solverinfos.hh:21