![]() |
User Guide
|
Visitor for generating CONDUCTANCE statements for ions More...
Visitor for generating CONDUCTANCE statements for ions
This class visits each ion expression I = ... in the BREAKPOINT and symbolically differentiates it to get dI/dV, i.e. the conductance. If this coincides with an existing global variable g (e.g. when I is linear in V) then it will add
If dI/dV is a more complicated expression, it generates a new unique variable name g_unique, and adds two lines
If an ion channel already has a CONDUCTANCE statement then it does not modify it.
Definition at line 55 of file sympy_conductance_visitor.hpp.
#include <sympy_conductance_visitor.hpp>
Private Types | |
| typedef std::map< std::string, std::string > | string_map |
| typedef std::set< std::string > | string_set |
Private Member Functions | |
| std::vector< std::string > | generate_statement_strings (ast::BreakpointBlock &node) |
| void | lookup_useion_statements () |
| void | lookup_nonspecific_statements () |
Static Private Member Functions | |
| static std::string | to_nmodl_for_sympy (const ast::Ast &node) |
Private Attributes | |
| bool | under_breakpoint_block = false |
| true while visiting breakpoint block More... | |
| string_set | all_vars |
| set of all variables for SymPy More... | |
| string_set | i_ignore |
| set of currents to ignore More... | |
| string_map | i_name |
| map between current write names and ion names More... | |
| bool | NONSPECIFIC_CONDUCTANCE_ALREADY_EXISTS = false |
| std::vector< std::string > | ordered_binary_exprs |
| list in order of binary expressions in breakpoint More... | |
| std::vector< std::string > | ordered_binary_exprs_lhs |
| ditto but for LHS of expression only More... | |
| std::map< std::string, std::size_t > | binary_expr_index |
| map from lhs of binary expression to index of expression in above vector More... | |
| std::vector< std::shared_ptr< const ast::Ast > > | use_ion_nodes |
| use ion ast nodes More... | |
| std::vector< std::shared_ptr< const ast::Ast > > | nonspecific_nodes |
| non specific currents More... | |
|
private |
Definition at line 56 of file sympy_conductance_visitor.hpp.
|
private |
Definition at line 57 of file sympy_conductance_visitor.hpp.
|
default |
|
private |
Definition at line 48 of file sympy_conductance_visitor.cpp.
|
private |
Definition at line 133 of file sympy_conductance_visitor.cpp.
|
private |
Definition at line 155 of file sympy_conductance_visitor.cpp.
|
staticprivate |
Definition at line 150 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::BinaryExpression
Implements nmodl::visitor::Visitor.
Definition at line 118 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::BreakpointBlock
Implements nmodl::visitor::Visitor.
Definition at line 190 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConductanceHint
Implements nmodl::visitor::Visitor.
Definition at line 176 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::Program
Implements nmodl::visitor::Visitor.
Definition at line 232 of file sympy_conductance_visitor.cpp.
|
private |
set of all variables for SymPy
Definition at line 64 of file sympy_conductance_visitor.hpp.
|
private |
map from lhs of binary expression to index of expression in above vector
Definition at line 81 of file sympy_conductance_visitor.hpp.
|
private |
set of currents to ignore
Definition at line 67 of file sympy_conductance_visitor.hpp.
|
private |
map between current write names and ion names
Definition at line 70 of file sympy_conductance_visitor.hpp.
|
private |
Definition at line 72 of file sympy_conductance_visitor.hpp.
|
private |
non specific currents
Definition at line 87 of file sympy_conductance_visitor.hpp.
|
private |
list in order of binary expressions in breakpoint
Definition at line 75 of file sympy_conductance_visitor.hpp.
|
private |
ditto but for LHS of expression only
Definition at line 78 of file sympy_conductance_visitor.hpp.
|
private |
true while visiting breakpoint block
Definition at line 61 of file sympy_conductance_visitor.hpp.
|
private |
use ion ast nodes
Definition at line 84 of file sympy_conductance_visitor.hpp.