pub struct StructuralGlass {
pub width: f64,
pub height: f64,
pub thickness: f64,
pub e_glass: f64,
pub nu_glass: f64,
pub density: f64,
pub wind_pressure: f64,
pub delta_temp: f64,
pub alpha_cte: f64,
pub sealant_width: f64,
pub sealant_shear_strength: f64,
}Expand description
Structural glass panel — sizing under wind, thermal, and self-weight loads.
Covers monolithic, laminated, and insulating glass units (IGU).
Fields§
§width: f64Panel width (m).
height: f64Panel height (m).
thickness: f64Total glass thickness (m) — sum of all plies.
e_glass: f64Young’s modulus of glass (Pa) — typically 70 GPa.
nu_glass: f64Poisson’s ratio of glass — typically 0.23.
density: f64Density of glass (kg/m³) — typically 2500.
wind_pressure: f64Design wind pressure (Pa) — positive = inward.
delta_temp: f64Temperature delta for thermal stress calculation (°C).
alpha_cte: f64Coefficient of thermal expansion (1/°C) — typically 9e-6.
sealant_width: f64Silicone joint width (m).
sealant_shear_strength: f64Silicone design shear stress capacity (Pa) — typically 0.14 MPa.
Implementations§
Source§impl StructuralGlass
impl StructuralGlass
Sourcepub fn monolithic_10mm() -> Self
pub fn monolithic_10mm() -> Self
Default single glazing: 10 mm monolithic, 3×5 m panel.
Sourcepub fn self_weight_pressure(&self) -> f64
pub fn self_weight_pressure(&self) -> f64
Self-weight per unit area (Pa = N/m²).
Sourcepub fn max_bending_stress_wind(&self) -> f64
pub fn max_bending_stress_wind(&self) -> f64
Maximum bending stress under uniform wind pressure (Pa).
Approximated as simply supported plate: σ = α · q · a² / t²,
where α ≈ 0.287 for a/b = 1.67 (typical facade aspect ratio),
a is the shorter span, t is thickness.
Sourcepub fn thermal_stress(&self) -> f64
pub fn thermal_stress(&self) -> f64
Thermal stress in a fully restrained glass pane (Pa).
σ_thermal = E · α · ΔT
Sourcepub fn combined_stress(&self) -> f64
pub fn combined_stress(&self) -> f64
Maximum combined stress (wind + thermal) (Pa).
Sourcepub fn sealant_shear_capacity(&self) -> f64
pub fn sealant_shear_capacity(&self) -> f64
Structural silicone joint capacity check.
Returns the maximum transferable line load (N/m) via the silicone bead, limited by the sealant shear strength and joint geometry.
Sourcepub fn edge_reaction_wind(&self) -> f64
pub fn edge_reaction_wind(&self) -> f64
Wind load reaction at each of the four edges (N/m) for a simply supported panel.
Sourcepub fn centre_deflection_wind(&self) -> f64
pub fn centre_deflection_wind(&self) -> f64
Centre deflection under uniform wind pressure (m).
Thin plate formula for simply supported edges: δ = β · q · a⁴ / (E · t³), β ≈ 0.0443.
Sourcepub fn span_deflection_ratio(&self) -> f64
pub fn span_deflection_ratio(&self) -> f64
Span-to-deflection ratio (serviceability check; ≥ 200 typically required).
Sourcepub fn igu_self_weight_pressure(&self) -> f64
pub fn igu_self_weight_pressure(&self) -> f64
Insulating glass unit (IGU) sealed unit weight per unit area (Pa).
Assumes 16 mm argon cavity + second pane of equal thickness.
Trait Implementations§
Source§impl Clone for StructuralGlass
impl Clone for StructuralGlass
Source§fn clone(&self) -> StructuralGlass
fn clone(&self) -> StructuralGlass
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for StructuralGlass
impl RefUnwindSafe for StructuralGlass
impl Send for StructuralGlass
impl Sync for StructuralGlass
impl Unpin for StructuralGlass
impl UnsafeUnpin for StructuralGlass
impl UnwindSafe for StructuralGlass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.