![]() |
User Guide
|
Visitor for STEADYSTATE solve statements More...
Visitor for STEADYSTATE solve statements
For each STEADYSTATE
solve statement, creates a clone of the corresponding DERIVATIVE block, with _steadystate
appended to the name of the block. If the original DERIVATIVE
block was called X
, the new DERIVATIVE
block will be called X_steadystate
. Only difference in new block is that the value of dt
is changed for the solve, to:
where these values for dt
in the steady state solves are taken from NEURON see https://github.com/neuronsimulator/nrn/blob/master/src/scopmath/ssimplic_thread.c
Also updates the solve statement to point to the new DERIVATIVE
block as a METHOD solve
, not a STEADYSTATE
one, e.g.
becomes
Definition at line 53 of file steadystate_visitor.hpp.
#include <steadystate_visitor.hpp>
Private Member Functions | |
std::shared_ptr< ast::DerivativeBlock > | create_steadystate_block (const std::shared_ptr< ast::SolveBlock > &solve_block, const std::vector< std::shared_ptr< ast::Ast >> &deriv_blocks) |
create new steady state derivative block for given solve block More... | |
Private Attributes | |
const double | STEADYSTATE_SPARSE_DT = 1e9 |
const double | STEADYSTATE_DERIVIMPLICIT_DT = 1e-9 |
|
default |
|
private |
create new steady state derivative block for given solve block
Definition at line 18 of file steadystate_visitor.cpp.
|
overridevirtual |
visit node of type ast::Program
Implements nmodl::visitor::Visitor.
Definition at line 88 of file steadystate_visitor.cpp.
|
private |
Definition at line 62 of file steadystate_visitor.hpp.
|
private |
Definition at line 60 of file steadystate_visitor.hpp.