2D structural analysis in Python
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
anastruct fix tests Nov 21, 2018
conda documentation Sep 4, 2017
doc implemented discretize as method Nov 6, 2018
images readme Aug 7, 2016
.gitignore documentation Sep 4, 2017
.travis.yml travis has no python 3.7? Nov 6, 2018
LICENSE.txt changed name and license Aug 27, 2017
MANIFEST.in
README.md update readme Oct 30, 2018
requirements.txt
requirements_docs.txt docs requirements file Oct 30, 2018
setup.py

README.md

anaStruct 2D Frames and Trusses

Build Status Documentation Status

Analyse 2D Frames and trusses for slender structures. Determine the bending moments, shear forces, axial forces and displacements.

Installation

For the actively developed version:

$ pip install git+https://github.com/ritchie46/anaStruct.git

Or for a release:

$ pip install anastruct

Documentation

Real world use case!

Non linear water accumulation analysis

Simple examples.

code examples!

Reference guide

reference

2D FEM Frames and Trusses

Development version

  • trusses ✔️
  • beams ✔️
  • moment lines ✔️
  • axial force lines ✔️
  • shear force lines ✔️
  • displacement lines ✔️
  • hinged supports ✔️
  • fixed supports ✔️
  • spring supports ✔️
  • q-load in elements direction ✔️
  • point loads in global x, y directions on nodes ✔️
  • dead load ✔️
  • q-loads in global y direction ✔️
  • hinged elements ✔️
  • rotational springs ✔️
  • non-linear nodes ✔️
  • geometrical non linearity ✔️
from anastruct.fem.system import SystemElements

ss = SystemElements(EA=15000, EI=5000)

# Add beams to the system.
ss.add_element(location=[[0, 0], [0, 5]])
ss.add_element(location=[[0, 5], [5, 5]])
ss.add_element(location=[[5, 5], [5, 0]])

# Add a fixed support at node 1.
ss.add_support_fixed(node_id=1)

# Add a rotational spring support at node 4.
ss.add_support_spring(node_id=4, translation=3, k=4000)

# Add loads.
ss.point_load(Fx=30, node_id=2)
ss.q_load(q=-10, element_id=2)

# Solve
ss.solve()

# Get visual results.
ss.show_structure()
ss.show_reaction_force()
ss.show_axial_force()
ss.show_shear_force()
ss.show_bending_moment()
ss.show_displacement()