diff options
author | 2020-07-25 14:46:37 +0200 | |
---|---|---|
committer | 2020-07-25 14:47:26 +0200 | |
commit | 28ca04dc7e0c213e2ff3629dbb98a3ed32ab688e (patch) | |
tree | fd289d9929f63e5744527a41ef62b8bcf02233ad /src/lib/netlist/nl_setup.cpp | |
parent | 89687cc1a4801f3cd439810b1ee769a51b724de2 (diff) |
netlist: sub solvers now have their own parameter set.
* Example: PARAM(Solver.Solver_0.METHOD, "GMRES")
* Will use the GMRES solver instead of the default MAT_CR solver.
* Same applies to all Solver parameters.
* Please use with care. If you change your netlist (e.g. using
frontiers) the allocation of nets to solvers and the number of solvers
may change. Thus this type of tweaking should only be used after the
netlist completely works.
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r-- | src/lib/netlist/nl_setup.cpp | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index 956504d3b27..e6424649149 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -1553,16 +1553,6 @@ void setup_t::prepare_to_run() } int errcnt(0); - log().debug("Looking for unknown parameters ...\n"); - for (auto &p : m_abstract.m_param_values) - { - auto f = m_params.find(p.first); - if (f == m_params.end()) - { - log().error(ME_UNKNOWN_PARAMETER(p.first)); - errcnt++; - } - } const bool use_deactivate = m_netlist_params->m_use_deactivate(); @@ -1627,6 +1617,23 @@ void setup_t::prepare_to_run() else solver->post_start(); + errcnt = 0; + log().debug("Looking for unknown parameters ...\n"); + for (auto &p : m_abstract.m_param_values) + { + auto f = m_params.find(p.first); + if (f == m_params.end()) + { + log().error(ME_UNKNOWN_PARAMETER(p.first)); + errcnt++; + } + } + if (errcnt > 0) + { + log().fatal(MF_ERRORS_FOUND(errcnt)); + throw nl_exception(MF_ERRORS_FOUND(errcnt)); + } + for (auto &n : m_nlstate.nets()) for (auto & term : n->core_terms()) if (!term->delegate().is_set()) |