![]() |
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.