ANYbuckling
Buckling of stiffened flat panels, cylinders and curved plates according to DNV standards.
ANYbuckling is the standalone calculation engine extracted from ANYstructure. It has no GUI and only depends on numpy and scipy.
Calculation methods
| Method | Standard | Entry point |
|---|---|---|
| Prescriptive flat-plate buckling | DNV-RP-C201 | anybuckling.FlatStru |
| Prescriptive cylinder / curved plate buckling | DNV-RP-C202 | anybuckling.CylStru |
| Semi-analytical stiffened/unstiffened panel (S3/U3) | PULS-type ultimate capacity | anybuckling.semianalytical |
| DNV PULS Excel runner (optional, licensed sheet required) | PULS | anybuckling.puls.PULSpanel |
The ML-based buckling predictions available in ANYstructure are not part of this package.
Installation
pip install ANYbuckling
Optional extras:
pip install ANYbuckling[excel] # xlwings, needed only for the PULS Excel runner
Quick start
Flat stiffened panel (DNV-RP-C201, prescriptive)
from anybuckling import FlatStru
panel = FlatStru('Flat plate, stiffened')
panel.set_material(mat_yield=355, emodule=210000, material_factor=1.15, poisson=0.3)
panel.set_plate_geometry(spacing=680, thickness=12, span=3300)
panel.set_stresses(pressure=0.01, sigma_x1=50, sigma_x2=50,
sigma_y1=100, sigma_y2=100, tau_xy=5)
panel.set_stiffener(hw=260, tw=12, bf=49, tf=28, stf_type='bulb', spacing=680)
panel.set_buckling_parameters(calculation_method='DNV-RP-C201 - prescriptive',
buckling_acceptance='ultimate')
results = panel.get_buckling_results()
print(results['Plate']['Plate buckling']) # plate UF
print(results['Stiffener']) # stiffener UFs
Domains: 'Flat plate, unstiffened', 'Flat plate, stiffened' and
'Flat plate, stiffened with girder'. Switch calculation_method to
'SemiAnalytical S3/U3' to run the same panel through the
semi-analytical solver.
Cylinder (DNV-RP-C202)
from anybuckling import CylStru
cyl = CylStru(calculation_domain='Longitudinal Stiffened shell')
cyl.set_material(mat_yield=355, emodule=210000, material_factor=1.15, poisson=0.3)
cyl.set_stresses(sasd=-137.6, tQsd=78.3, shsd=-3.9)
cyl.set_shell_geometry(radius=6500, thickness=19,
tot_length_of_shell=20000, distance_between_rings=3300)
cyl.set_longitudinal_stiffener(hw=232, tw=12, bf=49, tf=28, spacing=680)
cyl.set_imperfection()
cyl.set_fabrication_method()
cyl.set_end_cap_pressure_included_in_stress()
cyl.set_uls_or_als('ULS')
cyl.set_shell_buckling_parmeters()
print(cyl.get_buckling_results())
Domains cover unstiffened, longitudinally stiffened, ring stiffened and orthogonally stiffened shells and panels, plus unstiffened conical shells, with either stress or force input.
Semi-analytical S3/U3 solver directly
from anybuckling.semianalytical import row_to_s3_input, solve_s3_panel
row = {
'Length of panel': 3300.0, 'Stiffener spacing': 680.0, 'Plate thick.': 12.0,
'Stiffener type': 'L-bulb', 'Stiffener boundary': 'Cont',
'Stiff. Height': 260.0, 'Web thick.': 12.0, 'Flange width': 49.0,
'Flange thick.': 28.0, 'Yield stress plate': 355.0, 'Yield stress stiffener': 355.0,
'Axial stress': 50.0, 'Trans. stress 1': 100.0, 'Trans. stress 2': 100.0,
'Shear stress': 5.0, 'Pressure (fixed)': 0.01, 'In-plane support': 'Integrated',
}
result = solve_s3_panel(row_to_s3_input(row))
print(result.valid, result.buckling_usage_factor, result.ultimate_usage_factor)
The solver also ships a benchmark and verification CLI:
python -m anybuckling.semianalytical --help
Relation to ANYstructure
The classes keep their original ANYstructure names (Structure,
CalcScantlings, AllStructure, Shell, CylinderAndCurvedPlate,
PULSpanel) because ANYstructure uses this package as a dependency. Fatigue,
load combinations, optimization, FE integration, machine-learning prediction,
and the GUI remain in ANYstructure.
Development
pip install -e .[dev]
pytest
License
GPL-3.0-or-later. See LICENSE.
Metadata
Release files for ANYbuckling 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| anybuckling-0.1.3.tar.gz | 197.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anybuckling-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 363.2 kB
Release files / anybuckling-0.1.3.tar.gz
| Download URL | anybuckling-0.1.3.tar.gz |
|---|---|
| Size | 197.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9674311bab3fab3740eb6eb441dec741207275e8bcaa8dadaf38c6ff8e4c10b5
|
|
BLAKE2b-256 checksum How to use checksums |
01b84fa5b887f0af8cfa600cff6dbc1442bbf90510728ea9056926c9c1eb2a37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / anybuckling-0.1.3-py3-none-any.whl
| Download URL | anybuckling-0.1.3-py3-none-any.whl |
|---|---|
| Size | 166.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6df0029afef94fb4810adc3b84a0fca36dcc71307fc5ede648e0877e0754cbe
|
|
BLAKE2b-256 checksum How to use checksums |
3259ef212fa26f48b1566d9083ac3ed273e3354d3c25534f3f56046b398838c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log