123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- // #ifdef __cplusplus
- // extern "C" {
- // #endif
- //========================================================================================================================================================================================================200
- // DEFINE/INCLUDE
- //========================================================================================================================================================================================================200
- //======================================================================================================================================================150
- // COMMON
- //======================================================================================================================================================150
- #include "../common.h" // (in directory)
- //======================================================================================================================================================150
- // END
- //======================================================================================================================================================150
- //========================================================================================================================================================================================================200
- // KERNEL FIN
- //========================================================================================================================================================================================================200
- void
- kernel_fin( fp *initvalu,
- int initvalu_offset_ecc,
- int initvalu_offset_Dyad,
- int initvalu_offset_SL,
- int initvalu_offset_Cyt,
- fp *parameter,
- fp *finavalu,
- fp JCaDyad,
- fp JCaSL,
- fp JCaCyt){
- //=====================================================================
- // VARIABLES
- //=====================================================================
- // decoded input parameters
- fp BtotDyad; //
- fp CaMKIItotDyad; //
- // compute variables
- fp Vmyo; // [L]
- fp Vdyad; // [L]
- fp VSL; // [L]
- // fp kDyadSL; // [L/msec]
- fp kSLmyo; // [L/msec]
- fp k0Boff; // [s^-1]
- fp k0Bon; // [uM^-1 s^-1] kon = koff/Kd
- fp k2Boff; // [s^-1]
- fp k2Bon; // [uM^-1 s^-1]
- // fp k4Boff; // [s^-1]
- fp k4Bon; // [uM^-1 s^-1]
- fp CaMtotDyad;
- fp Bdyad; // [uM dyad]
- fp J_cam_dyadSL; // [uM/msec dyad]
- fp J_ca2cam_dyadSL; // [uM/msec dyad]
- fp J_ca4cam_dyadSL; // [uM/msec dyad]
- fp J_cam_SLmyo; // [umol/msec]
- fp J_ca2cam_SLmyo; // [umol/msec]
- fp J_ca4cam_SLmyo; // [umol/msec]
- //=====================================================================
- // COMPUTATION
- //=====================================================================
- // decoded input parameters
- BtotDyad = parameter[2]; //
- CaMKIItotDyad = parameter[3]; //
- // set variables
- Vmyo = 2.1454e-11; // [L]
- Vdyad = 1.7790e-14; // [L]
- VSL = 6.6013e-13; // [L]
- // kDyadSL = 3.6363e-16; // [L/msec]
- kSLmyo = 8.587e-15; // [L/msec]
- k0Boff = 0.0014; // [s^-1]
- k0Bon = k0Boff/0.2; // [uM^-1 s^-1] kon = koff/Kd
- k2Boff = k0Boff/100; // [s^-1]
- k2Bon = k0Bon; // [uM^-1 s^-1]
- // k4Boff = k2Boff; // [s^-1]
- k4Bon = k0Bon; // [uM^-1 s^-1]
- // ADJUST ECC incorporate Ca buffering from CaM, convert JCaCyt from uM/msec to mM/msec
- finavalu[initvalu_offset_ecc+35] = finavalu[initvalu_offset_ecc+35] + 1e-3*JCaDyad;
- finavalu[initvalu_offset_ecc+36] = finavalu[initvalu_offset_ecc+36] + 1e-3*JCaSL;
- finavalu[initvalu_offset_ecc+37] = finavalu[initvalu_offset_ecc+37] + 1e-3*JCaCyt;
- // incorporate CaM diffusion between compartments
- CaMtotDyad = initvalu[initvalu_offset_Dyad+0]
- + initvalu[initvalu_offset_Dyad+1]
- + initvalu[initvalu_offset_Dyad+2]
- + initvalu[initvalu_offset_Dyad+3]
- + initvalu[initvalu_offset_Dyad+4]
- + initvalu[initvalu_offset_Dyad+5]
- + CaMKIItotDyad * ( initvalu[initvalu_offset_Dyad+6]
- + initvalu[initvalu_offset_Dyad+7]
- + initvalu[initvalu_offset_Dyad+8]
- + initvalu[initvalu_offset_Dyad+9])
- + initvalu[initvalu_offset_Dyad+12]
- + initvalu[initvalu_offset_Dyad+13]
- + initvalu[initvalu_offset_Dyad+14];
- Bdyad = BtotDyad - CaMtotDyad; // [uM dyad]
- J_cam_dyadSL = 1e-3 * ( k0Boff*initvalu[initvalu_offset_Dyad+0] - k0Bon*Bdyad*initvalu[initvalu_offset_SL+0]); // [uM/msec dyad]
- J_ca2cam_dyadSL = 1e-3 * ( k2Boff*initvalu[initvalu_offset_Dyad+1] - k2Bon*Bdyad*initvalu[initvalu_offset_SL+1]); // [uM/msec dyad]
- J_ca4cam_dyadSL = 1e-3 * ( k2Boff*initvalu[initvalu_offset_Dyad+2] - k4Bon*Bdyad*initvalu[initvalu_offset_SL+2]); // [uM/msec dyad]
-
- J_cam_SLmyo = kSLmyo * ( initvalu[initvalu_offset_SL+0] - initvalu[initvalu_offset_Cyt+0]); // [umol/msec]
- J_ca2cam_SLmyo = kSLmyo * ( initvalu[initvalu_offset_SL+1] - initvalu[initvalu_offset_Cyt+1]); // [umol/msec]
- J_ca4cam_SLmyo = kSLmyo * ( initvalu[initvalu_offset_SL+2] - initvalu[initvalu_offset_Cyt+2]); // [umol/msec]
-
- // ADJUST CAM Dyad
- finavalu[initvalu_offset_Dyad+0] = finavalu[initvalu_offset_Dyad+0] - J_cam_dyadSL;
- finavalu[initvalu_offset_Dyad+1] = finavalu[initvalu_offset_Dyad+1] - J_ca2cam_dyadSL;
- finavalu[initvalu_offset_Dyad+2] = finavalu[initvalu_offset_Dyad+2] - J_ca4cam_dyadSL;
-
- // ADJUST CAM Sl
- finavalu[initvalu_offset_SL+0] = finavalu[initvalu_offset_SL+0] + J_cam_dyadSL*Vdyad/VSL - J_cam_SLmyo/VSL;
- finavalu[initvalu_offset_SL+1] = finavalu[initvalu_offset_SL+1] + J_ca2cam_dyadSL*Vdyad/VSL - J_ca2cam_SLmyo/VSL;
- finavalu[initvalu_offset_SL+2] = finavalu[initvalu_offset_SL+2] + J_ca4cam_dyadSL*Vdyad/VSL - J_ca4cam_SLmyo/VSL;
- // ADJUST CAM Cyt
- finavalu[initvalu_offset_Cyt+0] = finavalu[initvalu_offset_Cyt+0] + J_cam_SLmyo/Vmyo;
- finavalu[initvalu_offset_Cyt+1] = finavalu[initvalu_offset_Cyt+1] + J_ca2cam_SLmyo/Vmyo;
- finavalu[initvalu_offset_Cyt+2] = finavalu[initvalu_offset_Cyt+2] + J_ca4cam_SLmyo/Vmyo;
- }
- //========================================================================================================================================================================================================200
- // END
- //========================================================================================================================================================================================================200
- // #ifdef __cplusplus
- // }
- // #endif
|