36 #include "CellBasedParabolicPdeSolver.hpp"
38 template<
unsigned DIM>
46 template<
unsigned DIM>
51 template<
unsigned DIM>
53 c_vector<double, DIM+1>& rPhi,
54 c_matrix<double, DIM, DIM+1>& rGradPhi,
56 c_vector<double, 1>& rU,
57 c_matrix<double, 1, DIM>& rGradU ,
60 return (mInterpolatedSourceTerm
64 template<
unsigned DIM>
66 c_vector<double, DIM+1>& rPhi,
67 c_matrix<double, DIM, DIM+1>& rGradPhi,
69 c_vector<double, 1>& rU,
70 c_matrix<double, 1, DIM>& rGradU,
74 c_matrix<double, DIM, DIM> pde_diffusion_term = this->mpParabolicPde->ComputeDiffusionTerm(rX, pElement);
76 return prod( trans(rGradPhi), c_matrix<double, DIM, DIM+1>(prod(pde_diffusion_term, rGradPhi)) )
80 template<
unsigned DIM>
83 mInterpolatedSourceTerm = 0;
86 template<
unsigned DIM>
89 unsigned index_of_unknown = 0;
90 double u_at_node = this->GetCurrentSolutionOrGuessValue(pNode->
GetIndex(), index_of_unknown);
92 mInterpolatedSourceTerm += phiI*this->mpParabolicPde->ComputeSourceTermAtNode(*pNode,u_at_node);
void IncrementInterpolatedQuantities(double phiI, const Node< DIM > *)
void ResetInterpolatedQuantities()
virtual c_matrix< double, 1 *(DIM+1), 1 *(DIM+1)> ComputeMatrixTerm(c_vector< double, DIM+1 > &rPhi, c_matrix< double, DIM, DIM+1 > &rGradPhi, ChastePoint< DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, DIM > &rGradU, Element< DIM, DIM > *pElement)
virtual c_vector< double, 1 *(DIM+1)> ComputeVectorTerm(c_vector< double, DIM+1 > &rPhi, c_matrix< double, DIM, DIM+1 > &rGradPhi, ChastePoint< DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, DIM > &rGradU, Element< DIM, DIM > *pElement)
static double GetPdeTimeStepInverse()
virtual ~CellBasedParabolicPdeSolver()
unsigned GetIndex() const
CellBasedParabolicPdeSolver(TetrahedralMesh< DIM, DIM > *pMesh, AbstractLinearParabolicPde< DIM, DIM > *pPde, BoundaryConditionsContainer< DIM, DIM, 1 > *pBoundaryConditions)