diff options
Diffstat (limited to 'src/lib/netlist/solver/nld_solver.cpp')
-rw-r--r-- | src/lib/netlist/solver/nld_solver.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp index a7c2f1fc196..ac7f9155feb 100644 --- a/src/lib/netlist/solver/nld_solver.cpp +++ b/src/lib/netlist/solver/nld_solver.cpp @@ -93,9 +93,10 @@ NETLIB_UPDATE(solver) if (m_params.m_dynamic_ts) return; + netlist_time now(exec().time()); /* force solving during start up if there are no time-step devices */ /* FIXME: Needs a more elegant solution */ - bool force_solve = (exec().time() < netlist_time::from_double(2 * m_params.m_max_timestep)); + bool force_solve = (now < netlist_time::from_double(2 * m_params.m_max_timestep)); std::size_t nthreads = std::min(static_cast<std::size_t>(m_parallel()), plib::omp::get_max_threads()); @@ -104,16 +105,16 @@ NETLIB_UPDATE(solver) if (nthreads > 1 && solvers.size() > 1) { plib::omp::set_num_threads(nthreads); - plib::omp::for_static(static_cast<std::size_t>(0), solvers.size(), [&solvers](std::size_t i) + plib::omp::for_static(static_cast<std::size_t>(0), solvers.size(), [&solvers, now](std::size_t i) { - const netlist_time ts = solvers[i]->solve(); + const netlist_time ts = solvers[i]->solve(now); plib::unused_var(ts); }); } else for (auto & solver : solvers) { - const netlist_time ts = solver->solve(); + const netlist_time ts = solver->solve(now); plib::unused_var(ts); } |