|
Nektar++
|
#include <FentonKarma.h>
Public Member Functions | |
| FentonKarma (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField) | |
| Constructor. More... | |
| virtual | ~FentonKarma () |
| Destructor. More... | |
Public Member Functions inherited from Nektar::CellModel | |
| CellModel (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField) | |
| virtual | ~CellModel () |
| void | Initialise () |
| Initialise the cell model storage and set initial conditions. More... | |
| void | TimeIntegrate (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
| Time integrate the cell model by one PDE timestep. More... | |
| void | Update (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time) |
| Compute the derivatives of cell model variables. More... | |
| void | GenerateSummary (SummaryList &s) |
| Print a summary of the cell model. More... | |
| size_t | GetNumCellVariables () |
| std::string | GetCellVarName (size_t idx) |
| Array< OneD, NekDouble > | GetCellSolutionCoeffs (size_t idx) |
| Array< OneD, NekDouble > | GetCellSolution (size_t idx) |
Static Public Member Functions | |
| static CellModelSharedPtr | create (const LibUtilities::SessionReaderSharedPtr &pSession, const MultiRegions::ExpListSharedPtr &pField) |
| Creates an instance of this class. More... | |
Static Public Attributes | |
| static std::string | className |
| Name of class. More... | |
Protected Member Functions | |
| virtual 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)$. More... | |
| virtual void | v_GenerateSummary (SummaryList &s) override |
| Prints a summary of the model parameters. More... | |
| virtual void | v_SetInitialConditions () override |
| virtual std::string | v_GetCellVarName (size_t idx) override |
Protected Member Functions inherited from Nektar::CellModel | |
| virtual void | v_Update (const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)=0 |
| virtual void | v_GenerateSummary (SummaryList &s)=0 |
| virtual std::string | v_GetCellVarName (size_t idx) |
| virtual void | v_SetInitialConditions ()=0 |
| void | LoadCellModel () |
Private Types | |
| enum | Variants { eBR , eMBR , eMLR1 , eGP , eCF1 , eCF2a , eCF2b , eCF2c , eCF3a , eCF3b , eFC2002Set1a , eFC2002Set1b , eFC2002Set1c , eFC2002Set1d , eFC2002Set1e , eFC2002Set2 , eFC2002Set4a , eFC2002Set4b , eFC2002Set4c , eFC2002Set4d , eFC2002Set5 , eFC2002Set6 , eFC2002Set7 , eFC2002Set8 , eFC2002Set9 , eLawson , eCAF } |
Static Private Attributes | |
| static std::string | lookupIds [] |
| static std::string | def |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::CellModel | |
| LibUtilities::SessionReaderSharedPtr | m_session |
| Session. More... | |
| MultiRegions::ExpListSharedPtr | m_field |
| Transmembrane potential field from PDE system. More... | |
| size_t | m_nq |
| Number of physical points. More... | |
| size_t | m_nvar |
| Number of variables in cell model (inc. transmembrane voltage) More... | |
| NekDouble | m_lastTime |
| Timestep for pde model. More... | |
| size_t | m_substeps |
| Number of substeps to take. More... | |
| Array< OneD, Array< OneD, NekDouble > > | m_cellSol |
| Cell model solution variables. More... | |
| Array< OneD, Array< OneD, NekDouble > > | m_wsp |
| Cell model integration workspace. More... | |
| bool | m_useNodal |
| Flag indicating whether nodal projection in use. More... | |
| StdRegions::StdNodalTriExpSharedPtr | m_nodalTri |
| StdNodalTri for cell model calculations. More... | |
| StdRegions::StdNodalTetExpSharedPtr | m_nodalTet |
| Array< OneD, Array< OneD, NekDouble > > | m_nodalTmp |
| Temporary array for nodal projection. More... | |
| std::vector< int > | m_concentrations |
| Indices of cell model variables which are concentrations. More... | |
| std::vector< int > | m_gates |
| Indices of cell model variables which are gates. More... | |
| Array< OneD, Array< OneD, NekDouble > > | m_gates_tau |
| Storage for gate tau values. More... | |
Definition at line 42 of file FentonKarma.h.
|
private |
Definition at line 103 of file FentonKarma.h.
| Nektar::FentonKarma::FentonKarma | ( | const LibUtilities::SessionReaderSharedPtr & | pSession, |
| const MultiRegions::ExpListSharedPtr & | pField | ||
| ) |
Constructor.
Initialise Fenton-Karma model parameters. k1 is k in the original model. k2 is an additional parameter introduced in Cherry&Fenton 2004. u_r and u_fi are introduced by Cherry&Fenton 2004 and is the same as u_c in the original model.
Definition at line 122 of file FentonKarma.cpp.
References ASSERTL0, C_m, eBR, eCAF, eCF1, eCF2a, eCF2b, eCF2c, eCF3a, eCF3b, eFC2002Set1a, eFC2002Set1b, eFC2002Set1c, eFC2002Set1d, eFC2002Set1e, eFC2002Set2, eFC2002Set4a, eFC2002Set4b, eFC2002Set4c, eFC2002Set4d, eFC2002Set5, eFC2002Set6, eFC2002Set7, eFC2002Set8, eFC2002Set9, eGP, eLawson, eMBR, eMLR1, g_fi_max, isCF3, k1, k2, Nektar::CellModel::m_gates, Nektar::CellModel::m_nvar, model_variant, tau_0, tau_d, tau_r, tau_si, tau_v1_minus, tau_v2_minus, tau_v_plus, tau_w_minus, tau_w_plus, tau_y_minus, tau_y_plus, u_c, u_csi, u_fi, u_r, u_v, V_0, and V_fi.
|
virtual |
|
inlinestatic |
Creates an instance of this class.
Definition at line 46 of file FentonKarma.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
|
overrideprotectedvirtual |
Prints a summary of the model parameters.
Implements Nektar::CellModel.
Definition at line 732 of file FentonKarma.cpp.
References Nektar::SolverUtils::AddSummaryItem(), lookupIds, and model_variant.
|
overrideprotectedvirtual |
Reimplemented from Nektar::CellModel.
Definition at line 749 of file FentonKarma.cpp.
|
overrideprotectedvirtual |
Implements Nektar::CellModel.
Definition at line 738 of file FentonKarma.cpp.
References Vmath::Fill(), isCF3, Nektar::CellModel::m_cellSol, and Nektar::CellModel::m_nq.
|
overrideprotectedvirtual |
Computes the reaction terms $f(u,v)$ and $g(u,v)$.
Implements Nektar::CellModel.
Definition at line 653 of file FentonKarma.cpp.
References ASSERTL0, Nektar::LibUtilities::beta, C_m, isCF3, k1, k2, Nektar::CellModel::m_gates_tau, Nektar::CellModel::m_nq, tau_0, tau_d, tau_r, tau_si, tau_v1_minus, tau_v2_minus, tau_v_plus, tau_w_minus, tau_w_plus, u_c, u_csi, u_r, u_v, V_0, V_fi, and Nektar::UnitTests::w().
|
private |
Definition at line 78 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
static |
Name of class.
Definition at line 54 of file FentonKarma.h.
|
staticprivate |
Definition at line 136 of file FentonKarma.h.
|
private |
Definition at line 85 of file FentonKarma.h.
Referenced by FentonKarma().
|
private |
Definition at line 101 of file FentonKarma.h.
Referenced by FentonKarma(), v_SetInitialConditions(), and v_Update().
|
private |
Definition at line 96 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 97 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
staticprivate |
Definition at line 135 of file FentonKarma.h.
Referenced by v_GenerateSummary().
|
private |
Definition at line 133 of file FentonKarma.h.
Referenced by FentonKarma(), and v_GenerateSummary().
|
private |
Definition at line 90 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 86 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 91 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 92 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 87 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 88 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 89 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 98 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 99 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 94 of file FentonKarma.h.
Referenced by FentonKarma().
|
private |
Definition at line 93 of file FentonKarma.h.
Referenced by FentonKarma().
|
private |
Definition at line 82 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 95 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 81 of file FentonKarma.h.
Referenced by FentonKarma().
|
private |
Definition at line 84 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 83 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 79 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().
|
private |
Definition at line 80 of file FentonKarma.h.
Referenced by FentonKarma(), and v_Update().