summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/solver/nld_ms_sm.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/solver/nld_ms_sm.h')
-rw-r--r--src/lib/netlist/solver/nld_ms_sm.h23
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