Skip to content

Commit

Permalink
Bueno-Orovio parameters (#130)
Browse files Browse the repository at this point in the history
* Expose tau_fi and tau_si from BO in the XML interface

* Tests
  • Loading branch information
MatteoSalvador authored Oct 31, 2023
1 parent eec4bd7 commit d18a1fe
Show file tree
Hide file tree
Showing 12 changed files with 27 additions and 26 deletions.
2 changes: 1 addition & 1 deletion Code/Source/svFSI/CepModBo.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
#include "Vector.h"
#include <array>

using BoModelParam = std::array<double,3>;
using BoModelParam = Vector<double>;

/// @brief This module defines data structures for Bueno-Orovio cellular
/// activation model for cardiac electrophysiology.
Expand Down
3 changes: 3 additions & 0 deletions Code/Source/svFSI/Parameters.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1234,6 +1234,9 @@ DomainParameters::DomainParameters()
set_parameter("G_Ks", 0.392, !required, G_Ks);
set_parameter("G_to", 0.294, !required, G_to);

set_parameter("tau_fi", 0.110, !required, tau_fi);
set_parameter("tau_si", 1.88750, !required, tau_si);

set_parameter("ODE_solver", "euler", !required, ode_solver);

set_parameter("Penalty_parameter", 0.0, !required, penalty_parameter);
Expand Down
3 changes: 3 additions & 0 deletions Code/Source/svFSI/Parameters.h
Original file line number Diff line number Diff line change
Expand Up @@ -1009,6 +1009,9 @@ class DomainParameters : public ParameterLists
Parameter<double> G_Ks;
Parameter<double> G_to;

Parameter<double> tau_fi;
Parameter<double> tau_si;

Parameter<std::string> ode_solver;
Parameter<double> penalty_parameter;
Parameter<double> poisson_ratio;
Expand Down
3 changes: 3 additions & 0 deletions Code/Source/svFSI/distribute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1043,6 +1043,9 @@ void dist_eq(ComMod& com_mod, const CmMod& cm_mod, const cmType& cm, const std::
cm.bcast(cm_mod, &cep_mod.ttp.G_Kr);
cm.bcast(cm_mod, cep_mod.ttp.G_Ks);
cm.bcast(cm_mod, cep_mod.ttp.G_to);

cm.bcast(cm_mod, cep_mod.bo.tau_si);
cm.bcast(cm_mod, cep_mod.bo.tau_fi);
}

if ((dmn.phys == EquationType::phys_struct) || (dmn.phys == EquationType::phys_ustruct)) {
Expand Down
4 changes: 4 additions & 0 deletions Code/Source/svFSI/read_files.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,10 @@ void read_cep_domain(Simulation* simulation, EquationParameters* eq_params, Doma
if (domain_params->G_to.defined()) { cep_mod.ttp.G_to[lDmn.cep.imyo - 1] = domain_params->G_to.value(); }
if (domain_params->G_CaL.defined()) { cep_mod.ttp.G_CaL = domain_params->G_CaL.value(); }

// Set Bo parameters.
//
if (domain_params->tau_si.defined()) { cep_mod.bo.tau_si[lDmn.cep.imyo - 1] = domain_params->tau_si.value(); }
if (domain_params->tau_fi.defined()) { cep_mod.bo.tau_fi[lDmn.cep.imyo - 1] = domain_params->tau_fi.value(); }

// Set stimulus parameters.
//
Expand Down
Git LFS file not shown

This file was deleted.

This file was deleted.

Git LFS file not shown
Original file line number Diff line number Diff line change
Expand Up @@ -73,33 +73,21 @@
<Domain id="1" >
<Electrophysiology_model> BO </Electrophysiology_model>

<G_Na> 14.838 </G_Na>
<G_CaL> 3.98E-5 </G_CaL>
<G_Kr> 0.153 </G_Kr>
<G_Ks> 0.392 </G_Ks>
<G_to> 0.294 </G_to>

<Isotropic_conductivity> 0.012571 </Isotropic_conductivity>
<Anisotropic_conductivity> 0.082715 </Anisotropic_conductivity>

<Myocardial_zone> myocardium </Myocardial_zone>
<Myocardial_zone> epicardium </Myocardial_zone>

<ODE_solver> CN </ODE_solver>
</Domain>

<Domain id="2" >
<Electrophysiology_model> BO </Electrophysiology_model>

<G_Na> 14.838 </G_Na>
<G_CaL> 3.98E-5 </G_CaL>
<G_Kr> 0.153 </G_Kr>
<G_Ks> 0.392 </G_Ks>
<G_to> 0.294 </G_to>

<Isotropic_conductivity> 0.012571 </Isotropic_conductivity>
<Anisotropic_conductivity> 0.082715 </Anisotropic_conductivity>

<Myocardial_zone> myocardium </Myocardial_zone>
<Myocardial_zone> epicardium </Myocardial_zone>

<Stimulus type="Istim" >
<Amplitude> -35.714 </Amplitude>
Expand All @@ -108,7 +96,7 @@
<Cycle_length> 10000.0 </Cycle_length>
</Stimulus>

<ODE_solver> CN </ODE_solver>
<ODE_solver> FE </ODE_solver>
</Domain>

<Output type="Spatial" >
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
<Isotropic_conductivity> 0.012571 </Isotropic_conductivity>
<Anisotropic_conductivity> 0.082715 </Anisotropic_conductivity>

<Myocardial_zone> endocardium </Myocardial_zone>
<Myocardial_zone> myocardium </Myocardial_zone>

<ODE_solver> RK4 </ODE_solver>
</Domain>
Expand All @@ -87,7 +87,7 @@
<Isotropic_conductivity> 0.012571 </Isotropic_conductivity>
<Anisotropic_conductivity> 0.082715 </Anisotropic_conductivity>

<Myocardial_zone> endocardium </Myocardial_zone>
<Myocardial_zone> myocardium </Myocardial_zone>

<Stimulus type="Istim" >
<Amplitude> -35.714 </Amplitude>
Expand Down
4 changes: 2 additions & 2 deletions tests/test_integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,8 @@ def test_purkinje(n_proc):
name_ref = "result_" + str(t_max).zfill(3) + ".vtu"
run_with_reference(folder, name_inp, name_ref, field, t_max, n_proc)

@pytest.mark.parametrize("confs_ecgs", [["BICG_CN_myocardium_BO" , -0.0781125, 0.0781125, 0.00885273],
["CG_RK4_endocardium_BO" , -0.0780188, 0.0780188, 0.00884210],
@pytest.mark.parametrize("confs_ecgs", [["BICG_CN_epicardium_BO" , -0.0786707, 0.0786707, 0.00891599],
["CG_RK4_myocardium_BO" , -0.0781115, 0.0781115, 0.00885261],
["GMRES_FE_epicardium_TTP", -0.0786707, 0.0786707, 0.00891599],
["GMRES_FE_pfib_AP" , 0.0786707, -0.0786707, -0.00891599]])
@pytest.mark.parametrize("n_proc", procs)
Expand Down

0 comments on commit d18a1fe

Please sign in to comment.