3pc-sandbuck
3pc-sandbuck is a Python library for buckling analysis of shear deformable sandwich plates under combined in-plane loading. It provides a Sandbuck class to solve the generalized eigenvalue problem for critical buckling loads, mode shapes, and displacement patterns.
Installation
Use the package manager pip to install sandbuck. Since the package and its dependencies are available on PyPI, you can install them directly:
pip install sandbuck
API Reference
Sandbuck Class
The primary component of this package is the Sandbuck class, which takes a panel, a load case, and coordinates/Fourier-expansion parameters to solve the sandwich buckling governing equations.
from sandbuck.sandbuck import Sandbuck
Required Parameters
When initializing Sandbuck, the following parameters are required:
panel(Panel): An instance of thePanelclass (from3pc-panel) containing the face sheet laminates and sandwich core definition.loads(Loads): An instance of theLoadsclass (from3pc-loads) containing the in-plane load components.number_of_terms(int): Number of terms in the double Fourier series expansion.number_of_points_x(int): Number of points along x-direction to calculate values.number_of_points_y(int): Number of points along y-direction to calculate values.
Calculated Properties
The class calculates the following properties:
pairs: List of pairs(i, j)for alli, j = 1, 2, ..., M, whereMis the number of terms.K33: Load-dependent part of the stiffness term K33 for all pairs.lambdaEV: Eigenvalues of the generalized eigenvalue problem.vr: Right eigenvectors of the generalized eigenvalue problem.lambda_cr: Critical eigenvalue (lowest positive eigenvalue).vr_cr: Critical right eigenvector.mn_cr: Critical(m, n)pair.lambdaP: Sorted list of positive eigenvalues.lambda1tolambda5: First to fifth critical (positive) eigenvalues.mn1tomn5: Dominant(m, n)pairs corresponding to eigenvalueslambda1tolambda5.Nxxcr1toNxxcr5,Nyycr1toNyycr5,Nxycr1toNxycr5: Critical buckling load components for the first 5 modes.w1tow5: Out-of-plane displacement mode shapes for the first 5 modes.w1loctow5loc: Out-of-plane displacement values at grid locations.
Methods
Sandbuck.fromDict(**kwargs)
Initializes a Sandbuck instance using a dictionary of keyword arguments.
Usage Examples
Basic Initialization
Below is an example of performing a sandwich buckling analysis.
from panel.panel import Panel
from loads.loads import Loads
from sandbuck.sandbuck import Sandbuck
# Assuming pnl (Panel) and ld (Loads) are already defined
sb = Sandbuck(
panel=pnl,
loads=ld,
number_of_terms=4,
number_of_points_x=11,
number_of_points_y=11
)
# Access calculated results
print("Critical eigenvalue:", sb.lambda_cr)
print("Critical buckling load Nxxcr1:", sb.Nxxcr1)
Commands
The package provides a command-line interface entry point. After installing, you can run the application using:
sandbuck input.cfg
(This entry point is defined in sandbuck.__main__:main)
Options
config(positional): Specify the configuration file (.cfg) to run the analysis.-h, --help: Show the help message and exit.-v, --version: Show the version number.-s, --sample: Copy example files (materials, plies, cores, laminates, panels, loads, config) to the current directory.
Configuration File (sandbuck.cfg)
The sandbuck command requires a configuration file (typically named sandbuck.cfg). Below is an example based on sandbuck/examples/example001/sandbuck.cfg:
[files]
materials = materials.json
plies = plies.json
cores = cores.json
laminates = laminates.json
panels = panels.json
loads = loads.json
output = output.txt
[analysis]
number_of_terms = 4
number_of_points_x = 11
number_of_points_y = 11
[files] Section
This section defines the paths to the required input JSON files and the desired output file:
materials: Path to the materials JSON file. Follows the format expected by3pc-material.plies: Path to the plies JSON file. Follows the format expected by3pc-ply.cores: Path to the cores JSON file.laminates: Path to the laminates JSON file. Follows the format expected by3pc-laminate.panels: Path to the panels JSON file. Follows the format expected by3pc-panel.loads: Path to the loads JSON file. Follows the format expected by3pc-loads.output: Path to the text file where the sandwich buckling analysis results will be written.
[analysis] Section
This section specifies the analysis settings:
number_of_terms: Number of terms in the double Fourier series expansion.number_of_points_x: Number of grid points along the x-direction.number_of_points_y: Number of grid points along the y-direction.
Citation
If you use this library in your research or work, please cite it as follows:
APA Format:
Seresta, O. (2026). 3pc-sandbuck: Python library for buckling analysis of shear deformable sandwich plates under combined in-plane loading. PyPI. https://pypi.org/project/3pc-sandbuck/
BibTeX:
@software{3pc_sandbuck,
author = {Seresta, Omprakash},
title = {3pc-sandbuck: Python library for buckling analysis of shear deformable sandwich plates under combined in-plane loading},
year = {2026},
url = {https://pypi.org/project/3pc-sandbuck/}
}
Metadata
Release files for 3pc-sandbuck 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| 3pc_sandbuck-1.0.1.tar.gz | 28.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 3pc_sandbuck-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.6 kB
Release files / 3pc_sandbuck-1.0.1.tar.gz
| Download URL | 3pc_sandbuck-1.0.1.tar.gz |
|---|---|
| Size | 28.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a13f351b636093dd139a1295dd3a5d83a10563c613eb7c79f67dfa7addef2ba1
|
|
BLAKE2b-256 checksum How to use checksums |
aaa3ade745e3892ec393fc3abe8b1d02896a9a82e7b0c16298c82f7ec3f88966
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|
Release files / 3pc_sandbuck-1.0.1-py3-none-any.whl
| Download URL | 3pc_sandbuck-1.0.1-py3-none-any.whl |
|---|---|
| Size | 31.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e1e26e603c0758d41388b5fb96a7c36ed13f7a11889991ac1e84417a86c6e9eb
|
|
BLAKE2b-256 checksum How to use checksums |
2ccc76c2e4a1d65a0667d5c56f3abb527dcf9fc013c0c0879788090a99af0235
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.3
|