Nonhomogeneous Warping#

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

materials = {
    "1": MultiaxialMaterial("ElasticIsotropic", E=E, G=G),
    "2": MultiaxialMaterial("ElasticIsotropic", 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)

../../_images/37de231a5b2852bb09f6a581cdd90a31cfcf2944c6ef438189253db865f64eae.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)

../../_images/906c1549cd7eabecc23ac03e614fd670ff983048aa7f6c207b0be030c780292f.png
sv = WarpingAnalysis(shape)
GJ = sv.twist_rigidity()
GJ/materials["1"]["G"]
3978.7080799011164
artist = veux.ShapeArtist(shape)
artist.draw_surfaces(field=sv.solve_twist())
<matplotlib.tri._tricontour.TriContourSet at 0x134c40440>
../../_images/2321415633754fc83296a1b887160c828278f8f89ef950e59ba7bd96d7ef41e6.png