openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
Classes | Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
opencarp::eikonal_solver Class Reference

#include <electrics_eikonal.h>

Collaboration diagram for opencarp::eikonal_solver:

Classes

struct  diffusion_current
 
struct  VerifyEntry
 

Public Types

enum  Idiff_t { FOOT = 0 , GAUSS = 1 }
 
enum class  StimStatus : mesh_int_t { None = 0 , Success = 1 , Failed = 2 , Subthreshold = 3 }
 
enum class  RepolMode { Normal , FailedStim }
 
enum class  VerifyResult { Verified , Overestimated , Unresolved }
 
enum class  DebugCase {
  ListIter , ListReenter , NBStimulusEnter , FailedReenter ,
  Stimulated , UnsuccessfulStimulated , RejectedNonFiring , ExitsListStimulated ,
  ExitsListInvalidUpdate , MaskedUntrusted , UnmaskedUntrusted , Unknown
}
 
enum class  ElementCandidate {
  SELECTED , TETRAHEDRON , TRIANGLE , EDGE ,
  UNKNOWN
}
 

Public Member Functions

 eikonal_solver ()
 
 ~eikonal_solver ()
 
void init ()
 Initialize vectors and variables in the eikonal_solver class. More...
 
bool should_solve_reaction_diffusion (double &time)
 Determine the next model to run in the alternation between RD and Eikonal. 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 *roe_fnm)
 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, RepolMode mode)
 Estimates repolarization times (T_R) via a short ionic-model-only integration. More...
 
void cycFIM (const Ionics &ion)
 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 deep_debug_log (DebugCase debug_case, mesh_int_t index_ref=0, mesh_int_t ind_target=0)
 Logs detailed debug information for a specific node in the Eikonal simulation. More...
 
void LogEikonalCandidate (ElementCandidate type, mesh_int_t ind_target, const int *contributors, size_t num_contributors, mesh_real_t candidate_TA, mesh_real_t candidate_scaling_CV, int counter)
 Logs detailed information about an Eikonal candidate update for a specific node. More...
 
void LogPhaseOneVerify (mesh_int_t indX, SF_real ta_sweep, SF_real ta_verified, VerifyResult result, bool forceConverge)
 Logs the outcome of post-sweep Phase 1 verification for a freshly-converged node. More...
 
void update_repolarization_times_from_rd (sf_vec &Vmv, sf_vec &Vmv_old, double time)
 Updates node repolarization times based on transmembrane voltage crossing. More...
 
void compute_diffusion_current (const double &time, sf_vec &vm)
 Computes the stimulus-driven diffusion current at mesh nodes. More...
 
void init_imp_region_properties (FILE_SPEC logger)
 Initializes diffusion current models and CV restitution parameters per mesh node. More...
 

Public Attributes

const double inf = std::numeric_limits<double>::infinity()
 
node_stats nodeData
 
FILE_SPEC deepDebugLogger = NULL
 
bool detailed_debug_enabled = false
 
Idiff_t Idiff_tech = FOOT
 
SF::vector< diffusion_current > diff_cur
 
SF::vector< SF_real > T_A
 
SF::vector< SF_real > T_R
 
SF::vector< SF_real > TA_old
 
SF::vector< SF_real > D_I
 
SF::vector< mesh_int_t > List
 
SF::vector< mesh_int_t > num_changes
 
SF::vector< mesh_int_t > nReadded2List
 
SF::vector< mesh_int_t > StimulusPoints
 
std::vector< bool > is_stimulus_target
 
SF::vector< StimStatus > stim_status
 
SF::vector< SF_real > StimulusTimes
 
SF::vector< SF_real > StimulusDurations
 
SF::vector< SF_real > StimulusStrengths
 
SF::vector< SF_real > stim_strength
 
SF::vector< SF_real > stim_duration
 
SF::vector< SF_real > stim_start
 
std::vector< long > capture_candidate
 
std::vector< size_t > last_noncapturing_row
 
SF::vector< SF_real > last_noncapturing_stim
 
SF::vector< SF_real > rejected_TA
 
SF::vector< SF_real > rejected_at
 
SF::vector< SF_real > captured_onset
 
