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
1. generates FORTRAN code for the bifurcation problem,
2. links it with the AUTO-07p library,
3. runs the executable
4. and reads the result into a
`pandas `_
DataFrame for post-processing in python.
The basic functionality looks like this:
.. image:: /_static/img/pyfurc_diagram.png
:width: 500px
:align: center
|
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
:ref:`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.
Contents
++++++++
.. toctree::
:maxdepth: 3
usage/index
develop/dev_basics
api/pyfurc
license