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 54 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 55 of file sympy_conductance_visitor.hpp.
|
private |
Definition at line 56 of file sympy_conductance_visitor.hpp.
|
default |
|
private |
Definition at line 48 of file sympy_conductance_visitor.cpp.
|
private |
Definition at line 139 of file sympy_conductance_visitor.cpp.
|
private |
Definition at line 161 of file sympy_conductance_visitor.cpp.
|
staticprivate |
Definition at line 156 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::BinaryExpression
Implements nmodl::visitor::Visitor.
Definition at line 124 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::BreakpointBlock
Implements nmodl::visitor::Visitor.
Definition at line 196 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::ConductanceHint
Implements nmodl::visitor::Visitor.
Definition at line 182 of file sympy_conductance_visitor.cpp.
|
overridevirtual |
visit node of type ast::Program
Implements nmodl::visitor::Visitor.
Definition at line 238 of file sympy_conductance_visitor.cpp.
|
private |
set of all variables for SymPy
Definition at line 63 of file sympy_conductance_visitor.hpp.
|
private |
map from lhs of binary expression to index of expression in above vector
Definition at line 80 of file sympy_conductance_visitor.hpp.
|
private |
set of currents to ignore
Definition at line 66 of file sympy_conductance_visitor.hpp.
|
private |
map between current write names and ion names
Definition at line 69 of file sympy_conductance_visitor.hpp.
|
private |
Definition at line 71 of file sympy_conductance_visitor.hpp.
|
private |
non specific currents
Definition at line 86 of file sympy_conductance_visitor.hpp.
|
private |
list in order of binary expressions in breakpoint
Definition at line 74 of file sympy_conductance_visitor.hpp.
|
private |
ditto but for LHS of expression only
Definition at line 77 of file sympy_conductance_visitor.hpp.
|
private |
true while visiting breakpoint block
Definition at line 60 of file sympy_conductance_visitor.hpp.
|
private |
use ion ast nodes
Definition at line 83 of file sympy_conductance_visitor.hpp.