What is pyfurc?
pyfurc is a python module that facilitates calculations for non-linear mechanical systems exhibiting bifurcations with the generalized path-following FORTRAN program AUTO-07p directly in python.
Energy expressions, degrees of freedom and loads are defined using sympy symbolic math processing functionality, and equilibrium equations are automatically derived symbolically.
pyfurc then generates FORTRAN code for the bifurcation problem, calls the AUTO-07p routines and reads the result into a pandas DataFrame for post-processing in python.
The basic functionality looks like this:
Solving a bifurcation problem can be this simple:
import pyfurc as pf
import sympy as sp
import matplotlib.pyplot as plt
phi = pf.Dof("\\varphi")
P = pf.Load("P")
cT = 10/3.1415
ell = 0.5
V = pf.Energy(1/2*cT*phi**2-P*ell*(1-sp.cos(phi)))
bf = pf.BifurcationProblem(V, name="hinged_cantilever")
bf.set_parameter("RL1", 12.73) #set maximum load
solver = pf.BifurcationProblemSolver(bf)
solver.solve() # solve problem
for dat in bf.solution.raw_data:
plt.plot(dat["U(1)"], dat["PAR(1)"])
To get started, check out the Quickstart section below or take a look at the in-depth installation guides in the Documentation.
Part of the documentation is an in-depth tutorial where a simple example problem is solved in different ways.
Quickstart
Prerequisites:
- Running Linux distribution (only tested on Ubuntu so far)
- Python 3.8.2+
- pip
For installing pyfurc run
pip3 install pyfurc
Documentation and Tutorial
The Documentation is hosted on readthedocs.
Metadata
Release files for pyfurc 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyfurc-0.2.4.tar.gz | 4.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyfurc-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.8 | CPython 3.8 | Linux glibc 2.17+ x86-64 | Details |
Total release size: 5.6 MB
Release files / pyfurc-0.2.4.tar.gz
| Download URL | pyfurc-0.2.4.tar.gz |
|---|---|
| Size | 4.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
613f78a251df4b842348f70381188d0872a84fa58b99f2bb6b24008392334af1
|
|
BLAKE2b-256 checksum How to use checksums |
5f4994e1df021bfcb6558a9d8816e39694d026f018d075a75941636ad88b8687
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|
Release files / pyfurc-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pyfurc-0.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
1db8ee49ce4b4dd9d0cacaadbdc2ed5ed2dcf16f3db07be24636a3d770af73db
|
|
BLAKE2b-256 checksum How to use checksums |
58c515d7c26f45fae69034f247d7b6de23715ba45ad3b4a75eba847c7e30cae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.11.1
|