pyfurc Documentation#
Welcome to pyfurc’s documentation and user guide.
What is pyfurc?#
pyfurc is a python module that facilitates calculations for non-linear mechanical systems exhibiting bifurcations with the generalized path-following FORTRAN library AUTO-07p directly in python.
Energy expressions, degrees of freedom and loads are defined using sympy’s symbolic math processing functionality, and equilibrium equations are automatically derived symbolically.
pyfurc then
generates FORTRAN code for the bifurcation problem,
links it with the AUTO-07p library,
runs the executable
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.PhysicalQuantity("\\varphi", quantity_type="DOF")
P = pf.PhysicalQuantity("P", quantity_type="load")
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 see the in-depth user guide.
Quickstart#
Prerequisites:
Running Linux distribution with gfortran installed
Python 3.8.2+
pip
For installing pyfurc run
pip3 install pyfurc
Note
If you get an error during installation, make sure you are using the most recent version of pip.