SF::vector< SF_real > captured_TA
 
SF::vector< int > StimulusOrigIndex
 
std::vector< bool > warned_failed_capture
 
std::vector< bool > warned_zero_strength
 
std::vector< bool > stim_failed_now
 
std::vector< mesh_int_t > stim_failed_nodes
 
SF::vector< SF_real > failed_stim_time
 
SF::vector< SF_real > T_R_before_failed_stim
 
bool warned_cycle_stall = false
 
bool warned_sweep_stall = false
 
long long num_past_activations = 0
 
size_t Index_currStim
 
mesh_int_t num_active_nodes = 0
 
SF_real actMIN = std::numeric_limits<double>::quiet_NaN()
 
SF_real actMAX = std::numeric_limits<double>::quiet_NaN()
 
SF_real maxadvance = std::numeric_limits<double>::quiet_NaN()
 
SF_real loaded_save_time = -1.0
 
mesh_int_t MESH_SIZE
 
bool twoFib
 
size_t num_pts
 
SF::vector< mesh_int_t > e2n_con
 
SF::vector< mesh_int_t > elem_start
 
std::vector< mesh_int_t > n2n_connect
 
std::vector< mesh_int_t > n2n_dsp
 
SF::vector< mesh_int_t > e2n_cnt
 
SF::vector< mesh_int_t > n2e_cnt
 
SF::vector< mesh_int_t > n2e_con
 
SF::vector< mesh_int_t > n2e_dsp
 
std::vector< SF::dmat< double > > S
 
std::vector< double > CV_L
 
SF::vector< SF_real > rho_cvrest
 
SF::vector< SF_real > kappa_cvrest
 
SF::vector< SF_real > theta_cvrest
 
SF::vector< SF_real > denom_cvrest
 
sf_vec * Idiff = nullptr
 
sf_vec * AT = nullptr
 
sf_vec * RT = nullptr
 
eikonal_solver_stats stats
 

Static Public Attributes

static constexpr double STIM_CAPTURE_WINDOW = 30.0
 
static constexpr size_t NO_PULSE = static_cast<size_t>(-1)
 

Detailed Description

Definition at line 67 of file electrics_eikonal.h.

Member Enumeration Documentation

◆ DebugCase

Enumerator
ListIter 
ListReenter 
NBStimulusEnter 
FailedReenter 
Stimulated 
UnsuccessfulStimulated 
RejectedNonFiring 
ExitsListStimulated 
ExitsListInvalidUpdate 
MaskedUntrusted 
UnmaskedUntrusted 
Unknown 

Definition at line 199 of file electrics_eikonal.h.

◆ ElementCandidate

Enumerator
SELECTED 
TETRAHEDRON 
TRIANGLE 
EDGE 
UNKNOWN 

Definition at line 216 of file electrics_eikonal.h.

◆ Idiff_t

Enumerator
FOOT 
GAUSS 

Definition at line 87 of file electrics_eikonal.h.

◆ RepolMode

Enumerator
Normal 
FailedStim 

Definition at line 126 of file electrics_eikonal.h.

◆ StimStatus

Enumerator
None 
Success 
Failed 
Subthreshold 

Definition at line 108 of file electrics_eikonal.h.

◆ VerifyResult

Enumerator
Verified 
Overestimated 
Unresolved 

Definition at line 132 of file electrics_eikonal.h.

Constructor & Destructor Documentation

◆ eikonal_solver()

opencarp::eikonal_solver::eikonal_solver ( )
inline

Definition at line 70 of file electrics_eikonal.h.

◆ ~eikonal_solver()

opencarp::eikonal_solver::~eikonal_solver ( )
inline

Definition at line 224 of file electrics_eikonal.h.

Here is the call graph for this function:

Member Function Documentation

◆ clean_list()

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:

  • Updates the old activation time (TA_old[j]) with the current activation time (T_A[j]).
  • Resets the status of the node to 0.
  • Resets the change counter of number of times the node reenter the list (num_changes2[j]) to 0.
  • If the node is marked as active in the list (List[j] == 1), it marks it as inactive (List[j] = 0).
