@@ -76,32 +76,55 @@ def test_asbi():
7676 shape = create_asbi ("BC-2100-1+1500" , mesher = "gmsh" )
7777 u = shape .units
7878 assert shape .area == pytest .approx (5_591_000 * u .mm ** 2 , rel = 1e-2 )
79+ assert shape .flange_area ()+ shape .web_area () == pytest .approx (shape .area , rel = 1e-1 )
7980
8081 shape = create_asbi ("BC-2700-1" , mesher = "gmsh" )
8182 u = shape .units
8283 assert shape .area == pytest .approx (5_471_000 * u .mm ** 2 , rel = 1e-2 )
84+ assert shape .flange_area ()+ shape .web_area () == pytest .approx (shape .area , rel = 1e-1 )
8385
8486 shape = create_asbi ("BC-3000-1+750" , mesher = "gmsh" )
8587 u = shape .units
8688 assert shape .area == pytest .approx (6_135_000 * u .mm ** 2 , rel = 1e-2 )
89+ assert shape .flange_area ()+ shape .web_area () == pytest .approx (shape .area , rel = 1e-1 )
8790
8891
8992
9093def test_torsion ():
94+ """
95+ [2] Paradiso, Massimo, Salvatore Sessa, Nicolò Vaiana, Francesco Marmo, and Luciano Rosati.
96+ "Shear Properties of Isotropic and Homogeneous Beam-like Solids Having Arbitrary Cross Sections."
97+ International Journal of Solids and Structures 216 (May 2021): 231–49.
98+ https://doi.org/10.1016/j.ijsolstr.2021.01.012.
99+ [3] Roccia, Bruno A., Carmina Alturria Lanzardo, Fernando D. Mazzone, and Cristian G. Gebhardt.
100+ "On the Homogeneous Torsion Problem for Heterogeneous and Orthotropic Cross-Sections: Theoretical and Numerical Aspects."
101+ Applied Numerical Mathematics 201 (July 2024): 579–607.
102+ https://doi.org/10.1016/j.apnum.2024.03.017.
103+
104+ """
91105 # Gruttmann, Wagner (2001)
92106 shape = load_shape ("G02" , mesh_type = "T6" , mesh_scale = 1 )
107+ assert shape .flange_area ()+ shape .web_area () == pytest .approx (shape .area , rel = 1e-1 )
108+
109+ # Center of shear wrt the bottom of the soffit
110+ scy ,scz = shape ._analysis .shear_center ()
111+ assert scy == pytest .approx (0 , rel = 1e-3 )
112+ assert scz == pytest .approx (1.569 , rel = 1e-3 )
93113
94114 sv = SaintVenantSectionAnalysis (shape )
95- assert sv .twist_rigidity ()/ shape .material ["G" ] == pytest .approx (42.487 , rel = 1e-1 )
115+ assert sv .twist_rigidity ()/ shape .material ["G" ] == pytest .approx (42.487 , rel = 5e-2 )
96116
97- # shape = shape.translate(-sv.twist_center())
98- # assert shape.cww()[0,0]/shape.material["E"] == pytest.approx(62.788, rel=2e-1)
99117
100118 tr = sv .create_trace (form = "energetic" )
101119 ky , kz = tr .sce ()
102120 assert ky == pytest .approx (0.5993 , rel = 1e-3 )
103121 assert kz == pytest .approx (0.2311 , rel = 1e-2 )
104122
123+ # Warping constant, value from [3]
124+ shape = shape .translate ([- scy ,- scz ]) # -sv.twist_center()
125+ Cw = shape .cww ()[0 ,0 ]
126+ # Cw = sv.twist_warp_inertia()
127+ assert Cw / shape .material ["E" ] == pytest .approx (62.788 , rel = 1e-2 )
105128
106129
107130def test_fhwa ():
@@ -110,6 +133,7 @@ def test_fhwa():
110133
111134 material = {"E" : 4 , "G" : 2 }
112135 shape = load_shape ("G03" , material = material , mesh_type = "T6" , mesh_scale = 1 / 3 )
136+ assert shape .flange_area ()+ shape .web_area () == pytest .approx (shape .area , rel = 1e-1 )
113137 u = shape .units
114138
115139 sv = SaintVenantSectionAnalysis (shape )
0 commit comments