Skip to main content

Python CUFSM (Constrained and Unconstrained Finite Strip Method)

Project description

pyCUFSM

Python tests Documentation Status PyPI - Version PyPI - Downloads Latest Release Commits since latest release

Description

This package is primarily a port of CUFSM v5.01, written by Benjamin Schafer PhD et al at Johns Hopkins University, from its original MATLAB language to Python v3, using the Numpy and Scipy packages for matrix manipulation and other advanced mathematics functionality. The goal of this project is to create a derivative of CUFSM which can be used either in Jupyter Notebooks or in headless (library) applications. This project is not affiliated with Benjamin Schafer PhD or Johns Hopkins University in any way.

The original MATLAB CUFSM program may be accessed at the following address: https://www.ce.jhu.edu/cufsm/

Installation

This package is still under heavy development, but it may be installed in several different possible forms, as described below:

  1. Minimal (headless) installation: pip install pycufsm
  2. Installation with plotting capabilities: pip install pycufsm[plot]
  3. Installation with Jupyter Notebooks: pip install pycufsm[jupyter]
  4. Installation with full development dependencies: pip install pycufsm[dev]

Contributing

If you would like to contribute to the pyCUFSM project, then please do - all productive contributions are welcome! However, please make sure that you're working off of the most recent development version of the pyCUFSM code, by cloning the GitHub repository, and please review our wiki article on Contributing to the Code.

Current Status

Complete and Generally Tested

  • Unconstrained FSM (signature curve generation)
  • Constrained FSM
  • Added template_path() function to define a complete arbitrary cross-section by simple paths
  • Add automated validation testing of FSM calculations via pytest
  • Various efficiency and readability improvements:
    • Cythonise a few computation-heavy functions in analysis.py, including klocal(), kglocal(), and assemble()
    • Moved computation-heavy cFSM functions to analysis.py and cythonised them
    • Review code for places where matrices can be preallocated rather than concatenated together

Complete But Untested

  • Equation constraints
  • Spring constraints
  • General boundary conditions

Planned Further Work

  • Handle holes in cross-sections in some meaningful way
  • Various efficiency and readability improvements:
    • Make use of scipy.sparse for sparse matrices where possible
    • Convert some numerical inputs and data to dictionaries with strings
    • Eliminate matrix columns which are nothing more than the index number of the row
    • Review code for function calls that are unnecessarily repeated (a couple of these have already been addressed, e.g. base_properties() did not need to be re-run for every half wavelength)
  • Write API-style documentation (for now, generally refer to MATLAB CUFSM documentation and/or comments)

Disclaimer

While the original MATLAB CUFSM has been extensively tested, and best efforts have been made to check accuracy of this package against the original MATLAB CUFSM program, including via automated validation testing, no warrant is made as to the accuracy of this package. The developers accept no liability for any errors or inaccuracies in this package, including, but not limited to, any problems which may stem from such errors or inaccuracies in this package such as under-conservative engineering designs or structural failures.

