std::vector< _Type, _Alloc > CepsVector
C++ vector.
std::shared_ptr< DistributedHaloVector > DHVecPtr
Typedef for pointer on Distributed Halo CepsVector.
CepsBool hasAnalyticSolution() const
Tells if there is an analytic or reference solution.
void setProblemName(const CepsString &name)
Set the name of the problem.
void addUnknown(const CepsString &label, CepsSet< CepsAttribute > attrs={}, CepsLocationFlag flag=CepsLocationFlag::Point, const CepsString &unit="")
Register a new unknown.
void addUnknownInteraction(CepsString label1, CepsString label2, CepsSet< CepsAttribute > attrs={})
Register interaction between unknowns. Also sets the interaction within Unknown instances label1 and ...
Unknown * getUnknown(const CepsString &label) const
Get an unknown by its name.
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > m_errors
Will store Linf, L1 and L2 relative errors.
CepsArray2< CepsArray3< CepsArray3< CepsReal > > > getErrors() const
Gets the currently computed errors. First index selects absolute(0) or relative(1) second index selec...
void defineUnknowns() override
Transmembrane voltage and extracellular potential.
CepsVector< Unknown * > getCardiacUnknowns() const override
Returns a vector containing all unknowns that are cardiac unknowns (eg. vm, ui or ue)
Unknown * getUeUnknown() const
Link to the single unknown of the problem.
void run() override
Run the simulation.
Unknown * getTMVUnknown() const
Link to the single unknown of the problem.
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 va...
BidomainProblem(Geometry *g, InputParameters *=nullptr)
Constructor with input strings and geometry.
CepsVector< Unknown * > getTMVUnknowns() const override
Returns a vector containing all unknowns that are a TMV (especially useful for bilayer)
Solves bidomain problem with FBE, SBDF RK or CN schemes.
A abstract class that regroups common parameters of cardiac problems.
void getInitialCondition(DHVecPtr v) const override
Zero + asks each ionic model to fill the parts of the Vm vector with its initial value.
const CepsSet< CepsAttribute > & getTissueAttributes() const
All attributes that localize tissue.
void initializeEquation() override
Initializes all the elements of the PDE from options.
void solve() override
Performs all iterations of the PDE solver.
Profiler * getProfiler() const
Access to profiler.
Encapsulates all the geometrical data.
void stop(CepsString lbl)
Stops the measure of a labeled chronometer.
void start(CepsString lbl, CepsString dspl="")
Creates or continue a labeled chronometer.
A class used to defined an unknown of a PDE problem The unknown can be defined on a specific region,...
CepsBool isProfiling()
Check if we are currently profiling on the master proc (always false on slave procs).
static constexpr const char * ue
Extracellular and extracardiac potential.
static constexpr const char * vm
Transmembrane voltage.