NEURON
linmod.h
Go to the documentation of this file.
1 #ifndef linmod_h
2 #define linmod_h
3 
4 #include <OS/list.h>
5 #include "ocmatrix.h"
6 #include "ivocvect.h"
7 #include "nrnoc2iv.h"
8 #include "matrixmap.h"
9 #include "nrndae.h"
10 
11 
12 class LinearModelAddition: public NrnDAE {
13  public:
15  Matrix* g,
16  Vect* y,
17  Vect* y0,
18  Vect* b,
19  int nnode = 0,
20  Node** nodes = NULL,
21  Vect* elayer = NULL,
22  Object* f_callable = NULL);
23  virtual ~LinearModelAddition();
24 
25  private:
26  void f_(Vect& y, Vect& yprime, int size);
28  double jacobian_multiplier_();
29  void alloc_(int size, int start, int nnode, Node** nodes, int* elayer);
30 
32  Vect& b_;
34 };
35 
36 #endif
MatrixMap * g_
Definition: linmod.h:31
LinearModelAddition(Matrix *c, Matrix *g, Vect *y, Vect *y0, Vect *b, int nnode=0, Node **nodes=NULL, Vect *elayer=NULL, Object *f_callable=NULL)
Definition: linmod.cpp:31
void alloc_(int size, int start, int nnode, Node **nodes, int *elayer)
Additional allocation for subclasses.
Definition: linmod.cpp:52
Object * f_callable_
Definition: linmod.h:33
MatrixMap * jacobian_(Vect &y)
Compute the Jacobian.
Definition: linmod.cpp:84
void f_(Vect &y, Vect &yprime, int size)
The right-hand-side function.
Definition: linmod.cpp:60
virtual ~LinearModelAddition()
Definition: linmod.cpp:47
double jacobian_multiplier_()
Definition: linmod.cpp:80
NEURON Differential Algebraic Equations.
Definition: nrndae.h:27
#define c
void start()
Definition: hel2mos.cpp:204
#define Vect
Definition: ivocvect.h:14
Supports modifying voltage equations and adding new equations.
#define g
Definition: passive0.cpp:21
#define NULL
Definition: sptree.h:16
MatrixPtr Matrix
Definition: sputils.c:601
Definition: section.h:133
Definition: hocdec.h:227