openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
Classes | Namespaces | Macros | Functions
ION_IF.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#include <stdexcept>
#include "LUT.h"
#include "ODEint.h"
#include <math.h>
#include <assert.h>
#include <functional>
#include "basics.h"
#include "target.h"
#include "ion_type.h"
#include "ION_IF_sv.h"
Include dependency graph for ION_IF.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  limpet::tc_grp
 time constant groups More...
 
struct  limpet::ts
 time stepper More...
 
struct  limpet::SV_TAB
 array of stat variable structures More...
 
struct  limpet::cell_geom
 
struct  limpet::IMPinfo
 
class  limpet::IonIfBase
 Represents the ionic model and plug-in (IMP) data structure. More...
 
class  limpet::IonIf< T >
 Child class of IonIfBase specialized for each ionic model type. More...
 
class  limpet::IonIf< T >::LimpetArray< S >
 Utility class for handling arrays of data used by IMPs. More...
 

Namespaces

 limpet
 

Macros

#define M_PI   3.14159265358979323846264338327
 
#define heav(x)   ( (x)<0 ? 0 : 1)
 
#define sign(x)   ( (x)<0 ? -1 : 1 )
 
#define square(x)   ((x)*(x))
 
#define cube(x)   ((x)*(x)*(x))
 
#define MPI_RESTORE_IMP_POLL_BUFSIZE_TAG   10
 
#define MPI_RESTORE_IMP_SNDRCV_BUFFER_TAG   11
 
#define MPI_DUMP_IMP_POLL_BUFSIZE_TAG   20
 
#define MPI_DUMP_IMP_SNDRCV_BUFFER_TAG   21
 
#define MPI_DUMP_SVS_POLL_BUFSIZE_TAG   30
 
#define MPI_DUMP_SVS_SNDRCV_BUFFER_TAG   31
 
#define NDEF   0
 definition of cell geometry More...
 
#define CHANGE_PARAM(T, P, V, F)
 

Functions

void limpet::initialize_ts (ts *tstp, int ng, int *skp, double dt)
 
void limpet::update_ts (ts *ptstp)
 
void limpet::SV_alloc (SV_TAB *psv, int numSeg, int struct_size)
 
void limpet::SV_free (SV_TAB *psv)
 
void limpet::free_sv_table (void *)
 
void limpet::print_IMPs (void)
 
bool limpet::flag_set (const char *flags, const char *target)
 
void limpet::print_models (bool)
 
float limpet::modify_param (float a, char *expr)
 
int limpet::process_param_mod (char *pstr, char *par, char *mod)
 
char * limpet::get_typename (int type)
 
bool limpet::verify_flags (const char *flags, const char *given)
 
int limpet::load_ionic_module (const char *)
 
char * limpet::get_next_list (char *lst, char delimiter)
 
SVputfcn limpet::getPutSV (SVgetfcn)
 

Macro Definition Documentation

◆ CHANGE_PARAM

#define CHANGE_PARAM (   T,
  P,
  V,
 
)
Value:
do { \
((T##_Params *)P)->V = modify_param( ((T##_Params *)P)->V, F ); \
log_msg( _nc_logf,0, 0, " %-20s modifier: %-15s value: %g",\
#V,F,(float)((T##_Params *)P)->V);} while (0)
float modify_param(float a, char *expr)
FILE_SPEC _nc_logf
Definition: ION_IF.cc:84

Definition at line 936 of file ION_IF.h.

◆ cube

#define cube (   x)    ((x)*(x)*(x))

Definition at line 58 of file ION_IF.h.

◆ heav

#define heav (   x)    ( (x)<0 ? 0 : 1)

Definition at line 55 of file ION_IF.h.

◆ M_PI

#define M_PI   3.14159265358979323846264338327

Definition at line 51 of file ION_IF.h.

◆ MPI_DUMP_IMP_POLL_BUFSIZE_TAG

#define MPI_DUMP_IMP_POLL_BUFSIZE_TAG   20

Definition at line 63 of file ION_IF.h.

◆ MPI_DUMP_IMP_SNDRCV_BUFFER_TAG

#define MPI_DUMP_IMP_SNDRCV_BUFFER_TAG   21

Definition at line 64 of file ION_IF.h.

◆ MPI_DUMP_SVS_POLL_BUFSIZE_TAG

#define MPI_DUMP_SVS_POLL_BUFSIZE_TAG   30

Definition at line 65 of file ION_IF.h.

◆ MPI_DUMP_SVS_SNDRCV_BUFFER_TAG

#define MPI_DUMP_SVS_SNDRCV_BUFFER_TAG   31

Definition at line 66 of file ION_IF.h.

◆ MPI_RESTORE_IMP_POLL_BUFSIZE_TAG

#define MPI_RESTORE_IMP_POLL_BUFSIZE_TAG   10

Definition at line 61 of file ION_IF.h.

◆ MPI_RESTORE_IMP_SNDRCV_BUFFER_TAG

#define MPI_RESTORE_IMP_SNDRCV_BUFFER_TAG   11

Definition at line 62 of file ION_IF.h.

◆ NDEF

#define NDEF   0

definition of cell geometry

Each ionic model is based on an underlying cell geometry. Several factors depend on the geometry like conversion factors how currents crossing the membrane translate into a change in ionic concentration. This structure is defined to provide a standardized mechanisms to define cell geometry and subdomain fractions to compute all dependent factors automatically. These factors can be accessed by plugins to derive factors for concentration updates.

Definition at line 112 of file ION_IF.h.

◆ sign

#define sign (   x)    ( (x)<0 ? -1 : 1 )

Definition at line 56 of file ION_IF.h.

◆ square

#define square (   x)    ((x)*(x))

Definition at line 57 of file ION_IF.h.