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.5.tar.gz (120.6 kB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

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

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

pycufsm-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl (304.6 kB view details)

Uploaded CPython 3.12 macOS 10.13+ x86-64

pycufsm-0.1.5-cp311-cp311-win_amd64.whl (271.7 kB view details)

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pycufsm-0.1.5-cp311-cp311-macosx_11_0_arm64.whl (291.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

pycufsm-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl (311.4 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pycufsm-0.1.5-cp310-cp310-macosx_11_0_arm64.whl (291.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: pycufsm-0.1.5.tar.gz
  • Upload date:
  • Size: 120.6 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.5.tar.gz
Algorithm Hash digest
SHA256 68b27553b4649774f2e6906e9d40ed66ceb057ae1c25fbf29c5ab5167e5cde68
MD5 633541760d32df1c79e22d99100071e8
BLAKE2b-256 f9e2aaca6ae79b832f4254543fb6f996e49acc715775e7cb094467833c6f5ea2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycufsm-0.1.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b3cc3a8b786c1a358170681c8a7cd7f742b982460c936a1de7a54c693a5a8858
MD5 71c1bf9c617933c78209bc188d1afb56
BLAKE2b-256 9eedd906dbc3fe4428674d08d27137b8f58cd21624b38719f1fc94bb189de9c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27c22475100e9d97a59b2bc9090a35b9ecf41055f47f92404afb98242f60e59f
MD5 e4d3ed3340c2f66c0b6f1cef85ea65e4
BLAKE2b-256 657238712be2cd8df9377ff5ba1694f06d71146f8bb89e0c4c30a3611453c0c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 066a5016fd940eb03b01fa8cceb8cab52f1b189ec7351f8fb31902cff5c12a88
MD5 694fa9f444178911c06148b306c8d1f2
BLAKE2b-256 e30f942105dd2058449126ce604c7ce55712713ba42cf5c1184613a259b04981

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2013a146ca06557e5613712eddc7f6cdd87c009b8843d41e1fb103eca894fb26
MD5 b22d029e4924b93d3677cc8508b53386
BLAKE2b-256 fe1954c5e6aa75b7f1d8a3d374b7f54fd30a73f138a763a1ddf242b60cbe7f1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 afbdd68ba5898eae5faa998265cb20d9db89cf0517e577b64cfaffde4fe0761b
MD5 227bbe789fa896f737761bb79461afa6
BLAKE2b-256 10f19f05145338cdaf899f2932aae49420ad6681dd88d3321dc91b8bb45b79f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ef2fb410de9308afc1f8ce50f04419f02c832bd02b3c5f9bfdef0f6d5dce0b8f
MD5 9c1ee168ee5c456f4712f2dcd1f92761
BLAKE2b-256 0af8a33f1129c1a760808408e425753b7ec8f10c25f218b7ecd5a41df1c248a2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycufsm-0.1.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 271.7 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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7d2507eecb30ac3b7a0908e02651b63cd5dc83d51894c9acc04674477dc6ff7d
MD5 eb8785fc5895a7c3e4345bd61575fb78
BLAKE2b-256 18853c900a6f6e37609c2facd48b9400a6c257fd6123a66f2eac85d0f13f4f3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5d6992868515a32162fef0b46801855e5a39a9b07b71004ea8fc8267e34b74e5
MD5 0d0a349a04b6eb665b9b8514caadc923
BLAKE2b-256 a69849216412e951f5e821d4601d11f0c4979853b3c590f1d4a773aa0f3d2680

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4be5b03f536bd5241b628f62ab418d1362250fd20559218cf1769564815b8932
MD5 622fd1b5b8d08b86b117874d00305b73
BLAKE2b-256 67c3514e4ad07e3bde5291ca43eab52e40610aafcc76c50894f6d266b4f8f59c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3ba3110c929f97e1aa61614ce34d3008d8e7cf9f5d0343b7807d02ca2afb0e57
MD5 f50df98bcd12ab3a0e4591c8fa9b78db
BLAKE2b-256 1e90e0171eb6696547a40c0aee72454abcd4025a4b744c22ad9183a17523b3f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8f6710d240ccefefa672d41cb0217072bc9ed2459e5cee8e29adfa3210d7146f
MD5 187be54bd60dddbe3188cdc1efe51a9f
BLAKE2b-256 82d0b867b9cabe6bceaad4817bd8403d701de36fdfe3959b43b050f7ba9e24cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b2ba2610a4b09108e6d6512f8bf1a0b12338cebca20bfd7728766e2806eb1332
MD5 6389fb626d77a7cede5c07e38bbb7328
BLAKE2b-256 f7c66dff68990e31c7bb86be5151ac7477065d0b1b00bc3be8f5d43ccb281517

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pycufsm-0.1.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 772a140588268250b988b328d46ced94b0ce081178b96904f9e75457c8e04a3d
MD5 a435e854bf80dcb7402ba9d53ea73b7e
BLAKE2b-256 31952f14ff548a45dce6797346a39756d0eca131228f87f5bbde224f6ebb24d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9a230f19c990d831cab36be321fe5c583f1bf7ed3fd54787b68767a3c86139cd
MD5 87637743aceefe8d8b509f1517e02dfd
BLAKE2b-256 b86c187662f3dcc12b9d7b77fec62a9512408740b1d58c8c0598e8f08f402c75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4dc48fc4c9b1853de73e9e6664fc270c9c70a8ae68b3d2872dc1f8701d549f1e
MD5 16d5f6b6876a79998866a7fb5f2566d0
BLAKE2b-256 2bb1d3353cc5402acaf28e702b3c622958cc4e0ad61063dcc72907da80fec22c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 526bc54a573ef9b47a97df4ff2ac7c143f3a5fea4b22c4577128942856ec7b72
MD5 303862732c0635b560cfaf04af7b22e9
BLAKE2b-256 6e27e931784082206ae2c449ea46c84a0d4877e1cb06c77a57be08bb51359adb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 124788ca135cc87e1bc9a9634ce4a39bc58565f01d2065d35f1eb6c2e782607c
MD5 ab759bd51c53d4307faadccf0a63f60a
BLAKE2b-256 55b39ae335c6784ea4e19a2d232fd645d93ebe57fab6a8a3db8348e340352004

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 28718954da58c804f6b1b3e9706395b5682bde14db6ece16a35865f42e90d92e
MD5 d265938b50bbfe66cb8cfb96f0e470d0
BLAKE2b-256 36ab9328c57a445e8a679b307d261982555315af4a59b47a19b0737ea22c4833

See more details on using hashes here.

Supported by

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