diff --git a/src/Mod/Fem/CMakeLists.txt b/src/Mod/Fem/CMakeLists.txt index b73ac60203..fd95279925 100755 --- a/src/Mod/Fem/CMakeLists.txt +++ b/src/Mod/Fem/CMakeLists.txt @@ -251,6 +251,8 @@ SET(FemTestsCcx_SRCS femtest/data/calculix/box_static_expected_values femtest/data/calculix/box_static.FCStd femtest/data/calculix/box.FCStd + femtest/data/calculix/ccx_buckling_flexuralbuckling.dat + femtest/data/calculix/ccx_buckling_flexuralbuckling.inp femtest/data/calculix/ccxcantilever_faceload.inp femtest/data/calculix/ccxcantilever_hexa20.inp femtest/data/calculix/ccxcantilever_nodeload.inp diff --git a/src/Mod/Fem/femtest/app/test_solver_calculix.py b/src/Mod/Fem/femtest/app/test_solver_calculix.py index d9afcd4e68..c444252e27 100644 --- a/src/Mod/Fem/femtest/app/test_solver_calculix.py +++ b/src/Mod/Fem/femtest/app/test_solver_calculix.py @@ -95,6 +95,14 @@ class TestSolverCalculix(unittest.TestCase): setup(self.document, "calculix") self.input_file_writing_test(get_namefromdef("test_")) + # ******************************************************************************************** + def test_ccx_buckling_flexuralbuckling( + self + ): + from femexamples.ccx_buckling_flexuralbuckling import setup + setup(self.document, "calculix") + self.input_file_writing_test(get_namefromdef("test_")) + # ******************************************************************************************** def test_ccxcantilever_faceload( self diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.dat b/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.dat new file mode 100644 index 0000000000..3bf8140503 --- /dev/null +++ b/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.dat @@ -0,0 +1,90 @@ + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -1.815215E-14 -1.262879E-14 2.100000E+01 + + B U C K L I N G F A C T O R O U T P U T + + MODE NO BUCKLING + FACTOR + + 1 0.5353773E+02 + 2 0.1123524E+03 + 3 0.4429172E+03 + 4 0.8406785E+03 + 5 0.1066613E+04 + 6 0.1760440E+04 + 7 0.1781060E+04 + 8 0.2428616E+04 + 9 0.2625109E+04 + 10 0.3032522E+04 + + E I G E N V A L U E N U M B E R 1 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -7.458668E-01 -9.617507E-11 2.833724E-10 + + E I G E N V A L U E N U M B E R 2 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -6.275975E-10 -1.078238E+00 -3.371250E-10 + + E I G E N V A L U E N U M B E R 3 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -6.359838E+00 3.125551E-09 -1.362668E-09 + + E I G E N V A L U E N U M B E R 4 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -8.090844E-10 -8.650964E+00 -1.009010E-09 + + E I G E N V A L U E N U M B E R 5 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -1.618585E+01 7.626015E-10 1.475242E-09 + + E I G E N V A L U E N U M B E R 6 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -2.870193E+01 7.256488E-09 1.429106E-09 + + E I G E N V A L U E N U M B E R 7 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -6.840851E-09 -2.054158E+01 -1.383189E-09 + + E I G E N V A L U E N U M B E R 8 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -4.289022E+01 -1.387613E-08 5.972973E-10 + + E I G E N V A L U E N U M B E R 9 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -8.132224E-09 3.449459E+01 -1.246274E-10 + + E I G E N V A L U E N U M B E R 10 + + + total force (fx,fy,fz) for set FEMCONSTRAINTDISPLACEMENT and time 0.0000000E+00 + + -5.817552E+01 2.440375E-09 1.449655E-09 diff --git a/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.inp b/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.inp new file mode 100644 index 0000000000..1ec8146456 --- /dev/null +++ b/src/Mod/Fem/femtest/data/calculix/ccx_buckling_flexuralbuckling.inp @@ -0,0 +1,850 @@ +** written by FreeCAD inp file writer for CalculiX,Abaqus meshes +** highest dimension mesh elements only. + +** Nodes +*Node, NSET=Nall +1, 0, 1.5, 0 +2, 0, 1.5, 0.5 +3, 0, 1.125, 0.5 +4, 0, 1.125, 0 +5, 0.25, 1.5, 0 +6, 0.25, 1.5, 0.5 +7, 0.25, 1.125, 0.5 +8, 0.25, 1.125, 0 +9, 0, 1.5, 1 +10, 0, 1.125, 1 +11, 0.25, 1.5, 1 +12, 0.25, 1.125, 1 +13, 0, 1.5, 1.5 +14, 0, 1.125, 1.5 +15, 0.25, 1.5, 1.5 +16, 0.25, 1.125, 1.5 +17, 0, 1.5, 2 +18, 0, 1.125, 2 +19, 0.25, 1.5, 2 +20, 0.25, 1.125, 2 +21, 0, 1.5, 2.5 +22, 0, 1.125, 2.5 +23, 0.25, 1.5, 2.5 +24, 0.25, 1.125, 2.5 +25, 0, 1.5, 3 +26, 0, 1.125, 3 +27, 0.25, 1.5, 3 +28, 0.25, 1.125, 3 +29, 0, 1.5, 3.5 +30, 0, 1.125, 3.5 +31, 0.25, 1.5, 3.5 +32, 0.25, 1.125, 3.5 +33, 0, 1.5, 4 +34, 0, 1.125, 4 +35, 0.25, 1.5, 4 +36, 0.25, 1.125, 4 +37, 0, 1.5, 4.5 +38, 0, 1.125, 4.5 +39, 0.25, 1.5, 4.5 +40, 0.25, 1.125, 4.5 +41, 0, 1.5, 5 +42, 0, 1.125, 5 +43, 0.25, 1.5, 5 +44, 0.25, 1.125, 5 +45, 0, 1.5, 5.5 +46, 0, 1.125, 5.5 +47, 0.25, 1.5, 5.5 +48, 0.25, 1.125, 5.5 +49, 0, 1.5, 6 +50, 0, 1.125, 6 +51, 0.25, 1.5, 6 +52, 0.25, 1.125, 6 +53, 0, 1.5, 6.5 +54, 0, 1.125, 6.5 +55, 0.25, 1.5, 6.5 +56, 0.25, 1.125, 6.5 +57, 0, 1.5, 7 +58, 0, 1.125, 7 +59, 0.25, 1.5, 7 +60, 0.25, 1.125, 7 +61, 0, 1.5, 7.5 +62, 0, 1.125, 7.5 +63, 0.25, 1.5, 7.5 +64, 0.25, 1.125, 7.5 +65, 0, 1.5, 8 +66, 0, 1.125, 8 +67, 0.25, 1.5, 8 +68, 0.25, 1.125, 8 +69, 0.5, 1.5, 0 +70, 0.5, 1.5, 0.5 +71, 0.5, 1.125, 0.5 +72, 0.5, 1.125, 0 +73, 0.5, 1.5, 1 +74, 0.5, 1.125, 1 +75, 0.5, 1.5, 1.5 +76, 0.5, 1.125, 1.5 +77, 0.5, 1.5, 2 +78, 0.5, 1.125, 2 +79, 0.5, 1.5, 2.5 +80, 0.5, 1.125, 2.5 +81, 0.5, 1.5, 3 +82, 0.5, 1.125, 3 +83, 0.5, 1.5, 3.5 +84, 0.5, 1.125, 3.5 +85, 0.5, 1.5, 4 +86, 0.5, 1.125, 4 +87, 0.5, 1.5, 4.5 +88, 0.5, 1.125, 4.5 +89, 0.5, 1.5, 5 +90, 0.5, 1.125, 5 +91, 0.5, 1.5, 5.5 +92, 0.5, 1.125, 5.5 +93, 0.5, 1.5, 6 +94, 0.5, 1.125, 6 +95, 0.5, 1.5, 6.5 +96, 0.5, 1.125, 6.5 +97, 0.5, 1.5, 7 +98, 0.5, 1.125, 7 +99, 0.5, 1.5, 7.5 +100, 0.5, 1.125, 7.5 +101, 0.5, 1.5, 8 +102, 0.5, 1.125, 8 +103, 0.75, 1.5, 0 +104, 0.75, 1.5, 0.5 +105, 0.75, 1.125, 0.5 +106, 0.75, 1.125, 0 +107, 0.75, 1.5, 1 +108, 0.75, 1.125, 1 +109, 0.75, 1.5, 1.5 +110, 0.75, 1.125, 1.5 +111, 0.75, 1.5, 2 +112, 0.75, 1.125, 2 +113, 0.75, 1.5, 2.5 +114, 0.75, 1.125, 2.5 +115, 0.75, 1.5, 3 +116, 0.75, 1.125, 3 +117, 0.75, 1.5, 3.5 +118, 0.75, 1.125, 3.5 +119, 0.75, 1.5, 4 +120, 0.75, 1.125, 4 +121, 0.75, 1.5, 4.5 +122, 0.75, 1.125, 4.5 +123, 0.75, 1.5, 5 +124, 0.75, 1.125, 5 +125, 0.75, 1.5, 5.5 +126, 0.75, 1.125, 5.5 +127, 0.75, 1.5, 6 +128, 0.75, 1.125, 6 +129, 0.75, 1.5, 6.5 +130, 0.75, 1.125, 6.5 +131, 0.75, 1.5, 7 +132, 0.75, 1.125, 7 +133, 0.75, 1.5, 7.5 +134, 0.75, 1.125, 7.5 +135, 0.75, 1.5, 8 +136, 0.75, 1.125, 8 +137, 1, 1.5, 0 +138, 1, 1.5, 0.5 +139, 1, 1.125, 0.5 +140, 1, 1.125, 0 +141, 1, 1.5, 1 +142, 1, 1.125, 1 +143, 1, 1.5, 1.5 +144, 1, 1.125, 1.5 +145, 1, 1.5, 2 +146, 1, 1.125, 2 +147, 1, 1.5, 2.5 +148, 1, 1.125, 2.5 +149, 1, 1.5, 3 +150, 1, 1.125, 3 +151, 1, 1.5, 3.5 +152, 1, 1.125, 3.5 +153, 1, 1.5, 4 +154, 1, 1.125, 4 +155, 1, 1.5, 4.5 +156, 1, 1.125, 4.5 +157, 1, 1.5, 5 +158, 1, 1.125, 5 +159, 1, 1.5, 5.5 +160, 1, 1.125, 5.5 +161, 1, 1.5, 6 +162, 1, 1.125, 6 +163, 1, 1.5, 6.5 +164, 1, 1.125, 6.5 +165, 1, 1.5, 7 +166, 1, 1.125, 7 +167, 1, 1.5, 7.5 +168, 1, 1.125, 7.5 +169, 1, 1.5, 8 +170, 1, 1.125, 8 +171, 0, 0.75, 0.5 +172, 0, 0.75, 0 +173, 0.25, 0.75, 0.5 +174, 0.25, 0.75, 0 +175, 0, 0.75, 1 +176, 0.25, 0.75, 1 +177, 0, 0.75, 1.5 +178, 0.25, 0.75, 1.5 +179, 0, 0.75, 2 +180, 0.25, 0.75, 2 +181, 0, 0.75, 2.5 +182, 0.25, 0.75, 2.5 +183, 0, 0.75, 3 +184, 0.25, 0.75, 3 +185, 0, 0.75, 3.5 +186, 0.25, 0.75, 3.5 +187, 0, 0.75, 4 +188, 0.25, 0.75, 4 +189, 0, 0.75, 4.5 +190, 0.25, 0.75, 4.5 +191, 0, 0.75, 5 +192, 0.25, 0.75, 5 +193, 0, 0.75, 5.5 +194, 0.25, 0.75, 5.5 +195, 0, 0.75, 6 +196, 0.25, 0.75, 6 +197, 0, 0.75, 6.5 +198, 0.25, 0.75, 6.5 +199, 0, 0.75, 7 +200, 0.25, 0.75, 7 +201, 0, 0.75, 7.5 +202, 0.25, 0.75, 7.5 +203, 0, 0.75, 8 +204, 0.25, 0.75, 8 +205, 0.5, 0.75, 0.5 +206, 0.5, 0.75, 0 +207, 0.5, 0.75, 1 +208, 0.5, 0.75, 1.5 +209, 0.5, 0.75, 2 +210, 0.5, 0.75, 2.5 +211, 0.5, 0.75, 3 +212, 0.5, 0.75, 3.5 +213, 0.5, 0.75, 4 +214, 0.5, 0.75, 4.5 +215, 0.5, 0.75, 5 +216, 0.5, 0.75, 5.5 +217, 0.5, 0.75, 6 +218, 0.5, 0.75, 6.5 +219, 0.5, 0.75, 7 +220, 0.5, 0.75, 7.5 +221, 0.5, 0.75, 8 +222, 0.75, 0.75, 0.5 +223, 0.75, 0.75, 0 +224, 0.75, 0.75, 1 +225, 0.75, 0.75, 1.5 +226, 0.75, 0.75, 2 +227, 0.75, 0.75, 2.5 +228, 0.75, 0.75, 3 +229, 0.75, 0.75, 3.5 +230, 0.75, 0.75, 4 +231, 0.75, 0.75, 4.5 +232, 0.75, 0.75, 5 +233, 0.75, 0.75, 5.5 +234, 0.75, 0.75, 6 +235, 0.75, 0.75, 6.5 +236, 0.75, 0.75, 7 +237, 0.75, 0.75, 7.5 +238, 0.75, 0.75, 8 +239, 1, 0.75, 0.5 +240, 1, 0.75, 0 +241, 1, 0.75, 1 +242, 1, 0.75, 1.5 +243, 1, 0.75, 2 +244, 1, 0.75, 2.5 +245, 1, 0.75, 3 +246, 1, 0.75, 3.5 +247, 1, 0.75, 4 +248, 1, 0.75, 4.5 +249, 1, 0.75, 5 +250, 1, 0.75, 5.5 +251, 1, 0.75, 6 +252, 1, 0.75, 6.5 +253, 1, 0.75, 7 +254, 1, 0.75, 7.5 +255, 1, 0.75, 8 +256, 0, 0.375, 0.5 +257, 0, 0.375, 0 +258, 0.25, 0.375, 0.5 +259, 0.25, 0.375, 0 +260, 0, 0.375, 1 +261, 0.25, 0.375, 1 +262, 0, 0.375, 1.5 +263, 0.25, 0.375, 1.5 +264, 0, 0.375, 2 +265, 0.25, 0.375, 2 +266, 0, 0.375, 2.5 +267, 0.25, 0.375, 2.5 +268, 0, 0.375, 3 +269, 0.25, 0.375, 3 +270, 0, 0.375, 3.5 +271, 0.25, 0.375, 3.5 +272, 0, 0.375, 4 +273, 0.25, 0.375, 4 +274, 0, 0.375, 4.5 +275, 0.25, 0.375, 4.5 +276, 0, 0.375, 5 +277, 0.25, 0.375, 5 +278, 0, 0.375, 5.5 +279, 0.25, 0.375, 5.5 +280, 0, 0.375, 6 +281, 0.25, 0.375, 6 +282, 0, 0.375, 6.5 +283, 0.25, 0.375, 6.5 +284, 0, 0.375, 7 +285, 0.25, 0.375, 7 +286, 0, 0.375, 7.5 +287, 0.25, 0.375, 7.5 +288, 0, 0.375, 8 +289, 0.25, 0.375, 8 +290, 0.5, 0.375, 0.5 +291, 0.5, 0.375, 0 +292, 0.5, 0.375, 1 +293, 0.5, 0.375, 1.5 +294, 0.5, 0.375, 2 +295, 0.5, 0.375, 2.5 +296, 0.5, 0.375, 3 +297, 0.5, 0.375, 3.5 +298, 0.5, 0.375, 4 +299, 0.5, 0.375, 4.5 +300, 0.5, 0.375, 5 +301, 0.5, 0.375, 5.5 +302, 0.5, 0.375, 6 +303, 0.5, 0.375, 6.5 +304, 0.5, 0.375, 7 +305, 0.5, 0.375, 7.5 +306, 0.5, 0.375, 8 +307, 0.75, 0.375, 0.5 +308, 0.75, 0.375, 0 +309, 0.75, 0.375, 1 +310, 0.75, 0.375, 1.5 +311, 0.75, 0.375, 2 +312, 0.75, 0.375, 2.5 +313, 0.75, 0.375, 3 +314, 0.75, 0.375, 3.5 +315, 0.75, 0.375, 4 +316, 0.75, 0.375, 4.5 +317, 0.75, 0.375, 5 +318, 0.75, 0.375, 5.5 +319, 0.75, 0.375, 6 +320, 0.75, 0.375, 6.5 +321, 0.75, 0.375, 7 +322, 0.75, 0.375, 7.5 +323, 0.75, 0.375, 8 +324, 1, 0.375, 0.5 +325, 1, 0.375, 0 +326, 1, 0.375, 1 +327, 1, 0.375, 1.5 +328, 1, 0.375, 2 +329, 1, 0.375, 2.5 +330, 1, 0.375, 3 +331, 1, 0.375, 3.5 +332, 1, 0.375, 4 +333, 1, 0.375, 4.5 +334, 1, 0.375, 5 +335, 1, 0.375, 5.5 +336, 1, 0.375, 6 +337, 1, 0.375, 6.5 +338, 1, 0.375, 7 +339, 1, 0.375, 7.5 +340, 1, 0.375, 8 +341, 0, 0, 0.5 +342, 0, 0, 0 +343, 0.25, 0, 0.5 +344, 0.25, 0, 0 +345, 0, 0, 1 +346, 0.25, 0, 1 +347, 0, 0, 1.5 +348, 0.25, 0, 1.5 +349, 0, 0, 2 +350, 0.25, 0, 2 +351, 0, 0, 2.5 +352, 0.25, 0, 2.5 +353, 0, 0, 3 +354, 0.25, 0, 3 +355, 0, 0, 3.5 +356, 0.25, 0, 3.5 +357, 0, 0, 4 +358, 0.25, 0, 4 +359, 0, 0, 4.5 +360, 0.25, 0, 4.5 +361, 0, 0, 5 +362, 0.25, 0, 5 +363, 0, 0, 5.5 +364, 0.25, 0, 5.5 +365, 0, 0, 6 +366, 0.25, 0, 6 +367, 0, 0, 6.5 +368, 0.25, 0, 6.5 +369, 0, 0, 7 +370, 0.25, 0, 7 +371, 0, 0, 7.5 +372, 0.25, 0, 7.5 +373, 0, 0, 8 +374, 0.25, 0, 8 +375, 0.5, 0, 0.5 +376, 0.5, 0, 0 +377, 0.5, 0, 1 +378, 0.5, 0, 1.5 +379, 0.5, 0, 2 +380, 0.5, 0, 2.5 +381, 0.5, 0, 3 +382, 0.5, 0, 3.5 +383, 0.5, 0, 4 +384, 0.5, 0, 4.5 +385, 0.5, 0, 5 +386, 0.5, 0, 5.5 +387, 0.5, 0, 6 +388, 0.5, 0, 6.5 +389, 0.5, 0, 7 +390, 0.5, 0, 7.5 +391, 0.5, 0, 8 +392, 0.75, 0, 0.5 +393, 0.75, 0, 0 +394, 0.75, 0, 1 +395, 0.75, 0, 1.5 +396, 0.75, 0, 2 +397, 0.75, 0, 2.5 +398, 0.75, 0, 3 +399, 0.75, 0, 3.5 +400, 0.75, 0, 4 +401, 0.75, 0, 4.5 +402, 0.75, 0, 5 +403, 0.75, 0, 5.5 +404, 0.75, 0, 6 +405, 0.75, 0, 6.5 +406, 0.75, 0, 7 +407, 0.75, 0, 7.5 +408, 0.75, 0, 8 +409, 1, 0, 0.5 +410, 1, 0, 0 +411, 1, 0, 1 +412, 1, 0, 1.5 +413, 1, 0, 2 +414, 1, 0, 2.5 +415, 1, 0, 3 +416, 1, 0, 3.5 +417, 1, 0, 4 +418, 1, 0, 4.5 +419, 1, 0, 5 +420, 1, 0, 5.5 +421, 1, 0, 6 +422, 1, 0, 6.5 +423, 1, 0, 7 +424, 1, 0, 7.5 +425, 1, 0, 8 + + +** Volume elements +*Element, TYPE=C3D8, ELSET=Evolumes +1, 3, 4, 1, 2, 7, 8, 5, 6 +2, 10, 3, 2, 9, 12, 7, 6, 11 +3, 14, 10, 9, 13, 16, 12, 11, 15 +4, 18, 14, 13, 17, 20, 16, 15, 19 +5, 22, 18, 17, 21, 24, 20, 19, 23 +6, 26, 22, 21, 25, 28, 24, 23, 27 +7, 30, 26, 25, 29, 32, 28, 27, 31 +8, 34, 30, 29, 33, 36, 32, 31, 35 +9, 38, 34, 33, 37, 40, 36, 35, 39 +10, 42, 38, 37, 41, 44, 40, 39, 43 +11, 46, 42, 41, 45, 48, 44, 43, 47 +12, 50, 46, 45, 49, 52, 48, 47, 51 +13, 54, 50, 49, 53, 56, 52, 51, 55 +14, 58, 54, 53, 57, 60, 56, 55, 59 +15, 62, 58, 57, 61, 64, 60, 59, 63 +16, 66, 62, 61, 65, 68, 64, 63, 67 +17, 7, 8, 5, 6, 71, 72, 69, 70 +18, 12, 7, 6, 11, 74, 71, 70, 73 +19, 16, 12, 11, 15, 76, 74, 73, 75 +20, 20, 16, 15, 19, 78, 76, 75, 77 +21, 24, 20, 19, 23, 80, 78, 77, 79 +22, 28, 24, 23, 27, 82, 80, 79, 81 +23, 32, 28, 27, 31, 84, 82, 81, 83 +24, 36, 32, 31, 35, 86, 84, 83, 85 +25, 40, 36, 35, 39, 88, 86, 85, 87 +26, 44, 40, 39, 43, 90, 88, 87, 89 +27, 48, 44, 43, 47, 92, 90, 89, 91 +28, 52, 48, 47, 51, 94, 92, 91, 93 +29, 56, 52, 51, 55, 96, 94, 93, 95 +30, 60, 56, 55, 59, 98, 96, 95, 97 +31, 64, 60, 59, 63, 100, 98, 97, 99 +32, 68, 64, 63, 67, 102, 100, 99, 101 +33, 71, 72, 69, 70, 105, 106, 103, 104 +34, 74, 71, 70, 73, 108, 105, 104, 107 +35, 76, 74, 73, 75, 110, 108, 107, 109 +36, 78, 76, 75, 77, 112, 110, 109, 111 +37, 80, 78, 77, 79, 114, 112, 111, 113 +38, 82, 80, 79, 81, 116, 114, 113, 115 +39, 84, 82, 81, 83, 118, 116, 115, 117 +40, 86, 84, 83, 85, 120, 118, 117, 119 +41, 88, 86, 85, 87, 122, 120, 119, 121 +42, 90, 88, 87, 89, 124, 122, 121, 123 +43, 92, 90, 89, 91, 126, 124, 123, 125 +44, 94, 92, 91, 93, 128, 126, 125, 127 +45, 96, 94, 93, 95, 130, 128, 127, 129 +46, 98, 96, 95, 97, 132, 130, 129, 131 +47, 100, 98, 97, 99, 134, 132, 131, 133 +48, 102, 100, 99, 101, 136, 134, 133, 135 +49, 105, 106, 103, 104, 139, 140, 137, 138 +50, 108, 105, 104, 107, 142, 139, 138, 141 +51, 110, 108, 107, 109, 144, 142, 141, 143 +52, 112, 110, 109, 111, 146, 144, 143, 145 +53, 114, 112, 111, 113, 148, 146, 145, 147 +54, 116, 114, 113, 115, 150, 148, 147, 149 +55, 118, 116, 115, 117, 152, 150, 149, 151 +56, 120, 118, 117, 119, 154, 152, 151, 153 +57, 122, 120, 119, 121, 156, 154, 153, 155 +58, 124, 122, 121, 123, 158, 156, 155, 157 +59, 126, 124, 123, 125, 160, 158, 157, 159 +60, 128, 126, 125, 127, 162, 160, 159, 161 +61, 130, 128, 127, 129, 164, 162, 161, 163 +62, 132, 130, 129, 131, 166, 164, 163, 165 +63, 134, 132, 131, 133, 168, 166, 165, 167 +64, 136, 134, 133, 135, 170, 168, 167, 169 +65, 171, 172, 4, 3, 173, 174, 8, 7 +66, 175, 171, 3, 10, 176, 173, 7, 12 +67, 177, 175, 10, 14, 178, 176, 12, 16 +68, 179, 177, 14, 18, 180, 178, 16, 20 +69, 181, 179, 18, 22, 182, 180, 20, 24 +70, 183, 181, 22, 26, 184, 182, 24, 28 +71, 185, 183, 26, 30, 186, 184, 28, 32 +72, 187, 185, 30, 34, 188, 186, 32, 36 +73, 189, 187, 34, 38, 190, 188, 36, 40 +74, 191, 189, 38, 42, 192, 190, 40, 44 +75, 193, 191, 42, 46, 194, 192, 44, 48 +76, 195, 193, 46, 50, 196, 194, 48, 52 +77, 197, 195, 50, 54, 198, 196, 52, 56 +78, 199, 197, 54, 58, 200, 198, 56, 60 +79, 201, 199, 58, 62, 202, 200, 60, 64 +80, 203, 201, 62, 66, 204, 202, 64, 68 +81, 173, 174, 8, 7, 205, 206, 72, 71 +82, 176, 173, 7, 12, 207, 205, 71, 74 +83, 178, 176, 12, 16, 208, 207, 74, 76 +84, 180, 178, 16, 20, 209, 208, 76, 78 +85, 182, 180, 20, 24, 210, 209, 78, 80 +86, 184, 182, 24, 28, 211, 210, 80, 82 +87, 186, 184, 28, 32, 212, 211, 82, 84 +88, 188, 186, 32, 36, 213, 212, 84, 86 +89, 190, 188, 36, 40, 214, 213, 86, 88 +90, 192, 190, 40, 44, 215, 214, 88, 90 +91, 194, 192, 44, 48, 216, 215, 90, 92 +92, 196, 194, 48, 52, 217, 216, 92, 94 +93, 198, 196, 52, 56, 218, 217, 94, 96 +94, 200, 198, 56, 60, 219, 218, 96, 98 +95, 202, 200, 60, 64, 220, 219, 98, 100 +96, 204, 202, 64, 68, 221, 220, 100, 102 +97, 205, 206, 72, 71, 222, 223, 106, 105 +98, 207, 205, 71, 74, 224, 222, 105, 108 +99, 208, 207, 74, 76, 225, 224, 108, 110 +100, 209, 208, 76, 78, 226, 225, 110, 112 +101, 210, 209, 78, 80, 227, 226, 112, 114 +102, 211, 210, 80, 82, 228, 227, 114, 116 +103, 212, 211, 82, 84, 229, 228, 116, 118 +104, 213, 212, 84, 86, 230, 229, 118, 120 +105, 214, 213, 86, 88, 231, 230, 120, 122 +106, 215, 214, 88, 90, 232, 231, 122, 124 +107, 216, 215, 90, 92, 233, 232, 124, 126 +108, 217, 216, 92, 94, 234, 233, 126, 128 +109, 218, 217, 94, 96, 235, 234, 128, 130 +110, 219, 218, 96, 98, 236, 235, 130, 132 +111, 220, 219, 98, 100, 237, 236, 132, 134 +112, 221, 220, 100, 102, 238, 237, 134, 136 +113, 222, 223, 106, 105, 239, 240, 140, 139 +114, 224, 222, 105, 108, 241, 239, 139, 142 +115, 225, 224, 108, 110, 242, 241, 142, 144 +116, 226, 225, 110, 112, 243, 242, 144, 146 +117, 227, 226, 112, 114, 244, 243, 146, 148 +118, 228, 227, 114, 116, 245, 244, 148, 150 +119, 229, 228, 116, 118, 246, 245, 150, 152 +120, 230, 229, 118, 120, 247, 246, 152, 154 +121, 231, 230, 120, 122, 248, 247, 154, 156 +122, 232, 231, 122, 124, 249, 248, 156, 158 +123, 233, 232, 124, 126, 250, 249, 158, 160 +124, 234, 233, 126, 128, 251, 250, 160, 162 +125, 235, 234, 128, 130, 252, 251, 162, 164 +126, 236, 235, 130, 132, 253, 252, 164, 166 +127, 237, 236, 132, 134, 254, 253, 166, 168 +128, 238, 237, 134, 136, 255, 254, 168, 170 +129, 256, 257, 172, 171, 258, 259, 174, 173 +130, 260, 256, 171, 175, 261, 258, 173, 176 +131, 262, 260, 175, 177, 263, 261, 176, 178 +132, 264, 262, 177, 179, 265, 263, 178, 180 +133, 266, 264, 179, 181, 267, 265, 180, 182 +134, 268, 266, 181, 183, 269, 267, 182, 184 +135, 270, 268, 183, 185, 271, 269, 184, 186 +136, 272, 270, 185, 187, 273, 271, 186, 188 +137, 274, 272, 187, 189, 275, 273, 188, 190 +138, 276, 274, 189, 191, 277, 275, 190, 192 +139, 278, 276, 191, 193, 279, 277, 192, 194 +140, 280, 278, 193, 195, 281, 279, 194, 196 +141, 282, 280, 195, 197, 283, 281, 196, 198 +142, 284, 282, 197, 199, 285, 283, 198, 200 +143, 286, 284, 199, 201, 287, 285, 200, 202 +144, 288, 286, 201, 203, 289, 287, 202, 204 +145, 258, 259, 174, 173, 290, 291, 206, 205 +146, 261, 258, 173, 176, 292, 290, 205, 207 +147, 263, 261, 176, 178, 293, 292, 207, 208 +148, 265, 263, 178, 180, 294, 293, 208, 209 +149, 267, 265, 180, 182, 295, 294, 209, 210 +150, 269, 267, 182, 184, 296, 295, 210, 211 +151, 271, 269, 184, 186, 297, 296, 211, 212 +152, 273, 271, 186, 188, 298, 297, 212, 213 +153, 275, 273, 188, 190, 299, 298, 213, 214 +154, 277, 275, 190, 192, 300, 299, 214, 215 +155, 279, 277, 192, 194, 301, 300, 215, 216 +156, 281, 279, 194, 196, 302, 301, 216, 217 +157, 283, 281, 196, 198, 303, 302, 217, 218 +158, 285, 283, 198, 200, 304, 303, 218, 219 +159, 287, 285, 200, 202, 305, 304, 219, 220 +160, 289, 287, 202, 204, 306, 305, 220, 221 +161, 290, 291, 206, 205, 307, 308, 223, 222 +162, 292, 290, 205, 207, 309, 307, 222, 224 +163, 293, 292, 207, 208, 310, 309, 224, 225 +164, 294, 293, 208, 209, 311, 310, 225, 226 +165, 295, 294, 209, 210, 312, 311, 226, 227 +166, 296, 295, 210, 211, 313, 312, 227, 228 +167, 297, 296, 211, 212, 314, 313, 228, 229 +168, 298, 297, 212, 213, 315, 314, 229, 230 +169, 299, 298, 213, 214, 316, 315, 230, 231 +170, 300, 299, 214, 215, 317, 316, 231, 232 +171, 301, 300, 215, 216, 318, 317, 232, 233 +172, 302, 301, 216, 217, 319, 318, 233, 234 +173, 303, 302, 217, 218, 320, 319, 234, 235 +174, 304, 303, 218, 219, 321, 320, 235, 236 +175, 305, 304, 219, 220, 322, 321, 236, 237 +176, 306, 305, 220, 221, 323, 322, 237, 238 +177, 307, 308, 223, 222, 324, 325, 240, 239 +178, 309, 307, 222, 224, 326, 324, 239, 241 +179, 310, 309, 224, 225, 327, 326, 241, 242 +180, 311, 310, 225, 226, 328, 327, 242, 243 +181, 312, 311, 226, 227, 329, 328, 243, 244 +182, 313, 312, 227, 228, 330, 329, 244, 245 +183, 314, 313, 228, 229, 331, 330, 245, 246 +184, 315, 314, 229, 230, 332, 331, 246, 247 +185, 316, 315, 230, 231, 333, 332, 247, 248 +186, 317, 316, 231, 232, 334, 333, 248, 249 +187, 318, 317, 232, 233, 335, 334, 249, 250 +188, 319, 318, 233, 234, 336, 335, 250, 251 +189, 320, 319, 234, 235, 337, 336, 251, 252 +190, 321, 320, 235, 236, 338, 337, 252, 253 +191, 322, 321, 236, 237, 339, 338, 253, 254 +192, 323, 322, 237, 238, 340, 339, 254, 255 +193, 341, 342, 257, 256, 343, 344, 259, 258 +194, 345, 341, 256, 260, 346, 343, 258, 261 +195, 347, 345, 260, 262, 348, 346, 261, 263 +196, 349, 347, 262, 264, 350, 348, 263, 265 +197, 351, 349, 264, 266, 352, 350, 265, 267 +198, 353, 351, 266, 268, 354, 352, 267, 269 +199, 355, 353, 268, 270, 356, 354, 269, 271 +200, 357, 355, 270, 272, 358, 356, 271, 273 +201, 359, 357, 272, 274, 360, 358, 273, 275 +202, 361, 359, 274, 276, 362, 360, 275, 277 +203, 363, 361, 276, 278, 364, 362, 277, 279 +204, 365, 363, 278, 280, 366, 364, 279, 281 +205, 367, 365, 280, 282, 368, 366, 281, 283 +206, 369, 367, 282, 284, 370, 368, 283, 285 +207, 371, 369, 284, 286, 372, 370, 285, 287 +208, 373, 371, 286, 288, 374, 372, 287, 289 +209, 343, 344, 259, 258, 375, 376, 291, 290 +210, 346, 343, 258, 261, 377, 375, 290, 292 +211, 348, 346, 261, 263, 378, 377, 292, 293 +212, 350, 348, 263, 265, 379, 378, 293, 294 +213, 352, 350, 265, 267, 380, 379, 294, 295 +214, 354, 352, 267, 269, 381, 380, 295, 296 +215, 356, 354, 269, 271, 382, 381, 296, 297 +216, 358, 356, 271, 273, 383, 382, 297, 298 +217, 360, 358, 273, 275, 384, 383, 298, 299 +218, 362, 360, 275, 277, 385, 384, 299, 300 +219, 364, 362, 277, 279, 386, 385, 300, 301 +220, 366, 364, 279, 281, 387, 386, 301, 302 +221, 368, 366, 281, 283, 388, 387, 302, 303 +222, 370, 368, 283, 285, 389, 388, 303, 304 +223, 372, 370, 285, 287, 390, 389, 304, 305 +224, 374, 372, 287, 289, 391, 390, 305, 306 +225, 375, 376, 291, 290, 392, 393, 308, 307 +226, 377, 375, 290, 292, 394, 392, 307, 309 +227, 378, 377, 292, 293, 395, 394, 309, 310 +228, 379, 378, 293, 294, 396, 395, 310, 311 +229, 380, 379, 294, 295, 397, 396, 311, 312 +230, 381, 380, 295, 296, 398, 397, 312, 313 +231, 382, 381, 296, 297, 399, 398, 313, 314 +232, 383, 382, 297, 298, 400, 399, 314, 315 +233, 384, 383, 298, 299, 401, 400, 315, 316 +234, 385, 384, 299, 300, 402, 401, 316, 317 +235, 386, 385, 300, 301, 403, 402, 317, 318 +236, 387, 386, 301, 302, 404, 403, 318, 319 +237, 388, 387, 302, 303, 405, 404, 319, 320 +238, 389, 388, 303, 304, 406, 405, 320, 321 +239, 390, 389, 304, 305, 407, 406, 321, 322 +240, 391, 390, 305, 306, 408, 407, 322, 323 +241, 392, 393, 308, 307, 409, 410, 325, 324 +242, 394, 392, 307, 309, 411, 409, 324, 326 +243, 395, 394, 309, 310, 412, 411, 326, 327 +244, 396, 395, 310, 311, 413, 412, 327, 328 +245, 397, 396, 311, 312, 414, 413, 328, 329 +246, 398, 397, 312, 313, 415, 414, 329, 330 +247, 399, 398, 313, 314, 416, 415, 330, 331 +248, 400, 399, 314, 315, 417, 416, 331, 332 +249, 401, 400, 315, 316, 418, 417, 332, 333 +250, 402, 401, 316, 317, 419, 418, 333, 334 +251, 403, 402, 317, 318, 420, 419, 334, 335 +252, 404, 403, 318, 319, 421, 420, 335, 336 +253, 405, 404, 319, 320, 422, 421, 336, 337 +254, 406, 405, 320, 321, 423, 422, 337, 338 +255, 407, 406, 321, 322, 424, 423, 338, 339 +256, 408, 407, 322, 323, 425, 424, 339, 340 + +** Define element set Eall +*ELSET, ELSET=Eall +Evolumes + + + +*********************************************************** +** Element sets for materials and FEM element type (solid, shell, beam, fluid) +** written by write_element_sets_material_and_femelement_type function +*ELSET,ELSET=MechanicalMaterialSolid +Evolumes + +*********************************************************** +** constraints fixed node sets +** written by write_node_sets_constraints_fixed function +** FemConstraintDisplacement +*NSET,NSET=FemConstraintDisplacement +1, +4, +5, +8, +69, +72, +103, +106, +137, +140, +172, +174, +206, +223, +240, +257, +259, +291, +308, +325, +342, +344, +376, +393, +410, + +*********************************************************** +** Materials +** written by write_materials function +** Young's modulus unit is MPa = N/mm2 +** FreeCAD material name: CalculiX-Steel +** MechanicalMaterial +*MATERIAL, NAME=MechanicalMaterial +*ELASTIC +210000, 0.300 + +*********************************************************** +** Sections +** written by write_femelementsets function +*SOLID SECTION, ELSET=MechanicalMaterialSolid, MATERIAL=MechanicalMaterial + +*********************************************************** +** At least one step is needed to run an CalculiX analysis of FreeCAD +** written by write_step_begin function +*STEP +*BUCKLE +10 + + +*********************************************************** +** Fixed Constraints +** written by write_constraints_fixed function +** FemConstraintDisplacement +*BOUNDARY +FemConstraintDisplacement,1 +FemConstraintDisplacement,2 +FemConstraintDisplacement,3 + + +*********************************************************** +** constraints force node loads +** written by write_constraints_force function +*CLOAD +** FemConstraintForce +** node loads on shape: beam:Face6 +65,3,-3.2812500000000E-01 +66,3,-6.5625000000000E-01 +67,3,-6.5625000000000E-01 +68,3,-1.3125000000000E+00 +101,3,-6.5625000000000E-01 +102,3,-1.3125000000000E+00 +135,3,-6.5625000000000E-01 +136,3,-1.3125000000000E+00 +169,3,-3.2812500000000E-01 +170,3,-6.5625000000000E-01 +203,3,-6.5625000000000E-01 +204,3,-1.3125000000000E+00 +221,3,-1.3125000000000E+00 +238,3,-1.3125000000000E+00 +255,3,-6.5625000000000E-01 +288,3,-6.5625000000000E-01 +289,3,-1.3125000000000E+00 +306,3,-1.3125000000000E+00 +323,3,-1.3125000000000E+00 +340,3,-6.5625000000000E-01 +373,3,-3.2812500000000E-01 +374,3,-6.5625000000000E-01 +391,3,-6.5625000000000E-01 +408,3,-6.5625000000000E-01 +425,3,-3.2812500000000E-01 + + + +*********************************************************** +** Outputs --> frd file +** written by write_outputs_types function +*NODE FILE +U +*EL FILE +S, E +** outputs --> dat file +** reaction forces for Constraint fixed +*NODE PRINT, NSET=FemConstraintDisplacement, TOTALS=ONLY +RF + + +*********************************************************** +** written by write_step_end function +*END STEP + +*********************************************************** +** CalculiX Input file +** written by write_footer function +** written by --> FreeCAD 0.19.23856 (Git) +** written on --> Tue Mar 30 10:47:39 2021 +** file name --> +** analysis name --> Analysis +** +** +*********************************************************** +** About units: +** See ccx manual, ccx does not know about any unit. +** Golden rule: The user must make sure that the numbers he provides have consistent units. +** The user is the FreeCAD calculix writer module ;-) +** +** The unit system which is used at Guido Dhondt's company: mm, N, s, K +** Since Length and Mass are connected by Force, if Length is mm the Mass is in t to get N +** The following units are used to write to inp file: +** +** Length: mm (this includes the mesh geometry) +** Mass: t +** TimeSpan: s +** Temperature: K +** +** This leads to: +** Force: N +** Pressure: N/mm^2 +** Density: t/mm^3 +** Gravity: mm/s^2 +** Thermal conductivity: t*mm/K/s^3 (same as W/m/K) +** Specific Heat: mm^2/s^2/K (same as J/kg/K) +** diff --git a/src/Mod/Fem/femtest/test_commands.sh b/src/Mod/Fem/femtest/test_commands.sh index 64a2756660..c3f435e7a8 100644 --- a/src/Mod/Fem/femtest/test_commands.sh +++ b/src/Mod/Fem/femtest/test_commands.sh @@ -77,6 +77,7 @@ make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_result.TestResult.test_rho make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_result.TestResult.test_disp_abs make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_box_frequency make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_box_static +make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_buckling_flexuralbuckling make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccxcantilever_faceload make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccxcantilever_hexa20 make -j 4 && ./bin/FreeCADCmd -t femtest.app.test_solver_calculix.TestSolverCalculix.test_ccxcantilever_nodeload @@ -298,6 +299,11 @@ unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_calculix.TestSolverCalculix.test_box_static' )) +import unittest +unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( + 'femtest.app.test_solver_calculix.TestSolverCalculix.test_ccx_buckling_flexuralbuckling' +)) + import unittest unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromName( 'femtest.app.test_solver_calculix.TestSolverCalculix.test_ccxcantilever_faceload'