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 thePanelclass (from3pc-panel) containing the laminate definition and geometry.loads(Loads): An instance of theLoadsclass (from3pc-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 aslambda1).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,Nxycr1toNxxcr5,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 by3pc-material.plies: Path to the plies JSON file. Follows the format expected by3pc-ply.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 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/}
}
Metadata
Release files for 3pc-lambuck 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 3pc_lambuck-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Release files / 3pc_lambuck-1.0.2-py3-none-any.whl
| Download URL | 3pc_lambuck-1.0.2-py3-none-any.whl |
|---|---|
| Size | 504.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
483812c6ed30d2158bf5b1ae03f55f95ecbb4bacb9cc551728887f1490cec2f2
|
|
BLAKE2b-256 checksum How to use checksums |
d2baec60052155d98ee261ca7f727484eceb5d8225c48389b79265352601c33d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Security for 3pc-lambuck 1.0.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.