Skip to content

Commit 9b3fde8

Browse files
Merge pull request #118 from Campbell-Muscle-Lab/twitch_loads
Twitch loads
2 parents 733d801 + 0da3eb6 commit 9b3fde8

28 files changed

Lines changed: 2070 additions & 567 deletions

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,15 +511,16 @@ Gemfile.lock
511511
# Demo files
512512
**/demo_files/**/sim_data/**/*.*
513513
**/demo_files/**/generated/**/*.*
514+
**/demo_files/**/working/**/*.*
514515
**/demo_files/**/generated_char/**/*.*
515516
**/demo_files/**/analysis/**/*.*
516517
**/demo_files/**/protocols/**/*.*
517518
**/demo_files/**/fitting/**/progress/**/*.*
518-
**/demo_files/**/fitting/**/working/**/*.*
519519
**/demo_files/**/sim_output/**/*.*
520520
**/demo_files/**/threads/**/*.*
521521
**/demo_files/**/mle/**/progress/**/*.*
522522
**/demo_files/**/target_data/**/sim_input/**/*.*
523+
**/demo_files/**/electrical_stimulation/**/sim_data_*/**/*.*
523524
!**/demo_files/**/target_data/**/sim_output/**/*.xlsx
524525

525526

bin/FiberCpp.exe

62 KB
Binary file not shown.

bin/FiberCpp.pdb

800 KB
Binary file not shown.

code/FiberCpp/FiberSim.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,26 @@
2929
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
3030
<ConfigurationType>Application</ConfigurationType>
3131
<UseDebugLibraries>true</UseDebugLibraries>
32-
<PlatformToolset>v143</PlatformToolset>
32+
<PlatformToolset>v145</PlatformToolset>
3333
<CharacterSet>Unicode</CharacterSet>
3434
</PropertyGroup>
3535
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
3636
<ConfigurationType>Application</ConfigurationType>
3737
<UseDebugLibraries>false</UseDebugLibraries>
38-
<PlatformToolset>v143</PlatformToolset>
38+
<PlatformToolset>v145</PlatformToolset>
3939
<WholeProgramOptimization>true</WholeProgramOptimization>
4040
<CharacterSet>Unicode</CharacterSet>
4141
</PropertyGroup>
4242
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
4343
<ConfigurationType>Application</ConfigurationType>
4444
<UseDebugLibraries>true</UseDebugLibraries>
45-
<PlatformToolset>v143</PlatformToolset>
45+
<PlatformToolset>v145</PlatformToolset>
4646
<CharacterSet>Unicode</CharacterSet>
4747
</PropertyGroup>
4848
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
4949
<ConfigurationType>Application</ConfigurationType>
5050
<UseDebugLibraries>false</UseDebugLibraries>
51-
<PlatformToolset>v143</PlatformToolset>
51+
<PlatformToolset>v145</PlatformToolset>
5252
<WholeProgramOptimization>true</WholeProgramOptimization>
5353
<CharacterSet>Unicode</CharacterSet>
5454
</PropertyGroup>

code/FiberCpp/FiberSim_model.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,11 @@ void FiberSim_model::set_FiberSim_model_parameters_from_JSON_file_string(char JS
521521
}
522522
}
523523

