LifeV
ElectroETABidomainSolver< Mesh, IonicModel > Class Template Reference

BidomainSolver - Class featuring the usual solver for bidomain equations. More...

#include <ElectroETABidomainSolver.hpp>

+ Collaboration diagram for ElectroETABidomainSolver< Mesh, IonicModel >:

Protected Member Functions

void importFibers (vectorPtr_Type M_fiberPtr, std::string fibersFile, meshPtr_Type M_localMeshPtr)
 

Private Member Functions

void setParameters ()
 
void init ()
 
void init (commPtr_Type comm)
 
void init (meshPtr_Type meshPtr)
 
void init (ionicModelPtr_Type model)
 
void init (commPtr_Type comm, ionicModelPtr_Type model)
 
void init (meshPtr_Type meshPtr, ionicModelPtr_Type model)
 

Private Attributes

Real M_surfaceVolumeRatio
 
ionicModelPtr_Type M_ionicModelPtr
 
commPtr_Type M_commPtr
 
meshPtr_Type M_localMeshPtr
 
meshPtr_Type M_fullMeshPtr
 
ETFESpacePtr_Type M_ETFESpacePtr
 
feSpacePtr_Type M_feSpacePtr
 
blockMatrixPtr_Type M_massMatrixPtr
 
blockMatrixPtr_Type M_stiffnessMatrixPtr
 
blockMatrixPtr_Type M_globalMatrixPtr
 
Real M_initialTime
 
Real M_endTime
 
Real M_timeStep
 
VectorSmall< 3 > M_diffusionTensorIntra
 
VectorSmall< 3 > M_diffusionTensorExtra
 
blockVectorPtr_Type M_rhsPtr
 
blockVectorPtr_Type M_rhsPtrUnique
 
blockVectorPtr_Type M_potentialGlobalPtr
 
vectorPtr_Type M_potentialTransPtr
 
vectorPtr_Type M_potentialExtraPtr
 
linearSolverPtr_Type M_linearSolverPtr
 
vectorOfPtr_Type M_globalSolution
 
vectorOfPtr_Type M_globalRhs
 
std::string M_elementsOrder
 
vectorPtr_Type M_fiberPtr
 
vectorPtr_Type M_displacementPtr
 
matrixSmall_Type M_identity
 
ETFESpaceVectorialPtr_Type M_displacementETFESpacePtr
 
bool M_lumpedMassMatrix
 

Type definitions

Bidomain Solver

The Bidomain equation reads

typedef Mesh mesh_Type
 
typedef std::shared_ptr< mesh_TypemeshPtr_Type
 
typedef VectorEpetra vector_Type
 
typedef std::shared_ptr< VectorEpetravectorPtr_Type
 
typedef VectorEpetraStructured blockVector_Type
 
typedef std::shared_ptr< blockVector_TypeblockVectorPtr_Type
 
typedef std::vector< vectorPtr_TypevectorOfPtr_Type
 
typedef MatrixEpetra< Realmatrix_Type
 
typedef std::shared_ptr< matrix_TypematrixPtr_Type
 
typedef MatrixEpetraStructured< RealblockMatrix_Type
 
typedef std::shared_ptr< blockMatrix_TypeblockMatrixPtr_Type
 
typedef Epetra_Comm comm_Type
 
typedef std::shared_ptr< comm_TypecommPtr_Type
 
typedef ETFESpace< mesh_Type, MapEpetra, 3, 1 > ETFESpace_Type
 
typedef std::shared_ptr< ETFESpace< mesh_Type, MapEpetra, 3, 1 > > ETFESpacePtr_Type
 
typedef ETFESpace< mesh_Type, MapEpetra, 3, 3 > ETFESpaceVectorial_Type
 
typedef std::shared_ptr< ETFESpaceVectorial_TypeETFESpaceVectorialPtr_Type
 
typedef FESpace< mesh_Type, MapEpetrafeSpace_Type
 
typedef std::shared_ptr< feSpace_TypefeSpacePtr_Type
 
typedef LinearSolver linearSolver_Type
 
typedef std::shared_ptr< LinearSolverlinearSolverPtr_Type
 
typedef Exporter< mesh_TypeIOFile_Type
 
typedef std::shared_ptr< IOFile_TypeIOFilePtr_Type
 
typedef ExporterData< mesh_TypeIOData_Type
 
typedef ExporterEnsight< mesh_TypeensightIOFile_Type
 
typedef ExporterHDF5< mesh_Typehdf5IOFile_Type
 
typedef LifeV::Preconditioner basePrec_Type
 
typedef std::shared_ptr< basePrec_TypebasePrecPtr_Type
 
typedef LifeV::PreconditionerML prec_Type
 
typedef std::shared_ptr< prec_TypeprecPtr_Type
 
typedef IonicModel ionicModel_Type
 
typedef ElectroIonicModel superIonicModel
 
typedef std::shared_ptr< ionicModel_TypeionicModelPtr_Type
 
typedef Teuchos::ParameterList list_Type
 
typedef std::function< Real(const Real &t, const Real &x, const Real &y, const Real &z, const ID &i) > function_Type
 
typedef MatrixSmall< 3, 3 > matrixSmall_Type
 

Constructors & Destructor

 ElectroETABidomainSolver ()
 Empty Constructor. More...
 
 ElectroETABidomainSolver (list_Type list, GetPot &dataFile, ionicModelPtr_Type model)
 Constructor. More...
 
 ElectroETABidomainSolver (GetPot &dataFile, ionicModelPtr_Type model, meshPtr_Type meshPtr)
 Constructor. More...
 
 ElectroETABidomainSolver (list_Type list, GetPot &dataFile, ionicModelPtr_Type model, commPtr_Type comm)
 Constructor. More...
 
 ElectroETABidomainSolver (list_Type list, GetPot &dataFile, ionicModelPtr_Type model, meshPtr_Type meshPtr)
 Constructor. More...
 
 ElectroETABidomainSolver (std::string meshName, std::string meshPath, GetPot &dataFile, ionicModelPtr_Type model)
 Constructor. More...
 
 ElectroETABidomainSolver (std::string meshName, std::string meshPath, GetPot &dataFile, ionicModelPtr_Type model, commPtr_Type comm)
 Constructor. More...
 
 ElectroETABidomainSolver (const ElectroETABidomainSolver &solver)
 Copy Constructor. More...
 
ElectroETABidomainSolver< Mesh, IonicModel > & operator= (const ElectroETABidomainSolver &solver)
 Operator=() More...
 
virtual ~ElectroETABidomainSolver ()
 Destructor. More...
 

Get Methods

const RealsurfaceVolumeRatio () const
 get the surface to volume ratio More...
 
const RealinitialTime () const
 get the initial time (by default 0) More...
 
const RealtimeStep () const
 get the final time More...
 
const RealendTime () const
 get the time step More...
 
const VectorSmall< 3 > & diffusionTensorIntra () const
 get the diagonal intra cellular diffusion tensor More...
 
const VectorSmall< 3 > & diffusionTensorExtra () const
 get the diagonal extra cellular diffusion tensor More...
 
const std::string elementsOrder () const
 get the order of the elements More...
 
const ionicModelPtr_Type ionicModelPtr () const
 get the pointer to the ionic model More...
 
const commPtr_Type commPtr () const
 get the pointer to the Epetra communicator More...
 
const meshPtr_Type localMeshPtr () const
 get the pointer to the partitioned mesh More...
 
const meshPtr_Type fullMeshPtr () const
 get the pointer to the partitioned mesh More...
 
const ETFESpacePtr_Type ETFESpacePtr () const
 get the pointer to the ETA finite element space More...
 
const feSpacePtr_Type feSpacePtr () const
 get the pointer to the usual finite element space More...
 
const blockMatrixPtr_Type massMatrixPtr () const
 get the pointer to the mass matrix More...
 
