diff options
Diffstat (limited to 'src/lib/netlist/solver/nld_ms_sm.h')
-rw-r--r-- | src/lib/netlist/solver/nld_ms_sm.h | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/lib/netlist/solver/nld_ms_sm.h b/src/lib/netlist/solver/nld_ms_sm.h index 02e83bd5bbd..c48d85bd2b7 100644 --- a/src/lib/netlist/solver/nld_ms_sm.h +++ b/src/lib/netlist/solver/nld_ms_sm.h @@ -37,7 +37,7 @@ #include "nld_solver.h" #include "nld_matrix_solver.h" -#include "vector_base.h" +#include "../plib/vector_ops.h" namespace netlist { @@ -68,7 +68,7 @@ protected: virtual unsigned vsolve_non_dynamic(const bool newton_raphson) override; unsigned solve_non_dynamic(const bool newton_raphson); - constexpr std::size_t N() const { return m_dim; } + constexpr std::size_t size() const { return m_dim; } void LE_invert(); @@ -91,8 +91,6 @@ protected: template <typename T1, typename T2> float_ext_type &lAinv(const T1 &r, const T2 &c) { return m_lAinv[r][c]; } - float_type m_last_RHS[storage_N]; // right hand side - contains currents - private: static constexpr std::size_t m_pitch = ((( storage_N) + 7) / 8) * 8; float_ext_type m_A[storage_N][m_pitch]; @@ -124,9 +122,7 @@ void matrix_solver_sm_t<FT, SIZE>::vsetup(analog_net_t::list_t &nets) { matrix_solver_t::setup_base(nets); - state().save(*this, m_last_RHS, "m_last_RHS"); - - for (unsigned k = 0; k < N(); k++) + for (unsigned k = 0; k < size(); k++) state().save(*this, RHS(k), plib::pfmt("RHS.{1}")(k)); } @@ -135,7 +131,7 @@ void matrix_solver_sm_t<FT, SIZE>::vsetup(analog_net_t::list_t &nets) template <typename FT, int SIZE> void matrix_solver_sm_t<FT, SIZE>::LE_invert() { - const std::size_t kN = N(); + const std::size_t kN = size(); for (std::size_t i = 0; i < kN; i++) { @@ -200,7 +196,7 @@ template <typename T> void matrix_solver_sm_t<FT, SIZE>::LE_compute_x( T * RESTRICT x) { - const std::size_t kN = N(); + const std::size_t kN = size(); for (std::size_t i=0; i<kN; i++) x[i] = 0.0; @@ -219,7 +215,7 @@ template <typename FT, int SIZE> unsigned matrix_solver_sm_t<FT, SIZE>::solve_non_dynamic(const bool newton_raphson) { static constexpr const bool incremental = true; - const std::size_t iN = N(); + const std::size_t iN = size(); float_type new_V[storage_N]; // = { 0.0 }; @@ -301,9 +297,6 @@ unsigned matrix_solver_sm_t<FT, SIZE>::vsolve_non_dynamic(const bool newton_raph this->build_LE_A(*this); this->build_LE_RHS(*this); - for (std::size_t i=0, iN=N(); i < iN; i++) - m_last_RHS[i] = RHS(i); - this->m_stat_calculations++; return this->solve_non_dynamic(newton_raphson); } @@ -315,10 +308,6 @@ matrix_solver_sm_t<FT, SIZE>::matrix_solver_sm_t(netlist_base_t &anetlist, const , m_dim(size) , m_cnt(0) { - for (std::size_t k = 0; k < N(); k++) - { - m_last_RHS[k] = 0.0; - } } } //namespace devices |