Mechpy Tutorials

a mechanical engineering toolbox

source code - https://github.com/nagordon/mechpy
documentation - https://nagordon.github.io/mechpy/web/


Neal Gordon
2017-02-20


Finite Element Method


This a collection of notes, examples and boilerplate code to understand fem.

Finite Element Method


Python Initilaization with module imports

In [1]:
# setup 
import numpy as np
import sympy as sp
import scipy
from pprint import pprint
sp.init_printing(use_latex='mathjax')

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (12, 8)  # (width, height)
plt.rcParams['font.size'] = 14
plt.rcParams['legend.fontsize'] = 16
from matplotlib import patches

get_ipython().magic('matplotlib')  # seperate window
get_ipython().magic('matplotlib inline') # inline plotting
Using matplotlib backend: Qt4Agg
In [2]:
import os ; os.chdir('..')  # change to root from the examples folder
from mechpy.fem import cst_fem

Finite-Element-Method

index

The element connectivty is used to assemble the global stiffness matrix, the nodal force matrix, and the displacement matrix

The minimization of the potentail energy is used to solve the global equation once the boundary conditions are applied to prevent rigid body motion

$ \{F\} = [K]\{U\} $

where

$ \{F\}=nodal\ force\ matrix $
$ [K] = global\ stiffness\ matrix $
$ \{U\} = nodal\ displacement\ matrix $

Once the displacements, U are computed, the strain, $\bar{\varepsilon}$ is calcualted

with $\{\varepsilon\}=[B]\{U\}$

where

$[B]=strain-displacement\ matrix$

and stresses, $\bar{\sigma}$ are determined via Hookes Law and

$\{\sigma\}=[C]\{\varepsilon\}$

where

$[C] = compliance\ matrix$

FEM-Example-1

In [3]:
cst_fem(structure='9node')
plane stress condition
<matplotlib.figure.Figure at 0x7f67a346ca58>