const blockMatrixPtr_Type stiffnessMatrixPtr () const
 get the pointer to the stiffness matrix More...
 
const blockMatrixPtr_Type globalMatrixPtr () const
 get the pointer to the global matrix More...
 
const blockVectorPtr_Type rhsPtr () const
 get the pointer to the right hand side More...
 
const blockVectorPtr_Type rhsPtrUnique () const
 get the pointer to the unique version of the right hand side More...
 
const vectorPtr_Type potentialTransPtr () const
 get the pointer to the transmembrane potential More...
 
blockVectorPtr_Type potentialGlobalPtr ()
 get the pointer to the potential More...
 
const vectorPtr_Type potentialExtraPtr () const
 get the pointer to the extra cellular potential More...
 
const vectorPtr_Type fiberPtr () const
 get the pointer to the fiber vector More...
 
const vectorPtr_Type appliedCurrentIntraPtr ()
 get the pointer to the applied intra cellular current vector More...
 
const linearSolverPtr_Type linearSolverPtr () const
 get the pointer to the linear solver More...
 
const vectorOfPtr_TypeglobalSolution () const
 get the pointer to the vector of pointers containing the transmembrane potential (at 0) and the gating variables More...
 
const vectorOfPtr_TypeglobalRhs () const
 get the pointer to the vector of pointers containing the rhs for transmembrane potential (at 0) and the gating variables More...
 
vectorPtr_Type displacementPtr () const
 get the pointer to the transmembrane potential More...
 
ETFESpaceVectorialPtr_Type displacementETFESpacePtr () const
 
bool lumpedMassMatrix () const
 

Set Methods

void setSurfaceVolumeRatio (const Real &p)
 set the surface to volume ratio More...
 
void setInitialTime (const Real &p)
 set the starting time More...
 
void setTimeStep (const Real &p)
 set the ending time More...
 
void setEndTime (const Real &p)
 set the time step More...
 
void setDiffusionTensorIntra (const VectorSmall< 3 > &p)
 set the intra cellular diagonal diffusion tensor More...
 
void setDiffusionTensorExtra (const VectorSmall< 3 > &p)
 set the extra cellular diagonal diffusion tensor More...
 
void setIonicModelPtr (const ionicModelPtr_Type p)
 set the pointer to the ionic model More...
 
void setCommPtr (const commPtr_Type p)
 set the pointer to the Epetra communicator More...
 
void setLocalMeshPtr (const meshPtr_Type p)
 set the pointer to the partitioned mesh More...
 
void setFullMeshPtr (const meshPtr_Type p)
 set the pointer to the partitioned mesh More...
 
void setETFESpacePtr (const ETFESpacePtr_Type p)
 set the pointer to the ETA fe space More...
 
void setFeSpacePtr (const feSpacePtr_Type p)
 set the pointer to the usual fe space More...
 
void setMassMatrixPtr (const blockMatrixPtr_Type p)
 set the pointer to the mass matrix More...
 
void setStiffnessMatrixPtr (const blockMatrixPtr_Type p)
 set the pointer to the stiffness matrix More...
 
void setGlobalMatrixPtr (const blockMatrixPtr_Type p)
 set the pointer to the global matrix More...
 
void setRhsPtr (const blockVectorPtr_Type p)
 set the pointer to the right hand side More...
 
void setRhsPtrUnique (const blockVectorPtr_Type p)
 set the pointer to the unique version of the right hand side More...
 
void setPotentialExtraPtr (const vectorPtr_Type p)
 
void setPotentialTransPtr (const vectorPtr_Type p)
 
void setAppliedCurrentIntraPtr (const vectorPtr_Type p)
 set the pointer to the intra cell applied current vector More...
 
void setLinearSolverPtr (const linearSolverPtr_Type p)
 set the pointer to the linear solver More...
 
void setGlobalSolution (const vectorOfPtr_Type &p)
 set the vector of pointers containing the transmembrane potential (at 0) and the gating variables More...
 
void setGlobalRhs (const vectorOfPtr_Type &p)
 set the vector of pointers containing the rhs for the transmembrane potential (at 0) and the gating variables More...
 
void setFiberPtr (const vectorPtr_Type p)
 set the pointer to the fiber direction vector More...
 
void setDisplacementPtr (const vectorPtr_Type p)
 set the pointer to displacement of the tissue More...
 

Copy Methods

void setIonicModel (const ionicModel_Type &p)
 
void setComm (const comm_Type &p)
 
void setLocalMesh (const mesh_Type &p)
 
void setFullMesh (const mesh_Type &p)
 
void setETFESpace (const ETFESpace_Type &p)
 
void setFeSpace (const feSpace_Type &p)
 
void setMassMatrix (const matrix_Type &p)
 
void setStiffnessMatrix (const matrix_Type &p)
 
void setGlobalMatrix (const matrix_Type &p)
 
void setRhs (const vector_Type &p)
 
void setRhsUnique (const vector_Type &p)
 
void setPotentialTrans (const vector_Type &p)
 
void setPotentialExtra (const blockVector_Type &p)
 
void setFiber (const vector_Type &p)
 
void setDisplacement (const vector_Type &p)
 
void setAppliedCurrentIntra (const vector_Type &p)
 
void setLinearSolver (const linearSolver_Type &p)
 
void copyGlobalSolution (const vectorOfPtr_Type &p)
 
void setVariablePtr (const vectorPtr_Type p, int j)
 
void copyGlobalRhs (const vectorOfPtr_Type &p)
 
void setLumpedMassMatrix (bool p) const
 

Methods

void setup (GetPot &dataFile, short int ionicSize)
 
void setup (std::string meshName, std::string meshPath, GetPot &dataFile, short int ionicSize)
 
void setupMassMatrix ()
 create mass matrix More...
 
void setupMassMatrix (vector_Type &disp)
 create mass matrix More...
 
void setupLumpedMassMatrix ()
 create mass matrix More...
 
void setupLumpedMassMatrix (vector_Type &disp)
 
void setupStiffnessMatrix ()
 create stiffness matrix More...
 
void setupStiffnessMatrix (vectorPtr_Type disp)
 create stiffness matrix in a moving domain More...
 
void setupStiffnessMatrix (VectorSmall< 3 > diffusionIntra, VectorSmall< 3 > diffusionExtra)
 create stiffness matrix given a diagonal diffusion tensor More...
 
void setupGlobalMatrix ()
 create stiffness matrix given the fiber direction and a diagonal diffusion tensor More...
 
void setupLinearSolver (GetPot dataFile)
 setup the linear solver More...
 
void setupLinearSolver (GetPot dataFile, list_Type list)
 setup the linear solver More...
 
void initializePotential ()
 Initialize the potentials to zero. More...
 
void initializePotentialTrans (Real k)
 Initialize the potential to the value k. More...
 
void initializePotentialExtra (Real k)
 
void initializeAppliedCurrentIntra ()
 Initialize the applied current to zero. More...
 
void initializeAppliedCurrentIntra (Real k)
 Initialize the intra cellular applied current to the value k. More...
 
void setupGlobalSolution (short int ionicSize)
 creates a vector of pointers to store the solution More...
 
void setupGlobalRhs (short int ionicSize)
 creates a vector of pointers to store the rhs More...
 
void setParameters (list_Type list)
 Set parameters from an xml file. More...
 
void partitionMesh (std::string meshName, std::string meshPath)
 partition the mesh More...
 
void setPotentialFromFunctionTrans (function_Type &f, Real time=0.0)
 given a boost function initialize the transmembrane potential More...
 
void setPotentialFromFunctionExtra (function_Type &f, Real time=0.0)
 given a boost function initialize the extra cellular potential More...
 
void setAppliedCurrentFromFunctionIntra (function_Type &f, Real time=0.0)
 given a boost function initialize the applied intra cellular current More...
 
