Observed since 20 Oct, 15:35 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Python library for stress / strain analysis of shear deformable anisotropic sandwich plates under hygrothermal and mechanical loads.
3pc-sandfail is a Python library for stress / strain analysis of shear deformable anisotropic sandwich plates under hygrothermal and mechanical loads. It provides a Sandfail class to perform ply-by-ply stress, strain, and margin of safety calculations, evaluating sandwich-specific failure modes such as intracellular buckling (dimpling), wrinkling, core shear crimping, core shear, core crush, and facesheet disbond.
Use the package manager pip to install 3pc-sandfail. Since the package and its dependencies are available on PyPI, you can install them directly:
pip install 3pc-sandfail
Sandfail ClassThe primary component of this package is the Sandfail class, which takes a panel, a load case, and core properties to compute stress, strain, and margins of safety against various failure modes.
from sandfail.sandfail import Sandfail
When initializing Sandfail, 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 load case and environmental conditions.core_properties (dict): Dictionary of core-specific configuration properties (e.g., type - "isotropic" or "orthotropic", Ec, Gc, k1, delta0, FwT).The class calculates the following properties:
NT, NC: Thermal and hygral in-plane load vectors.MT, MC: Thermal and hygral in-plane moment vectors.ek0: Reference/midplane strain and curvatures.stress, strain: Stresses and strains for the face sheets and core.msCoreShear: Margin of safety for core shear.msICBTopLaminate, msICBBottomLaminate: Margin of safety for intracellular buckling (dimpling) on the top/bottom laminates.msWrinklingTopLaminate, msWrinklingBottomLaminate: Margin of safety for wrinkling on the top/bottom laminates.Sandfail.fromDict(**kwargs)Initializes a Sandfail instance using a dictionary of keyword arguments.
Below is an example of performing a sandwich failure analysis.
from panel.panel import Panel
from loads.loads import Loads
from sandfail.sandfail import Sandfail
# Assuming pnl (Panel) and ld (Loads) are already defined
core_props = {
"type": "isotropic",
"Ec": 1000.0,
"k1": 0.5,
"Gc": 400.0
}
sf = Sandfail(
panel=pnl,
loads=ld,
core_properties=core_props
)
# Access calculations and margins of safety
print("Mid-plane strains/curvatures:", sf.ek0)
print("Core Shear Margin of Safety:", sf.msCoreShear)
The package provides a command-line interface entry point. After installing, you can run the application using:
sandfail input.cfg
(This entry point is defined in sandfail.__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, cores, laminates, panels, loads, config) to the current directory.sandfail.cfg)The sandfail command requires a configuration file (typically named sandfail.cfg). Below is an example based on sandfail/examples/sandfail.cfg:
[files]
materials = materials.json
plies = plies.json
cores = cores.json
laminates = laminates.json
panels = panels.json
loads = loads.json
output = output.txt
[analysis]
analysis_type = MECHANICAL
failure_theory = MAX STRAIN
sandwich_failure = yes
[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.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 failure analysis results will be written.[analysis] SectionThis section specifies the analysis settings:
analysis_type: Type of analysis (e.g. MECHANICAL, HYGROTHERMAL, HYGROTHERMOMECHANICAL).failure_theory: Theory used for laminate strength evaluation (e.g. MAX STRAIN, TSAI-WU, TSAI-HILL, MAX STRESS).sandwich_failure: Flag to enable/disable sandwich failure analysis (e.g., yes, no).If you use this library in your research or work, please cite it as follows:
APA Format:
Rastogi, N., & Seresta, O. (2026). 3pc-sandfail: Python library for stress / strain analysis of shear deformable anisotropic sandwich plates under hygrothermal and mechanical loads. PyPI. https://pypi.org/project/3pc-sandfail/
BibTeX:
@software{3pc_sandfail,
author = {Rastogi, Naveen and Seresta, Omprakash},
title = {3pc-sandfail: Python library for stress / strain analysis of shear deformable anisotropic sandwich plates under hygrothermal and mechanical loads},
year = {2026},
url = {https://pypi.org/project/3pc-sandfail/}
}
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.3 | 23 Aug 2026 | 9 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 15:35 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e0ff2a84116fdf2fbac55e6f39b50c2510b60f943ccf6dfd8a062f2065e191e0