Layers
There are two layered materials commonly used in structural glass design:
Glass plys
Interlayers
Typically, interlayer materials are used to bond glass layers into a laminate. Common commercial applications use either ionoplast (SGP) or polyvinyl butyral (PVD) as the bonding layers between glass layers.
Glass Plys
It is common for glass layers to be manufactured according to “nominal
thickness”. Each nominal thickness has an associated min required thickness
(as documented in E1300). To facilitate this common practice a
GlassPly can be created using
from_nominal_thickness():
from structuralglass import Q_
import structuralglass.layers as lay
t_nom = Q_(6, "mm")
ply = lay.GlassPly.from_nominal_thickness(t_nom)
ply.t_min # Q_(5.56, "mm")
GlassPly created in this way will have properties for
t_nom that are not None.
In order to not limit the user to nominal thicknesses, a GlassPly
can be created using from_actual_thickness():
from structuralglass import Q_
import structuralglass.layers as lay
t_act = Q_(5.56, "mm")
ply = lay.GlassPly.from_actual_thickness(t_act)
ply.t_min # Q_(5.56, "mm")
Interlayers
An Interlayer can be defined in 2 ways:
as a static interlayer
as a dynamic interlayer
Static Interlayer are not backed by
manufactures data. They are static in the sense that the shear modulus is
changed manually. A static Interlayer can be
created via the from_static() class
method.
from structuralglass import Q_
import structuralglass.layers as lay
# Interlayer PVB at 30°C for 1 day load duration
G_pvb = Q_(0.281, "MPa")
t_pvb = Q_(0.89, "mm")
interlayer = lay.Interlayer.from_static(t_pvb, G_pvb)
It is common for interlayer manufacturers to provide material properties in tabulated forms. This is because the laminates are viscoelastic materials and their material properties depend on load duration and temperature. So, the manufacture provides tabulated “effective” data for a load duration and temperature.
Dynamic Interlayer are backed by manufactures tabular data. They are
dynamic in the sense that the shear modulus can be changed by providing a new
temperature and load duration. For gaps in the manufactures data (for example,
the shear modulus is given for 10°C and 20°C and 15°C is set), the tabular
data is interpolated linearly. Extrapolation is not done and capped to
tabulated values. This functionality is provided by scipy’s
interp2d function. A dynamic Interlayer
can be created via the from_product_table() class method.
from structuralglass import Q_
import structuralglass.layers as lay
t_pvb = Q_(1.52, "mm")
product_name = "Ionoplast Interlayer NCSEA"
interlayer = lay.Interlayer.from_product_table(t_pvb, product_name)
# set the load duration and temperature
interlayer.duration = Q_(1, "month")
interlayer.temperature = Q_(40, "degC")
# Access the shear modulus of the "Ionoplast Interlayer NCSEA"
interlayer.G # Q_(3.29, "MPa")
A background registry holds the manufactures tabular data.
New data can be added via the register_interlayer_product() function.
Data can be removed via the deregister_interlayer_product() function.
from structuralglass import Q_
import structuralglass.layers as lay
name = "product_ID_1"
data = {
(Q_(20, "degC"), Q_(3, 'sec')): Q_(240, "MPa"),
(Q_(30, "degC"), Q_(3, 'sec')): Q_(217, "MPa"),
(Q_(40, "degC"), Q_(3, 'sec')): Q_(151, "MPa"),
(Q_(20, "degC"), Q_(10, 'min')): Q_(77.0, "MPa"),
(Q_(30, "degC"), Q_(10, 'min')): Q_(36.2, "MPa"),
(Q_(40, "degC"), Q_(10, 'min')): Q_(11.8, "MPa"),
}
lay.register_interlayer_product(name, data)
# choose an interlayer thickness
t_pvb = Q_(1.52, "mm")
interlayer = lay.Interlayer.from_product_table(t_pvb, name)
# set the load duration and temperature
interlayer.duration = Q_(5, "min")
interlayer.temperature = Q_(35, "degC")
interlayer.G # Q(104.15, "MPa")