void solveOneReactionStepFE (int subiterations=1)
 Solves one reaction step using the forward Euler scheme. More...
 
void solveOneReactionStepFE (matrix_Type &mass, int subiterations=1)
 
void solveOneReactionStepRL (int subiterations=1)
 
void updateRhs ()
 Update the rhs. More...
 
void solveOneDiffusionStepBDF2 (vectorPtr_Type previousPotentialGlobalPtr)
 Solves one diffusion step using the BDF2 scheme. More...
 
void solveOneDiffusionStepBE ()
 Solves one diffusion step using the backward Euler scheme. More...
 
void solveOneSplittingStep ()
 Solve one full step with operator splitting. More...
 
void solveSplitting ()
 Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep. More...
 
void solveOneSplittingStep (IOFile_Type &exporter, Real t)
 Solve one full step with operator splitting and export the solution. More...
 
void solveSplitting (IOFile_Type &exporter)
 Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep and export the solution. More...
 
void solveSplitting (IOFile_Type &exporter, Real dt)
 Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt. More...
 
void setupPotentialExporter (IOFile_Type &exporter)
 add to a given exporter the pointer to the potential More...
 
void setupPotentialExporter (IOFile_Type &exporter, std::string fileName)
 add to a given exporter the pointer to the potential saved with name fileName More...
 
void setupExporter (IOFile_Type &exporter, std::string fileName="output", std::string folder="./")
 add to a given exporter the pointer to the potential and to the gating variables saved with name fileName More...
 
void setupFibers ()
 Generates a default fiber direction (0,1,0) More...
 
void setupFibers (VectorSmall< 3 > fibers)
 Generates the fiber direction given the three component of the vector (F_x,F_y,F_z) More...
 
void setupFibers (std::string fibersFile)
 Imports the fiber direction from a hdf5 file. More...
 
void setupFibers (std::string fibersFile, std::string directory, int format=0)
 Imports the fiber direction from a vtk file ( format = 0), or text file. More...
 
void solveOneStepGatingVariablesFE ()
 Solves the gating variables with forward Euler. More...
 
void solveOneStepGatingVariablesRL ()
 
void computeRhsSVI ()
 Compute the rhs using state variable interpolation. More...
 
void computeRhsICI ()
 Compute the rhs using ionic current interpolation. More...
 
void computeRhsICI (matrix_Type &mass)
 
void solveOneICIStep ()
 Solve one full step with ionic current interpolation. More...
 
void solveOneICIStep (matrix_Type &mass)
 
void solveOneSVIStep ()
 Solve one full step with ionic current interpolation. More...
 
void solveICI ()
 solve system using ICI from M_initialTime to the M_endTime with time step M_timeStep More...
 
void solveSVI ()
 solve system using SVI from M_initialTime to the M_endTime with time step M_timeStep More...
 
void solveOneICIStep (IOFile_Type &exporter, Real t)
 Solve one full step with ionic current interpolation and export the solution. More...
 
void solveOneSVIStep (IOFile_Type &exporter, Real t)
 Solve one full step with ionic current interpolation and export the solution. More...
 
void solveICI (IOFile_Type &exporter)
 solve system using ICI from M_initialTime to the M_endTime with time step M_timeStep and export the solution More...
 
void solveSVI (IOFile_Type &exporter)
 solve system using SVI from M_initialTime to the M_endTime with time step M_timeStep and export the solution More...
 
void solveICI (IOFile_Type &exporter, Real dt)
 Solve the system using ICI from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt. More...
 
void solveSVI (IOFile_Type &exporter, Real dt)
 Solve the using SVI from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt. More...
 
void exportFiberDirection (std::string postDir="./")
 Generates a file where the fiber direction is saved. More...
 
void exportFiberDirection (IOFile_Type &exporter)
 save the fiber direction into the given exporter More...
 
void exportSolution (IOFile_Type &exporter, Real t)
 Save the solution in the exporter. More...
 
void importSolution (GetPot &dataFile, std::string prefix, std::string postDir, Real time)
 Import solution. More...
 
void setInitialConditions ()
 
void registerActivationTime (vector_Type &activationTimeVector, Real time, Real threshold=0.0)
 save the fiber direction into the given exporter More...
 

Detailed Description

template<typename Mesh, typename IonicModel>
class LifeV::ElectroETABidomainSolver< Mesh, IonicModel >

BidomainSolver - Class featuring the usual solver for bidomain equations.

Definition at line 106 of file ElectroETABidomainSolver.hpp.

Member Typedef Documentation

◆ mesh_Type

typedef Mesh mesh_Type

Definition at line 121 of file ElectroETABidomainSolver.hpp.

◆ meshPtr_Type

typedef std::shared_ptr<mesh_Type> meshPtr_Type

Definition at line 122 of file ElectroETABidomainSolver.hpp.

◆ vector_Type

Definition at line 124 of file ElectroETABidomainSolver.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr<VectorEpetra> vectorPtr_Type

Definition at line 125 of file ElectroETABidomainSolver.hpp.

◆ blockVector_Type

◆ blockVectorPtr_Type

typedef std::shared_ptr<blockVector_Type> blockVectorPtr_Type

Definition at line 128 of file ElectroETABidomainSolver.hpp.

◆ vectorOfPtr_Type

typedef std::vector<vectorPtr_Type> vectorOfPtr_Type

Definition at line 130 of file ElectroETABidomainSolver.hpp.

◆ matrix_Type

Definition at line 134 of file ElectroETABidomainSolver.hpp.

◆ matrixPtr_Type

typedef std::shared_ptr<matrix_Type> matrixPtr_Type

Definition at line 135 of file ElectroETABidomainSolver.hpp.

◆ blockMatrix_Type

◆ blockMatrixPtr_Type

typedef std::shared_ptr<blockMatrix_Type> blockMatrixPtr_Type

Definition at line 138 of file ElectroETABidomainSolver.hpp.

◆ comm_Type

typedef Epetra_Comm comm_Type

Definition at line 140 of file ElectroETABidomainSolver.hpp.

◆ commPtr_Type

typedef std::shared_ptr<comm_Type> commPtr_Type

Definition at line 141 of file ElectroETABidomainSolver.hpp.

◆ ETFESpace_Type

Definition at line 143 of file ElectroETABidomainSolver.hpp.

◆ ETFESpacePtr_Type

typedef std::shared_ptr<ETFESpace<mesh_Type, MapEpetra, 3, 1> > ETFESpacePtr_Type

Definition at line 144 of file ElectroETABidomainSolver.hpp.

◆ ETFESpaceVectorial_Type

◆ ETFESpaceVectorialPtr_Type

Definition at line 147 of file ElectroETABidomainSolver.hpp.

◆ feSpace_Type

◆ feSpacePtr_Type

typedef std::shared_ptr<feSpace_Type> feSpacePtr_Type

Definition at line 150 of file ElectroETABidomainSolver.hpp.

◆ linearSolver_Type

Definition at line 152 of file ElectroETABidomainSolver.hpp.

◆ linearSolverPtr_Type

typedef std::shared_ptr<LinearSolver> linearSolverPtr_Type

Definition at line 153 of file ElectroETABidomainSolver.hpp.

◆ IOFile_Type

Definition at line 156 of file ElectroETABidomainSolver.hpp.

◆ IOFilePtr_Type

typedef std::shared_ptr<IOFile_Type> IOFilePtr_Type

Definition at line 157 of file ElectroETABidomainSolver.hpp.

◆ IOData_Type

Definition at line 158 of file ElectroETABidomainSolver.hpp.

◆ ensightIOFile_Type

◆ hdf5IOFile_Type

Definition at line 161 of file ElectroETABidomainSolver.hpp.

◆ basePrec_Type

◆ basePrecPtr_Type

typedef std::shared_ptr<basePrec_Type> basePrecPtr_Type

Definition at line 165 of file ElectroETABidomainSolver.hpp.

◆ prec_Type

