ISAAR.MSolve.FEM.Tests/Elements/Tri6.cs
/// <summary>
/// To reproduce the reference solution, run the Abaqus job tri6_test0.inp and look at 
/// TRI6_TEST0_STIFFNESS_MATRICES.mtx.
/// </summary>
To reproduce the reference solution, run the Abaqus job tri6_test0.inp and look at
TRI6_TEST0_STIFFNESS_MATRICES.mtx.
To reproduce the reference solution run the Abaqus job tri6_test0 . inp and look at TRI6_TEST0_STIFFNESS_MATRICES . mtx .
[Fact]
        private static void TestStiffness0()
        {
            var factory = new ContinuumElement2DFactory(thickness, material0, dynamicMaterial);
            ContinuumElement2D tri6 = factory.CreateElement(CellType.Tri6, nodeSet0);
            IMatrix K = tri6.BuildStiffnessMatrix();
            double[,] expectedK = new double[,]
            {
                { 51173.75966, -20778.82606, 4273.968122, 6461.400457, 3161.87986, -13008.35802, -16897.34468, -27025.3615, 9688.11919, 8859.762175, -51400.38215, 45491.38295      },
                { -20778.82606, 122356.4459, 4538.323534, 34691.5801, -11085.2811, 5376.486541, -19333.05381, -142941.0483, 8859.762175, 6529.450147, 37799.07526, -26012.91439     },
                { 4273.968122, 4538.323534, 88582.98224, 45240.07515, 32066.51649, 7151.333545, -34941.29312, -27750.00033, -109199.8665, -39522.63295, 19217.69278, 10342.90105    },
                { 6461.400457, 34691.5801, 45240.07515, 104048.7171, 5228.256622, 3589.586543, -35442.30802, -149252.8235, -31830.32526, 1377.198943, 10342.90105, 5545.740823      },
                { 3161.87986, -11085.2811, 32066.51649, 5228.256622, 112494.273, -16055.03055, 1567.844178, 1895.723659, -172177.9559, -18317.78738, 22887.44239, 38334.11875       },
                { -13008.35802, 5376.486541, 7151.333545, 3589.586543, -16055.03055, 44329.93416, 1895.723659, 5503.165063, -26010.09507, -38438.07765, 46026.42644, -20361.09466   },
                { -16897.34468, -19333.05381, -34941.29312, -35442.30802, 1567.844178, 1895.723659, 363079.0153, 24675.86222, -73599.74689, 108516.9545, -239208.4748, -80313.17851 },
                { -27025.3615, -142941.0483, -27750.00033, -149252.8235, 1895.723659, 5503.165063, 24675.86222, 449052.1476, 108516.9545, -110192.2562, -80313.17851, -52169.18472  },
                { 9688.11919, 8859.762175, -109199.8665, -31830.32526, -172177.9559, -26010.09507, -73599.74689, 108516.9545, 485631.597, 60752.92074, -140342.1468, -120289.217    },
                { 8859.762175, 6529.450147, -39522.63295, 1377.198943, -18317.78738, -38438.07765, 108516.9545, -110192.2562, 60752.92074, 406726.0715, -120289.217, -266002.3867   },
                { -51400.38215, 37799.07526, 19217.69278, 10342.90105, 22887.44239, 46026.42644, -239208.4748, -80313.17851, -140342.1468, -120289.217, 388845.8685, 106433.9928    },
                { 45491.38295, -26012.91439, 10342.90105, 5545.740823, 38334.11875, -20361.09466, -80313.17851, -52169.18472, -120289.217, -266002.3867, 106433.9928, 358999.8396   }
            }; 
            Assert.True(K.Equals(Matrix.CreateFromArray(expectedK), 1e-9));
        }
[ Fact ] private static void TestStiffness0 ( ) { var factory = new ContinuumElement2DFactory ( thickness , material0 , dynamicMaterial ) ; ContinuumElement2D tri6 = factory . CreateElement ( CellType . Tri6 , nodeSet0 ) ; IMatrix K = tri6 . BuildStiffnessMatrix ( ) ; double [ , ] expectedK = new double [ , ] { { 51173.75966 , - 20778.82606 , 4273.968122 , 6461.400457 , 3161.87986 , - 13008.35802 , - 16897.34468 , - 27025.3615 , 9688.11919 , 8859.762175 , - 51400.38215 , 45491.38295 } , { - 20778.82606 , 122356.4459 , 4538.323534 , 34691.5801 , - 11085.2811 , 5376.486541 , - 19333.05381 , - 142941.0483 , 8859.762175 , 6529.450147 , 37799.07526 , - 26012.91439 } , { 4273.968122 , 4538.323534 , 88582.98224 , 45240.07515 , 32066.51649 , 7151.333545 , - 34941.29312 , - 27750.00033 , - 109199.8665 , - 39522.63295 , 19217.69278 , 10342.90105 } , { 6461.400457 , 34691.5801 , 45240.07515 , 104048.7171 , 5228.256622 , 3589.586543 , - 35442.30802 , - 149252.8235 , - 31830.32526 , 1377.198943 , 10342.90105 , 5545.740823 } , { 3161.87986 , - 11085.2811 , 32066.51649 , 5228.256622 , 112494.273 , - 16055.03055 , 1567.844178 , 1895.723659 , - 172177.9559 , - 18317.78738 , 22887.44239 , 38334.11875 } , { - 13008.35802 , 5376.486541 , 7151.333545 , 3589.586543 , - 16055.03055 , 44329.93416 , 1895.723659 , 5503.165063 , - 26010.09507 , - 38438.07765 , 46026.42644 , - 20361.09466 } , { - 16897.34468 , - 19333.05381 , - 34941.29312 , - 35442.30802 , 1567.844178 , 1895.723659 , 363079.0153 , 24675.86222 , - 73599.74689 , 108516.9545 , - 239208.4748 , - 80313.17851 } , { - 27025.3615 , - 142941.0483 , - 27750.00033 , - 149252.8235 , 1895.723659 , 5503.165063 , 24675.86222 , 449052.1476 , 108516.9545 , - 110192.2562 , - 80313.17851 , - 52169.18472 } , { 9688.11919 , 8859.762175 , - 109199.8665 , - 31830.32526 , - 172177.9559 , - 26010.09507 , - 73599.74689 , 108516.9545 , 485631.597 , 60752.92074 , - 140342.1468 , - 120289.217 } , { 8859.762175 , 6529.450147 , - 39522.63295 , 1377.198943 , - 18317.78738 , - 38438.07765 , 108516.9545 , - 110192.2562 , 60752.92074 , 406726.0715 , - 120289.217 , - 266002.3867 } , { - 51400.38215 , 37799.07526 , 19217.69278 , 10342.90105 , 22887.44239 , 46026.42644 , - 239208.4748 , - 80313.17851 , - 140342.1468 , - 120289.217 , 388845.8685 , 106433.9928 } , { 45491.38295 , - 26012.91439 , 10342.90105 , 5545.740823 , 38334.11875 , - 20361.09466 , - 80313.17851 , - 52169.18472 , - 120289.217 , - 266002.3867 , 106433.9928 , 358999.8396 } } ; Assert . True ( K . Equals ( Matrix . CreateFromArray ( expectedK ) , 1e-9 ) ) ; }
To reproduce the reference solution, run the Abaqus job tri6_test0.inp and look at
TRI6_TEST0_STIFFNESS_MATRICES.mtx.
To reproduce the reference solution run the Abaqus job tri6_test0 . inp and look at TRI6_TEST0_STIFFNESS_MATRICES . mtx .
// from Abaqus