Note
The function depends on the existence of the global variables 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 2269 of file electrics_eikonal.cc.

◆ compute_diffusion_current()

void opencarp::eikonal_solver::compute_diffusion_current ( const double &  time,
sf_vec &  vm 
)

Computes the stimulus-driven diffusion current at mesh nodes.

This function evaluates the time-dependent diffusion (stimulus) current for algebraic nodes in the mesh, based on the activation times and node-specific diffusion current models. The result is stored in Idiff for later use in the parabolic solver.

Parameters
timeCurrent simulation time.
vmVector of nodal transmembrane voltages, used to evaluate voltage-dependent stimulus models.
  • Iterates over all algebraic nodes in the mesh.
  • For each node:
    • Only proceeds if the node is within its stimulus-active window:

      \[ TA \leq time \leq TA + 5 \]

      and List[node] == 0.
    • Computes time since activation:

      \[ dT = time - TA. \]

    • Selects the node-specific diffusion current model:
      • GAUSS: Three Gaussian pulses with parameters $ \alpha_i, \beta_i, \gamma_i $, producing:

        \[ I = \sum_{i=1}^3 \alpha_i \exp\!\Big(-\Big(\frac{dT - \beta_i}{\gamma_i}\Big)^2\Big). \]

      • Default: Exponential form with on/off gating (foot current):

        \[ I = \frac{A_F}{\tau_F} \exp(dT / \tau_F) \cdot e_{\text{on}} \cdot e_{\text{off}}, \]

        where:
        • $ e_{\text{on}} = 1 $ if dT ≥ 0 else 0,
        • $ e_{\text{off}} = 1 $ if vm < V_th else 0.
  • The computed current is written to Idiff at the PETSc local index corresponding to the node.

Notes

  • Execution time is accumulated in stats.slvtime_B.
See also
diff_cur, Idiff, T_A

Definition at line 2432 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ cycFIM()

void opencarp::eikonal_solver::cycFIM ( const Ionics &  ion)

Implementation of the cyclical fast iterative method used in step A of the DREAM model.

Definition at line 1196 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ deep_debug_log()

void opencarp::eikonal_solver::deep_debug_log ( DebugCase  debug_case,
mesh_int_t  index_ref = 0,
mesh_int_t  ind_target = 0 
)

Logs detailed debug information for a specific node in the Eikonal simulation.

This function appends the internal state of the node specified by param_globals::dream.output.detailed_debugNode to a debug file named node_<node>_debug_details.txt. It logs data only if the given ind_target matches the debug node.

Parameters
debug_caseEnum value identifying the debug scenario:
index_refOptional reference node index (e.g., the neighbor node involved).
ind_targetThe node index to be checked against the debug node.

Definition at line 2488 of file electrics_eikonal.cc.

Here is the caller graph for this function:

◆ FIM()

void opencarp::eikonal_solver::FIM ( )

Standard fast iterative method to solve eikonal equation with active list approach.

Definition at line 1089 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ init()

void opencarp::eikonal_solver::init ( )

Initialize vectors and variables in the eikonal_solver class.

Definition at line 646 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ init_imp_region_properties()

void opencarp::eikonal_solver::init_imp_region_properties ( FILE_SPEC  logger)

Initializes diffusion current models and CV restitution parameters per mesh node.

This function prepares per-node properties required for computing stimulus-driven diffusion currents and conduction velocity restitution effects, based on region-specific parameters defined in param_globals::imp_region.

  • Allocates and resizes per-node storage arrays:
    • diff_cur : diffusion current model parameters
    • rho_cvrest, kappa_cvrest, theta_cvrest, denom_cvrest : restitution parameters
  • Builds a mapping from local nodes to imp regions:
    • If only one imp region exists, all nodes are assigned to region 0.
    • Otherwise, calls region_mask() to resolve region IDs from tags.
  • For each node (in parallel):
    • Reads region-specific stimulus current model:
      • GAUSS model: initializes three Gaussian terms ( $\alpha_i, \beta_i, \gamma_i$).
      • Default model: initializes exponential stimulus parameters ( $A_F, \tau_F, V_{th}$).
    • Reads CV restitution parameters:
      • $\rho, \kappa, \theta$
      • Precomputes $\text{denom} = \log(\rho) / \psi$
  • Prints timing information if output_level is enabled.
