A simple Finite Element program
Project description
A simple finite element analysis code for 2D elasticity problems. The code uses as input simple-to-create text files defining a model in terms of nodal, element, material and load data.
It has been created for academic purposes and it is part of the teaching material developed for the courses IC0602 Introduction to the Finite Element Methods and IC0285 Computational Modeling at Universidad EAFIT.
Features
The code allows the user to find the displacement, strain and stress solution for an arbitrary two-dimensional domain discretized into finite elements and subjected to point loads.
The code is organized in independent modules for pre-processing, assembly and post-processing allowing the user to easily modify it or add features like new elements or analyses.
Installation
The code is written in Python and it depends on numpy, scipy and sympy.
To install SolidsPy open a terminal and type:
pip install solidspy
To run the examples with specification of the folder stoing the input files through a GUI you will need to install easygui.
To easily generate the required SolidsPy text files out of a Gmsh model you will need meshio.
These two can be installed with:
pip install easygui pip install meshio
How to run a simple model
After installation, you can run an analysis in 3 easy steps (see template): - Create the model (i.e., geometry and mesh) using Gmsh. Several meshes are available in the repo SOLIDSPy-meshes - Generate the text files (eles.txt, nodes.txt, mater.txt and loads.txt) required by SolidsPy using a python script based on meshio. - Run it in Python as follows:
import matplotlib.pyplot as plt # load matplotlib
from solidspy import solids_GUI # import our package
disp = solids_GUI() # run the Finite Element Analysis
plt.show() # plot contours
This would not work properly in Anaconda for Mac OS. In that case is suggested to use an IPython console to run the example.
License
This project is licensed under the MIT license. The documents are licensed under Creative Commons Attribution License.
Citation
To cite SolidsPy in publications use
Juan Gómez, Nicolás Guarín-Zapata (2018). SolidsPy: 2D-Finite Element Analysis with Python, <https://github.com/AppliedMechanics-EAFIT/SolidsPy>.
A BibTeX entry for LaTeX users is
@software{solidspy,
title = {SolidsPy: 2D-Finite Element Analysis with Python},
author = {Gómez, Juan and Guarín-Zapata, Nicolás},
year = 2017,
keywords = {Python, Computer algebra system, Symbolics},
abstract = {SolidsPy is a simple finite element analysis code for
2D elasticity problems. The code uses as input simple-to-create text
files defining a model in terms of nodal, element, material and
load data.},
url = {https://github.com/AppliedMechanics-EAFIT/SolidsPy}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for solidspy-1.0.12-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e34481f9f66873fd7b72c90179726d1a9bcfe279aa651e56f1163904380fbc5c |
|
MD5 | 3b4de2f3bf86cebe2539c786a0ebaf7e |
|
BLAKE2b-256 | 3b8bfa15dc8bc65a4e6461fd07bf8e9806a1db9d84c3f5575debd05cb5559deb |