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