29 #ifndef _IONICSONFACE_H
30 #define _IONICSONFACE_H
35 #include "IGBheader.h"
63 void region_mask_onFace(
mesh_t meshspec,
64 std::vector<std::string> & tags_data,
80 class IonicsOnFace :
public Basic_physic
86 generic_timing_stats comp_stats;
89 std::pair<SF::emi_face<mesh_int_t,SF::tuple<mesh_int_t>>,
90 SF::emi_face<mesh_int_t,SF::tuple<mesh_int_t>>>> line_face;
92 std::pair<SF::emi_face<mesh_int_t,SF::triple<mesh_int_t>>,
93 SF::emi_face<mesh_int_t,SF::triple<mesh_int_t>>>> tri_face;
95 std::pair<SF::emi_face<mesh_int_t,SF::quadruple<mesh_int_t>>,
96 SF::emi_face<mesh_int_t,SF::quadruple<mesh_int_t>>>> quad_face;
100 std::vector<std::string> tags_data;
105 IonicsOnFace(
mesh_t gid) : ion_domain(gid)
109 name =
"Myocard IonicsOnFace";
break;
111 name =
"IonicsOnFace";
break;
115 void set_tags_onFace(std::vector<std::string> & tags_data_)
117 tags_data.assign(tags_data_.begin(),tags_data_.end());
130 line_face = line_face_;
131 tri_face = tri_face_;
132 quad_face = quad_face_;
133 map_vertex_tag_to_dof = map_vertex_tag_to_dof_;
139 intra_tags = intra_tags_;
140 map_elem_uniqueFace_to_tags = map_elem_uniqueFace_to_tags_;
146 ~IonicsOnFace() =
default;
149 double timer_val(
const int timer_id);
151 std::string timer_unit(
const int timer_id);
173 double setup_MIIF(
int nnodes,
int nreg, IMPregion_EMI* impreg,
int* mask,
174 const char *start_fn,
int numadjust, IMPVariableAdjustment *adjust,
175 double time_step,
bool close);
192 struct sv_data_onFace {
206 struct gvec_data_OnFace {
214 igb_output_manager & output_manager);
215 void assemble_sv_gvec_onFace(gvec_data_OnFace & gvecs,
limpet::MULTI_IF *miif);
Define multiple ionic models to be used in different regions.
A vector storing arbitrary data.
Represents the ionic model and plug-in (IMP) data structure.
std::map< int, std::string > units
mesh_t
The enum identifying the different meshes we might want to load.
SF::abstract_vector< SF_int, SF_real > sf_vec
Simulator-level utility execution control functions.
Electrical stimulation functions.