Skip to main content

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:

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

Uploaded Source

Built Distributions

pycufsm-0.1.4-cp312-cp312-win_amd64.whl (263.4 kB view details)

Uploaded CPython 3.12 Windows x86-64

pycufsm-0.1.4-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.4-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.4-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.4-cp312-cp312-macosx_14_0_arm64.whl (284.5 kB view details)

Uploaded CPython 3.12 macOS 14.0+ ARM64

pycufsm-0.1.4-cp312-cp312-macosx_13_0_x86_64.whl (304.3 kB view details)

Uploaded CPython 3.12 macOS 13.0+ x86-64

pycufsm-0.1.4-cp311-cp311-win_amd64.whl (271.2 kB view details)

Uploaded CPython 3.11 Windows x86-64

pycufsm-0.1.4-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.4-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.4-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.4-cp311-cp311-macosx_14_0_arm64.whl (291.4 kB view details)

Uploaded CPython 3.11 macOS 14.0+ ARM64

pycufsm-0.1.4-cp311-cp311-macosx_13_0_x86_64.whl (311.0 kB view details)

Uploaded CPython 3.11 macOS 13.0+ x86-64

pycufsm-0.1.4-cp310-cp310-win_amd64.whl (270.2 kB view details)

Uploaded CPython 3.10 Windows x86-64

pycufsm-0.1.4-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.4-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.4-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.4-cp310-cp310-macosx_14_0_arm64.whl (291.2 kB view details)

Uploaded CPython 3.10 macOS 14.0+ ARM64

pycufsm-0.1.4-cp310-cp310-macosx_13_0_x86_64.whl (310.9 kB view details)

Uploaded CPython 3.10 macOS 13.0+ x86-64

File details

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

File metadata

  • Download URL: pycufsm-0.1.4.tar.gz
  • Upload date:
  • Size: 120.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pycufsm-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ea3efc5ae50d7482172a666a0870e7158351c4bc1d9a53b1695f1f34efa6d1b0