◆ precPtr_Type

typedef std::shared_ptr<prec_Type> precPtr_Type

Definition at line 167 of file ElectroETABidomainSolver.hpp.

◆ ionicModel_Type

typedef IonicModel ionicModel_Type

Definition at line 169 of file ElectroETABidomainSolver.hpp.

◆ superIonicModel

◆ ionicModelPtr_Type

typedef std::shared_ptr<ionicModel_Type> ionicModelPtr_Type

Definition at line 171 of file ElectroETABidomainSolver.hpp.

◆ list_Type

typedef Teuchos::ParameterList list_Type

Definition at line 173 of file ElectroETABidomainSolver.hpp.

◆ function_Type

typedef std::function< Real (const Real& t, const Real& x, const Real& y, const Real& z, const ID& i) > function_Type

Definition at line 177 of file ElectroETABidomainSolver.hpp.

◆ matrixSmall_Type

Definition at line 179 of file ElectroETABidomainSolver.hpp.

Constructor & Destructor Documentation

◆ ElectroETABidomainSolver() [1/8]

Empty Constructor.

Constructors.

Definition at line 1093 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [2/8]

ElectroETABidomainSolver ( list_Type  list,
GetPot dataFile,
ionicModelPtr_Type  model 
)

Constructor.

Parameters
Teuchos::ParameterListparameter list
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer

Definition at line 1100 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [3/8]

ElectroETABidomainSolver ( GetPot dataFile,
ionicModelPtr_Type  model,
meshPtr_Type  meshPtr 
)

Constructor.

Parameters
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer
std::shared_ptr<Mesh>Pointer to the partitioned mesh

Definition at line 1152 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [4/8]

ElectroETABidomainSolver ( list_Type  list,
GetPot dataFile,
ionicModelPtr_Type  model,
commPtr_Type  comm 
)

Constructor.

Parameters
Teuchos::ParameterListparameter list
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer
std::shared_ptr<Epetra_Comm>Epetra communicator

Definition at line 1110 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [5/8]

ElectroETABidomainSolver ( list_Type  list,
GetPot dataFile,
ionicModelPtr_Type  model,
meshPtr_Type  meshPtr 
)

Constructor.

Parameters
Teuchos::ParameterListparameter list
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer
std::shared_ptr<Mesh>Pointer to the partitioned mesh

Definition at line 1121 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [6/8]

ElectroETABidomainSolver ( std::string  meshName,
std::string  meshPath,
GetPot dataFile,
ionicModelPtr_Type  model 
)

Constructor.

Parameters
stringfile name of the mesh
stringpath to the mesh
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer

Definition at line 1131 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [7/8]

ElectroETABidomainSolver ( std::string  meshName,
std::string  meshPath,
GetPot dataFile,
ionicModelPtr_Type  model,
commPtr_Type  comm 
)

Constructor.

Parameters
stringfile name of the mesh
stringpath to the mesh
GetPotdatafile (for preconditioner)
std::shared_ptr<IonicModel>chosen ionic model pointer
std::shared_ptr<Epetra_Comm>Epetra communicator

Definition at line 1141 of file ElectroETABidomainSolver.hpp.

◆ ElectroETABidomainSolver() [8/8]

ElectroETABidomainSolver ( const ElectroETABidomainSolver< Mesh, IonicModel > &  solver)

Copy Constructor.

Parameters
ElectroETABidomainSolverobject

Definition at line 1162 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ ~ElectroETABidomainSolver()

virtual ~ElectroETABidomainSolver ( )
inlinevirtual

Destructor.

Definition at line 272 of file ElectroETABidomainSolver.hpp.

Member Function Documentation

◆ operator=()

ElectroETABidomainSolver< Mesh, IonicModel > & operator= ( const ElectroETABidomainSolver< Mesh, IonicModel > &  solver)

Operator=()

Parameters
ElectroETABidomainSolverobject

Definition at line 1197 of file ElectroETABidomainSolver.hpp.

◆ surfaceVolumeRatio()

const Real& surfaceVolumeRatio ( ) const
inline

get the surface to volume ratio

Not used in the code ( implicit definition inside the diffusion tensor)

Definition at line 285 of file ElectroETABidomainSolver.hpp.

◆ initialTime()

const Real& initialTime ( ) const
inline

get the initial time (by default 0)

Definition at line 291 of file ElectroETABidomainSolver.hpp.

◆ timeStep()

const Real& timeStep ( ) const
inline

get the final time

Definition at line 296 of file ElectroETABidomainSolver.hpp.

◆ endTime()

const Real& endTime ( ) const
inline

get the time step

Definition at line 301 of file ElectroETABidomainSolver.hpp.

◆ diffusionTensorIntra()

const VectorSmall<3>& diffusionTensorIntra ( ) const
inline

get the diagonal intra cellular diffusion tensor

Definition at line 306 of file ElectroETABidomainSolver.hpp.

◆ diffusionTensorExtra()

const VectorSmall<3>& diffusionTensorExtra ( ) const
inline

get the diagonal extra cellular diffusion tensor

Definition at line 311 of file ElectroETABidomainSolver.hpp.

◆ elementsOrder()

const std::string elementsOrder ( ) const
inline

get the order of the elements

Definition at line 316 of file ElectroETABidomainSolver.hpp.

◆ ionicModelPtr()

const ionicModelPtr_Type ionicModelPtr ( ) const
inline

get the pointer to the ionic model

Definition at line 321 of file ElectroETABidomainSolver.hpp.

◆ commPtr()

const commPtr_Type commPtr ( ) const
inline

get the pointer to the Epetra communicator

Definition at line 326 of file ElectroETABidomainSolver.hpp.

◆ localMeshPtr()

const meshPtr_Type localMeshPtr ( ) const
inline

get the pointer to the partitioned mesh

Definition at line 331 of file ElectroETABidomainSolver.hpp.

◆ fullMeshPtr()

const meshPtr_Type fullMeshPtr ( ) const
inline

get the pointer to the partitioned mesh

Definition at line 336 of file ElectroETABidomainSolver.hpp.

◆ ETFESpacePtr()

const ETFESpacePtr_Type ETFESpacePtr ( ) const
inline

get the pointer to the ETA finite element space

Definition at line 341 of file ElectroETABidomainSolver.hpp.

◆ feSpacePtr()

const feSpacePtr_Type feSpacePtr ( ) const
inline

get the pointer to the usual finite element space

Definition at line 346 of file ElectroETABidomainSolver.hpp.

◆ massMatrixPtr()

const blockMatrixPtr_Type massMatrixPtr ( ) const
inline

get the pointer to the mass matrix

Definition at line 351 of file ElectroETABidomainSolver.hpp.

◆ stiffnessMatrixPtr()

const blockMatrixPtr_Type stiffnessMatrixPtr ( ) const
inline

get the pointer to the stiffness matrix

Definition at line 356 of file ElectroETABidomainSolver.hpp.

◆ globalMatrixPtr()

const blockMatrixPtr_Type globalMatrixPtr ( ) const
inline

get the pointer to the global matrix

\[ A = \frac{M}{\Delta t} + K(\mathbf{f}) \]

Definition at line 367 of file ElectroETABidomainSolver.hpp.

◆ rhsPtr()

const blockVectorPtr_Type rhsPtr ( ) const
inline

get the pointer to the right hand side

Definition at line 372 of file ElectroETABidomainSolver.hpp.

◆ rhsPtrUnique()

const blockVectorPtr_Type rhsPtrUnique ( ) const
inline

get the pointer to the unique version of the right hand side

Definition at line 377 of file ElectroETABidomainSolver.hpp.

◆ potentialTransPtr()

const vectorPtr_Type potentialTransPtr ( ) const
inline

get the pointer to the transmembrane potential

Definition at line 382 of file ElectroETABidomainSolver.hpp.

◆ potentialGlobalPtr()