Always check your designs and never blindly trust any engineering program, including this one.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycufsm-0.1.7.tar.gz (120.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pycufsm-0.1.7-cp312-cp312-win_amd64.whl (264.3 kB view details)

Uploaded CPython 3.12Windows x86-64

pycufsm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pycufsm-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pycufsm-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

pycufsm-0.1.7-cp312-cp312-macosx_11_0_arm64.whl (284.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pycufsm-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl (304.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

pycufsm-0.1.7-cp311-cp311-win_amd64.whl (271.8 kB view details)

Uploaded CPython 3.11Windows x86-64

pycufsm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pycufsm-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pycufsm-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pycufsm-0.1.7-cp311-cp311-macosx_11_0_arm64.whl (291.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pycufsm-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl (311.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pycufsm-0.1.7-cp310-cp310-win_amd64.whl (270.7 kB view details)

Uploaded CPython 3.10Windows x86-64

pycufsm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pycufsm-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pycufsm-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pycufsm-0.1.7-cp310-cp310-macosx_11_0_arm64.whl (291.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pycufsm-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl (311.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file pycufsm-0.1.7.tar.gz.

File metadata

  • Download URL: pycufsm-0.1.7.tar.gz
  • Upload date:
  • Size: 120.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pycufsm-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c1d3b3d273bb9cb758d233190353bafe141eb88b656b3e29ea06e02bc33334bc
MD5 b27a595b12f0c143c43c4bfc9e940ec2
BLAKE2b-256 eadb4c93d31e56faa8fbe88483ca2a23106189483889a27bb8e7ce7d5991ecfb

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pycufsm-0.1.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 264.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e4f5f7c60615edf32a5b740d8df67afa3b43049ff45b61e0ebfb7ed60e12fc7b
MD5 069e710748541ed57c38e4d692dec092
BLAKE2b-256 402d2750d3c7a784ea65d96037458117577e0d5ce8d5502254b06dcc5fbfecd7

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af3389bbb959b52c4125d78ab742e539cdd652f5300cdcdea0a172afd149975b
MD5 f4303b46bb17c45362f3c57455def36b
BLAKE2b-256 c01568ba4caddf3e836345d6f9527073a96b241dadf7060116a1086113200d0c

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2bb1bbb561ae8504dd2e14a2efeeaaed8ba99584ae3eb5b3f3c68088e5f2c8fa
MD5 edac578a5f6fc80013ac94ab0941b307
BLAKE2b-256 a4b4d83acdb09fb846d6adf5f5172a663ed68c878efb2ac6cfb95ba312f1888e

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4930c9ddb65a8dd046729ab38d8dd82120b3e2467ce9965263c1146080bb0536
MD5 d5745ce3f56acffdfb540f4874b92565
BLAKE2b-256 fb2e3f114ff3a5080ec5b664edea3fcce0d07c55591074c30b85c55ae8ce40a0

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f73946fce3505aaeca0e505846b433728d88a26e92d284a29c629295eaa2428b
MD5 96b24479b707e2eb45a9ae2655e64c2c
BLAKE2b-256 40d636ff501d9daa42b4434364bcd59d5cbf0b612dce4483a847c1a9d269b4ab

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 5293779de35515ba19892abf0cb4f643060214599ce8c5ea3361a26516a4b73e
MD5 3cda10f17aecac00f0e6402b22d4d7bc
BLAKE2b-256 fd384d5df61c8e15165ff6b4380729d9b35f2cd8056dbbfeffff51a17ec00143

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pycufsm-0.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 271.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5af0739e718766791c8770d8da01dc8a507147fa21fd5b531f166fac0d6ea4aa
MD5 c5aaa1e97e6595c8a418c02d9ee5fa60
BLAKE2b-256 5e9077a8c618b2037d3e04caf8082ef4d6f029e00d4fb7b8d8047c0675944120

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a27afdbf3e40e2703cd1fbd7b3ec7bd245e3588357eec6c2075107db2cef0b68
MD5 613a07fbb9ebe855af2812ca1ea8779d
BLAKE2b-256 6afb01cc7de28952f80c0e7d92281b5b1e9067ba6ced560e13001ec92dbbf62c

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e2239084661710b82b87982dacf2cf9913af3610b79c58d1311aa17d85dbf97
MD5 465b3a89ae848ba7725db9cf2793816e
BLAKE2b-256 b3cc801b4703ae57ba19ffc028279231fc1282b541508fdc3acb6b514a07a3bb

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb6888ca7b067f9d623717cd4a3b921ebf1b101303f5af943cc94e01f19881a7
MD5 11df014b9ca26cb170d523df07187a68
BLAKE2b-256 f2c962c26ed57edf94cc7961ced3c2c3fe7f08ad160a37bc8e3b3187f2cfb263

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eab97bae7bf00e15ee2e97d44c54079eeb82fd3d214ca355743de3a29046f2e9
MD5 414edbca3f70db389686b86a5cbd4a99
BLAKE2b-256 14eea61835e62f6c7835f6f69df51a20267b57b6eaa19b51b8c61a6eaad790a3

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 082e8f27ea3ed4566e0b9afe160f0f9c71a5df2553745d38d50e1421314f339a
MD5 23864158f3677e612079c3e69e34f0ae
BLAKE2b-256 1bf0c1816970e2a3b9a82d03b5dfd695ebc5b7ecd1fae2b8b9f99fd00e9fcb88

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pycufsm-0.1.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 270.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 06fbafcf3087e82e726aa5abc233f0e87b64a083a77960f13dde840685c50fec
MD5 0e95553942b5152ca3257bcd6bbed1ec
BLAKE2b-256 592e576c7f5a74691074230ae98a6811f9c54d4d7dd8407346d9a8df2b82592c

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8a048d94af6e9ef8c5743d522763d97b8902d7f7d51242bf74705f00751529b2
MD5 eec0330855782baa1ecd50a8d1c37073
BLAKE2b-256 d9fb439104c008c58aa305eb8df546ce8e7d55843554cdef8b9e82619177cf6a

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 93c20c460cbca6c7d3596020efe0818bcdf95fd45dd3c2490d3f0c4ecd97c69b
MD5 7183dc94509f3a4f4db71ded194e2f21
BLAKE2b-256 ee7ee743e03f68096c3d6d0b2ad28e3b43d2f293009315f502c17cb55d443064

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 954a725f2a4f0a8e6339758f76f543242585d6c35d69d6baaa083362eb71f7e9
MD5 e37f72f68457983783a55e60cf158e27
BLAKE2b-256 bd9f128a5c03c7bc25968d561356d7d339c24d47bd2d426189e7712e254240c7

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 515645b65df55135135ec81735ad3fa65db8b0c86eedc7d4baa339b51579bee8
MD5 9b980ad9cfc4b70485ea12a5226d93ca
BLAKE2b-256 bb0f6985ac1dc32f73eeea98c41f7428d01f7d142112982db252cfcb34fcec46

See more details on using hashes here.

File details

Details for the file pycufsm-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69a17b27107647b0b05bc2ec44e3bfffab2e2e9206a9ab549d15e844d4b254c3
MD5 766e87f813ec2c98fc9ac95ad65ef753
BLAKE2b-256 2d53d6bfaf3fa47de713ecb5a4cd5d77688831c6fb844bb7689c55552569aa2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page