solidspykevinsg 0.1
A simple Finite Element program
License: MIT
Keywords: finite-elements fem scientific-computing

# SolidsPy: 2D-Finite Element Analysis with Python

![Wrench under bending](https://raw.githubusercontent.com/AppliedMechanics-EAFIT/SolidsPy/master/docs/img/wrench.png)

[![PyPI Version](https://img.shields.io/pypi/v/solidspy.svg)](https://pypi.python.org/pypi/continuum_mechanics)
[![Documentation Status](https://readthedocs.org/projects/solidspy/badge/?version=latest)](https://solidspy.readthedocs.io/en/latest/)
[![Downloads Frequency](https://img.shields.io/pypi/dm/solidspy)](https://pypistats.org/packages/solidspy)
[![Zenodo DOI](https://zenodo.org/badge/48294591.svg)](https://zenodo.org/badge/latestdoi/48294591)

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.

- Documentation: [http://solidspy.readthedocs.io](http://solidspy.readthedocs.io)
- GitHub: [https://github.com/AppliedMechanics-EAFIT/SolidsPy](https://github.com/AppliedMechanics-EAFIT/SolidsPy)
- PyPI: [https://pypi.org/project/solidspy/](https://pypi.org/project/solidspy/)
- Free and open-source software: [MIT license](http://en.wikipedia.org/wiki/MIT_License)

## Features

- It is based on an open-source environment.
- It is easy to use.
- The code allows finding displacement, strain, and stress solutions for arbitrary two-dimensional domains discretized into finite elements and subject to point loads.
- The code is organized into independent modules for pre-processing, assembly, and post-processing, allowing the user to easily modify it or add features like new elements or analysis pipelines.
- It was created with academic and research purposes.
- It has been used to teach the following courses:
  - Computational Modeling.
  - Introduction to the Finite Element Methods.

## Installation

The code is written in Python and depends on `numpy` and `scipy`. It has been tested under Windows, Mac, Linux, and Android.

To install SolidsPy, open a terminal and type:

```bash
pip install solidspy
pip install easygui
pip install meshio

0  0.00  0.00   0  -1
1  2.00  0.00   0  -1
2  2.00  2.00   0   0
3  0.00  2.00   0   0
4  1.00  0.00  -1  -1
5  2.00  1.00   0   0
6  1.00  2.00   0   0
7  0.00  1.00   0   0
8  1.00  1.00   0   0

0   1   0   0   4   8   7
1   1   0   4   1   5   8
2   1   0   7   8   6   3
3   1   0   8   5   2   6

1.0  0.3
3  0.0  1.0
6  0.0  2.0
2  0.0  1.0
```

#### Run it in Python as follows:

```python
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
```


For Mac users, it 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 the Creative Commons Attribution License.

Citation
To cite SolidsPy in publications use:

Nicolás Guarín-Zapata, Juan Gomez (2020). SolidsPy: Version 1.0.16 (Version v1.0.16). Zenodo. http://doi.org/10.5281/zenodo.4029270