openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
fem_types.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) NumeriCor GmbH
2 // SPDX-License-Identifier: Apache-2.0
3 
13 #ifndef _FEM_TYPES_H
14 #define _FEM_TYPES_H
15 
16 #include "basics.h"
17 #include "SF_vector.h"
18 
19 namespace opencarp {
20 
25 
27 enum cond_t {
29 };
30 
31 // typedef CondTensModifier bidmT;
32 
37 struct physMaterial {
39  double fluct;
40 };
41 
42 
45 {
46  double InVal[3];
47  double ExVal[3];
48  double BathVal[3];
50  int *augment;
51  int nAug;
52 };
53 
54 
57 {
58  double InVal[3];
59  double ExVal[3];
60  double BathVal[3];
61  double clearance;
62  double basal_conc;
63 };
64 
67 {
68  int mode;
69  double Dil[3];
70  double Dem[3];
71  double muAil;
72  double muAem;
73 };
74 
75 // TODO: Write destructor for Regions
76 
78 struct RegionSpecs {
79  char *regname;
80  int regID;
81  int nsubregs;
82  int *subregtags;
84  void *customize;
85 };
86 
87 #if WITH_EMI_MODEL
89 struct RegionSpecs_EMI {
90  char *regname;
91  int regID;
92  int nsubregs;
93  std::string *subregtags;
94  physMaterial *material;
95  void *customize;
96 };
97 #endif
98 
100 // struct rndFluct {
101 // long rseed; //!< random seed
102 // double var; //!<
103 // };
104 
106 struct MaterialType {
107  // rndFluct rfluct; //!< random material variations
108  // double *fluct = NULL; //!< random fluctuation vector
109 
113  int el_scale_dpn = 0;
114 };
115 
116 #if WITH_EMI_MODEL
118 struct MaterialType_EMI {
119  // rndFluct rfluct; //!< random material variations
120  // double *fluct = NULL; //!< random fluctuation vector
121 
122  SF::vector<int> regionIDs;
124  SF::vector<double> el_scale;
125  int el_scale_dpn = 0;
126 };
127 #endif
128 
129 } // namespace opencarp
130 
131 #endif
The vector class and related algorithms.
Basic utility structs and functions, mostly IO related.
cond_t
description of electrical tissue properties
Definition: fem_types.h:27
@ extra_cond
Definition: fem_types.h:28
@ sum_cond
Definition: fem_types.h:28
@ intra_cond
Definition: fem_types.h:28
@ para_cond
Definition: fem_types.h:28
physMat_t
identifier for physical material properties
Definition: fem_types.h:24
@ MechMat
Definition: fem_types.h:24
@ ElecMat
Definition: fem_types.h:24
@ PhysMat
Definition: fem_types.h:24
@ OpticsMat
Definition: fem_types.h:24
@ DiffuseMat
Definition: fem_types.h:24
description of materal properties in a mesh
Definition: fem_types.h:106
SF::vector< RegionSpecs > regions
array with region params
Definition: fem_types.h:111
SF::vector< double > el_scale
optionally provided per-element params scale
Definition: fem_types.h:112
SF::vector< int > regionIDs
elemental region IDs (multiple tags are grouped in one region)
Definition: fem_types.h:110
int el_scale_dpn
0=disabled, 1=isotropic scalar, 3=anisotropic (sl, st, sn) per element
Definition: fem_types.h:113
region based variations of arbitrary material parameters
Definition: fem_types.h:78
physMaterial * material
material parameter description
Definition: fem_types.h:83
int nsubregs
#subregions forming this region
Definition: fem_types.h:81
void * customize
any data for further customization
Definition: fem_types.h:84
int * subregtags
FEM tags forming this region.
Definition: fem_types.h:82
char * regname
name of region
Definition: fem_types.h:79
int regID
region ID
Definition: fem_types.h:80
double clearance
clearance rate (mol/s)
Definition: fem_types.h:61
double BathVal[3]
bath diffusion eigenvalues
Definition: fem_types.h:60
double basal_conc
basal concentration
Definition: fem_types.h:62
double InVal[3]
intracellular diffusion eigenvalues
Definition: fem_types.h:58
double ExVal[3]
extracellular diffusion eigenvalues
Definition: fem_types.h:59
double ExVal[3]
extracellular conductivity eigenvalues
Definition: fem_types.h:47
cond_t g
rule to build conductivity tensor
Definition: fem_types.h:49
double InVal[3]
intracellular conductivity eigenvalues
Definition: fem_types.h:46
int nAug
number of augmented elements
Definition: fem_types.h:51
double BathVal[3]
bath conductivity eigenvalues
Definition: fem_types.h:48
int * augment
augmented element list
Definition: fem_types.h:50
int mode
0=illumination, 1=emmission
Definition: fem_types.h:68
double muAil
absorption coefficient illumination
Definition: fem_types.h:71
double muAem
absorption coefficient emmission
Definition: fem_types.h:72
double Dem[3]
diffusion coefficient emmission
Definition: fem_types.h:70
double Dil[3]
diffusion coefficient illumination
Definition: fem_types.h:69
physMat_t material_type
ID of physics material.
Definition: fem_types.h:38
double fluct
random fluctuation around standard value
Definition: fem_types.h:39