blockVectorPtr_Type potentialGlobalPtr ( )
inline

get the pointer to the potential

Definition at line 387 of file ElectroETABidomainSolver.hpp.

◆ potentialExtraPtr()

const vectorPtr_Type potentialExtraPtr ( ) const
inline

get the pointer to the extra cellular potential

Definition at line 392 of file ElectroETABidomainSolver.hpp.

◆ fiberPtr()

const vectorPtr_Type fiberPtr ( ) const
inline

get the pointer to the fiber vector

Definition at line 398 of file ElectroETABidomainSolver.hpp.

◆ appliedCurrentIntraPtr()

const vectorPtr_Type appliedCurrentIntraPtr ( )
inline

get the pointer to the applied intra cellular current vector

Definition at line 403 of file ElectroETABidomainSolver.hpp.

◆ linearSolverPtr()

const linearSolverPtr_Type linearSolverPtr ( ) const
inline

get the pointer to the linear solver

Definition at line 409 of file ElectroETABidomainSolver.hpp.

◆ globalSolution()

const vectorOfPtr_Type& globalSolution ( ) const
inline

get the pointer to the vector of pointers containing the transmembrane potential (at 0) and the gating variables

Definition at line 414 of file ElectroETABidomainSolver.hpp.

◆ globalRhs()

const vectorOfPtr_Type& globalRhs ( ) const
inline

get the pointer to the vector of pointers containing the rhs for transmembrane potential (at 0) and the gating variables

Definition at line 419 of file ElectroETABidomainSolver.hpp.

◆ displacementPtr()

vectorPtr_Type displacementPtr ( ) const
inline

get the pointer to the transmembrane potential

Definition at line 424 of file ElectroETABidomainSolver.hpp.

◆ displacementETFESpacePtr()

ETFESpaceVectorialPtr_Type displacementETFESpacePtr ( ) const
inline

Definition at line 429 of file ElectroETABidomainSolver.hpp.

◆ lumpedMassMatrix()

bool lumpedMassMatrix ( ) const
inline

Definition at line 434 of file ElectroETABidomainSolver.hpp.

◆ setSurfaceVolumeRatio()

void setSurfaceVolumeRatio ( const Real p)
inline

set the surface to volume ratio

Parameters
Realsurface to volume ratio

Definition at line 448 of file ElectroETABidomainSolver.hpp.

◆ setInitialTime()

void setInitialTime ( const Real p)
inline

set the starting time

Parameters
Realinitial time

Definition at line 457 of file ElectroETABidomainSolver.hpp.

◆ setTimeStep()

void setTimeStep ( const Real p)
inline

set the ending time

Parameters
Realending time

Definition at line 465 of file ElectroETABidomainSolver.hpp.

◆ setEndTime()

void setEndTime ( const Real p)
inline

set the time step

Parameters
Realtime step

Definition at line 473 of file ElectroETABidomainSolver.hpp.

◆ setDiffusionTensorIntra()

void setDiffusionTensorIntra ( const VectorSmall< 3 > &  p)
inline

set the intra cellular diagonal diffusion tensor

Parameters
VectorSmall<3>diagonal intra cellular diffusion tensor

Definition at line 481 of file ElectroETABidomainSolver.hpp.

◆ setDiffusionTensorExtra()

void setDiffusionTensorExtra ( const VectorSmall< 3 > &  p)
inline

set the extra cellular diagonal diffusion tensor

Parameters
VectorSmall<3>diagonal extra cellular diffusion tensor

Definition at line 489 of file ElectroETABidomainSolver.hpp.

◆ setIonicModelPtr()

void setIonicModelPtr ( const ionicModelPtr_Type  p)
inline

set the pointer to the ionic model

Parameters
std::shared_ptr<IonicModel>pointer to the ionic model

Definition at line 498 of file ElectroETABidomainSolver.hpp.

◆ setCommPtr()

void setCommPtr ( const commPtr_Type  p)
inline

set the pointer to the Epetra communicator

Parameters
std::shared_ptr<Epetra_Comm>pointer to the Epetra communicator

Definition at line 507 of file ElectroETABidomainSolver.hpp.

◆ setLocalMeshPtr()

void setLocalMeshPtr ( const meshPtr_Type  p)
inline

set the pointer to the partitioned mesh

Parameters
std::shared_ptr<Mesh>pointer to the partitioned mesh

Definition at line 515 of file ElectroETABidomainSolver.hpp.

◆ setFullMeshPtr()

void setFullMeshPtr ( const meshPtr_Type  p)
inline

set the pointer to the partitioned mesh

Parameters
std::shared_ptr<Mesh>pointer to the partitioned mesh

Definition at line 523 of file ElectroETABidomainSolver.hpp.

◆ setETFESpacePtr()

void setETFESpacePtr ( const ETFESpacePtr_Type  p)
inline

set the pointer to the ETA fe space

Parameters
std::shared_ptr<ETFESpace<Mesh,MapEpetra,3,1>>pointer to the ETA fe space

Definition at line 531 of file ElectroETABidomainSolver.hpp.

◆ setFeSpacePtr()

void setFeSpacePtr ( const feSpacePtr_Type  p)
inline

set the pointer to the usual fe space

Parameters
std::shared_ptr<IFESpace<Mesh,MapEpetra>>pointer to the usual fe space

Definition at line 539 of file ElectroETABidomainSolver.hpp.

◆ setMassMatrixPtr()

void setMassMatrixPtr ( const blockMatrixPtr_Type  p)
inline

set the pointer to the mass matrix

Parameters
std::shared_ptr<MatrixEpetra<Real>>pointer to the mass matrix

Definition at line 548 of file ElectroETABidomainSolver.hpp.

◆ setStiffnessMatrixPtr()

void setStiffnessMatrixPtr ( const blockMatrixPtr_Type  p)
inline

set the pointer to the stiffness matrix

Parameters
std::shared_ptr<MatrixEpetra<Real>>pointer to the stiffness matrix

Definition at line 556 of file ElectroETABidomainSolver.hpp.

◆ setGlobalMatrixPtr()

void setGlobalMatrixPtr ( const blockMatrixPtr_Type  p)
inline

set the pointer to the global matrix

Parameters
std::shared_ptr<MatrixEpetra<Real>>pointer to the global matrix

Definition at line 564 of file ElectroETABidomainSolver.hpp.

◆ setRhsPtr()

void setRhsPtr ( const blockVectorPtr_Type  p)
inline

set the pointer to the right hand side

Parameters
std::shared_ptr<VectorEpetra>pointer to the right hand side

Definition at line 572 of file ElectroETABidomainSolver.hpp.

◆ setRhsPtrUnique()

void setRhsPtrUnique ( const blockVectorPtr_Type  p)
inline

set the pointer to the unique version of the right hand side

Parameters
std::shared_ptr<VectorEpetra>pointer to the unique version of the right hand side

Definition at line 580 of file ElectroETABidomainSolver.hpp.

◆ setPotentialExtraPtr()

void setPotentialExtraPtr ( const vectorPtr_Type  p)
inline

Definition at line 585 of file ElectroETABidomainSolver.hpp.

◆ setPotentialTransPtr()

void setPotentialTransPtr ( const vectorPtr_Type  p)
inline

Definition at line 591 of file ElectroETABidomainSolver.hpp.

◆ setAppliedCurrentIntraPtr()

void setAppliedCurrentIntraPtr ( const vectorPtr_Type  p)
inline

set the pointer to the intra cell applied current vector

Parameters
std::shared_ptr<VectorEpetra>pointer to the intra cellular applied current vector

Definition at line 602 of file ElectroETABidomainSolver.hpp.

◆ setLinearSolverPtr()

void setLinearSolverPtr ( const linearSolverPtr_Type  p)
inline

set the pointer to the linear solver

Parameters
std::shared_ptr<LinearSolver>pointer to the linear solver

