Skip to main content

3pc-lambuck

3pc-lambuck is a Python library for buckling analysis of shear deformable anisotropic laminates and sandwich plates. It provides a Lambuck class to solve the generalized eigenvalue problem to calculate critical buckling loads and mode shapes based on first-order shear deformation theory (FSDT) and classical laminate theory (CLT).

Installation

Use the package manager pip to install 3pc-lambuck. Since the package and its dependencies are available on PyPI, you can install them directly:

pip install 3pc-lambuck

API Reference

Lambuck Class

The primary component of this package is the Lambuck class, which takes a panel and a load case to compute buckling metrics.

from lambuck.lambuck import Lambuck

Required Parameters

When initializing Lambuck, the following parameters are required:

  • panel (Panel): An instance of the Panel class (from 3pc-panel) containing the laminate definition and geometry.
  • loads (Loads): An instance of the Loads class (from 3pc-loads) containing the load case and environmental conditions.
  • number_of_terms (int): Number of terms to include in the Ritz/Fourier series expansion.
  • number_of_points_x (int): Number of evaluation points along the x-axis.
  • number_of_points_y (int): Number of evaluation points along the y-axis.

Calculated Properties

The class calculates the following properties:

  • NT, NC: Thermal and hygral in-plane load vectors.
  • pairs: List of $(m, n)$ pairs for Ritz terms.
  • K33: Part of stiffness matrix dependent on tensile loads.
  • F33: Matrix representing load-dependent contribution.
  • lambdaEV: Eigenvalues of the generalized eigenvalue problem $K = \lambda F_{33}$.
  • vr: Right eigenvectors.
  • lambda_cr: Critical eigenvalue (same as lambda1).
  • vr_cr: Critical right eigenvector.
  • mn_cr: Critical $(m, n)$ pair.
  • lambdaP: Sorted list of positive eigenvalues.
  • lambda1, lambda2, lambda3, lambda4, lambda5: The first five critical (lowest positive) eigenvalues.
  • mn1, mn2, mn3, mn4, mn5: Dominant $(m, n)$ pairs for the first five eigenvalues.
  • Nxxcr1, Nyycr1, Nxycr1 to Nxxcr5, Nyycr5, Nxycr5: Critical buckling loads (for modes 1 to 5).

Methods

Lambuck.fromDict(**kwargs)

Initializes a Lambuck instance using a dictionary of keyword arguments.


Usage Examples

Basic Initialization

Below is an example of performing a buckling analysis on a panel under a specific load case.

from panel.panel import Panel
from loads.loads import Loads
from lambuck.lambuck import Lambuck

# Assuming pnl (Panel) and ld (Loads) are already defined
s001 = Lambuck(
    panel=pnl,
    loads=ld,
    number_of_terms=8,
    number_of_points_x=5,
    number_of_points_y=5
)

# Access critical buckling load and eigenvalue
print("Critical Eigenvalue:", s001.lambda_cr)
print("First critical eigenvalues (modes 1-5):", s001.lambda1, s001.lambda2, s001.lambda3, s001.lambda4, s001.lambda5)

Commands

The package provides a command-line interface entry point. After installing, you can run the application using:

lambuck input.cfg

(This entry point is defined in lambuck.__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, laminates, etc.) to the current directory.

Configuration File (lambuck.cfg)

The lambuck command requires a configuration file (typically named lambuck.cfg). Below is an example based on lambuck/examples/composite006/lambuck.cfg:

[files]
materials = materials.json
plies = plies.json
laminates = laminates.json
panels = panels.json
loads = loads.json
output = output.txt

[analysis]
number_of_terms = 8
number_of_points_x = 5
number_of_points_y = 5

[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.
  • 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 buckling analysis results will be written.

[analysis] Section

This section specifies the analysis settings:

  • number_of_terms: Number of terms to include in the Ritz/Fourier series.
  • number_of_points_x: Number of evaluation points along the x-axis.
  • number_of_points_y: Number of evaluation points along the y-axis.

Citation

If you use this library in your research or work, please cite it as follows:

APA Format:

Rastogi, N., & Seresta, O. (2026). 3pc-lambuck: Python library for buckling analysis of shear deformable anisotropic laminates and sandwich plates. PyPI. https://pypi.org/project/3pc-lambuck/

BibTeX:

@software{3pc_lambuck,
  author = {Rastogi, Naveen and Seresta, Omprakash},
  title = {3pc-lambuck: Python library for buckling analysis of shear deformable anisotropic laminates and sandwich plates},
  year = {2026},
  url = {https://pypi.org/project/3pc-lambuck/}
}

Download files

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

Source Distribution

3pc_lambuck-1.0.1.tar.gz (446.5 kB view details)

Uploaded Source

Built Distribution

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

3pc_lambuck-1.0.1-py3-none-any.whl (503.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for 3pc_lambuck-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e22b92faefa96af72a9072e2199554c6551cb0d8e8b702e7e15f784a7bbec057
MD5 29b78cdf359a4f3aa32fccbd579791c5
BLAKE2b-256 0e97214dca155d5c27bf007b0365461b213dbe5b0535ff992a3cd8e69aba9ebb

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for 3pc_lambuck-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3110f6a111f62f04f063ca91b207a9e5f9ca738e59d7026ddc6653b738e4f467
MD5 1810c937cf4afb70f7e407ccaa6bc729
BLAKE2b-256 50f6070f494bc662e34c03d62bda3b859573fddea10231b347880c75720da97e

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.2

1 file

This release

1.0.1 This release

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page