openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
|
#include <electrics_eikonal.h>
Classes | |
struct | diffusion_current |
Public Types | |
enum | Idiff_t { FOOT = 0, GAUSS = 1 } |
Public Member Functions | |
eikonal_solver () | |
~eikonal_solver () | |
void | init () |
Initialize vectors and variables in the eikonal_solver class. More... | |
bool | determine_model_to_run (double &time) |
Determine the next model to run in the alternation between RD and Eikonal. More... | |
void | set_initial_cv () |
Set the initial conduction velocity (CV) parameters for the nodes in the mesh. More... | |
void | set_stimuli (SF::vector< stimulus > &stimuli) |
Simple setter for stimulus vector. More... | |
void | clean_list () |
Clean the list of nodes by resetting their status and tracking changes based on the time step of the RD model. More... | |
void | save_eikonal_state (const char *tsav_ext) |
Save the current state of variables related to the Eikonal simulation to a file to initialize a future simulation. More... | |
void | update_repolarization_times (const Ionics &ion) |
Estimates initial repolarization times (T_R) in Step D of DREAM. More... | |
void | cycFIM () |
Implementation of the cyclical fast iterative method used in step A of the DREAM model. More... | |
void | FIM () |
Standard fast iterative method to solve eikonal equation with active list approach. More... | |
void | update_repolarization_times_from_rd (sf_vec &Vmv, sf_vec &Vmv_old, double time) |
Checks if Vm crosses the repolarization threshold during each time step of the parabolic solver and updates T_R accordingly. More... | |
void | compute_diffusion_current (const double &time, sf_vec &vm) |
Compute the diffusion current approximation I_diff in all activated nodes. Only converged nodes are considered. More... | |
void | compute_bc () |
Computes and updates boundary counditions in cycFIM. More... | |
Definition at line 78 of file electrics_eikonal.h.
Enumerator | |
---|---|
FOOT | |
GAUSS |
Definition at line 117 of file electrics_eikonal.h.
|
inline |
Definition at line 81 of file electrics_eikonal.h.
|
inline |
Definition at line 167 of file electrics_eikonal.h.
void opencarp::eikonal_solver::clean_list | ( | ) |
Clean the list of nodes by resetting their status and tracking changes based on the time step of the RD model.
This function iterates through a list of nodes and checks if their activation time (T_A[j]) is less than the current time managed by user_globals::tm_manager->time
. If so, it performs the following operations:
List
, T_A
, TA_old
, Status
, and num_changes2
. user_globals::tm_manager->time
for the current time threshold. It makes sure that activation times behind the time step of the RD model are not considered. Definition at line 907 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::compute_bc | ( | ) |
Computes and updates boundary counditions in cycFIM.
This function handles the application of stimulus to nodes in the system based on their activation times and other relevant parameters. It iterates through a list of stimulus points and updates node status, activation times based on the refractory states at the time of each stimuli. It dynamically adapts to the state of the simulation when the boundary condition is computed.
Definition at line 963 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::compute_diffusion_current | ( | const double & | time, |
sf_vec & | vm | ||
) |
Compute the diffusion current approximation I_diff in all activated nodes. Only converged nodes are considered.
time | Current simulation time. |
vm | Reference to pointer holding current Vm values. |
Definition at line 1751 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::cycFIM | ( | ) |
Implementation of the cyclical fast iterative method used in step A of the DREAM model.
Definition at line 1144 of file electrics_eikonal.cc.
bool opencarp::eikonal_solver::determine_model_to_run | ( | double & | time | ) |
Determine the next model to run in the alternation between RD and Eikonal.
This function decides which model to run next based on the DREAM condition. If the output value is true, it will run the RD model; if false, it will run the Eikonal model.
time | The current time step in the RD model used to evaluate the conditions. |
Definition at line 804 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::FIM | ( | ) |
Standard fast iterative method to solve eikonal equation with active list approach.
Definition at line 1072 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::init | ( | ) |
Initialize vectors and variables in the eikonal_solver class.
Definition at line 686 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::save_eikonal_state | ( | const char * | tsav_ext | ) |
Save the current state of variables related to the Eikonal simulation to a file to initialize a future simulation.
This function saves the current state of variables, including activation times (T_A), repolazitaion times (T_R), old activation times (TA_old), and other required variables
The data is saved in a structured format where each line corresponds to a node: The file is named based on the param_globals::write_statef
and tsav_ext
parameters.
tsav_ext | Extension to append to the file name. |
Definition at line 1654 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::set_initial_cv | ( | ) |
Set the initial conduction velocity (CV) parameters for the nodes in the mesh.
This function initializes the reference conduction velocity and related parameters of restitution for each node in the mesh based on predefined global regions. It iterates over the regions and their respective IDs, retrieving the vertices for each region and setting the corresponding CV parameters. Additionally, it handles the scaling of CV based on external data if specified.
Definition at line 816 of file electrics_eikonal.cc.
|
inline |
Simple setter for stimulus vector.
Definition at line 201 of file electrics_eikonal.h.
void opencarp::eikonal_solver::update_repolarization_times | ( | const Ionics & | ion | ) |
Estimates initial repolarization times (T_R) in Step D of DREAM.
This function performs a short run of the ionic model (not a full RD simulation) to update T_R. It only iterates over nodes that do not have an up to date value of T_R. When detected, the current simulation time is stored in T_R[ind_nodes]
. The function resets state variables to their pre-call values.
ion | The Ionics object containing information about the ionic model. |
Definition at line 1685 of file electrics_eikonal.cc.
void opencarp::eikonal_solver::update_repolarization_times_from_rd | ( | sf_vec & | Vmv, |
sf_vec & | Vmv_old, | ||
double | time | ||
) |
Checks if Vm crosses the repolarization threshold during each time step of the parabolic solver and updates T_R accordingly.
Vmv | Reference to pointer holding current Vm values. |
Vmv_old | Reference to pointer holding previous Vm values. |
time | Current simulation time, used to update T_R[ind_nodes] when a recovery event is detected. |
Definition at line 1669 of file electrics_eikonal.cc.
SF_real opencarp::eikonal_solver::A |
Definition at line 93 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::a |
Definition at line 111 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::a1 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::a2 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::actMAX = 0 |
Definition at line 160 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::actMIN = 0 |
Definition at line 160 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::ae |
Definition at line 95 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::asol |
Definition at line 110 of file electrics_eikonal.h.
sf_vec* opencarp::eikonal_solver::AT = nullptr |
Definition at line 152 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::B |
Definition at line 93 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::b |
Definition at line 111 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::b1 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::b2 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::be |
Definition at line 96 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::bsol |
Definition at line 110 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::C |
Definition at line 93 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c1 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c2 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c3 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c4 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c5 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::c6 |
Definition at line 107 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::ce |
Definition at line 97 of file electrics_eikonal.h.
bool opencarp::eikonal_solver::condign1 |
Definition at line 165 of file electrics_eikonal.h.
bool opencarp::eikonal_solver::condign2 |
Definition at line 165 of file electrics_eikonal.h.
bool opencarp::eikonal_solver::condign3 |
Definition at line 165 of file electrics_eikonal.h.
bool opencarp::eikonal_solver::condign4 |
Definition at line 165 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::cv_ar_n |
Definition at line 150 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::cv_ar_t |
Definition at line 150 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::CV_l |
Definition at line 87 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::CVnodes |
Definition at line 150 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::CVnodes_mod |
Definition at line 150 of file electrics_eikonal.h.
SF::dmat<double> opencarp::eikonal_solver::D |
Definition at line 158 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::D_I |
Definition at line 139 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::derivat_a |
Definition at line 112 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::derivat_b |
Definition at line 112 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::det |
Definition at line 98 of file electrics_eikonal.h.
double opencarp::eikonal_solver::DI |
Definition at line 114 of file electrics_eikonal.h.
SF::vector<diffusion_current> opencarp::eikonal_solver::diff_cur |
Definition at line 138 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::e2n_cnt |
Definition at line 156 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::e2n_con |
Definition at line 144 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::elem_start |
Definition at line 145 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::fiber_node |
Definition at line 148 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::Frac |
Definition at line 99 of file electrics_eikonal.h.
SF::dmat<double> opencarp::eikonal_solver::iD |
Definition at line 158 of file electrics_eikonal.h.
sf_vec* opencarp::eikonal_solver::Idiff = nullptr |
Definition at line 151 of file electrics_eikonal.h.
Definition at line 119 of file electrics_eikonal.h.
mesh_int_t opencarp::eikonal_solver::Index_currStim |
Definition at line 88 of file electrics_eikonal.h.
const double opencarp::eikonal_solver::inf = std::numeric_limits<double>::infinity() |
Definition at line 90 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::j_cvrest |
Definition at line 150 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::k_cvrest |
Definition at line 150 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::l_cvrest |
Definition at line 150 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::lam |
Definition at line 94 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::List |
Definition at line 140 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_cnt |
Definition at line 156 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_con |
Definition at line 156 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_dsp |
Definition at line 156 of file electrics_eikonal.h.
std::vector<mesh_int_t> opencarp::eikonal_solver::n2n_connect |
Definition at line 155 of file electrics_eikonal.h.
std::vector<mesh_int_t> opencarp::eikonal_solver::n2n_dsp |
Definition at line 155 of file electrics_eikonal.h.
node_stats opencarp::eikonal_solver::nodeData |
Definition at line 104 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::nReadded2List |
Definition at line 140 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::Num |
Definition at line 99 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::num_changes |
Definition at line 140 of file electrics_eikonal.h.
size_t opencarp::eikonal_solver::num_pts |
Definition at line 83 of file electrics_eikonal.h.
mesh_int_t opencarp::eikonal_solver::numPtsxElem |
Definition at line 85 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::p1 |
Definition at line 101 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::p2 |
Definition at line 101 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::p_cvrest |
Definition at line 150 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::R1 |
Definition at line 109 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::R2 |
Definition at line 109 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::R3 |
Definition at line 109 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::R4 |
Definition at line 109 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::R5 |
Definition at line 109 of file electrics_eikonal.h.
sf_vec* opencarp::eikonal_solver::RT = nullptr |
Definition at line 153 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::s1 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::s2 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::s3 |
Definition at line 108 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::s4 |
Definition at line 108 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::sheet_node |
Definition at line 148 of file electrics_eikonal.h.
eikonal_solver_stats opencarp::eikonal_solver::stats |
Definition at line 163 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::stim_status |
Definition at line 140 of file electrics_eikonal.h.
SF::vector<mesh_int_t> opencarp::eikonal_solver::StimulusPoints |
Definition at line 141 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::StimulusTimes |
Definition at line 142 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::T_A |
Definition at line 139 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::T_R |
Definition at line 139 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::TA |
Definition at line 100 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::TA_old |
Definition at line 139 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::TA_ori |
Definition at line 100 of file electrics_eikonal.h.
SF_real opencarp::eikonal_solver::time2stop_eikonal |
Definition at line 86 of file electrics_eikonal.h.
bool opencarp::eikonal_solver::twoFib |
Definition at line 146 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::x_coord |
Definition at line 149 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::y_coord |
Definition at line 149 of file electrics_eikonal.h.
SF::vector<SF_real> opencarp::eikonal_solver::z_coord |
Definition at line 149 of file electrics_eikonal.h.