CEPS
24.01
Cardiac ElectroPhysiology Simulator
|
Bidomain equation with extracardiac medium main class.
Definition at line 35 of file ExtendedBidomainProblem.hpp.
#include <ExtendedBidomainProblem.hpp>
Data Structures | |
struct | UnknownsName |
name of unknowns in a struct More... | |
Public Member Functions | |
ExtendedBidomainProblem (Geometry *g, InputParameters *=nullptr) | |
Constructor from geometry and possibly parameters. More... | |
~ExtendedBidomainProblem ()=default | |
Destructor. More... | |
void | defineUnknowns () override |
Transmembrane voltage (mV) and Extracellular potential (mV) More... | |
void | run () override |
Run the simulation. More... | |
const CepsSet< CepsAttribute > & | getExtracardiacAttributes () const |
Get extracardiac attributes. More... | |
CepsSet< CepsAttribute > | getWholeDomainAttributes () const |
Get all attributes: tissue and extracardiac. More... | |
virtual CepsSet< CepsAttribute > | getAnodeAttributes () const |
Get cathode attributes if set. More... | |
virtual CepsSet< CepsAttribute > | getCathodeAttributes () const |
Get cathode attributes if set. More... | |
CepsBool | hasAnodalCathodalStimulation () const |
Has anodal and cathodal stimulation ? More... | |
void | defineBoundaryConditions () override |
Define the boundary conditions. More... | |
CepsBool | requireNullMean () const |
Tells if this problem requires a null mean constraint. More... | |
Public Member Functions inherited from BidomainProblem | |
BidomainProblem (Geometry *g, InputParameters *=nullptr) | |
Constructor with input strings and geometry. More... | |
~BidomainProblem ()=default | |
Destructor. More... | |
CepsVector< Unknown * > | getTMVUnknowns () const override |
Returns a vector containing all unknowns that are a TMV (especially useful for bilayer) More... | |
CepsVector< Unknown * > | getCardiacUnknowns () const override |
Returns a vector containing all unknowns that are cardiac unknowns (eg. vm, ui or ue) More... | |
Unknown * | getTMVUnknown () const |
Link to the single unknown of the problem. More... | |
Unknown * | getUeUnknown () const |
Link to the single unknown of the problem. More... | |
void | getInitialCondition (DHVecPtr v) const override |
asks each ionic model to fill the parts of the Vm vector with its initial value, fill ue with same value More... | |
Public Member Functions inherited from CardiacProblem | |
CardiacProblem (Geometry *g, InputParameters *params=nullptr) | |
Constructor with input file and geometry. More... | |
~CardiacProblem () override | |
Destructor. More... | |
void | getInitialCondition (DHVecPtr v) const override |
Zero + asks each ionic model to fill the parts of the Vm vector with its initial value. More... | |
CepsVector< AbstractIonicModel * > | getIonicModels () const |
Vector of all initd ionic models. More... | |
ScalarField< DegreeOfFreedom > * | getAm () const |
Link to Am coefficient. More... | |
ScalarField< DegreeOfFreedom > * | getCm () const |
Link to Cm coefficient. More... | |
TensorField< GeomCell > * | getSigmaI () const |
Link to intracellular conductivity. More... | |
TensorField< GeomCell > * | getSigmaE () const |
Link to extracellular conductivity. More... | |
const CepsSet< CepsAttribute > & | getTissueAttributes () const |
All attributes that localize tissue. More... | |
void | initializeEquation () override |
Initializes all the elements of the PDE from options. More... | |
void | initializeCm () |
Sets the membrane conductivity from the input parameters. More... | |
void | initializeAm () |
Set the surface of membrane from input parameters. More... | |
void | initializeIonicModels () |
Creates and assign ionic models to tissue regions from input string. More... | |
virtual void | initializeConductivities () |
Generates the functors that compute conductivity either from inputs or volume fraction. More... | |
virtual void | initializeConductivities (CepsString sigmaIOpts, CepsString sigmaEOpts, TensorField< GeomCell > *&sigmaI, TensorField< GeomCell > *&sigmaE, CepsString fiberOptions, CepsString suffix="") |
Generates the functors that compute conductivity either from inputs or volume fraction. More... | |
virtual void | initializeStimulations () |
Generates stimulations and links them to ionic models. Called within define source terms. More... | |
void | defineSourceTerms () override |
For cardiac problem, only calls initializeStimulation. Can be overriden. More... | |
Public Member Functions inherited from HeatProblem | |
HeatProblem (Geometry *g, InputParameters *p=nullptr, const CepsMathTensor &k=CepsMathTensor::Identity()) | |
Constructor from geometry and optional input file. More... | |
~HeatProblem () override | |
Destructor. More... | |
void | setupWithParameters (InputParameters *params) override |
Set attributes from input file. Parameters are passed as arguments in case one wants to use other parameters. More... | |
void | defineUnknowns () override |
Lists the unknowns of the problem (one here) More... | |
void | defineSourceTerms () override |
Lists the unknowns of the problem (one here) More... | |
virtual CepsMathTensor | getDiffusionTensor (Unknown *u=nullptr) const |
Diffusion tensor. More... | |
void | run () override |
Computes the solution. More... | |
Public Member Functions inherited from AbstractTimedPdeProblem | |
AbstractTimedPdeProblem (Geometry *geom, InputParameters *params=nullptr) | |
Constructor with geometry and optional parameters. More... | |
CepsReal | getStartTime () const override |
pde start time More... | |
CepsReal | getEndTime () const override |
pde end time More... | |
CepsReal | getTimeStep () const |
pde time step More... | |
void | setTimes (CepsReal tStart, CepsReal tEnd, CepsReal dt) |
Define the start and end times, also time step. More... | |
CepsReal | getSnapshotTime () const override |
Periodicity of outputs, in time units. More... | |
void | setSnapshotTime (CepsReal st) |
Periodicity of outputs, in time units. More... | |
virtual void | defineInitialCondition () |
Sets the pointer on function for initial guess. Here it is set to nullptr, so it will be 0. More... | |
void | initializeEquation () override |
Initializes equations (unknowns, bc, source term) and creates the spatial discretization This method should be called at the start of run() methods. More... | |
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > | getErrors () const |
Get the errors. More... | |
CepsBool | canComputeErrorAtTime (CepsReal t) const |
Tells if either analytic solution or reference solution has a snapshot at time t. More... | |
Public Member Functions inherited from AbstractPdeProblem | |
AbstractPdeProblem (Geometry *geom, InputParameters *params=nullptr) | |
Constructor with geometry and optional parameters. More... | |
virtual | ~AbstractPdeProblem () |
destructor More... | |
AbstractPdeProblem (const AbstractPdeProblem &that)=delete | |
No copy constructor. More... | |
AbstractPdeProblem & | operator= (const AbstractPdeProblem &that)=delete |
No assignment operator. More... | |
InputParameters * | getParameters () const |
Text parameters. More... | |
void | setProblemName (const CepsString &name) |
Set the name of the problem. More... | |
CepsString | getProblemName () const |
Get the name of the problem. More... | |
Geometry * | getGeometry () const |
Link to geometry on which the pb is defined. More... | |
AbstractDiscretization * | getSpatialDiscretization () const |
Link to the spatial discretization (FE, FV, etc) More... | |
void | setSpatialDiscretization (AbstractDiscretization *discr) |
Link to the spatial discretization (FE, FV, etc) More... | |
void | createSpatialDiscretization () |
Compute the discretization structure. More... | |
const CepsVector< Unknown * > & | getUnknowns () const |
List of unknowns of the pb. More... | |
Unknown * | getUnknown (const CepsString &label) const |
Get an unknown by its name. More... | |
Unknown * | getUnknown (CepsUnknownIndex uid) const |
Get an unknown by its id. More... | |
CepsVector< Unknown * > | getSpatialUnknowns () const |
A vector of all unknowns of pb defined on cells or points. More... | |
CepsVector< Unknown * > | getZeroDUnknowns () const |
A vector of all zeroD unknowns of the pb. More... | |
const CepsVector< UnknownInteraction * > & | getUnknownsInteractions () const |
All the interactions between unknowns. More... | |
CepsBool | unknownsInteract (Unknown *u1, Unknown *u2, const CepsSet< CepsAttribute > &attrs={CepsUniversal}) const |
Tells if unknowns interact on an entity with attributes. More... | |
CepsBool | ignoreZeroDUnknownsForError () const |
Tells if 0D must not be taken into account in error computation. More... | |
CepsBool | hasAnalyticSolution () const |
Tells if there is an analytic or reference solution. More... | |
ScalarFunction * | getAnalyticSolution () const |
Pointer on analytic or refScalarFunction solution. More... | |
virtual void | defineAnalyticSolution () |
Set directly the analytic function, default sets no solution, unless there is a collection of reference solution files, provided at init or from parameters. More... | |
void | setReferenceSolution (const CepsString &baseFiles, CepsReal snapDt) |
Externally define the referece solution from files. Can be used for convergence tests. More... | |
CepsBool | usesReferenceSolution () const |
Tells if analytic solution and if it is loaded from files. More... | |
CepsReal | getReferenceSolutionOutputPeriod () const |
Output dt of reference. More... | |
FunctionDictionary * | getFunctionDictionary () const |
Get functions manager. More... | |
void | setFunctionDictionary (FunctionDictionary *) |
Set functions manager. More... | |
BoundaryConditionManager * | getBoundaryConditionManager () const |
Get boundary condition manager. More... | |
void | setBoundaryConditionManager (BoundaryConditionManager *bcm) |
Set boundary condition manager. More... | |
SourceTermManager * | getSourceTermManager () const |
Get boundary condition manager. More... | |
void | setSourceTermManager (SourceTermManager *stm) |
Set boundary condition manager. More... | |
CepsString | getOutputFileBase () const |
Output file name includes the directory. More... | |
void | setOutputFileBase (CepsString fileName) |
Output file name includes the directory. More... | |
CepsOutputFormat | getOutputFormat () const |
Tells if output is binary or ascii. More... | |
void | setOutputFormat (CepsOutputFormat opt) |
Enable/disable binary output. More... | |
CepsBool | writesGlobalIndices () const |
Tells if global indices are written on top of solution. More... | |
void | writeGlobalIndices (CepsBool opt) |
Activate/deactivate global indices writing. More... | |
CepsVector< CepsReal3D > | getProbePoints () const |
Returns points where single data output should be written. More... | |
Public Member Functions inherited from CepsObject | |
CepsObject ()=default | |
default constructor More... | |
CepsObject (const CepsObject &)=default | |
Copy constructor. More... | |
virtual | ~CepsObject ()=default |
Destructor. More... | |
CepsObject & | operator= (const CepsObject &)=default |
Assignment operator. More... | |
CepsObject * | toBaseObject () |
Returns a pointer to CepsObject class. More... | |
const CepsObject * | toBaseObject () const |
Returns a pointer to CepsObject class, const version. More... | |
Profiler * | getProfiler () const |
Access to profiler. More... | |
Protected Member Functions | |
void | setupWithParameters (InputParameters *params) override |
Sets options from the parameters. More... | |
Protected Member Functions inherited from CardiacProblem | |
void | createFibersAndConductivities (CepsString fiberOptions, TensorField< GeomCell > *&sigmaI, TensorField< GeomCell > *&sigmaE, CepsString suffix="") |
Creates the entries in the dictionary for each direction of fibers from file This is splitted from initializeConductivities for BilayerMonodomain where several fiber orientations exist per cell. More... | |
Protected Member Functions inherited from AbstractPdeProblem | |
void | addUnknown (const CepsString &label, CepsSet< CepsAttribute > attrs={}, CepsLocationFlag flag=CepsLocationFlag::Point, const CepsString &unit="") |
Register a new unknown. More... | |
void | addZeroDUnknown (CepsString label, const CepsString &unit="") |
Register a new unknown, defined outside of geometry. More... | |
void | addUnknownInteraction (CepsString label1, CepsString label2, CepsSet< CepsAttribute > attrs={}) |
Register interaction between unknowns. Also sets the interaction within Unknown instances label1 and label2. More... | |
Protected Attributes | |
CepsString | m_extMediaAttrsOpts |
Text input for extracardiac regions attributes. More... | |
CepsSet< CepsAttribute > | m_extMediaAttrs |
Extracardiac regions attributes. More... | |
CepsString | m_biElecStimOpts |
Anodal and cathodal stimulation parameters, disabled if empty. More... | |
CepsString | m_robinCoeffs |
Robin coefficients. More... | |
CepsString | m_anodeAttrsOpts |
Text input for anode attributes. More... | |
CepsSet< CepsAttribute > | m_anodeAttrs |
Anode attributes. More... | |
CepsString | m_cathodeAttrsOpts |
Text input for cathode attributes. More... | |
CepsSet< CepsAttribute > | m_cathodeAttrs |
Cathode attributes. More... | |
Protected Attributes inherited from CardiacProblem | |
CepsString | m_CmOptions |
Options for membrance capacitance. More... | |
CepsString | m_AmOptions |
Options for membrane surface. More... | |
CepsString | m_ionOptions |
Options for ionic models. More... | |
CepsString | m_fibersOptions |
Options for fiber orientation. More... | |
CepsString | m_sigmaIOptions |
Options for intracellular conductivity. More... | |
CepsString | m_sigmaEOptions |
Options for extracellulat conductivity. More... | |
CepsString | m_volFracOptions |
Options for volume fraction. More... | |
CepsString | m_volFracItpFileI |
Options for volume fraction. More... | |
CepsString | m_volFracItpFileE |
Options for volume fraction. More... | |
CepsString | m_stimOptions |
Options for stimulation. More... | |
CepsString | m_bcStimOptions |
Options for stimulation, on boundary. More... | |
CepsSet< CepsAttribute > | m_tissueAttributes |
Identifier for the tissue region, default {-1}. More... | |
ScalarField< DegreeOfFreedom > * | m_Cm |
Membrane capacitance, may depend on x and t. More... | |
ScalarField< DegreeOfFreedom > * | m_Am |
Surface (cm2) of cell membrane per cm3 of myocardium. More... | |
CepsVector< AbstractIonicModel * > | m_ionicModels |
All ionic models defined on the tissue. More... | |
TensorField< GeomCell > * | m_sigmaI |
Intracellular conductivity, defined on cells. More... | |
TensorField< GeomCell > * | m_sigmaE |
Extracellulat conductivity, defined on cells. More... | |
ScalarField< GeomCell > * | m_volFrac |
Fraction of tissue made of valid myocytes. More... | |
Protected Attributes inherited from HeatProblem | |
CepsMathTensor | m_k |
Diffusion tensor. More... | |
Protected Attributes inherited from AbstractTimedPdeProblem | |
CepsReal | m_pdeStartTime |
Initial time. More... | |
CepsReal | m_pdeEndTime |
End time. More... | |
CepsReal | m_pdeTimeStep |
Time Step for the PDE. More... | |
CepsReal | m_pdeSnapshotTime |
Periodicity of outputs. More... | |
ScalarFunction * | m_initialCondition |
Function defining the initial condition, which is 0 if pointer is null. More... | |
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > | m_errors |
Will store Linf, L1 and L2 relative errors. More... | |
Protected Attributes inherited from AbstractPdeProblem | |
CepsString | m_name |
Name of the problem. More... | |
Geometry * | m_geom |
Link to geometry on which the pb is defined. More... | |
InputParameters * | m_parameters |
Input file data. More... | |
AbstractDiscretization * | m_discr |
Discretization method (eg FE for now) More... | |
CepsBool | m_ownedDiscr |
True if instance used new to create discretization. More... | |
CepsVector< Unknown * > | m_unknowns |
All maths unknowns of the problem. More... | |
CepsVector< UnknownInteraction * > | m_unknownsInteractions |
Describes how unknowns interact. More... | |
ScalarFunction * | m_analyticSolution |
analytic or reference solution More... | |
CepsBool | m_ownedRefSol |
Flag for reference ownership. More... | |
CepsString | m_refSolFiles |
base name of reference solution file, if any More... | |
CepsReal | m_refSolSnapDt |
reference solution output period More... | |
FunctionDictionary * | m_functions |
Collection of custom functions. More... | |
BoundaryConditionManager * | m_boundaryConditions |
All BCs should be there. More... | |
SourceTermManager * | m_sourceTerms |
All source terms. More... | |
CepsBool | m_ownedFunctions |
True if instance used new to create dictionary. More... | |
CepsBool | m_ownedBCs |
True if instance used new to create BC manager. More... | |
CepsBool | m_ownedSrcs |
True if instance used new to create src term manager. More... | |
CepsString | m_outputFileBase |
File names prefix. More... | |
CepsOutputFormat | m_outputFormat |
Output format selector. More... | |
CepsBool | m_writeGlobalIDs |
Writes CEPS indices as well. More... | |
CepsVector< CepsReal3D > | m_probePoints |
Single point data outputs. More... | |
CepsBool | m_ignoreZeroDError |
Ignore 0D unknowns when computing errors. More... | |
Additional Inherited Members | |
Public Types inherited from AbstractPdeProblem | |
using | ScalarFunction = ceps::Function< CepsReal(CepsStandardArgs)> |
Typedef for analytic solution. More... | |
Static Public Attributes inherited from AbstractTimedPdeProblem | |
static constexpr CepsBool | isStatic = false |
Flag for static/timed. More... | |
Static Protected Attributes inherited from CepsObject | |
static Profiler | m_profiler |
The same profiler for each big object. More... | |
|
explicit |
Constructor from geometry and possibly parameters.
Definition at line 36 of file ExtendedBidomainProblem.cpp.
|
default |
Destructor.
|
overridevirtual |
Define the boundary conditions.
Reimplemented from CardiacProblem.
Definition at line 161 of file ExtendedBidomainProblem.cpp.
|
overridevirtual |
Transmembrane voltage (mV) and Extracellular potential (mV)
Reimplemented from BidomainProblem.
Definition at line 70 of file ExtendedBidomainProblem.cpp.
|
virtual |
Get cathode attributes if set.
Reimplemented in PacemakerBidomainProblem.
Definition at line 139 of file ExtendedBidomainProblem.cpp.
|
virtual |
Get cathode attributes if set.
Reimplemented in PacemakerBidomainProblem.
Definition at line 145 of file ExtendedBidomainProblem.cpp.
const CepsSet< CepsAttribute > & ExtendedBidomainProblem::getExtracardiacAttributes | ( | ) | const |
Get extracardiac attributes.
Definition at line 121 of file ExtendedBidomainProblem.cpp.
CepsSet< CepsAttribute > ExtendedBidomainProblem::getWholeDomainAttributes | ( | ) | const |
Get all attributes: tissue and extracardiac.
Definition at line 127 of file ExtendedBidomainProblem.cpp.
CepsBool ExtendedBidomainProblem::hasAnodalCathodalStimulation | ( | ) | const |
Has anodal and cathodal stimulation ?
Definition at line 151 of file ExtendedBidomainProblem.cpp.
CepsBool ExtendedBidomainProblem::requireNullMean | ( | ) | const |
Tells if this problem requires a null mean constraint.
Definition at line 208 of file ExtendedBidomainProblem.cpp.
|
overridevirtual |
Run the simulation.
Reimplemented from BidomainProblem.
Definition at line 87 of file ExtendedBidomainProblem.cpp.
|
overrideprotectedvirtual |
Sets options from the parameters.
Reimplemented from CardiacProblem.
Definition at line 214 of file ExtendedBidomainProblem.cpp.
|
protected |
Anode attributes.
Definition at line 110 of file ExtendedBidomainProblem.hpp.
|
protected |
Text input for anode attributes.
Definition at line 109 of file ExtendedBidomainProblem.hpp.
|
protected |
Anodal and cathodal stimulation parameters, disabled if empty.
Definition at line 106 of file ExtendedBidomainProblem.hpp.
|
protected |
Cathode attributes.
Definition at line 112 of file ExtendedBidomainProblem.hpp.
|
protected |
Text input for cathode attributes.
Definition at line 111 of file ExtendedBidomainProblem.hpp.
|
protected |
Extracardiac regions attributes.
Definition at line 104 of file ExtendedBidomainProblem.hpp.
|
protected |
Text input for extracardiac regions attributes.
Definition at line 103 of file ExtendedBidomainProblem.hpp.
|
protected |
Robin coefficients.
Definition at line 108 of file ExtendedBidomainProblem.hpp.