Skip to main content

Buckling of stiffened flat panels, cylinders and curved plates according to DNV standards - prescriptive (DNV-RP-C201/C202) and semi-analytical (S3/U3) methods

Project description

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) so that ANYstructure can switch to this package as a dependency without behavioural changes. Fatigue, load combinations, optimization, FE integration and the GUI remain in ANYstructure.

Future scope may include additional materials, for example composite panels.

Development

pip install -e .[dev]
pytest

License

GPL-3.0-or-later. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anybuckling-0.1.0.tar.gz (143.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

anybuckling-0.1.0-py3-none-any.whl (145.4 kB view details)

Uploaded Python 3

File details

Details for the file anybuckling-0.1.0.tar.gz.

File metadata

  • Download URL: anybuckling-0.1.0.tar.gz
  • Upload date:
  • Size: 143.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for anybuckling-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7d50b2fd72c8616c578e0d040ec08cf46048d6c7c777b41d5ec8d73d8f8db3eb
MD5 dbd10b42282d2d87f22850894a675a8b
BLAKE2b-256 238f7f9567fe384436d4f9ff286ca92c7091f20d7f541f2e75d52539ad95bc81

See more details on using hashes here.

File details

Details for the file anybuckling-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: anybuckling-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 145.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for anybuckling-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cbab3b489f6a256d71f85626415d5738d62e820a8e9f1f4ad8481e992217a2d
MD5 c52832bab45dff01092cb68a75644a3b
BLAKE2b-256 e028c8af4a863aecd8df7b7add8c88e13610c94e0aed50b545a3c514c0d78f3e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page