Example #1
0
        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();
 }
Example #7
0
 public IMatrix StiffnessMatrix(IElement element) => DofEnumerator.GetTransformedMatrix(BuildStiffnessMatrix());
 public IMatrix StiffnessMatrix(IElement element)
 {
     return(DofEnumerator.GetTransformedMatrix(BuildConductivityMatrix()));
 }
Example #9
0
 public IMatrix StiffnessMatrix(IElement element)
 {
     return(DofEnumerator.GetTransformedMatrix(BuildDiffusionMatrix()));
 }