Python CUFSM (Constrained and Unconstrained Finite Strip Method)
Project description
pyCUFSM
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:
- Minimal (headless) installation:
pip install pycufsm
- Installation with plotting capabilities:
pip install pycufsm[plot]
- Installation with Jupyter Notebooks:
pip install pycufsm[jupyter]
- 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
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68b27553b4649774f2e6906e9d40ed66ceb057ae1c25fbf29c5ab5167e5cde68 |
|
MD5 | 633541760d32df1c79e22d99100071e8 |
|
BLAKE2b-256 | f9e2aaca6ae79b832f4254543fb6f996e49acc715775e7cb094467833c6f5ea2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3cc3a8b786c1a358170681c8a7cd7f742b982460c936a1de7a54c693a5a8858 |
|
MD5 | 71c1bf9c617933c78209bc188d1afb56 |
|
BLAKE2b-256 | 9eedd906dbc3fe4428674d08d27137b8f58cd21624b38719f1fc94bb189de9c2 |
File details
Details for the file pycufsm-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27c22475100e9d97a59b2bc9090a35b9ecf41055f47f92404afb98242f60e59f |
|
MD5 | e4d3ed3340c2f66c0b6f1cef85ea65e4 |
|
BLAKE2b-256 | 657238712be2cd8df9377ff5ba1694f06d71146f8bb89e0c4c30a3611453c0c6 |
File details
Details for the file pycufsm-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 066a5016fd940eb03b01fa8cceb8cab52f1b189ec7351f8fb31902cff5c12a88 |
|
MD5 | 694fa9f444178911c06148b306c8d1f2 |
|
BLAKE2b-256 | e30f942105dd2058449126ce604c7ce55712713ba42cf5c1184613a259b04981 |
File details
Details for the file pycufsm-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2013a146ca06557e5613712eddc7f6cdd87c009b8843d41e1fb103eca894fb26 |
|
MD5 | b22d029e4924b93d3677cc8508b53386 |
|
BLAKE2b-256 | fe1954c5e6aa75b7f1d8a3d374b7f54fd30a73f138a763a1ddf242b60cbe7f1a |
File details
Details for the file pycufsm-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 284.8 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | afbdd68ba5898eae5faa998265cb20d9db89cf0517e577b64cfaffde4fe0761b |
|
MD5 | 227bbe789fa896f737761bb79461afa6 |
|
BLAKE2b-256 | 10f19f05145338cdaf899f2932aae49420ad6681dd88d3321dc91b8bb45b79f0 |
File details
Details for the file pycufsm-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 304.6 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef2fb410de9308afc1f8ce50f04419f02c832bd02b3c5f9bfdef0f6d5dce0b8f |
|
MD5 | 9c1ee168ee5c456f4712f2dcd1f92761 |
|
BLAKE2b-256 | 0af8a33f1129c1a760808408e425753b7ec8f10c25f218b7ecd5a41df1c248a2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d2507eecb30ac3b7a0908e02651b63cd5dc83d51894c9acc04674477dc6ff7d |
|
MD5 | eb8785fc5895a7c3e4345bd61575fb78 |
|
BLAKE2b-256 | 18853c900a6f6e37609c2facd48b9400a6c257fd6123a66f2eac85d0f13f4f3f |
File details
Details for the file pycufsm-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d6992868515a32162fef0b46801855e5a39a9b07b71004ea8fc8267e34b74e5 |
|
MD5 | 0d0a349a04b6eb665b9b8514caadc923 |
|
BLAKE2b-256 | a69849216412e951f5e821d4601d11f0c4979853b3c590f1d4a773aa0f3d2680 |
File details
Details for the file pycufsm-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4be5b03f536bd5241b628f62ab418d1362250fd20559218cf1769564815b8932 |
|
MD5 | 622fd1b5b8d08b86b117874d00305b73 |
|
BLAKE2b-256 | 67c3514e4ad07e3bde5291ca43eab52e40610aafcc76c50894f6d266b4f8f59c |
File details
Details for the file pycufsm-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ba3110c929f97e1aa61614ce34d3008d8e7cf9f5d0343b7807d02ca2afb0e57 |
|
MD5 | f50df98bcd12ab3a0e4591c8fa9b78db |
|
BLAKE2b-256 | 1e90e0171eb6696547a40c0aee72454abcd4025a4b744c22ad9183a17523b3f7 |
File details
Details for the file pycufsm-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 291.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f6710d240ccefefa672d41cb0217072bc9ed2459e5cee8e29adfa3210d7146f |
|
MD5 | 187be54bd60dddbe3188cdc1efe51a9f |
|
BLAKE2b-256 | 82d0b867b9cabe6bceaad4817bd8403d701de36fdfe3959b43b050f7ba9e24cf |
File details
Details for the file pycufsm-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 311.4 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2ba2610a4b09108e6d6512f8bf1a0b12338cebca20bfd7728766e2806eb1332 |
|
MD5 | 6389fb626d77a7cede5c07e38bbb7328 |
|
BLAKE2b-256 | f7c66dff68990e31c7bb86be5151ac7477065d0b1b00bc3be8f5d43ccb281517 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 772a140588268250b988b328d46ced94b0ce081178b96904f9e75457c8e04a3d |
|
MD5 | a435e854bf80dcb7402ba9d53ea73b7e |
|
BLAKE2b-256 | 31952f14ff548a45dce6797346a39756d0eca131228f87f5bbde224f6ebb24d6 |
File details
Details for the file pycufsm-0.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a230f19c990d831cab36be321fe5c583f1bf7ed3fd54787b68767a3c86139cd |
|
MD5 | 87637743aceefe8d8b509f1517e02dfd |
|
BLAKE2b-256 | b86c187662f3dcc12b9d7b77fec62a9512408740b1d58c8c0598e8f08f402c75 |
File details
Details for the file pycufsm-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dc48fc4c9b1853de73e9e6664fc270c9c70a8ae68b3d2872dc1f8701d549f1e |
|
MD5 | 16d5f6b6876a79998866a7fb5f2566d0 |
|
BLAKE2b-256 | 2bb1d3353cc5402acaf28e702b3c622958cc4e0ad61063dcc72907da80fec22c |
File details
Details for the file pycufsm-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 526bc54a573ef9b47a97df4ff2ac7c143f3a5fea4b22c4577128942856ec7b72 |
|
MD5 | 303862732c0635b560cfaf04af7b22e9 |
|
BLAKE2b-256 | 6e27e931784082206ae2c449ea46c84a0d4877e1cb06c77a57be08bb51359adb |
File details
Details for the file pycufsm-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 291.6 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 124788ca135cc87e1bc9a9634ce4a39bc58565f01d2065d35f1eb6c2e782607c |
|
MD5 | ab759bd51c53d4307faadccf0a63f60a |
|
BLAKE2b-256 | 55b39ae335c6784ea4e19a2d232fd645d93ebe57fab6a8a3db8348e340352004 |
File details
Details for the file pycufsm-0.1.5-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: pycufsm-0.1.5-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 311.3 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28718954da58c804f6b1b3e9706395b5682bde14db6ece16a35865f42e90d92e |
|
MD5 | d265938b50bbfe66cb8cfb96f0e470d0 |
|
BLAKE2b-256 | 36ab9328c57a445e8a679b307d261982555315af4a59b47a19b0737ea22c4833 |