Note
Each vertex is initialized exactly once in parallel.
Parameters
loggerEikonal log file that receives the region diagnostics.
See also
compute_diffusion_current, diff_cur, rho_cvrest, kappa_cvrest, theta_cvrest, denom_cvrest

Definition at line 779 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ LogEikonalCandidate()

void opencarp::eikonal_solver::LogEikonalCandidate ( ElementCandidate  type,
mesh_int_t  ind_target,
const int *  contributors,
size_t  num_contributors,
mesh_real_t  candidate_TA,
mesh_real_t  candidate_scaling_CV,
int  counter 
)

Logs detailed information about an Eikonal candidate update for a specific node.

This function appends debug information related to candidate activation time updates computed by the local Eikonal solver for the node specified by ind_target. Logging occurs only if ind_target matches the configured debug node (param_globals::dream.output.detailed_debugNode).

The output includes candidate activation time, conduction velocity, diastolic interval, contributing mesh elements (edge, triangle, tetrahedra), and reasons for candidate rejection.

Parameters
typeThe type of element candidate (FINAL, TETRAHEDRON, TRIANGLE, EDGE).
ind_targetThe index of the node being updated.
contributorsNode indices (or rejection-reason flags) contributing to this candidate calculation.
num_contributorsNumber of entries in contributors.
candidate_TAProposed activation time candidate for the node.
candidate_CVProposed conduction velocity associated with this candidate.
counterCandidate evaluation counter (e.g., iteration number within element candidates).

Definition at line 2635 of file electrics_eikonal.cc.

◆ LogPhaseOneVerify()

void opencarp::eikonal_solver::LogPhaseOneVerify ( mesh_int_t  indX,
SF_real  ta_sweep,
SF_real  ta_verified,
VerifyResult  result,
bool  forceConverge 
)

Logs the outcome of post-sweep Phase 1 verification for a freshly-converged node.

Records the sweep and converged-only activation times, the resulting VerifyResult classification and whether max_iter forced convergence. These values are local to the verification pass in cycFIM() and are not otherwise available to deep_debug_log(), so this is a dedicated logger rather than a new DebugCase, matching the pattern used by LogEikonalCandidate().

Parameters
indXThe node index being verified.
ta_sweepActivation time produced by the main sweep.
ta_verifiedActivation time from the converged-only re-evaluation.
resultResulting classification (Verified, Overestimated, Unresolved).
forceConvergeWhether max_iter forced acceptance regardless of verification.

Definition at line 2598 of file electrics_eikonal.cc.

Here is the caller graph for this function:

◆ save_eikonal_state()

void opencarp::eikonal_solver::save_eikonal_state ( const char *  roe_fnm)

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), repolarization 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 after the ionic checkpoint it accompanies, with .dat appended, so that load_state_file() finds it once the restore has resolved start_statef to that checkpoint.

Parameters
roe_fnmName of the ionic .roe checkpoint this eikonal state belongs to.

Definition at line 2739 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ set_stimuli()

void opencarp::eikonal_solver::set_stimuli ( SF::vector< stimulus > &  stimuli)
inline

Simple setter for stimulus vector.

Definition at line 247 of file electrics_eikonal.h.

◆ should_solve_reaction_diffusion()

