132 #ifndef MULTI_ION_IF_H 133 #define MULTI_ION_IF_H 139 #include <sys/resource.h> 147 #define FARADAY 96485 153 static const unsigned int MIIF_Format = 1;
154 static const char *Magic_MIIF_ID =
"Dump_MIIF_ID";
202 std::vector<IonIfBase*>
IIF;
226 MULTI_IF() : doppel(false), N_Nodes(NULL), NodeLists(NULL), IIF({}), extUpdateVm(
false), logger(NULL)
250 void initialize_MIIF();
251 void initialize_currents(
double,
int);
253 void compute_ionic_current(
bool flag_send = 1,
bool flag_receive = 1);
257 void sv_dump_add(
int,
const IonType&,
int,
int,
int,
const char *,
const char *);
258 int sv_dump_add_by_name(
int,
char *,
char *,
char *,
char *);
259 void sv_dump_add_by_name_list(
int,
char *,
char *,
char *,
char *,
260 char *,
double,
double);
262 void close_svs_dumps();
263 void dump_luts_MIIF(
bool);
266 void transmem_stim_species(
float,
const char *,
float,
int *,
int);
268 void releaseRealData();
269 void releaseRealDataDuringInit();
271 int adjust_MIIF_variables(
const char* variable,
274 void MIIF_change_dt(
double);
277 void *thread_initialize_MIIF();
290 char*
tokstr_r(
char *s1,
const char *s2,
char **lasts);
301 #define USED_DAT(I, F) ( (I)->get_reqdat()&F || (I)->get_moddat()&F) 314 #define get_plug_params(M, R, P) (P ## _Params *)get_IIF_plugparam(*(M.IIF[R]), P ## _ID) 326 #define SVD_add(I, R, T, M) {T ## _state *sv; int dtype = 0; sv_dump_add(&I, R, \ 327 T ## _ID, offsetof(T ## _state, \ 329 sizeof(sv->M), dtype, # R "." # T "." # M, # T, \ 333 #endif // MULTI_ION_IF_H int ** NodeLists
local partitioned node lists for each IMP stored
int node_idx
local node number
Trace_Info * trace_info
Information about traces.
int * offset
offsets into structure for SV
int n_dumps
keep track of number of dumped time slices
SV_DUMP svd
state variable dump
std::vector< std::reference_wrapper< IonType > > IonTypeList
int * numplugs
number of plugins for each region
void doppel_MIIF(MULTI_IF *orig, MULTI_IF *miif_doppel)
bool found
found on this node
IIF_Mask_t * IIFmask
region for each node
bool doppel
is this a shallow clone?
data structure to manage state variable file dumps
int n
#state variables we want to dump
std::string name
name for MIIF region
data structure to manage trace dumps. Should eventually be combined with the state variable dumps...
int * reg
array to store region ids
IonTypeList iontypes
type for each region
mesh_t
The enum identifying the different meshes we might want to load.
int * size
sizes of SV to dump
int get_plug_flag(char *plgstr, int *out_num_plugins, IonTypeList &out_plugins)
std::vector< IonTypeList > plugtypes
plugins types for each region
int N_IIF
how many different IIF's
bool * contiguous
whether a region is contiguously numbered
std::vector< IonIfBase * > IIF
array of IIF's
void ** svtab
state variable tables
Timers and timer manager.
long nwr
keep track of number of written tokens
int numSubDt
number of sub-dt time steps
void doppel_update(MULTI_IF *orig, MULTI_IF *miif_doppel)
char ** fn
array to store file names
Represents the ionic model and plug-in (IMP) data structure.
size_t * svsize
state variable sizes
GlobalData_t *** ldata
data local to each IMP
void * get_IIF_plugparam(IonIfBase &, int)
void free_doppel(MULTI_IF *m)
int IMPdataLabel2Index(const char *sv)
char * tokstr_r(char *s1, const char *s2, char **lasts)
double t_dump
next instant for sv dump
void open_trace(MULTI_IF *MIIF, int n_traceNodes, int *traceNodes, int *label, opencarp::sf_mesh *imesh)
Set up ionic model traces at some global node numbers.
int * N_Nodes
#nodes for each IMP
opencarp::FILE_SPEC * hdls
array of file handles to sv output files
void dup_IMP_node_state(IonIfBase &IF, int from, int to, GlobalData_t **localdata)
double intv
time interval for sv dumps
void dump_trace(MULTI_IF *MIIF, limpet::Real time)
std::vector< Target > targets
target for each region
int numNode
local number of nodes
bool ignored
globally not found
opencarp::FILE_SPEC logger
Abstract class representing an ionic model type.
bool extUpdateVm
flag indicating update function for Vm
char ** svnames
array to store sv names
Structs and types for (electric) FEM.