Snow on roofs, solved. One repository for the rig, and one folder per study inside it.
roof_published.py the solver, ONCE
steepen-it/ what a change of pitch is worth
This channel published twenty-seven repositories, one per video, and the same solver was copied into repository after repository. Every copy is a place that rots on its own, and nothing notices when one drifts from another.
Here the solver sits at the root, once. Each study folder ships only what is
new to it, and its reproduce.py checks the root solver and its own modules
against a frozen SHA-256 before it runs anything. A change to the shared
solver that moves an old study's numbers makes that study's own check
fail, which is exactly what twenty-seven copies could not do.
The earlier per-video repositories are archived, not deleted: everything ever linked from a caption still resolves.
cd steepen-it
python reproduce.py # the whole study and every gate
python reproduce.py --quick # a few numbers, in seconds
Needs numpy and scipy. Nothing else.
A plane frame of tube members. Snow is applied from the first-generation EN 1991-1-3:2003+A1:2015 shape coefficient — 0.8 up to 30 degrees, falling linearly to zero at 60 — and the load is raised in steps, removing any member that reaches first yield or Euler buckling and re-solving, until the frame loses rank.
The model does not simulate snow sliding off. It applies the prescribed coefficient, which stands for reduced accumulation from shape, wind and sliding together.
Two things this rig will not support, both measured rather than assumed:
- the panel count is a design parameter, not a mesh. Raising it adds panels; at fixed steel volume every member thins and the capacity changes. A sweep over it is not a convergence study.
- the support model decides a great deal. Both feet held horizontally is not the same structure as pin-and-roller, and any result has to say which it is.
Every check reads the same geometry, sections and coefficients the solver reads. Validating any of this would need a real roof and real snow.
MIT.