public IMatrix BuildStiffnessMatrix() { int numberOfDofs = 3 * Nodes.Count; var stiffness = Matrix.CreateZero(numberOfDofs, numberOfDofs); IReadOnlyList <Matrix> shapeGradientsNatural = Interpolation.EvaluateNaturalGradientsAtGaussPoints(QuadratureForStiffness); for (int gp = 0; gp < QuadratureForStiffness.IntegrationPoints.Count; ++gp) { IMatrixView constitutive = materialsAtGaussPoints[gp].ConstitutiveMatrix; var jacobian = new IsoparametricJacobian3D(Nodes, shapeGradientsNatural[gp]); Matrix shapeGradientsCartesian = jacobian.TransformNaturalDerivativesToCartesian(shapeGradientsNatural[gp]); Matrix deformation = BuildDeformationMatrix(shapeGradientsCartesian); Matrix partial = deformation.ThisTransposeTimesOtherTimesThis(constitutive); double dA = jacobian.DirectDeterminant * QuadratureForStiffness.IntegrationPoints[gp].Weight; stiffness.AxpyIntoThis(partial, dA); } return(DofEnumerator.GetTransformedMatrix(stiffness)); }
public IMatrix DiffusionConductivityMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildDiffusionConductivityMatrix())); }
public IMatrix MassTransportConductivityMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildMassTransportConductivityMatrix())); }
public double[] GetLocalDOFValues(Element hostElement, double[] hostDOFValues) { return(DofEnumerator.GetTransformedDisplacementsVector(hostDOFValues)); }
public IMatrix DampingMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildStabilizingConductivityMatrix() + BuildStabilizingLoadFromUnknownConductivityMatrix())); //return BuildStabilizingConductivityMatrix(); }
public IMatrix StiffnessMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildDiffusionConductivityMatrix() + BuildMassTransportConductivityMatrix() + BuildLoadFromUnknownConductivityMatrix())); //return BuildDiffusionConductivityMatrix() + BuildMassTransportConductivityMatrix(); }
public IMatrix StiffnessMatrix(IElement element) => DofEnumerator.GetTransformedMatrix(BuildStiffnessMatrix());
public IMatrix StiffnessMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildConductivityMatrix())); }
public IMatrix StiffnessMatrix(IElement element) { return(DofEnumerator.GetTransformedMatrix(BuildDiffusionMatrix())); }