46 assert(this->mpLinearSystem == NULL);
56 std::cout <<
"Using absolute tolerance: " << mpConfig->GetAbsoluteTolerance() <<
"\n";
59 this->mpLinearSystem->SetAbsoluteTolerance(mpConfig->GetAbsoluteTolerance());
66 std::cout <<
"Using relative tolerance: " << mpConfig->GetRelativeTolerance() <<
"\n";
69 this->mpLinearSystem->SetRelativeTolerance(mpConfig->GetRelativeTolerance());
76 assert(std::string(
HeartConfig::Instance()->GetKSPPreconditioner()) != std::string(
"twolevelsblockdiagonal"));
79 if (mRowForAverageOfPhiZeroed == INT_MAX)
82 this->mpLinearSystem->SetMatrixIsSymmetric(
true);
90 this->mpLinearSystem->SetMatrixIsSymmetric(
false);
93 this->mpLinearSystem->SetUseFixedNumberIterations(
void InitialiseForSolve(Vec initialSolution)
virtual void CheckCompatibilityCondition()
virtual Vec GenerateNullBasis() const
virtual ~AbstractBidomainSolver()
unsigned mRowForAverageOfPhiZeroed
void SetRowForAverageOfPhiZeroed(unsigned rowMeanPhiEZero)
void FinaliseForBath(bool computeMatrix, bool computeVector)
AbstractBidomainSolver(bool bathSimulation, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainTissue< SPACE_DIM > *pTissue, BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, 2 > *pBoundaryConditions)
void SetFixedExtracellularPotentialNodes(std::vector< unsigned > fixedExtracellularPotentialNodes)
virtual void FinaliseLinearSystem(Vec existingSolution)
void PrepareForSetupLinearSystem(Vec existingSolution)