Observed since 20 Oct, 15:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python library for free vibration analysis of shear deformable anisotropic laminates.
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).
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
Lamfreq ClassThe 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
When initializing Lamfreq, 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): 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.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.lambda1 to lambda5: First five natural frequencies in Hz.mn1 to mn5: Dominant (m, n) mode shapes corresponding to the first five frequencies.loc: Grid coordinates where mode shapes are computed.w1 to w5: First five right eigenvectors.Lamfreq.fromDict(**kwargs)Initializes a Lamfreq instance using a dictionary of keyword arguments.
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)
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)
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.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] SectionThis 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 vibration analysis results will be written.[analysis] SectionThis 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 (yes or no).output_M: Option to output the mass matrix (yes or no).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/}
}
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.2 | 22 Aug 2026 | 8 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 15:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:b85cfbaaf67fb69ee373040121d02e5537afe66e771feb3e2dcba29dba3def1b