Definition at line 611 of file ElectroETABidomainSolver.hpp.

◆ setGlobalSolution()

void setGlobalSolution ( const vectorOfPtr_Type p)
inline

set the vector of pointers containing the transmembrane potential (at 0) and the gating variables

Parameters
std::vector<std::shared_ptr<VectorEpetra>>vector of pointers containing the transmembrane potential (at 0) and the gating variables

Definition at line 619 of file ElectroETABidomainSolver.hpp.

◆ setGlobalRhs()

void setGlobalRhs ( const vectorOfPtr_Type p)
inline

set the vector of pointers containing the rhs for the transmembrane potential (at 0) and the gating variables

Parameters
std::vector<std::shared_ptr<VectorEpetra>>vector of pointers containing the rhs for the transmembrane potential (at 0) and the gating variables

Definition at line 627 of file ElectroETABidomainSolver.hpp.

◆ setFiberPtr()

void setFiberPtr ( const vectorPtr_Type  p)
inline

set the pointer to the fiber direction vector

Parameters
std::shared_ptr<VectorEpetra>pointer to the fiber direction vector

Definition at line 635 of file ElectroETABidomainSolver.hpp.

◆ setDisplacementPtr()

void setDisplacementPtr ( const vectorPtr_Type  p)
inline

set the pointer to displacement of the tissue

Definition at line 640 of file ElectroETABidomainSolver.hpp.

◆ setIonicModel()

void setIonicModel ( const ionicModel_Type p)
inline

Definition at line 649 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setComm()

void setComm ( const comm_Type p)
inline

Definition at line 653 of file ElectroETABidomainSolver.hpp.

◆ setLocalMesh()

void setLocalMesh ( const mesh_Type p)
inline

Definition at line 657 of file ElectroETABidomainSolver.hpp.

◆ setFullMesh()

void setFullMesh ( const mesh_Type p)
inline

Definition at line 661 of file ElectroETABidomainSolver.hpp.

◆ setETFESpace()

void setETFESpace ( const ETFESpace_Type p)
inline

Definition at line 665 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setFeSpace()

void setFeSpace ( const feSpace_Type p)
inline

Definition at line 669 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setMassMatrix()

void setMassMatrix ( const matrix_Type p)
inline

Definition at line 673 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setStiffnessMatrix()

void setStiffnessMatrix ( const matrix_Type p)
inline

Definition at line 677 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setGlobalMatrix()

void setGlobalMatrix ( const matrix_Type p)
inline

Definition at line 681 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setRhs()

void setRhs ( const vector_Type p)
inline

Definition at line 685 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setRhsUnique()

void setRhsUnique ( const vector_Type p)
inline

Definition at line 689 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setPotentialTrans()

void setPotentialTrans ( const vector_Type p)
inline

Definition at line 693 of file ElectroETABidomainSolver.hpp.

◆ setPotentialExtra()

void setPotentialExtra ( const blockVector_Type p)
inline

Definition at line 698 of file ElectroETABidomainSolver.hpp.

◆ setFiber()

void setFiber ( const vector_Type p)
inline

Definition at line 703 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setDisplacement()

void setDisplacement ( const vector_Type p)
inline

Definition at line 707 of file ElectroETABidomainSolver.hpp.

◆ setAppliedCurrentIntra()

void setAppliedCurrentIntra ( const vector_Type p)
inline

Definition at line 711 of file ElectroETABidomainSolver.hpp.

◆ setLinearSolver()

void setLinearSolver ( const linearSolver_Type p)
inline

Definition at line 715 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ copyGlobalSolution()

void copyGlobalSolution ( const vectorOfPtr_Type p)
inline

Definition at line 719 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setVariablePtr()

void setVariablePtr ( const vectorPtr_Type  p,
int  j 
)
inline

Definition at line 727 of file ElectroETABidomainSolver.hpp.

◆ copyGlobalRhs()

void copyGlobalRhs ( const vectorOfPtr_Type p)
inline

Definition at line 732 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setLumpedMassMatrix()

void setLumpedMassMatrix ( bool  p) const
inline

Definition at line 740 of file ElectroETABidomainSolver.hpp.

◆ setup() [1/2]

void setup ( GetPot dataFile,
short int  ionicSize 
)

Definition at line 1325 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setup() [2/2]

void setup ( std::string  meshName,
std::string  meshPath,
GetPot dataFile,
short int  ionicSize 
)

Definition at line 1367 of file ElectroETABidomainSolver.hpp.

◆ setupMassMatrix() [1/2]

void setupMassMatrix ( )

create mass matrix

Definition at line 1377 of file ElectroETABidomainSolver.hpp.

◆ setupMassMatrix() [2/2]

void setupMassMatrix ( vector_Type disp)

create mass matrix

Definition at line 1416 of file ElectroETABidomainSolver.hpp.

◆ setupLumpedMassMatrix() [1/2]

void setupLumpedMassMatrix ( )

create mass matrix

Definition at line 1443 of file ElectroETABidomainSolver.hpp.

◆ setupLumpedMassMatrix() [2/2]

void setupLumpedMassMatrix ( vector_Type disp)

Definition at line 1474 of file ElectroETABidomainSolver.hpp.

◆ setupStiffnessMatrix() [1/3]

void setupStiffnessMatrix ( )

create stiffness matrix

Definition at line 1566 of file ElectroETABidomainSolver.hpp.

◆ setupStiffnessMatrix() [2/3]

void setupStiffnessMatrix ( vectorPtr_Type  disp)

create stiffness matrix in a moving domain

Definition at line 1655 of file ElectroETABidomainSolver.hpp.

◆ setupStiffnessMatrix() [3/3]

void setupStiffnessMatrix ( VectorSmall< 3 >  diffusionIntra,
VectorSmall< 3 >  diffusionExtra 
)

create stiffness matrix given a diagonal diffusion tensor

Definition at line 1584 of file ElectroETABidomainSolver.hpp.

◆ setupGlobalMatrix()

void setupGlobalMatrix ( )

create stiffness matrix given the fiber direction and a diagonal diffusion tensor

setup the total matrix

\[ A = \frac{M}{\Delta t} + K(\mathbf{f}) \]

Definition at line 1729 of file ElectroETABidomainSolver.hpp.

◆ setupLinearSolver() [1/2]

void setupLinearSolver ( GetPot  dataFile)

setup the linear solver

A file named BidomainSolverParamList.xml must be in the execution folder with the parameters to set the linear solver

Definition at line 1740 of file ElectroETABidomainSolver.hpp.

◆ setupLinearSolver() [2/2]

void setupLinearSolver ( GetPot  dataFile,
list_Type  list 
)

setup the linear solver

Definition at line 1766 of file ElectroETABidomainSolver.hpp.

◆ initializePotential()

void initializePotential ( )
inline

Initialize the potentials to zero.

Definition at line 786 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ initializePotentialTrans()

void initializePotentialTrans ( Real  k)
inline

Initialize the potential to the value k.

Definition at line 793 of file ElectroETABidomainSolver.hpp.

◆ initializePotentialExtra()

void initializePotentialExtra ( Real  k)
inline

Definition at line 799 of file ElectroETABidomainSolver.hpp.

◆ initializeAppliedCurrentIntra() [1/2]

void initializeAppliedCurrentIntra ( )
inline

Initialize the applied current to zero.

Definition at line 807 of file ElectroETABidomainSolver.hpp.

◆ initializeAppliedCurrentIntra() [2/2]

void initializeAppliedCurrentIntra ( Real  k)
inline

Initialize the intra cellular applied current to the value k.

Definition at line 813 of file ElectroETABidomainSolver.hpp.

◆ setupGlobalSolution()

void setupGlobalSolution ( short int  ionicSize)

creates a vector of pointers to store the solution

The first pointer points to the vector of the transmembrane potential, while the others point to the gating variables

