64 m_opAsb = ceps::getNew<FEPacemakerBidomainAssembler>(pbpb,
m_fe);
89 auto anode = pb->getAnode();
90 auto cathode = pb->getCathode();
91 auto ue = pb->getUeUnknown();
97 #ifdef CEPS_DEBUG_ENABLED
std::set< _Type, _Compare, _Alloc > CepsSet
C++ set.
float CepsReal
Need single precision floating point.
constexpr CepsAttribute CepsUniversal
This attribute means "everywhere".
Solves pacemaker bidomain problem with FBE, SBDF RK or CN schemes.
CepsReal getPacemakerCurrent(DHVecPtr sol, AbstractDiscretization *disc, CepsReal time) const
Compute the current pacemaker current I in uA.
CepsReal m_Vcroco
Register for measured voltage.
CepsReal m_meanOfPotentialOnAnode
Register for an integral value on anode.
CepsReal getMeanOnElectrodeOf(DHVecPtr sol, Unknown *u, FiniteElements *fe, ParallelRCElectrode *e) const
Integrate the unknown u on the electrode e.
CepsReal getAlligatorVoltage(DHVecPtr sol, AbstractDiscretization *disc, CepsReal time) const
Compute the alligator voltage in mV.
CepsReal m_phase
Which phase of pulse delivery.
CepsReal m_meanOfPotentialOnCathode
Register for an integral value on cathode.
CepsReal m_current
Register for pacemaker current in uA.
CepsReal getRequiredTimeStep(CepsReal t, CepsReal defTimeStep=1E12) const
Get the required time step for this time (phase deduced from the time)
AbstractAssembler * m_bcAsb
Assembler for Robin and Neumann BCs.
TimeWriter * m_timeWriter
Writer for time dependant data (even for static problems...)
AbstractAssembler * m_opAsb
Assembler for the operator matrix.
CepsReal getTimeStep() const
pde time step
CepsReal getEndTime() const override
pde end time
CepsReal getStartTime() const override
pde start time
TimeStepper * m_timeStepper
Monitors time evolution.
AbstractTimedPdeProblem * getTimedProblem() const
Returns a pointer with the appropriate type of pb.
DHVecPtr m_uNp1
Vectors of unknowns at time t^n+1.
void assembleAndSolve() override
Performs one iteration of the solver.
Solves bidomain extended problem with FBE, SBDF RK or CN schemes.
FiniteElements * m_fe
Geometry and reference FE.
Bidomain equation with extracardiac medium and connected to a pacemaker main class.
PacemakerBidomainProblem * getPacemakerBidomainProblem() const
Converts own pointer to abstract pde problem to cardiac problem.
void assembleAndSolve() override
Main routine used during solving, assemble the system depending on the scheme and solve the linear sy...
void initializeAssemblers() override
Sets the assemblers.
PacemakerBidomainSolver(PacemakerBidomainProblem *problem)
Constructor from problem.
CepsReal getTimeStep() const
Time step.
virtual CepsReal getTime()
current simulation time
virtual void setTimeStep(CepsReal timeStep)
Set time step.
void addCustomData(const CepsString &name, CepsReal *data)
Add a custom data to be written in the outputfile. Custom data cannot be added after header has been ...
CepsBool isValidPtr(_Type *ptr)
Tells if pointer is not null.
void checkNanOrInf(CepsReal v, CepsString message="")
Stops if value is NaN or infty.
CepsBool equals(CepsReal a, CepsReal b, CepsReal error=1.0)
CepsReal equality up to machine precision.
void destroyObject(_Type &)
Destroy[delete] any type.