ISAAR.MSolve.FEM.Tests/Elements/Quad8.cs
/// <summary>
/// To reproduce the reference solution, run the Abaqus job quad8_test0.inp and look at 
/// QUAD8_TEST0_STIFFNESS_MATRICES.mtx.
/// </summary>
To reproduce the reference solution, run the Abaqus job quad8_test0.inp and look at
QUAD8_TEST0_STIFFNESS_MATRICES.mtx.
To reproduce the reference solution run the Abaqus job quad8_test0 . inp and look at QUAD8_TEST0_STIFFNESS_MATRICES . mtx .
[Fact]
        private static void TestStiffness0()
        {
            var factory = new ContinuumElement2DFactory(thickness, material0, dynamicMaterial);
            ContinuumElement2D quad8 = factory.CreateElement(CellType.Quad8, nodeSet0);
            IMatrix K = quad8.BuildStiffnessMatrix();
            double[,] expectedK = new double[,]
            {
                { 375957.1179055000, -130889.8953535400, 150398.7276607000, -30577.4536395990, 256263.9470137800, -74238.0130438120, 120262.5252654800, -29264.7336935000, -201002.5528104600, 86903.8674540020, -257013.8069723100, 62503.0900498910, -46878.8680758500, 18155.7769717120, -397987.0899868400, 97407.3612548510    },
                { -130889.8953535400, 264620.9765739100, -32500.5305626760, 108395.9237548000, -74238.0130438120, 148536.2310068900, -27341.6567704230, 66761.0027359010, 94596.1751463100, -240343.8078467800, 62503.0900498910, -121948.9418401700, 18155.7769717120, -45778.2662465080, 89715.0535625430, -180243.1181380300     },
                { 150398.7276607000, -32500.5305626760, 227070.8522891000, 24999.1791433860, 228075.7272750800, -35916.2249916640, 84715.8706078410, 5691.9746958972, -125567.3958918900, -7749.8459233937, -292871.0398821500, 29891.4228662980, -48734.4768523870, -12619.4433884890, -223088.2652062900, 28203.4681606430        },
                { -30577.4536395990, 108395.9237548000, 24999.1791433860, 135717.9797677600, -37839.3019147410, 115695.2678105500, 5691.9746958972, 47395.7262976820, -15442.1536157010, -174789.3743509800, 37583.7305586050, -85742.6925983560, -12619.4433884890, -59359.2032811550, 28203.4681606430, -87313.6274002970         },
                { 256263.9470137800, -74238.0130438120, 228075.7272750800, -37839.3019147410, 758698.8330168600, -151201.1982884900, 164115.4999410500, -25847.0928360870, -256843.4834062300, 67264.1450855650, -543079.2639940800, 68308.1044726010, -237729.8010194900, 72706.8336500980, -369501.4588269600, 80846.5228748690   },
                { -74238.0130438120, 148536.2310068900, -35916.2249916640, 115695.2678105500, -151201.1982884900, 368478.4546134000, -27770.1697591640, 85552.6038287820, 67264.1450855650, -166187.6357417500, 60615.7967802930, -223855.9737213700, 80399.1413424050, -193251.7815799700, 80846.5228748690, -134967.1662165300    },
                { 120262.5252654800, -27341.6567704230, 84715.8706078410, 5691.9746958972, 164115.4999410500, -27770.1697591640, 120174.7405891600, 2419.9582040241, -64973.3681564819, 9886.9381472210, -156296.6219667900, 10235.6574488430, -29392.1129538440, -12237.5732893820, -238606.5333264100, 39114.8713229830           },
                { -29264.7336935000, 66761.0027359010, 5691.9746958972, 47395.7262976820, -25847.0928360870, 85552.6038287820, 2419.9582040241, 63320.7521890160, 9886.9381472210, -67395.8289291320, 10235.6574488430, -47867.5471489640, -19929.8809816900, -81314.4790110740, 46807.1790152900, -66452.2299622090                },
                { -201002.5528104600, 94596.1751463100, -125567.3958918900, -15442.1536157010, -256843.4834062300, 67264.1450855650, -64973.3681564819, 9886.9381472210, 429358.6456627000, -85681.3574299900, 91327.9338391870, 31186.8509038820, -120846.2914647200, 7660.6709468983, 248546.5122279100, -109471.2691841800       },
                { 86903.8674540020, -240343.8078467800, -7749.8459233937, -174789.3743509800, 67264.1450855650, -166187.6357417500, 9886.9381472210, -67395.8289291320, -85681.3574299900, 501789.8020087000, 31186.8509038820, -24500.7443298540, 7660.6709468983, 60837.6092548520, -109471.2691841800, 110589.9799349400         },
                { -257013.8069723100, 62503.0900498910, -292871.0398821500, 37583.7305586050, -543079.2639940800, 60615.7967802930, -156296.6219667900, 10235.6574488430, 91327.9338391870, 31186.8509038820, 618909.3895160900, -107045.7505943100, 156953.5398894400, -38863.3219066200, 382069.8695706200, -56216.0532405820     },
                { 62503.0900498910, -121948.9418401700, 29891.4228662980, -85742.6925983560, 68308.1044726010, -223855.9737213700, 10235.6574488430, -47867.5471489640, 31186.8509038820, -24500.7443298540, -107045.7505943100, 363810.1766979700, -38863.3219066200, 60473.5634510330, -56216.0532405820, 79632.1594897160        },
                { -46878.8680758500, 18155.7769717120, -48734.4768523870, -12619.4433884890, -237729.8010194900, 80399.1413424050, -29392.1129538440, -19929.8809816900, -120846.2914647200, 7660.6709468983, 156953.5398894400, -38863.3219066200, 585811.6805262000, -190782.6753367700, -259183.6700493400, 155979.7323525500    },
                { 18155.7769717120, -45778.2662465080, -12619.4433884890, -59359.2032811550, 72706.8336500980, -193251.7815799700, -12237.5732893820, -81314.4790110740, 7660.6709468983, 60837.6092548520, -38863.3219066200, 60473.5634510330, -190782.6753367700, 616593.8061240300, 155979.7323525500, -358201.2487112100       },
                { -397987.0899868400, 89715.0535625430, -223088.2652062900, 28203.4681606430, -369501.4588269600, 80846.5228748690, -238606.5333264100, 46807.1790152900, 248546.5122279100, -109471.2691841800, 382069.8695706200, -56216.0532405820, -259183.6700493400, 155979.7323525500, 857750.6355973100, -235864.6335411300 },
                { 97407.3612548510, -180243.1181380300, 28203.4681606430, -87313.6274002970, 80846.5228748690, -134967.1662165300, 39114.8713229830, -66452.2299622090, -109471.2691841800, 110589.9799349400, -56216.0532405820, 79632.1594897160, 155979.7323525500, -358201.2487112100, -235864.6335411300, 636955.2510036100    }
            }; 
            Assert.True(K.Equals(Matrix.CreateFromArray(expectedK), 1e-10));
        }