Definition at line 1783 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setupGlobalRhs()

void setupGlobalRhs ( short int  ionicSize)

creates a vector of pointers to store the rhs

The first pointer points to the rhs of the transmembrane potential, while the others point to the rhs of the gating variables

Definition at line 1797 of file ElectroETABidomainSolver.hpp.

+ Here is the caller graph for this function:

◆ setParameters() [1/2]

void setParameters ( list_Type  list)

Set parameters from an xml file.

Definition at line 2011 of file ElectroETABidomainSolver.hpp.

◆ partitionMesh()

void partitionMesh ( std::string  meshName,
std::string  meshPath 
)
inline

partition the mesh

Definition at line 832 of file ElectroETABidomainSolver.hpp.

◆ setPotentialFromFunctionTrans()

void setPotentialFromFunctionTrans ( function_Type f,
Real  time = 0.0 
)
inline

given a boost function initialize the transmembrane potential

Definition at line 838 of file ElectroETABidomainSolver.hpp.

◆ setPotentialFromFunctionExtra()

void setPotentialFromFunctionExtra ( function_Type f,
Real  time = 0.0 
)
inline

given a boost function initialize the extra cellular potential

Definition at line 845 of file ElectroETABidomainSolver.hpp.

◆ setAppliedCurrentFromFunctionIntra()

void setAppliedCurrentFromFunctionIntra ( function_Type f,
Real  time = 0.0 
)
inline

given a boost function initialize the applied intra cellular current

Definition at line 852 of file ElectroETABidomainSolver.hpp.

◆ solveOneReactionStepFE() [1/2]

void solveOneReactionStepFE ( int  subiterations = 1)

Solves one reaction step using the forward Euler scheme.

\[ \mathbf{V}^* = \mathbf{V}^n + \Delta t I_{ion}(\mathbf{V}^n). \]

Definition at line 1811 of file ElectroETABidomainSolver.hpp.

◆ solveOneReactionStepFE() [2/2]

void solveOneReactionStepFE ( matrix_Type mass,
int  subiterations = 1 
)

◆ solveOneReactionStepRL()

void solveOneReactionStepRL ( int  subiterations = 1)

Definition at line 1830 of file ElectroETABidomainSolver.hpp.

◆ updateRhs()

void updateRhs ( )
inline

Update the rhs.

\[ rhs \leftarrow C_m \frac{M}{\Delta t} \mathbf{V}^n \]

Definition at line 873 of file ElectroETABidomainSolver.hpp.

◆ solveOneDiffusionStepBDF2()

void solveOneDiffusionStepBDF2 ( vectorPtr_Type  previousPotentialGlobalPtr)

Solves one diffusion step using the BDF2 scheme.

\[ ( \frac{3}{\Delta t}M + A ) V^{n+1} = \frac{1}{\Delta t}M(4 V^n -V^{n-1}) \]

◆ solveOneDiffusionStepBE()

void solveOneDiffusionStepBE ( )

Solves one diffusion step using the backward Euler scheme.

\[ A\mathbf{V}^{n+1} = \left( C_m \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^*. \]

Definition at line 1850 of file ElectroETABidomainSolver.hpp.

◆ solveOneSplittingStep() [1/2]

void solveOneSplittingStep ( )

Solve one full step with operator splitting.

\[ \mathbf{V}^* = \mathbf{V}^n + \Delta t I_{ion}(\mathbf{V}^n). \]

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^*. \]

Definition at line 1864 of file ElectroETABidomainSolver.hpp.

◆ solveSplitting() [1/3]

void solveSplitting ( )

Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep.

◆ solveOneSplittingStep() [2/2]

void solveOneSplittingStep ( IOFile_Type exporter,
Real  t 
)

Solve one full step with operator splitting and export the solution.

\[ \mathbf{V}^* = \mathbf{V}^n + \Delta t I_{ion}(\mathbf{V}^n). \]

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^*. \]

◆ solveSplitting() [2/3]

void solveSplitting ( IOFile_Type exporter)

Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep and export the solution.

◆ solveSplitting() [3/3]

void solveSplitting ( IOFile_Type exporter,
Real  dt 
)

Solve the system with operator splitting from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt.

◆ setupPotentialExporter() [1/2]

void setupPotentialExporter ( IOFile_Type exporter)

add to a given exporter the pointer to the potential

Definition at line 1876 of file ElectroETABidomainSolver.hpp.

◆ setupPotentialExporter() [2/2]

void setupPotentialExporter ( IOFile_Type exporter,
std::string  fileName 
)

add to a given exporter the pointer to the potential saved with name fileName

Definition at line 1889 of file ElectroETABidomainSolver.hpp.

◆ setupExporter()

void setupExporter ( IOFile_Type exporter,
std::string  fileName = "output",
std::string  folder = "./" 
)

add to a given exporter the pointer to the potential and to the gating variables saved with name fileName

Definition at line 1902 of file ElectroETABidomainSolver.hpp.

◆ setupFibers() [1/4]

void setupFibers ( )

Generates a default fiber direction (0,1,0)

Definition at line 1235 of file ElectroETABidomainSolver.hpp.

◆ setupFibers() [2/4]

void setupFibers ( VectorSmall< 3 >  fibers)

Generates the fiber direction given the three component of the vector (F_x,F_y,F_z)

Definition at line 1255 of file ElectroETABidomainSolver.hpp.

◆ setupFibers() [3/4]

void setupFibers ( std::string  fibersFile)
inline

Imports the fiber direction from a hdf5 file.

Definition at line 935 of file ElectroETABidomainSolver.hpp.

◆ setupFibers() [4/4]

void setupFibers ( std::string  fibersFile,
std::string  directory,
int  format = 0 
)
inline

Imports the fiber direction from a vtk file ( format = 0), or text file.

Definition at line 941 of file ElectroETABidomainSolver.hpp.

◆ solveOneStepGatingVariablesFE()

void solveOneStepGatingVariablesFE ( )

Solves the gating variables with forward Euler.

◆ solveOneStepGatingVariablesRL()

void solveOneStepGatingVariablesRL ( )

◆ computeRhsSVI()

void computeRhsSVI ( )

Compute the rhs using state variable interpolation.

◆ computeRhsICI() [1/2]

void computeRhsICI ( )

Compute the rhs using ionic current interpolation.

◆ computeRhsICI() [2/2]

void computeRhsICI ( matrix_Type mass)

◆ solveOneICIStep() [1/3]

void solveOneICIStep ( )

Solve one full step with ionic current interpolation.

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^n+M\mathbf{I}, \]

where ${I}$ is the vector of the ionic currents $I_j = I_{ion}(V_j^n)$

◆ solveOneICIStep() [2/3]

void solveOneICIStep ( matrix_Type mass)

◆ solveOneSVIStep() [1/2]

void solveOneSVIStep ( )

Solve one full step with ionic current interpolation.

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^n+\mathbf{I}_{ion}(\mathbf{V}^n). \]

◆ solveICI() [1/3]

void solveICI ( )

solve system using ICI from M_initialTime to the M_endTime with time step M_timeStep

◆ solveSVI() [1/3]

void solveSVI ( )

solve system using SVI from M_initialTime to the M_endTime with time step M_timeStep

◆ solveOneICIStep() [3/3]

void solveOneICIStep ( IOFile_Type exporter,
Real  t 
)

Solve one full step with ionic current interpolation and export the solution.

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^n+M\mathbf{I}, \]

where ${I}$ is the vector of the ionic currents $I_j = I_{ion}(V_j^n)$

◆ solveOneSVIStep() [2/2]

void solveOneSVIStep ( IOFile_Type exporter,
Real  t 
)

Solve one full step with ionic current interpolation and export the solution.

\[ A\mathbf{V}^{n+1} = \left( \frac{M}{\Delta t} + K(\mathbf{f}) \right)\mathbf{V}^{n+1} =\frac{M}{\Delta t} \mathbf{V}^n+\mathbf{I}_{ion}(\mathbf{V}^n). \]

