Nonhomogeneous Warping#

import veux
from xsection.analysis import WarpingAnalysis
from xsection.library import DoubleFlange, Rectangle
from xsection import CompositeSection
from xara import Section, Material 
G = 76.92
E = 200.0

materials = {
    "1": Material(E=E, G=G),
    "2": Material(E=E/10, G=G/10)
}

h = 50
t = 0.04*h
bot = DoubleFlange(d=h, 
                   b2=0.3*h, 
                   b1=0.6*h, 
                   t2=1.25*t, 
                   t1=t,
                   tw=t, 
                   material=materials["1"],
                #    group="1", 
                   mesh_scale=1/30
)
veux.draw_shape(bot)
<veux.artist.shape.PlaneArtist at 0x11feea4e0>
../../_images/8070c597682113bbe6108ccab2dd80b0de9f474345f87fd178ddee8b27175cce.png
d = 0.2*h
top = Rectangle(d=d, b=h,# group="2", 
                mesh_scale=1/40, 
                material=materials["2"])
top = top.translate([0, d/2+t/2])

shape = CompositeSection([top, bot])
veux.draw_shape(shape)
<veux.artist.shape.PlaneArtist at 0x1398f5af0>
../../_images/d9b03b9a3023b728599fa2a33d85bc162ea6e4b0b292dfea1cb57cf5e1c5b5f5.png
sv = WarpingAnalysis(shape)
GJ = sv.twist_rigidity()
GJ/materials["1"]["G"]
3978.7080799021683
artist = veux.ShapeArtist(shape)
artist.draw_surfaces(field=sv.solve_twist())
../../_images/a52eeb078bcd5350330be6b192ea037ee7e740c399ffd7fba2b30804836720c5.png