CellMLToolkit.classify_variablesMethod
classify_variables divides all the variables in the doc document into
two categorizes and returns a Dict from Var to Bool:
    true: Var is a left-hand-side variable
    false: Var is not a left-hand-side variable (should be a parameter)
CellMLToolkit.components_ofMethod
components_of converts the output of get_connection_component to a pair
of strings (the names of the components)
CellMLToolkit.find_alg_namesMethod
list_alg_names returns the names of variables that occur on the left-hand-side
of a non-ODE equation; hence are *algebraic* variables
comp is an Ezxml(doc) as returned by list_components
CellMLToolkit.find_closureMethod
find_closure finds the transitive closure of a list of components (l) minus
the list itself, i.e., it returns the list of components in doc which are
reachable through a chain of connections starting from any component in l.
CellMLToolkit.find_equivalence_groupsMethod
find_equivalence_groups categorizes all the variables in the doc document
based on the connections into equivalence groups
it returns a Dictionary of Var to groups (Set of Vars)
CellMLToolkit.find_state_namesMethod
list_state_names returns the names of variables that occur on the left-hand-side
of an ODE; hence are *state* variables
comp is an Ezxml(doc) as returned by list_components
CellMLToolkit.list_all_lhsMethod
list_component_lhs returns a set of Var composed of all variables anywhere in
the doc document that occur on the left-hand-side of an ODE or algebraic equation
CellMLToolkit.list_component_lhsMethod
list_component_lhs returns a set of Var composed of all variables in component
comp that occur on the left-hand-side of an ODE or algebraic equation
CellMLToolkit.list_connection_variablesMethod
list_connection_variables returns a list composed of pairs of variable
for the given connection
conn is an Ezxml(doc) node as returned by list_connections
CellMLToolkit.list_import_componentsMethod
list_import_components returns the list of component nodes of the given
import element
node: an import node as returned by list_imports
CellMLToolkit.list_top_cellml_filesMethod

Given a path to a directory containing multiple CellML files.

Returns the top level files.

Used as a helper function with the CellML Physiome Model repositories.

CellMLToolkit.load_cellmlMethod
load_cellml loads a CellML file and populates a Document structures with
the components and connections.

If resolve = true, load_cellml also resolve the imported components.
CellMLToolkit.post_substitutionMethod
post_substitution generates the substitution rules to be applied to
the merged system after structural_simplify is applied

if changes the names of the independent variable (iv) in each system
to the global iv name

TODO: this function assumes the basic iv name is the same among all systems
CellMLToolkit.pre_substitutionMethod
pre_substitution generates the substitution rules to be applied to
individual systems before structural_simplify merges them together

it morphes variables and parameters to their correct form for ModelingToolkit
based on the global CellML doc information
CellMLToolkit.process_componentMethod
process_component converts a single CellML component to an ODESystem

comp in the name of the component
class is the output of classify_variables
CellMLToolkit.process_componentsMethod
process_components is the main entry point
it processes an doc document and returns a merged ODESystem

use simplify=false only for debugging purposes!
CellMLToolkit.subsystemsMethod
subsystems returns a Dict of the subsystems (keys are Symbols), each one
based on one CellML component of the doc document.

class is the output of classify_variables
CellMLToolkit.variables_ofMethod
components_of converts the output of list_connection_variables to a pair
of strings (the names of the variables)