◆ solveICI() [2/3]

void solveICI ( IOFile_Type exporter)

solve system using ICI from M_initialTime to the M_endTime with time step M_timeStep and export the solution

◆ solveSVI() [2/3]

void solveSVI ( IOFile_Type exporter)

solve system using SVI from M_initialTime to the M_endTime with time step M_timeStep and export the solution

◆ solveICI() [3/3]

void solveICI ( IOFile_Type exporter,
Real  dt 
)

Solve the system using ICI from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt.

◆ solveSVI() [3/3]

void solveSVI ( IOFile_Type exporter,
Real  dt 
)

Solve the using SVI from M_initialTime to the M_endTime with time step M_timeStep and export the solution every dt.

◆ exportFiberDirection() [1/2]

void exportFiberDirection ( std::string  postDir = "./")

Generates a file where the fiber direction is saved.

Definition at line 1268 of file ElectroETABidomainSolver.hpp.

◆ exportFiberDirection() [2/2]

void exportFiberDirection ( IOFile_Type exporter)

save the fiber direction into the given exporter

Definition at line 1286 of file ElectroETABidomainSolver.hpp.

◆ exportSolution()

void exportSolution ( IOFile_Type exporter,
Real  t 
)
inline

Save the solution in the exporter.

Definition at line 1004 of file ElectroETABidomainSolver.hpp.

◆ importSolution()

void importSolution ( GetPot dataFile,
std::string  prefix,
std::string  postDir,
Real  time 
)

Import solution.

Definition at line 1299 of file ElectroETABidomainSolver.hpp.

◆ setInitialConditions()

void setInitialConditions ( )
inline

Definition at line 1012 of file ElectroETABidomainSolver.hpp.

◆ registerActivationTime()

void registerActivationTime ( vector_Type activationTimeVector,
Real  time,
Real  threshold = 0.0 
)

save the fiber direction into the given exporter

◆ setParameters() [2/2]

void setParameters ( )
private

Definition at line 1987 of file ElectroETABidomainSolver.hpp.

◆ init() [1/6]

void init ( )
private

Definition at line 1922 of file ElectroETABidomainSolver.hpp.

◆ init() [2/6]

void init ( commPtr_Type  comm)
private

Definition at line 1951 of file ElectroETABidomainSolver.hpp.

◆ init() [3/6]

void init ( meshPtr_Type  meshPtr)
private

Definition at line 1960 of file ElectroETABidomainSolver.hpp.

◆ init() [4/6]

void init ( ionicModelPtr_Type  model)
private

Definition at line 1939 of file ElectroETABidomainSolver.hpp.

◆ init() [5/6]

void init ( commPtr_Type  comm,
ionicModelPtr_Type  model 
)
private

Definition at line 1970 of file ElectroETABidomainSolver.hpp.

◆ init() [6/6]

void init ( meshPtr_Type  meshPtr,
ionicModelPtr_Type  model 
)
private

Definition at line 1978 of file ElectroETABidomainSolver.hpp.

◆ importFibers()

void importFibers ( vectorPtr_Type  M_fiberPtr,
std::string  fibersFile,
meshPtr_Type  M_localMeshPtr 
)
protected

Field Documentation

◆ M_surfaceVolumeRatio

Real M_surfaceVolumeRatio
private

Definition at line 1033 of file ElectroETABidomainSolver.hpp.

◆ M_ionicModelPtr

ionicModelPtr_Type M_ionicModelPtr
private

Definition at line 1035 of file ElectroETABidomainSolver.hpp.

◆ M_commPtr

commPtr_Type M_commPtr
private

Definition at line 1037 of file ElectroETABidomainSolver.hpp.

◆ M_localMeshPtr

meshPtr_Type M_localMeshPtr
private

Definition at line 1038 of file ElectroETABidomainSolver.hpp.

◆ M_fullMeshPtr

meshPtr_Type M_fullMeshPtr
private

Definition at line 1039 of file ElectroETABidomainSolver.hpp.

◆ M_ETFESpacePtr

ETFESpacePtr_Type M_ETFESpacePtr
private

Definition at line 1040 of file ElectroETABidomainSolver.hpp.

◆ M_feSpacePtr

feSpacePtr_Type M_feSpacePtr
private

Definition at line 1041 of file ElectroETABidomainSolver.hpp.

◆ M_massMatrixPtr

blockMatrixPtr_Type M_massMatrixPtr
private

Definition at line 1043 of file ElectroETABidomainSolver.hpp.

◆ M_stiffnessMatrixPtr

blockMatrixPtr_Type M_stiffnessMatrixPtr
private

Definition at line 1044 of file ElectroETABidomainSolver.hpp.

◆ M_globalMatrixPtr

blockMatrixPtr_Type M_globalMatrixPtr
private

Definition at line 1045 of file ElectroETABidomainSolver.hpp.

◆ M_initialTime

Real M_initialTime
private

Definition at line 1047 of file ElectroETABidomainSolver.hpp.

◆ M_endTime

Real M_endTime
private

Definition at line 1048 of file ElectroETABidomainSolver.hpp.

◆ M_timeStep

Real M_timeStep
private

Definition at line 1049 of file ElectroETABidomainSolver.hpp.

◆ M_diffusionTensorIntra

VectorSmall<3> M_diffusionTensorIntra
private

Definition at line 1051 of file ElectroETABidomainSolver.hpp.

◆ M_diffusionTensorExtra

VectorSmall<3> M_diffusionTensorExtra
private

Definition at line 1052 of file ElectroETABidomainSolver.hpp.

◆ M_rhsPtr

blockVectorPtr_Type M_rhsPtr
private

Definition at line 1054 of file ElectroETABidomainSolver.hpp.

◆ M_rhsPtrUnique

blockVectorPtr_Type M_rhsPtrUnique
private

Definition at line 1055 of file ElectroETABidomainSolver.hpp.

◆ M_potentialGlobalPtr

blockVectorPtr_Type M_potentialGlobalPtr
private

Definition at line 1056 of file ElectroETABidomainSolver.hpp.

◆ M_potentialTransPtr

vectorPtr_Type M_potentialTransPtr
private

Definition at line 1057 of file ElectroETABidomainSolver.hpp.

◆ M_potentialExtraPtr

vectorPtr_Type M_potentialExtraPtr
private

Definition at line 1058 of file ElectroETABidomainSolver.hpp.

◆ M_linearSolverPtr

linearSolverPtr_Type M_linearSolverPtr
private

Definition at line 1060 of file ElectroETABidomainSolver.hpp.

◆ M_globalSolution

vectorOfPtr_Type M_globalSolution
private

Definition at line 1062 of file ElectroETABidomainSolver.hpp.

◆ M_globalRhs

vectorOfPtr_Type M_globalRhs
private

Definition at line 1063 of file ElectroETABidomainSolver.hpp.

◆ M_elementsOrder

std::string M_elementsOrder
private

Definition at line 1065 of file ElectroETABidomainSolver.hpp.

◆ M_fiberPtr

vectorPtr_Type M_fiberPtr
private

Definition at line 1067 of file ElectroETABidomainSolver.hpp.

◆ M_displacementPtr

vectorPtr_Type M_displacementPtr
private

Definition at line 1069 of file ElectroETABidomainSolver.hpp.

◆ M_identity

matrixSmall_Type M_identity
private

Definition at line 1072 of file ElectroETABidomainSolver.hpp.

◆ M_displacementETFESpacePtr

ETFESpaceVectorialPtr_Type M_displacementETFESpacePtr
private

Definition at line 1074 of file ElectroETABidomainSolver.hpp.

◆ M_lumpedMassMatrix

bool M_lumpedMassMatrix
private

Definition at line 1076 of file ElectroETABidomainSolver.hpp.


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