![]() |
NEURON
|
Visitor used for generating the necessary AST nodes for matexp solver. More...
#include <matexp_visitor.hpp>
Private Member Functions | |
| ast::KineticBlock * | find_kinetic_block (const std::string &block_name) |
| search the "kinetic_blocks" vector for the given block More... | |
| std::shared_ptr< ast::MatexpBlock > | solve_kinetic_block (const ast::KineticBlock &node, bool steadystate) |
| convert a KineticBlock into a MatexpBlock More... | |
| void | replace_solve_block (const ast::SolveBlock &node, bool steadystate) |
| replace the given solve-block statement with a MatexpBlock More... | |
| std::shared_ptr< ast::MatexpBlock > | get_solve_block (const ast::SolveBlock &node, bool steadystate) |
| return the MatexpBlock solution for the given solve-block statement More... | |
| int | get_state_index (const std::string &state_name) |
| returns an index into the "states" vector More... | |
| std::shared_ptr< ast::Statement > | transform_decay_statement (std::shared_ptr< ast::Expression > lhs, std::shared_ptr< ast::Expression > kf) |
| convert a decay reaction statement "->" into equivalent assignments to the Jacobian matrix More... | |
| std::vector< std::shared_ptr< ast::Statement > > | transform_reaction_statement (std::shared_ptr< ast::Expression > lhs, std::shared_ptr< ast::Expression > rhs, std::shared_ptr< ast::Expression > kf, std::shared_ptr< ast::Expression > kb) |
| convert a reaction statement "<->" into equivalent assignments to the Jacobian matrix More... | |
Private Attributes | |
| std::vector< ast::SolveBlock * > | steadystate_blocks |
| blocks to be solved More... | |
| std::vector< ast::SolveBlock * > | solve_blocks |
| blocks to be solved More... | |
| std::vector< std::string > | keep_blocks |
| blocks to be solved by a different solver method More... | |
| std::vector< ast::KineticBlock * > | kinetic_blocks |
| all kinetic blocks in the program More... | |
| std::vector< std::shared_ptr< symtab::Symbol > > | states |
| ordered list of state variables More... | |
| bool | in_jacobian_block = false |
| currently visiting kinetic block that is being solved More... | |
Visitor used for generating the necessary AST nodes for matexp solver.
Definition at line 30 of file matexp_visitor.hpp.
|
default |
|
private |
search the "kinetic_blocks" vector for the given block
Definition at line 159 of file matexp_visitor.cpp.
|
private |
return the MatexpBlock solution for the given solve-block statement
Definition at line 149 of file matexp_visitor.cpp.
|
private |
returns an index into the "states" vector
Definition at line 218 of file matexp_visitor.cpp.
|
private |
replace the given solve-block statement with a MatexpBlock
Definition at line 138 of file matexp_visitor.cpp.
|
private |
convert a KineticBlock into a MatexpBlock
Definition at line 170 of file matexp_visitor.cpp.
|
private |
convert a decay reaction statement "->" into equivalent assignments to the Jacobian matrix
Definition at line 244 of file matexp_visitor.cpp.
|
private |
convert a reaction statement "<->" into equivalent assignments to the Jacobian matrix
Definition at line 259 of file matexp_visitor.cpp.
|
overridevirtual |
Populate the list of kinetic blocks in the program.
Implements nmodl::visitor::Visitor.
Definition at line 82 of file matexp_visitor.cpp.
|
overridevirtual |
visit node of type ast::Program
Implements nmodl::visitor::Visitor.
Definition at line 27 of file matexp_visitor.cpp.
|
overridevirtual |
visit node of type ast::ReactionStatement
Implements nmodl::visitor::Visitor.
Definition at line 294 of file matexp_visitor.cpp.
|
overridevirtual |
Populate the lists of solve-block statements in the program.
Implements nmodl::visitor::Visitor.
Definition at line 60 of file matexp_visitor.cpp.
|
overridevirtual |
visit node of type ast::StatementBlock
Implements nmodl::visitor::Visitor.
Definition at line 188 of file matexp_visitor.cpp.
|
private |
currently visiting kinetic block that is being solved
Definition at line 65 of file matexp_visitor.hpp.
|
private |
blocks to be solved by a different solver method
Definition at line 39 of file matexp_visitor.hpp.
|
private |
all kinetic blocks in the program
Definition at line 42 of file matexp_visitor.hpp.
|
private |
blocks to be solved
Definition at line 36 of file matexp_visitor.hpp.
|
private |
ordered list of state variables
Definition at line 59 of file matexp_visitor.hpp.
|
private |
blocks to be solved
Definition at line 33 of file matexp_visitor.hpp.