From 28ca04dc7e0c213e2ff3629dbb98a3ed32ab688e Mon Sep 17 00:00:00 2001 From: couriersud Date: Sat, 25 Jul 2020 14:46:37 +0200 Subject: 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. --- src/lib/netlist/nl_setup.cpp | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'src/lib/netlist/nl_setup.cpp') 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()) -- cgit v1.2.3-70-g09d2