ISAAR.MSolve.FEM/Elements/ContinuumElement3D.cs
/// <summary>
/// Assembles the deformation matrix of a solid element.
/// The calculation are based on <see cref="https://www.colorado.edu/engineering/CAS/courses.d/AFEM.d/AFEM.Ch08.d/AFEM.Ch08.pdf"/>
/// paragraph 8.4, equation 8.7
/// </summary>
/// <param name="shapeGradients"></param>
/// <returns></returns>
Assembles the deformation matrix of a solid element.
Assembles the deformation matrix of a solid element .
private Matrix BuildDeformationMatrix(Matrix shapeGradientsCartesian)
        {
            var deformation = Matrix.CreateZero(6, 3 * Nodes.Count);
            for (int nodeIdx = 0; nodeIdx < Nodes.Count; nodeIdx++)
            {
                int col0 = 3 * nodeIdx;
                int col1 = 3 * nodeIdx + 1;
                int col2 = 3 * nodeIdx + 2;
                deformation[0, col0] = shapeGradientsCartesian[nodeIdx, 0];
                deformation[1, col1] = shapeGradientsCartesian[nodeIdx, 1];
                deformation[2, col2] = shapeGradientsCartesian[nodeIdx, 2];
                deformation[3, col0] = shapeGradientsCartesian[nodeIdx, 1];
                deformation[3, col1] = shapeGradientsCartesian[nodeIdx, 0];
                deformation[4, col1] = shapeGradientsCartesian[nodeIdx, 2];
                deformation[4, col2] = shapeGradientsCartesian[nodeIdx, 1];
                deformation[5, col0] = shapeGradientsCartesian[nodeIdx, 2];
                deformation[5, col2] = shapeGradientsCartesian[nodeIdx, 0];
            }
            return deformation;
        }
private Matrix BuildDeformationMatrix ( Matrix shapeGradientsCartesian ) { var deformation = Matrix . CreateZero ( 6 , 3 * Nodes . Count ) ; for ( int nodeIdx = 0 ; nodeIdx < Nodes . Count ; nodeIdx ++ ) { int col0 = 3 * nodeIdx ; int col1 = 3 * nodeIdx + 1 ; int col2 = 3 * nodeIdx + 2 ; deformation [ 0 , col0 ] = shapeGradientsCartesian [ nodeIdx , 0 ] ; deformation [ 1 , col1 ] = shapeGradientsCartesian [ nodeIdx , 1 ] ; deformation [ 2 , col2 ] = shapeGradientsCartesian [ nodeIdx , 2 ] ; deformation [ 3 , col0 ] = shapeGradientsCartesian [ nodeIdx , 1 ] ; deformation [ 3 , col1 ] = shapeGradientsCartesian [ nodeIdx , 0 ] ; deformation [ 4 , col1 ] = shapeGradientsCartesian [ nodeIdx , 2 ] ; deformation [ 4 , col2 ] = shapeGradientsCartesian [ nodeIdx , 1 ] ; deformation [ 5 , col0 ] = shapeGradientsCartesian [ nodeIdx , 2 ] ; deformation [ 5 , col2 ] = shapeGradientsCartesian [ nodeIdx , 0 ] ; } return deformation ; }
Assembles the deformation matrix of a solid element.
Assembles the deformation matrix of a solid element .
None
shapeGradientsCartesian
Matrix
shapeGradients
None