bool PoroElasticity::formPermeabilityTensor (SymmTensor& K, const Vectors&, const FiniteElement&, const Vec3& X) const { const PoroMaterial* pmat = dynamic_cast<const PoroMaterial*>(material); if (!pmat) return false; Vec3 permeability = pmat->getPermeability(X); K.zero(); for (size_t i = 1; i <= K.dim(); i++) K(i,i) = permeability(i); return true; }
bool Elasticity::kinematics (const Vector& eV, const Vector& N, const Matrix& dNdX, double r, Matrix& B, Tensor&, SymmTensor& eps) const { // Evaluate the strain-displacement matrix, B if (axiSymmetry) { if (!this->formBmatrix(B,N,dNdX,r)) return false; } else { if (!this->formBmatrix(B,dNdX)) return false; } if (eV.empty() || eps.dim() == 0) return true; // Evaluate the strains return B.multiply(eV,eps); // eps = B*eV }