524+
if (JSON_functions::check_JSON_member_exists(mybpc_parameters, "c_binds_only_to_active"))
525+
c_binds_only_to_active = mybpc_parameters["c_binds_only_to_active"].GetInt();
526+
else
527+
c_binds_only_to_active = 1;
528+
524529
// If there is an array of isotypes, save it to the appropriate short vector
525530
if (JSON_functions::is_JSON_member(mybpc_parameters, "c_isotype_ints"))
526531
{

code/FiberCpp/FiberSim_model.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,9 @@ class FiberSim_model
226226

227227
int c_no_of_pc_states; /**< max number of MyBPC states */
228228

229+
int c_binds_only_to_active; /**< 1 means mybpc can only bind to active sites (default)
230+
0 means can bind to any unbound site on actin */
231+
229232
gsl_vector* c_isotype_props; /**< gsl_vector holding the C-protein isotypes proportions */
230233

231234
gsl_vector_short* c_isotype_ints; /**< gsl_vector_short holding C-protein isotype */

code/FiberCpp/FiberSim_options.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ FiberSim_options::FiberSim_options(char JSON_options_file_string[])
8282
afterload_factor_s = GSL_POSINF; /**< default value for afterload factor s */
8383
afterload_factor_multiplier = 1.0; /**< default value for afterload multiplier */
8484

85+
afterload_min_init_time_s = 0; /**< min time in s to initiate afterload */
86+
8587
start_status_time_step = 0; /**< default value */
8688
stop_status_time_step = 0; /**< default value */
8789
skip_status_time_step = 0; /**< default value */
@@ -372,6 +374,11 @@ void FiberSim_options::set_FiberSim_options_from_JSON_file_string(char JSON_file
372374
{
373375
afterload_factor_multiplier = afterload["factor_multiplier"].GetDouble();
374376
}
377+
378+
if (JSON_functions::check_JSON_member_exists(afterload, "min_init_time_s"))
379+
{
380+
afterload_min_init_time_s = afterload["min_init_time_s"].GetDouble();
381+
}
375382
}
376383

377384
// Now check for logging

code/FiberCpp/FiberSim_options.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ class FiberSim_options
152152
double afterload_factor_multiplier; /** double defining the factor to increase the
153153
afterload */
154154

155+
double afterload_min_init_time_s; /**< min time in s at which to initiate the
156+
afterload control */
157+
155158
// Functions
156159

157160
/**

code/FiberCpp/half_sarcomere.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3187,9 +3187,12 @@ int half_sarcomere::return_c_transition(double time_step, int m_counter, int pc_
31873187
continue; // binding site is already occupied
31883188
}
31893189

3190-
if (gsl_vector_short_get(p_af[a_f]->bs_state, bs_ind) == 1)
3190+
if (p_fs_model->c_binds_only_to_active)
31913191
{
3192-
continue; // binding site is off
3192+
if (gsl_vector_short_get(p_af[a_f]->bs_state, bs_ind) == 1)
3193+
{
3194+
continue; // binding site is off
3195+
}
31933196
}
31943197

31953198
// Transition is possible

code/FiberCpp/muscle.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,8 @@ size_t muscle::afterload_time_step(int protocol_index)
518518

519519
double afterload; // the afterload to work against
520520

521+
double afterload_min_init_time_s; // min time in s to initate the afterload
522+
521523
// Code
522524

523525
// Extract the time-step and pCa
@@ -531,6 +533,8 @@ size_t muscle::afterload_time_step(int protocol_index)
531533
afterload = afterload * p_fs_options->afterload_factor_multiplier;
532534
}
533535

536+
afterload_min_init_time_s = p_fs_options->afterload_min_init_time_s;
537+
534538
// Check what kind of muscle we have
535539
if ((p_fs_model[0]->no_of_half_sarcomeres == 1) && (p_sc == NULL))
536540
{
@@ -578,7 +582,9 @@ size_t muscle::afterload_time_step(int protocol_index)
578582
m_length = m_length + adjustment;
579583
lattice_iterations = p_hs[0]->update_lattice(time_step_s, adjustment);
580584

581-
if ((afterload_mode == 0) && (p_hs[0]->hs_force >= afterload))
585+
if ((afterload_mode == 0) &&
586+
(m_force >= afterload) &&
587+
(m_time_s >= afterload_min_init_time_s))
582588
{
583589
// Switch to isotonic mode
584590
afterload_mode = 1;
@@ -641,7 +647,9 @@ size_t muscle::afterload_time_step(int protocol_index)
641647
// Length control
642648
lattice_iterations = length_control_myofibril_with_series_compliance(protocol_index);
643649

644-
if ((afterload_mode == 0) && (m_force >= afterload))
650+
if ((afterload_mode == 0) &&
651+
(m_force >= afterload) &&
652+
(m_time_s >= afterload_min_init_time_s))
645653
{
646654
afterload_mode = 1;
647655
}

0 commit comments

Comments
 (0)