bool opencarp::eikonal_solver::should_solve_reaction_diffusion ( 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.

Parameters
timeThe current time step in the RD model used to evaluate the conditions.
Returns
A boolean indicating whether to run the RD model (true) or the Eikonal model (false).

Definition at line 2196 of file electrics_eikonal.cc.

Here is the call graph for this function:

◆ update_repolarization_times()

void opencarp::eikonal_solver::update_repolarization_times ( const Ionics &  ion,
RepolMode  mode 
)

Estimates repolarization times (T_R) via a short ionic-model-only integration.

Performs a short run of the ionic model (not a full RD simulation) to update T_R, then restoring all state variables to their pre-call values before returning.

Parameters
mode
  • RepolMode::Normal: Step D of DREAM. Iterates over already-activated nodes whose T_R has not yet caught up with T_A. No stimulus current is applied.
  • RepolMode::FailedStim: recomputes T_R for nodes whose scheduled stimulus failed to activate them (stim_status == Failed). Unlike Step D, the actual stimulus current (stim_strength) is applied during the integration.
ionThe Ionics object containing information about the ionic model.

Definition at line 2322 of file electrics_eikonal.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ update_repolarization_times_from_rd()

void opencarp::eikonal_solver::update_repolarization_times_from_rd ( sf_vec &  Vmv,
sf_vec &  Vmv_old,
double  time 
)

Updates node repolarization times based on transmembrane voltage crossing.

This function scans all mesh nodes and records the time at which each node’s transmembrane potential falls below a given threshold, marking the end of its action potential (repolarization). Uses Vm from the parabolic solver.

Parameters
VmvVector of current transmembrane voltages at all nodes.
Vmv_oldVector of transmembrane voltages from the previous timestep.
timeCurrent simulation time, recorded as the repolarization time for nodes that cross the threshold during this step.
  • The threshold value is taken from param_globals::dream.repol_time_thresh.
  • For each node ind_nodes:
    • If Vmv_old[ind_nodes] ≥ threshold and Vmv[ind_nodes] < threshold, the repolarization time T_R[ind_nodes] is set to time.
  • Memory pointers to Vmv and Vmv_old are explicitly managed via ptr() and release_ptr().
See also
T_R

Definition at line 2295 of file electrics_eikonal.cc.

Here is the call graph for this function:

Member Data Documentation

◆ actMAX

SF_real opencarp::eikonal_solver::actMAX = std::numeric_limits<double>::quiet_NaN()

Definition at line 171 of file electrics_eikonal.h.

◆ actMIN

SF_real opencarp::eikonal_solver::actMIN = std::numeric_limits<double>::quiet_NaN()

Definition at line 171 of file electrics_eikonal.h.

◆ AT

sf_vec* opencarp::eikonal_solver::AT = nullptr

Definition at line 192 of file electrics_eikonal.h.

◆ capture_candidate

std::vector<long> opencarp::eikonal_solver::capture_candidate

Definition at line 155 of file electrics_eikonal.h.

◆ captured_onset

SF::vector<SF_real> opencarp::eikonal_solver::captured_onset

Definition at line 159 of file electrics_eikonal.h.

◆ captured_TA

SF::vector<SF_real> opencarp::eikonal_solver::captured_TA

Definition at line 159 of file electrics_eikonal.h.

◆ CV_L

std::vector<double> opencarp::eikonal_solver::CV_L

Definition at line 185 of file electrics_eikonal.h.

◆ D_I

SF::vector<SF_real> opencarp::eikonal_solver::D_I

Definition at line 149 of file electrics_eikonal.h.

◆ deepDebugLogger

FILE_SPEC opencarp::eikonal_solver::deepDebugLogger = NULL

Definition at line 79 of file electrics_eikonal.h.

◆ denom_cvrest

SF::vector<SF_real> opencarp::eikonal_solver::denom_cvrest

Definition at line 188 of file electrics_eikonal.h.

◆ detailed_debug_enabled

bool opencarp::eikonal_solver::detailed_debug_enabled = false

Definition at line 84 of file electrics_eikonal.h.

◆ diff_cur

SF::vector<diffusion_current> opencarp::eikonal_solver::diff_cur

Definition at line 148 of file electrics_eikonal.h.

◆ e2n_cnt

SF::vector<mesh_int_t> opencarp::eikonal_solver::e2n_cnt

Definition at line 181 of file electrics_eikonal.h.

◆ e2n_con

SF::vector<mesh_int_t> opencarp::eikonal_solver::e2n_con

Definition at line 178 of file electrics_eikonal.h.

◆ elem_start

SF::vector<mesh_int_t> opencarp::eikonal_solver::elem_start

Definition at line 179 of file electrics_eikonal.h.

◆ failed_stim_time

SF::vector<SF_real> opencarp::eikonal_solver::failed_stim_time

Definition at line 165 of file electrics_eikonal.h.

◆ Idiff

sf_vec* opencarp::eikonal_solver::Idiff = nullptr

Definition at line 191 of file electrics_eikonal.h.

◆ Idiff_tech

Idiff_t opencarp::eikonal_solver::Idiff_tech = FOOT

Definition at line 89 of file electrics_eikonal.h.

◆ Index_currStim

size_t opencarp::eikonal_solver::Index_currStim

Definition at line 169 of file electrics_eikonal.h.

◆ inf

const double opencarp::eikonal_solver::inf = std::numeric_limits<double>::infinity()

Definition at line 72 of file electrics_eikonal.h.

◆ is_stimulus_target

std::vector<bool> opencarp::eikonal_solver::is_stimulus_target

Definition at line 152 of file electrics_eikonal.h.

◆ kappa_cvrest

SF::vector<SF_real> opencarp::eikonal_solver::kappa_cvrest

Definition at line 188 of file electrics_eikonal.h.

◆ last_noncapturing_row

std::vector<size_t> opencarp::eikonal_solver::last_noncapturing_row

Definition at line 156 of file electrics_eikonal.h.

◆ last_noncapturing_stim

SF::vector<SF_real> opencarp::eikonal_solver::last_noncapturing_stim

Definition at line 157 of file electrics_eikonal.h.

◆ List

SF::vector<mesh_int_t> opencarp::eikonal_solver::List

Definition at line 150 of file electrics_eikonal.h.

◆ loaded_save_time

SF_real opencarp::eikonal_solver::loaded_save_time = -1.0

Definition at line 172 of file electrics_eikonal.h.

◆ maxadvance

SF_real opencarp::eikonal_solver::maxadvance = std::numeric_limits<double>::quiet_NaN()

Definition at line 171 of file electrics_eikonal.h.

◆ MESH_SIZE

mesh_int_t opencarp::eikonal_solver::MESH_SIZE

Definition at line 175 of file electrics_eikonal.h.

◆ n2e_cnt

SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_cnt

Definition at line 181 of file electrics_eikonal.h.

◆ n2e_con

SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_con

Definition at line 181 of file electrics_eikonal.h.

◆ n2e_dsp

SF::vector<mesh_int_t> opencarp::eikonal_solver::n2e_dsp

Definition at line 181 of file electrics_eikonal.h.

◆ n2n_connect

std::vector<mesh_int_t> opencarp::eikonal_solver::n2n_connect

Definition at line 180 of file electrics_eikonal.h.

◆ n2n_dsp

std::vector<mesh_int_t> opencarp::eikonal_solver::n2n_dsp

Definition at line 180 of file electrics_eikonal.h.

◆ NO_PULSE

constexpr size_t opencarp::eikonal_solver::NO_PULSE = static_cast<size_t>(-1)
staticconstexpr

Definition at line 123 of file electrics_eikonal.h.

◆ nodeData

node_stats opencarp::eikonal_solver::nodeData

Definition at line 75 of file electrics_eikonal.h.

◆ nReadded2List

SF::vector<mesh_int_t> opencarp::eikonal_solver::nReadded2List

Definition at line 150 of file electrics_eikonal.h.

◆ num_active_nodes

mesh_int_t opencarp::eikonal_solver::num_active_nodes = 0

Definition at line 170 of file electrics_eikonal.h.

◆ num_changes

SF::vector<mesh_int_t> opencarp::eikonal_solver::num_changes

Definition at line 150 of file electrics_eikonal.h.

◆ num_past_activations

long long opencarp::eikonal_solver::num_past_activations = 0

Definition at line 168 of file electrics_eikonal.h.

◆ num_pts

size_t opencarp::eikonal_solver::num_pts

Definition at line 177 of file electrics_eikonal.h.

◆ rejected_at

SF::vector<SF_real> opencarp::eikonal_solver::rejected_at

Definition at line 158 of file electrics_eikonal.h.

◆ rejected_TA

SF::vector<SF_real> opencarp::eikonal_solver::rejected_TA

Definition at line 158 of file electrics_eikonal.h.

◆ rho_cvrest

SF::vector<SF_real> opencarp::eikonal_solver::rho_cvrest

Definition at line 188 of file electrics_eikonal.h.

◆ RT

sf_vec* opencarp::eikonal_solver::RT = nullptr

Definition at line 193 of file electrics_eikonal.h.

◆ S

std::vector<SF::dmat<double> > opencarp::eikonal_solver::S

Definition at line 184 of file electrics_eikonal.h.

◆ stats

eikonal_solver_stats opencarp::eikonal_solver::stats

Definition at line 196 of file electrics_eikonal.h.

◆ STIM_CAPTURE_WINDOW

constexpr double opencarp::eikonal_solver::STIM_CAPTURE_WINDOW = 30.0
staticconstexpr

Definition at line 116 of file electrics_eikonal.h.

◆ stim_duration

SF::vector<SF_real> opencarp::eikonal_solver::stim_duration

Definition at line 154 of file electrics_eikonal.h.

◆ stim_failed_nodes

std::vector<mesh_int_t> opencarp::eikonal_solver::stim_failed_nodes

Definition at line 164 of file electrics_eikonal.h.

◆ stim_failed_now

std::vector<bool> opencarp::eikonal_solver::stim_failed_now

Definition at line 163 of file electrics_eikonal.h.

◆ stim_start

SF::vector<SF_real> opencarp::eikonal_solver::stim_start

Definition at line 154 of file electrics_eikonal.h.

◆ stim_status

SF::vector<StimStatus> opencarp::eikonal_solver::stim_status

Definition at line 153 of file electrics_eikonal.h.

◆ stim_strength

SF::vector<SF_real> opencarp::eikonal_solver::stim_strength

Definition at line 154 of file electrics_eikonal.h.

◆ StimulusDurations

SF::vector<SF_real> opencarp::eikonal_solver::StimulusDurations

Definition at line 154 of file electrics_eikonal.h.

◆ StimulusOrigIndex

SF::vector<int> opencarp::eikonal_solver::StimulusOrigIndex

Definition at line 160 of file electrics_eikonal.h.

◆ StimulusPoints

SF::vector<mesh_int_t> opencarp::eikonal_solver::StimulusPoints

Definition at line 151 of file electrics_eikonal.h.

◆ StimulusStrengths

SF::vector<SF_real> opencarp::eikonal_solver::StimulusStrengths

Definition at line 154 of file electrics_eikonal.h.

◆ StimulusTimes

SF::vector<SF_real> opencarp::eikonal_solver::StimulusTimes

Definition at line 154 of file electrics_eikonal.h.

◆ T_A

SF::vector<SF_real> opencarp::eikonal_solver::T_A

Definition at line 149 of file electrics_eikonal.h.

◆ T_R

SF::vector<SF_real> opencarp::eikonal_solver::T_R

Definition at line 149 of file electrics_eikonal.h.

◆ T_R_before_failed_stim

SF::vector<SF_real> opencarp::eikonal_solver::T_R_before_failed_stim

Definition at line 165 of file electrics_eikonal.h.

◆ TA_old

SF::vector<SF_real> opencarp::eikonal_solver::TA_old

Definition at line 149 of file electrics_eikonal.h.

◆ theta_cvrest

SF::vector<SF_real> opencarp::eikonal_solver::theta_cvrest

Definition at line 188 of file electrics_eikonal.h.

◆ twoFib

bool opencarp::eikonal_solver::twoFib

Definition at line 176 of file electrics_eikonal.h.

◆ warned_cycle_stall

bool opencarp::eikonal_solver::warned_cycle_stall = false

Definition at line 166 of file electrics_eikonal.h.

◆ warned_failed_capture

std::vector<bool> opencarp::eikonal_solver::warned_failed_capture

Definition at line 161 of file electrics_eikonal.h.

◆ warned_sweep_stall

bool opencarp::eikonal_solver::warned_sweep_stall = false

Definition at line 167 of file electrics_eikonal.h.

◆ warned_zero_strength

std::vector<bool> opencarp::eikonal_solver::warned_zero_strength

Definition at line 162 of file electrics_eikonal.h.


The documentation for this class was generated from the following files: