Nektar++
Loading...
Searching...
No Matches
solvers
CardiacEPSolver
CellModels
FentonKarma.h
Go to the documentation of this file.
1
///////////////////////////////////////////////////////////////////////////////
2
//
3
// File: FentonKarma.h
4
//
5
// For more information, please see: http://www.nektar.info
6
//
7
// The MIT License
8
//
9
// Copyright (c) 2006 Division of Applied Mathematics, Brown University (USA),
10
// Department of Aeronautics, Imperial College London (UK), and Scientific
11
// Computing and Imaging Institute, University of Utah (USA).
12
//
13
// Permission is hereby granted, free of charge, to any person obtaining a
14
// copy of this software and associated documentation files (the "Software"),
15
// to deal in the Software without restriction, including without limitation
16
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
// and/or sell copies of the Software, and to permit persons to whom the
18
// Software is furnished to do so, subject to the following conditions:
19
//
20
// The above copyright notice and this permission notice shall be included
21
// in all copies or substantial portions of the Software.
22
//
23
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
// DEALINGS IN THE SOFTWARE.
30
//
31
// Description: Fenton-Karma cell model
32
//
33
///////////////////////////////////////////////////////////////////////////////
34
35
#ifndef NEKTAR_SOLVERS_ADRSOLVER_EQUATIONSYSTEMS_FENTONKARMA_H
36
#define NEKTAR_SOLVERS_ADRSOLVER_EQUATIONSYSTEMS_FENTONKARMA_H
37
38
#include <
CardiacEPSolver/CellModels/CellModel.h
>
39
40
namespace
Nektar
41
{
42
class
FentonKarma
:
public
CellModel
43
{
44
public
:
45
/// Creates an instance of this class
46
static
CellModelSharedPtr
create
(
47
const
LibUtilities::SessionReaderSharedPtr
&pSession,
48
const
MultiRegions::ExpListSharedPtr
&pField)
49
{
50
return
MemoryManager<FentonKarma>::AllocateSharedPtr
(pSession, pField);
51
}
52
53
/// Name of class
54
static
std::string
className
;
55
56
/// Constructor
57
FentonKarma
(
const
LibUtilities::SessionReaderSharedPtr
&pSession,
58
const
MultiRegions::ExpListSharedPtr
&pField);
59
60
/// Destructor
61
~FentonKarma
()
override
;
62
63
protected
:
64
/// Computes the reaction terms $f(u,v)$ and $g(u,v)$.
65
void
v_Update
(
const
Array
<
OneD
,
const
Array<OneD, NekDouble>
> &inarray,
66
Array
<
OneD
,
Array<OneD, NekDouble>
> &outarray,
67
const
NekDouble
time)
override
;
68
69
/// Prints a summary of the model parameters.
70
void
v_GenerateSummary
(
SummaryList
&s)
override
;
71
72
void
v_SetInitialConditions
()
override
;
73
74
std::string
v_GetCellVarName
(
size_t
idx)
override
;
75
76
private
:
77
NekDouble
C_m
;
78
NekDouble
V_0
;
79
NekDouble
V_fi
;
80
NekDouble
u_fi
;
81
NekDouble
u_c
;
82
NekDouble
u_v
;
83
NekDouble
u_r
;
84
NekDouble
g_fi_max
;
85
NekDouble
tau_d
;
86
NekDouble
tau_v1_minus
;
87
NekDouble
tau_v2_minus
;
88
NekDouble
tau_v_plus
;
89
NekDouble
tau_0
;
90
NekDouble
tau_r
;
91
NekDouble
tau_si
;
92
NekDouble
tau_y_plus
;
93
NekDouble
tau_y_minus
;
94
NekDouble
u_csi
;
95
NekDouble
k1
;
96
NekDouble
k2
;
97
NekDouble
tau_w_minus
;
98
NekDouble
tau_w_plus
;
99
100
bool
isCF3
;
101
102
enum
Variants
103
{
104
eBR
,
105
eMBR
,
106
eMLR1
,
107
eGP
,
108
eCF1
,
109
eCF2a
,
110
eCF2b
,
111
eCF2c
,
112
eCF3a
,
113
eCF3b
,
114
eFC2002Set1a
,
115
eFC2002Set1b
,
116
eFC2002Set1c
,
117
eFC2002Set1d
,
118
eFC2002Set1e
,
119
eFC2002Set2
,
120
eFC2002Set4a
,
121
eFC2002Set4b
,
122
eFC2002Set4c
,
123
eFC2002Set4d
,
124
eFC2002Set5
,
125
eFC2002Set6
,
126
eFC2002Set7
,
127
eFC2002Set8
,
128
eFC2002Set9
,
129
eLawson
,
130
eCAF
131
};
132
enum
Variants
model_variant
;
133
134
static
std::string
lookupIds
[];
135
static
std::string
def
;
136
};
137
138
}
// namespace Nektar
139
140
#endif
CellModel.h
Nektar::Array
Definition
BasicUtils/SharedArray.hpp:57
Nektar::CellModel
Cell model base class.
Definition
CellModel.h:66
Nektar::FentonKarma
Definition
FentonKarma.h:43
Nektar::FentonKarma::tau_v1_minus
NekDouble tau_v1_minus
Definition
FentonKarma.h:86
Nektar::FentonKarma::tau_w_plus
NekDouble tau_w_plus
Definition
FentonKarma.h:98
Nektar::FentonKarma::tau_y_plus
NekDouble tau_y_plus
Definition
FentonKarma.h:92
Nektar::FentonKarma::u_v
NekDouble u_v
Definition
FentonKarma.h:82
Nektar::FentonKarma::V_fi
NekDouble V_fi
Definition
FentonKarma.h:79
Nektar::FentonKarma::tau_si
NekDouble tau_si
Definition
FentonKarma.h:91
Nektar::FentonKarma::v_Update
void v_Update(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) override
Computes the reaction terms $f(u,v)$ and $g(u,v)$.
Definition
FentonKarma.cpp:653
Nektar::FentonKarma::model_variant
enum Variants model_variant
Definition
FentonKarma.h:132
Nektar::FentonKarma::~FentonKarma
~FentonKarma() override
Destructor.
Definition
FentonKarma.cpp:649
Nektar::FentonKarma::v_GetCellVarName
std::string v_GetCellVarName(size_t idx) override
Definition
FentonKarma.cpp:749
Nektar::FentonKarma::tau_r
NekDouble tau_r
Definition
FentonKarma.h:90
Nektar::FentonKarma::tau_v2_minus
NekDouble tau_v2_minus
Definition
FentonKarma.h:87
Nektar::FentonKarma::def
static std::string def
Definition
FentonKarma.h:135
Nektar::FentonKarma::k2
NekDouble k2
Definition
FentonKarma.h:96
Nektar::FentonKarma::Variants
Variants
Definition
FentonKarma.h:103
Nektar::FentonKarma::eCF3b
@ eCF3b
Definition
FentonKarma.h:113
Nektar::FentonKarma::eMLR1
@ eMLR1
Definition
FentonKarma.h:106
Nektar::FentonKarma::eCF2b
@ eCF2b
Definition
FentonKarma.h:110
Nektar::FentonKarma::eBR
@ eBR
Definition
FentonKarma.h:104
Nektar::FentonKarma::eCF1
@ eCF1
Definition
FentonKarma.h:108
Nektar::FentonKarma::eFC2002Set1b
@ eFC2002Set1b
Definition
FentonKarma.h:115
Nektar::FentonKarma::eFC2002Set4d
@ eFC2002Set4d
Definition
FentonKarma.h:123
Nektar::FentonKarma::eFC2002Set4b
@ eFC2002Set4b
Definition
FentonKarma.h:121
Nektar::FentonKarma::eCF2a
@ eCF2a
Definition
FentonKarma.h:109
Nektar::FentonKarma::eMBR
@ eMBR
Definition
FentonKarma.h:105
Nektar::FentonKarma::eFC2002Set6
@ eFC2002Set6
Definition
FentonKarma.h:125
Nektar::FentonKarma::eGP
@ eGP
Definition
FentonKarma.h:107
Nektar::FentonKarma::eCF3a
@ eCF3a
Definition
FentonKarma.h:112
Nektar::FentonKarma::eFC2002Set4c
@ eFC2002Set4c
Definition
FentonKarma.h:122
Nektar::FentonKarma::eFC2002Set1e
@ eFC2002Set1e
Definition
FentonKarma.h:118
Nektar::FentonKarma::eFC2002Set2
@ eFC2002Set2
Definition
FentonKarma.h:119
Nektar::FentonKarma::eCAF
@ eCAF
Definition
FentonKarma.h:130
Nektar::FentonKarma::eFC2002Set1c
@ eFC2002Set1c
Definition
FentonKarma.h:116
Nektar::FentonKarma::eFC2002Set7
@ eFC2002Set7
Definition
FentonKarma.h:126
Nektar::FentonKarma::eCF2c
@ eCF2c
Definition
FentonKarma.h:111
Nektar::FentonKarma::eLawson
@ eLawson
Definition
FentonKarma.h:129
Nektar::FentonKarma::eFC2002Set5
@ eFC2002Set5
Definition
FentonKarma.h:124
Nektar::FentonKarma::eFC2002Set4a
@ eFC2002Set4a
Definition
FentonKarma.h:120
Nektar::FentonKarma::eFC2002Set9
@ eFC2002Set9
Definition
FentonKarma.h:128
Nektar::FentonKarma::eFC2002Set1d
@ eFC2002Set1d
Definition
FentonKarma.h:117
Nektar::FentonKarma::eFC2002Set1a
@ eFC2002Set1a
Definition
FentonKarma.h:114
Nektar::FentonKarma::eFC2002Set8
@ eFC2002Set8
Definition
FentonKarma.h:127
Nektar::FentonKarma::V_0
NekDouble V_0
Definition
FentonKarma.h:78
Nektar::FentonKarma::isCF3
bool isCF3
Definition
FentonKarma.h:100
Nektar::FentonKarma::create
static CellModelSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField)
Creates an instance of this class.
Definition
FentonKarma.h:46
Nektar::FentonKarma::u_r
NekDouble u_r
Definition
FentonKarma.h:83
Nektar::FentonKarma::lookupIds
static std::string lookupIds[]
Definition
FentonKarma.h:134
Nektar::FentonKarma::g_fi_max
NekDouble g_fi_max
Definition
FentonKarma.h:84
Nektar::FentonKarma::tau_v_plus
NekDouble tau_v_plus
Definition
FentonKarma.h:88
Nektar::FentonKarma::v_GenerateSummary
void v_GenerateSummary(SummaryList &s) override
Prints a summary of the model parameters.
Definition
FentonKarma.cpp:732
Nektar::FentonKarma::C_m
NekDouble C_m
Definition
FentonKarma.h:77
Nektar::FentonKarma::v_SetInitialConditions
void v_SetInitialConditions() override
Definition
FentonKarma.cpp:738
Nektar::FentonKarma::u_c
NekDouble u_c
Definition
FentonKarma.h:81
Nektar::FentonKarma::k1
NekDouble k1
Definition
FentonKarma.h:95
Nektar::FentonKarma::tau_w_minus
NekDouble tau_w_minus
Definition
FentonKarma.h:97
Nektar::FentonKarma::u_fi
NekDouble u_fi
Definition
FentonKarma.h:80
Nektar::FentonKarma::tau_d
NekDouble tau_d
Definition
FentonKarma.h:85
Nektar::FentonKarma::tau_0
NekDouble tau_0
Definition
FentonKarma.h:89
Nektar::FentonKarma::tau_y_minus
NekDouble tau_y_minus
Definition
FentonKarma.h:93
Nektar::FentonKarma::u_csi
NekDouble u_csi
Definition
FentonKarma.h:94
Nektar::FentonKarma::className
static std::string className
Name of class.
Definition
FentonKarma.h:54
Nektar::MemoryManager::AllocateSharedPtr
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
Definition
NekMemoryManager.hpp:166
Nektar::LibUtilities::SessionReaderSharedPtr
std::shared_ptr< SessionReader > SessionReaderSharedPtr
Definition
SessionReader.h:119
Nektar::MultiRegions::ExpListSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
Definition
LocTraceToTraceMap.h:56
Nektar::SolverUtils::SummaryList
std::vector< std::pair< std::string, std::string > > SummaryList
Definition
Misc.h:46
Nektar
Definition
CoupledSolver.h:2
Nektar::CellModelSharedPtr
std::shared_ptr< CellModel > CellModelSharedPtr
A shared pointer to an EquationSystem object.
Definition
CellModel.h:55
Nektar::NekDouble
double NekDouble
Definition
NektarUnivTypeDefs.hpp:43
Nektar::OneD
Definition
NektarUnivTypeDefs.hpp:54
Generated on Sun Nov 9 2025 20:17:00 for Nektar++ by
1.9.8