45 c_vector<double, ELEMENT_DIM+1> &rPhi,
46 c_matrix<double, SPACE_DIM, ELEMENT_DIM+1> &rGradPhi,
48 c_vector<double,2> &rU,
49 c_matrix<double, 2, SPACE_DIM> &rGradU ,
53 double Am = this->mpConfig->GetSurfaceAreaToVolumeRatio();
54 double Cm = this->mpConfig->GetCapacitance();
56 const c_matrix<double, SPACE_DIM, SPACE_DIM>& sigma_i = this->mpCardiacTissue->rGetIntracellularConductivityTensor(pElement->
GetIndex());
57 const c_matrix<double, SPACE_DIM, SPACE_DIM>& sigma_e = this->mpCardiacTissue->rGetExtracellularConductivityTensor(pElement->
GetIndex());
60 c_matrix<double, SPACE_DIM, ELEMENT_DIM+1> temp = prod(sigma_i, rGradPhi);
61 c_matrix<double, ELEMENT_DIM+1, ELEMENT_DIM+1> grad_phi_sigma_i_grad_phi = prod(trans(rGradPhi), temp);
63 c_matrix<double, ELEMENT_DIM+1, ELEMENT_DIM+1> basis_outer_prod = outer_prod(rPhi, rPhi);
65 c_matrix<double, SPACE_DIM, ELEMENT_DIM+1> temp2 = prod(sigma_e, rGradPhi);
66 c_matrix<double, ELEMENT_DIM+1, ELEMENT_DIM+1> grad_phi_sigma_e_grad_phi = prod(trans(rGradPhi), temp2);
69 c_matrix<
double,2*(ELEMENT_DIM+1),2*(ELEMENT_DIM+1)> ret;
72 matrix_slice<c_matrix<double, 2*ELEMENT_DIM+2, 2*ELEMENT_DIM+2> >
73 slice00(ret, slice (0, 2, ELEMENT_DIM+1), slice (0, 2, ELEMENT_DIM+1));
77 matrix_slice<c_matrix<double, 2*ELEMENT_DIM+2, 2*ELEMENT_DIM+2> >
78 slice10(ret, slice (1, 2, ELEMENT_DIM+1), slice (0, 2, ELEMENT_DIM+1));
79 slice10 = grad_phi_sigma_i_grad_phi;
82 matrix_slice<c_matrix<double, 2*ELEMENT_DIM+2, 2*ELEMENT_DIM+2> >
83 slice01(ret, slice (0, 2, ELEMENT_DIM+1), slice (1, 2, ELEMENT_DIM+1));
84 slice01 = grad_phi_sigma_i_grad_phi;
87 matrix_slice<c_matrix<double, 2*ELEMENT_DIM+2, 2*ELEMENT_DIM+2> >
88 slice11(ret, slice (1, 2, ELEMENT_DIM+1), slice (1, 2, ELEMENT_DIM+1));
89 slice11 = grad_phi_sigma_i_grad_phi + grad_phi_sigma_e_grad_phi;
virtual c_matrix< double, 2 *(ELEMENT_DIM+1), 2 *(ELEMENT_DIM+1)> ComputeMatrixTerm(c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 2 > &rU, c_matrix< double, 2, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
BidomainAssembler(AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, BidomainTissue< SPACE_DIM > *pTissue)