Skip to main content

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 the Panel class (from 3pc-panel) containing the face sheet laminates and sandwich core definition.
  • loads (Loads): An instance of the Loads class (from 3pc-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 all i, j = 1, 2, ..., M, where M is 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.
  • lambda1 to lambda5: First to fifth critical (positive) eigenvalues.
  • mn1 to mn5: Dominant (m, n) pairs corresponding to eigenvalues lambda1 to lambda5.
  • Nxxcr1 to Nxxcr5, Nyycr1 to Nyycr5, Nxycr1 to Nxycr5: Critical buckling load components for the first 5 modes.
  • w1 to w5: Out-of-plane displacement mode shapes for the first 5 modes.
  • w1loc to w5loc: 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 by 3pc-material.
  • plies: Path to the plies JSON file. Follows the format expected by 3pc-ply.
  • cores: Path to the cores JSON file.
  • laminates: Path to the laminates JSON file. Follows the format expected by 3pc-laminate.
  • panels: Path to the panels JSON file. Follows the format expected by 3pc-panel.
  • loads: Path to the loads JSON file. Follows the format expected by 3pc-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/}
}

Download files

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

Source Distribution

3pc_sandbuck-1.0.1.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

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

3pc_sandbuck-1.0.1-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file 3pc_sandbuck-1.0.1.tar.gz.

File metadata

  • Download URL: 3pc_sandbuck-1.0.1.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.3

File hashes

Hashes for 3pc_sandbuck-1.0.1.tar.gz
Algorithm Hash digest
SHA256 a13f351b636093dd139a1295dd3a5d83a10563c613eb7c79f67dfa7addef2ba1
MD5 cb7651fb1e42e89edc3fa63689a69c7e
BLAKE2b-256 aaa3ade745e3892ec393fc3abe8b1d02896a9a82e7b0c16298c82f7ec3f88966

See more details on using hashes here.

File details

Details for the file 3pc_sandbuck-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: 3pc_sandbuck-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 31.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.3

File hashes

Hashes for 3pc_sandbuck-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e1e26e603c0758d41388b5fb96a7c36ed13f7a11889991ac1e84417a86c6e9eb
MD5 6b00109bfda7117692be7f882c14eaf6
BLAKE2b-256 2ccc76c2e4a1d65a0667d5c56f3abb527dcf9fc013c0c0879788090a99af0235

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

Supported by

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