[ Fact ] private static void TestStiffness0 ( ) { var factory = new ContinuumElement2DFactory ( thickness , material0 , dynamicMaterial ) ; ContinuumElement2D quad8 = factory . CreateElement ( CellType . Quad8 , nodeSet0 ) ; IMatrix K = quad8 . BuildStiffnessMatrix ( ) ; double [ , ] expectedK = new double [ , ] { { 375957.1179055000 , - 130889.8953535400 , 150398.7276607000 , - 30577.4536395990 , 256263.9470137800 , - 74238.0130438120 , 120262.5252654800 , - 29264.7336935000 , - 201002.5528104600 , 86903.8674540020 , - 257013.8069723100 , 62503.0900498910 , - 46878.8680758500 , 18155.7769717120 , - 397987.0899868400 , 97407.3612548510 } , { - 130889.8953535400 , 264620.9765739100 , - 32500.5305626760 , 108395.9237548000 , - 74238.0130438120 , 148536.2310068900 , - 27341.6567704230 , 66761.0027359010 , 94596.1751463100 , - 240343.8078467800 , 62503.0900498910 , - 121948.9418401700 , 18155.7769717120 , - 45778.2662465080 , 89715.0535625430 , - 180243.1181380300 } , { 150398.7276607000 , - 32500.5305626760 , 227070.8522891000 , 24999.1791433860 , 228075.7272750800 , - 35916.2249916640 , 84715.8706078410 , 5691.9746958972 , - 125567.3958918900 , - 7749.8459233937 , - 292871.0398821500 , 29891.4228662980 , - 48734.4768523870 , - 12619.4433884890 , - 223088.2652062900 , 28203.4681606430 } , { - 30577.4536395990 , 108395.9237548000 , 24999.1791433860 , 135717.9797677600 , - 37839.3019147410 , 115695.2678105500 , 5691.9746958972 , 47395.7262976820 , - 15442.1536157010 , - 174789.3743509800 , 37583.7305586050 , - 85742.6925983560 , - 12619.4433884890 , - 59359.2032811550 , 28203.4681606430 , - 87313.6274002970 } , { 256263.9470137800 , - 74238.0130438120 , 228075.7272750800 , - 37839.3019147410 , 758698.8330168600 , - 151201.1982884900 , 164115.4999410500 , - 25847.0928360870 , - 256843.4834062300 , 67264.1450855650 , - 543079.2639940800 , 68308.1044726010 , - 237729.8010194900 , 72706.8336500980 , - 369501.4588269600 , 80846.5228748690 } , { - 74238.0130438120 , 148536.2310068900 , - 35916.2249916640 , 115695.2678105500 , - 151201.1982884900 , 368478.4546134000 , - 27770.1697591640 , 85552.6038287820 , 67264.1450855650 , - 166187.6357417500 , 60615.7967802930 , - 223855.9737213700 , 80399.1413424050 , - 193251.7815799700 , 80846.5228748690 , - 134967.1662165300 } , { 120262.5252654800 , - 27341.6567704230 , 84715.8706078410 , 5691.9746958972 , 164115.4999410500 , - 27770.1697591640 , 120174.7405891600 , 2419.9582040241 , - 64973.3681564819 , 9886.9381472210 , - 156296.6219667900 , 10235.6574488430 , - 29392.1129538440 , - 12237.5732893820 , - 238606.5333264100 , 39114.8713229830 } , { - 29264.7336935000 , 66761.0027359010 , 5691.9746958972 , 47395.7262976820 , - 25847.0928360870 , 85552.6038287820 , 2419.9582040241 , 63320.7521890160 , 9886.9381472210 , - 67395.8289291320 , 10235.6574488430 , - 47867.5471489640 , - 19929.8809816900 , - 81314.4790110740 , 46807.1790152900 , - 66452.2299622090 } , { - 201002.5528104600 , 94596.1751463100 , - 125567.3958918900 , - 15442.1536157010 , - 256843.4834062300 , 67264.1450855650 , - 64973.3681564819 , 9886.9381472210 , 429358.6456627000 , - 85681.3574299900 , 91327.9338391870 , 31186.8509038820 , - 120846.2914647200 , 7660.6709468983 , 248546.5122279100 , - 109471.2691841800 } , { 86903.8674540020 , - 240343.8078467800 , - 7749.8459233937 , - 174789.3743509800 , 67264.1450855650 , - 166187.6357417500 , 9886.9381472210 , - 67395.8289291320 , - 85681.3574299900 , 501789.8020087000 , 31186.8509038820 , - 24500.7443298540 , 7660.6709468983 , 60837.6092548520 , - 109471.2691841800 , 110589.9799349400 } , { - 257013.8069723100 , 62503.0900498910 , - 292871.0398821500 , 37583.7305586050 , - 543079.2639940800 , 60615.7967802930 , - 156296.6219667900 , 10235.6574488430 , 91327.9338391870 , 31186.8509038820 , 618909.3895160900 , - 107045.7505943100 , 156953.5398894400 , - 38863.3219066200 , 382069.8695706200 , - 56216.0532405820 } , { 62503.0900498910 , - 121948.9418401700 , 29891.4228662980 , - 85742.6925983560 , 68308.1044726010 , - 223855.9737213700 , 10235.6574488430 , - 47867.5471489640 , 31186.8509038820 , - 24500.7443298540 , - 107045.7505943100 , 363810.1766979700 , - 38863.3219066200 , 60473.5634510330 , - 56216.0532405820 , 79632.1594897160 } , { - 46878.8680758500 , 18155.7769717120 , - 48734.4768523870 , - 12619.4433884890 , - 237729.8010194900 , 80399.1413424050 , - 29392.1129538440 , - 19929.8809816900 , - 120846.2914647200 , 7660.6709468983 , 156953.5398894400 , - 38863.3219066200 , 585811.6805262000 , - 190782.6753367700 , - 259183.6700493400 , 155979.7323525500 } , { 18155.7769717120 , - 45778.2662465080 , - 12619.4433884890 , - 59359.2032811550 , 72706.8336500980 , - 193251.7815799700 , - 12237.5732893820 , - 81314.4790110740 , 7660.6709468983 , 60837.6092548520 , - 38863.3219066200 , 60473.5634510330 , - 190782.6753367700 , 616593.8061240300 , 155979.7323525500 , - 358201.2487112100 } , { - 397987.0899868400 , 89715.0535625430 , - 223088.2652062900 , 28203.4681606430 , - 369501.4588269600 , 80846.5228748690 , - 238606.5333264100 , 46807.1790152900 , 248546.5122279100 , - 109471.2691841800 , 382069.8695706200 , - 56216.0532405820 , - 259183.6700493400 , 155979.7323525500 , 857750.6355973100 , - 235864.6335411300 } , { 97407.3612548510 , - 180243.1181380300 , 28203.4681606430 , - 87313.6274002970 , 80846.5228748690 , - 134967.1662165300 , 39114.8713229830 , - 66452.2299622090 , - 109471.2691841800 , 110589.9799349400 , - 56216.0532405820 , 79632.1594897160 , 155979.7323525500 , - 358201.2487112100 , - 235864.6335411300 , 636955.2510036100 } } ; Assert . True ( K . Equals ( Matrix . CreateFromArray ( expectedK ) , 1e-10 ) ) ; }
To reproduce the reference solution, run the Abaqus job quad8_test0.inp and look at
QUAD8_TEST0_STIFFNESS_MATRICES.mtx.
To reproduce the reference solution run the Abaqus job quad8_test0 . inp and look at QUAD8_TEST0_STIFFNESS_MATRICES . mtx .
// from Abaqus