44 static constexpr
const char*
vm =
"Transmembrane voltage (mV)";
46 static constexpr
const char*
ue =
"Extracellular potential (mV)";
std::basic_string< CepsChar > CepsString
C++ format string.
std::set< _Type, _Compare, _Alloc > CepsSet
C++ set.
Eigen::Matrix< CepsScalar, 3, 3 > CepsMathTensor
Tensor, eigen format.
std::vector< _Type, _Alloc > CepsVector
C++ vector.
std::shared_ptr< DistributedHaloVector > DHVecPtr
Typedef for pointer on Distributed Halo CepsVector.
A functor that aligns conductivities along the fibers directions.
CepsEnum getFlags() const override
Combination of flags of all 3 arrays.
VectorSAFunc * m_fT
Pointer on dico function for transverse component of fibers.
VectorSAFunc * m_fL
Pointer on dico function for longitudinal component of fibers.
FiberAligner(VectorSAFunc *fL, VectorSAFunc *fT, VectorSAFunc *fN, TensorSAFunc *sT=nullptr, VectorSAFunc *sV=nullptr)
Constructor with a functor for each direction. Input conductivity can be either vector (diagonal) or ...
VectorSAFunc * m_sV
Pointer on dico function for diagonal reference conductivity.
VectorSAFunc * m_fN
Pointer on dico function for "normal" component of fibers.
TensorSAFunc * m_sT
Pointer on dico function for tensorial reference conductivity.
CepsMathTensor eval(CepsStandardArgs args) override
Get the full tensor.
A abstract class that regroups common parameters of cardiac problems.
virtual CepsVector< Unknown * > getCardiacUnknowns() const =0
Returns a vector containing all unknowns that are cardiac unknowns (eg. vm, ui or ue)
void defineBoundaryConditions() override
For cardiac problems, use the "boundary stimulation" key to create boundary conditions using the same...
void getInitialCondition(DHVecPtr v) const override
Zero + asks each ionic model to fill the parts of the Vm vector with its initial value.
ScalarField< DegreeOfFreedom > * m_Cm
Membrane capacitance, may depend on x and t.
CepsString m_fibersOptions
Options for fiber orientation.
CepsString m_bcStimOptions
Options for stimulation, on boundary.
~CardiacProblem() override
Destructor.
CepsString m_CmOptions
Options for membrance capacitance.
void initializeCm()
Sets the membrane conductivity from the input parameters.
CepsString m_AmOptions
Options for membrane surface.
CepsString m_volFracOptions
Options for volume fraction.
void initializeIonicModels()
Creates and assign ionic models to tissue regions from input string.
void initializeAm()
Set the surface of membrane from input parameters.
CepsString m_ionOptions
Options for ionic models.
TensorField< GeomCell > * getSigmaE() const
Link to extracellular conductivity.
CardiacProblem(Geometry *g, InputParameters *params=nullptr)
Constructor with input file and geometry.
virtual void initializeConductivities()
Generates the functors that compute conductivity either from inputs or volume fraction.
void setupWithParameters(InputParameters *params) override
Sets options from the parameters.
virtual void initializeStimulations()
Generates stimulations and links them to ionic models. Called within define source terms.
CepsString m_sigmaIOptions
Options for intracellular conductivity.
TensorField< GeomCell > * m_sigmaI
Intracellular conductivity, defined on cells.
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 in...
CepsVector< AbstractIonicModel * > getIonicModels() const
Vector of all initd ionic models.
virtual CepsVector< Unknown * > getTMVUnknowns() const =0
Returns a vector containing all unknowns that are a TMV (especially useful for bilayer)
CepsString m_sigmaEOptions
Options for extracellulat conductivity.
CepsVector< AbstractIonicModel * > m_ionicModels
All ionic models defined on the tissue.
CepsSet< CepsAttribute > m_tissueAttributes
Identifier for the tissue region, default {-1}.
ScalarField< DegreeOfFreedom > * m_Am
Surface (cm2) of cell membrane per cm3 of myocardium.
ScalarField< GeomCell > * m_volFrac
Fraction of tissue made of valid myocytes.
const CepsSet< CepsAttribute > & getTissueAttributes() const
All attributes that localize tissue.
TensorField< GeomCell > * m_sigmaE
Extracellulat conductivity, defined on cells.
ScalarField< DegreeOfFreedom > * getCm() const
Link to Cm coefficient.
CepsString m_stimOptions
Options for stimulation.
CepsString m_volFracItpFileI
Options for volume fraction.
CepsString m_volFracItpFileE
Options for volume fraction.
void initializeEquation() override
Initializes all the elements of the PDE from options.
ScalarField< DegreeOfFreedom > * getAm() const
Link to Am coefficient.
TensorField< GeomCell > * getSigmaI() const
Link to intracellular conductivity.
void defineSourceTerms() override
For cardiac problem, only calls initializeStimulation. Can be overriden.
A Field is an object wrapped around a SAFunc functor, defined on at least one domain.
Encapsulates all the geometrical data.
Heat PDE, single unknown, constant diffusion coeff 1, homogeneous Neumann (no BC defined)
A SAFunc is a ceps::Function that uses CepsStandardArgs as argument of call operator (),...
name of unknowns in a struct
static constexpr const char * ue
Extracellular and extracardiac potential.
static constexpr const char * vm
Transmembrane voltage.
Structure used to pass arguments to SAFunc (see pde directory) The flags of the SAFunc allows extract...