Skip to main content

3pc-sandbend

3pc-sandbend is a Python library for bending analysis of shear deformable anisotropic sandwich plates under transverse loads, hygrothermal, and mechanical loads. It provides a Sandbend class to calculate reference surface displacements, rotations, strains, curvatures, and transverse shear strains across a user-specified coordinate grid.

Installation

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

pip install 3pc-sandbend

API Reference

Sandbend Class

The primary component of this package is the Sandbend class, which takes a panel, a load case, and coordinates/Fourier-expansion parameters to solve the sandwich bending governing equations.

from sandbend.sandbend import Sandbend

Required Parameters

When initializing Sandbend, 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.
  • number_of_terms (int): Number of terms in the double Fourier series expansion.
  • number_of_points_x (int): Number of points along x-direction to calculate values.
  • number_of_points_y (int): Number of points along y-direction to calculate values.

Calculated Properties

The class calculates the following properties:

  • pairs: List of pairs (i, j) for all i, j = 1, 2, ..., M, where M is the number of terms.
  • K33: Load-dependent part of the stiffness term K33 for all pairs.
  • Pmn, PFull: Load coefficient arrays.
  • u, v, w: Reference surface displacement components.
  • phix, phiy: Reference surface rotations.
  • uloc, vloc, wloc: Grid point displacements.
  • phixloc, phiyloc: Grid point rotations.
  • ex0Bloc, ey0Bloc, gxy0Bloc: Reference surface in-plane strains at grid locations.
  • kx0Bloc, ky0Bloc, kxy0Bloc: Reference curvatures at grid locations.
  • gxz0Bloc, gyz0Bloc: Transverse shear strains at grid locations.
  • ek0Bloc, gT0Bloc, NMBloc, QBloc: Reference strain, thermal strain, force/moment resultants, and shear force resultants at each grid location.
  • coeff: Calculated displacement and rotation coefficients.

Methods

Sandbend.fromDict(**kwargs)

Initializes a Sandbend instance using a dictionary of keyword arguments.


Usage Examples

Basic Initialization

Below is an example of performing a sandwich bending analysis.

from panel.panel import Panel
from loads.loads import Loads
from sandbend.sandbend import Sandbend

# Assuming pnl (Panel) and ld (Loads) are already defined
sb = Sandbend(
    panel=pnl,
    loads=ld,
    number_of_terms=13,
    number_of_points_x=5,
    number_of_points_y=5
)

# Access calculated results
print("Grid displacements (wloc):", sb.wloc)
print("Strains & curvatures (ek0Bloc):", sb.ek0Bloc)

Commands

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

sandbend input.cfg

(This entry point is defined in sandbend.__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, cores, laminates, panels, loads, config) to the current directory.

Configuration File (sandbend.cfg)

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

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

[analysis]
number_of_terms = 13
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.
  • 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 bending analysis results will be written.

[analysis] Section

This section specifies the analysis settings:

  • number_of_terms: Number of terms in the double Fourier series expansion.
  • number_of_points_x: Number of grid points along the x-direction.
  • number_of_points_y: Number of grid points along the y-direction.

Citation

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

APA Format:

Seresta, O. (2026). 3pc-sandbend: Python library for bending analysis of shear deformable anisotropic sandwich plates under transverse loads, hygrothermal, and mechanical loads. PyPI. https://pypi.org/project/3pc-sandbend/

BibTeX:

@software{3pc_sandbend,
  author = {Seresta, Omprakash},
  title = {3pc-sandbend: Python library for bending analysis of shear deformable anisotropic sandwich plates under transverse loads, hygrothermal, and mechanical loads},
  year = {2026},
  url = {https://pypi.org/project/3pc-sandbend/}
}

Metadata

Release files for 3pc-sandbend 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for 3pc-sandbend 1.0.1
File Size Uploaded
3pc_sandbend-1.0.1.tar.gz 37.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for 3pc-sandbend 1.0.1
File Interpreter ABI Platform
3pc_sandbend-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 83.4 kB

Release files / 3pc_sandbend-1.0.1.tar.gz

Download URL 3pc_sandbend-1.0.1.tar.gz
Size 37.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bb8c9b4e292d17fdf835977379ae10826f802daad36d8c830523796dffcaf085
BLAKE2b-256 checksum
How to use checksums
abe6749bc6b75772869ab09f7089d8011e50ac88440477b37cb0e3e2be3fb5f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release files / 3pc_sandbend-1.0.1-py3-none-any.whl

Download URL 3pc_sandbend-1.0.1-py3-none-any.whl
Size 45.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ab5e50e1e4779878647b949dfd2ef5063a70ab1259a5d7df965f843522bda2f
BLAKE2b-256 checksum
How to use checksums
f0420f21a81e229b62b882061369ec251a530cf6076f609b21607a57870050e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release 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