MD5 14e5458c57d6f1013dfc8b9b0f13ffae
BLAKE2b-256 d0966e38854ae635ae43ccec3bce0a71c039a291b006c5d4e307fbdc99d49753

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pycufsm-0.1.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 263.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ca988fa78617d6727343ba28905caf22bd90c83c3abb8d0e53d1d2d3ffbc73b8
MD5 17f853c905f6fc5245ed1db7975be497
BLAKE2b-256 b49d3af5ecc566594e3f1ca19de9ad7220da43252605e3570ddf3bca264506e2

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 98217b1271b254d789cab07b896f371d50337b713fea633f1421b5d4b769c2d9
MD5 8b15035467d212ae844a37de868a9068
BLAKE2b-256 4511d03e61158693b559c5e523f5827807ccb349f12a59149467971691a39432

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7587b5e0975ac0db3736cf69bc18c448fdaa8219d932faae06326b5cfa35a5f
MD5 5d016b81cfde68f44742d0c2a4e44eb4
BLAKE2b-256 3e94f20e244e5e3767a60f97cbd5fa898a2b74f95a727c4fffc55903e225e94b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 43d5beafbf4ec33d7b264bdad3fc8f4c828e097c3b7c9c4c9ec3ee7b58642349
MD5 a5f6b7d6dd80a4b771a75b6632a984b3
BLAKE2b-256 cbe6d2de3d47c57e9c73ec293dfa74e871bd5842d09843654c0d07b1abe3dc58

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 fd728349f8ad1d87f11f6a3a132eb4df7663e11796a4b137c3e57ce37316ab8d
MD5 1ec8d0cb347dd9cbc073b6765dfc17a7
BLAKE2b-256 d4f0eef46fdd313e2a1475c0a50707fe21838ea00d139b83d4bbabe8f8275fe2

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6955080e467bb349ad93072a37bdf6d247aa4c4e30667d834aae29246084b705
MD5 83534291e613365b92971c1e0b1f9a0c
BLAKE2b-256 3815a2c5c967068e5021c237b5446fcd23fbfd25d20041f6ba3951576e1b2a25

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pycufsm-0.1.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 271.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 78d34f5b677d93b3553fbd4fc0408c56c2cf97e536094df6400bb47a80e8578b
MD5 db996324f316f42f72729c9c327a5252
BLAKE2b-256 632c31257d46f311af41cc8a6e30b7b7a992ae5358117cfac25022a3266f7fdc

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e71046c2e2e8c025b5bd0eb0a8ac9a747c8500b53a7fc5afe6c402e12999e79
MD5 b6d9658aa030a34b9bf6e3ebcf30475b
BLAKE2b-256 d6ff49241ce4753d34da3ef6454a972239c57f8d6e5b15508e02d8c0d2249831

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 26cc158199dd5ec5c80e242b9eb6c77744038a8ea5d8d3af858abe2106d86e84
MD5 1498f09ceb86939795a243d18f3cde59
BLAKE2b-256 19b4534dd5ec3f50d10a851da1e32cb8d106feb20c4803c273df1839f1709a9c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 47c3934eb52a5a6cbe1bec691241e86556c8e91ccc976037ff7e916992c5f7b2
MD5 0ff1f941b1fa7ef0522a0f0c48670b88
BLAKE2b-256 aadbd29ac00212b00cdf54094edc4a1af346367f0334de18aadb93adb858fad8

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8ff4d13e724ca6e0afa2c156f0675dbc1e1a180966c0a35d50baf4a3548f0d24
MD5 9fc267e050f8ef5f5eb86918220814b0
BLAKE2b-256 4ef898e77d5177aab7b6acafae41f9d25c3edbe2939d55f564a76c5840ed137a

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 cc0d01faeaef0aaebdb27bb336df2a0327edd25948621a97ff826e89c60c6a3b
MD5 89d32e1087379865888fe815d274ed97
BLAKE2b-256 35b29f9fdbd1c2f9f89d346fd8803113db2179150b1ff4305307e22e3c8ed9f7

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pycufsm-0.1.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 270.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 590c30354d6ff94ea72b41f402d96b2df4bbaa00f2a9b61e8aad090c09054b13
MD5 afc3a8a3b34ef67c53c100c3e93528db
BLAKE2b-256 4d830fee658ac8086caf11fe0622e317b61bab440bc32a130dd5b4c131eda888

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d5799b5792e687ad797ef4f50faa698d5318757a54642f8b86fa9877daade90a
MD5 7882f90b22f696685735577f58b955c3
BLAKE2b-256 c90fb4f8fde012e83b92a33a72120d2174830e8a9adf3cc25cd3856d1eda82ab

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81c481316b98e12b7a8055285a811c28ece27b8f7bd80fa4d5a6dea7812cf47f
MD5 ce378de34723ab6c199682f6aea45b1e
BLAKE2b-256 9618a92a120e448189243f630308cd48dcca39e0b33b0dcd7df06753d5f36a22

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a1dfa20d6444b610f0a5de8dfe0dd56bbe89001097671a23003b74fb2e98a0fd
MD5 b7a537bbb16d8c9dc30e9805b1297ed7
BLAKE2b-256 ee199ef13cc079f807f3f3c2e6d4a40e6bcb9d4db3b894b97df16d1d80a8bc72

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 10a83cc63e5b550e65c9b44502b1e416b402fd01a41bdb0dc2778056c4906581
MD5 602d00487291c3e09b7eb38df8c47948
BLAKE2b-256 5207b05c0a016b2855a0d7f466f9b6d3879f41bbc4a34c1750eda97e0fe3636d

See more details on using hashes here.

Provenance

File details

Details for the file pycufsm-0.1.4-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pycufsm-0.1.4-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 bfd67e1cf5a8d36f9de5f9fc58a3dd0f055814bb77e95c8aa46bbc7cd43b3f35
MD5 26c5595217a82b732166a2fd80eeebd6
BLAKE2b-256 74f95b7e2ad5a1be0ea31bf56369e7e0569ae8f0199a67b68ad63833cec0e11f

See more details on using hashes here.

Provenance

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