Python library for free vibration analysis of shear deformable anisotropic laminates.
Project description
3pc-lamfreq
3pc-lamfreq is a Python library used for free vibration analysis of shear deformable anisotropic laminates. It provides a Lamfreq class to calculate natural frequencies 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-lamfreq. Since the package and its dependencies are available on PyPI, you can install them directly:
pip install 3pc-lamfreq
API Reference
Lamfreq Class
The primary component of this package is the Lamfreq class, which takes a panel, a load case, and configuration parameters to perform natural frequency and vibration analysis.
from lamfreq.lamfreq import Lamfreq
Required Parameters
When initializing Lamfreq, 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): The number of terms to be used in the Ritz/analytical analysis.number_of_points_x(int): The number of grid points in the x-direction where the mode shapes are reported.number_of_points_y(int): The number of grid points in the y-direction where the mode shapes are reported.
Calculated Properties
The class calculates the following properties:
NT: Thermal in-plane loads.NC: Hygral in-plane loads.pairs: List of term index pairs(i, j)for analysis.K33: The loads-dependent part of the stiffness matrix.lambdaEV: Eigenvalues of the vibration system (natural frequencies in rad/s).vr: Right eigenvectors (mode shapes).lambda_cr: Critical eigenvalue.vr_cr: Critical right eigenvector.mn_cr: Critical(m, n)pair.lambdaP: Sorted list of positive eigenvalues.lambda1tolambda5: First five natural frequencies in Hz.mn1tomn5: Dominant(m, n)mode shapes corresponding to the first five frequencies.loc: Grid coordinates where mode shapes are computed.w1tow5: First five right eigenvectors.
Methods
Lamfreq.fromDict(**kwargs)
Initializes a Lamfreq instance using a dictionary of keyword arguments.
Usage Examples
Basic Initialization
Below is an example of performing a vibration analysis on a panel.
from panel.panel import Panel
from loads.loads import Loads
from lamfreq.lamfreq import Lamfreq
# Assuming pnl (Panel) and ld (Loads) are already defined
lmf = Lamfreq(panel=pnl, loads=ld, number_of_terms=8, number_of_points_x=5, number_of_points_y=5)
# Access natural frequencies (in Hz)
print("First Natural Frequency (Hz):", lmf.lambda1)
print("Second Natural Frequency (Hz):", lmf.lambda2)
# Access dominant modes
print("First Dominant Mode (m, n):", lmf.mn1)
Commands
The package provides a command-line interface entry point. After installing, you can run the application using:
lamfreq input.cfg
(This entry point is defined in lamfreq.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, panels, loads, etc.) to the current directory.
Configuration File (input.cfg)
The lamfreq command requires a configuration file (typically named input.cfg or lamfreq.cfg). Below is an example based on lamfreq/examples/composite001/lamfreq.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
output_K = no
output_M = no
[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 vibration analysis results will be written.
[analysis] Section
This section specifies the analysis settings:
number_of_terms: The number of terms to use in the Ritz/analytical solver.number_of_points_x: Number of reporting points along the length (x-axis).number_of_points_y: Number of reporting points along the width (y-axis).output_K: Option to output the stiffness matrix (yesorno).output_M: Option to output the mass matrix (yesorno).
Citation
If you use this library in your research or work, please cite it as follows:
APA Format:
Rastogi, N., & Seresta, O. (2026). 3pc-lamfreq: Python library for free vibration analysis of shear deformable anisotropic laminates. PyPI. https://pypi.org/project/3pc-lamfreq/
BibTeX:
@software{3pc_lamfreq,
author = {Rastogi, Naveen and Seresta, Omprakash},
title = {3pc-lamfreq: Python library for free vibration analysis of shear deformable anisotropic laminates},
year = {2026},
url = {https://pypi.org/project/3pc-lamfreq/}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file 3pc_lamfreq-1.0.0.tar.gz.
File metadata
- Download URL: 3pc_lamfreq-1.0.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d331f0291f49a4f3cabbe6ce2df7e4db5511fd0d6119bca0d9720ede323d23fa
|
|
| MD5 |
dcc3651303ee922938b2a896edc79508
|
|
| BLAKE2b-256 |
13882449575880f302b3a638840d9da1cd32931ca69b9f8e140b3cc1b5d0c4ea
|
File details
Details for the file 3pc_lamfreq-1.0.0-py3-none-any.whl.
File metadata
- Download URL: 3pc_lamfreq-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f274408fd5b1f013d1934e6de4490fce49c6cbb34c1e32b70af563fa87e5b82
|
|
| MD5 |
0eaed024941b5c23a623a224469b36a7
|
|
| BLAKE2b-256 |
7976a223c8d83cd8368cdb9e75dc242a1c3ae0a4080af8decc732a908ab95c4b
|