AppliedMechanics-EAFIT / Solidspy

Licence: mit
2D-Finite Element Analysis with Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Solidspy

PyMFEM
Python wrapper for MFEM
Stars: ✭ 91 (-35.92%)
Mutual labels:  scientific-computing, fem, finite-elements
Feelpp
💎 Feel++: Finite Element Embedded Language and Library in C++
Stars: ✭ 229 (+61.27%)
Mutual labels:  finite-elements, scientific-computing, fem
Mfem
Lightweight, general, scalable C++ library for finite element methods
Stars: ✭ 667 (+369.72%)
Mutual labels:  finite-elements, scientific-computing, fem
Ngsolve
Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily.
Stars: ✭ 171 (+20.42%)
Mutual labels:  finite-elements, fem
ameshref
Efficient Matlab Implementation of Adaptive Mesh Refinement in 2D
Stars: ✭ 28 (-80.28%)
Mutual labels:  fem, finite-elements
Moose
Multiphysics Object Oriented Simulation Environment
Stars: ✭ 652 (+359.15%)
Mutual labels:  finite-elements, fem
MinimalFem
podgorskiy.com/spblog/304/writing-a-fem-solver-in-less-the-180-lines-of-code
Stars: ✭ 23 (-83.8%)
Mutual labels:  fem, finite-elements
Libmesh
libMesh github repository
Stars: ✭ 450 (+216.9%)
Mutual labels:  finite-elements, fem
Elmerfem
Official git repository of Elmer FEM software
Stars: ✭ 523 (+268.31%)
Mutual labels:  finite-elements, fem
Nutils
The nutils project
Stars: ✭ 40 (-71.83%)
Mutual labels:  finite-elements, scientific-computing
Brieffiniteelement.net
BriefFiniteElementDotNET (BFE.NET) is a library for linear-static Finite Element Method (FEM) analysis of solids and structures in .NET
Stars: ✭ 81 (-42.96%)
Mutual labels:  finite-elements, fem
Espresso
The ESPResSo package
Stars: ✭ 130 (-8.45%)
Mutual labels:  scientific-computing
Gosl
Linear algebra, eigenvalues, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, differential equations.
Stars: ✭ 1,629 (+1047.18%)
Mutual labels:  scientific-computing
Pybinding
Scientific Python package for tight-binding calculations in solid state physics
Stars: ✭ 123 (-13.38%)
Mutual labels:  scientific-computing
Glvis
Lightweight OpenGL tool for accurate and flexible finite element visualization
Stars: ✭ 121 (-14.79%)
Mutual labels:  finite-elements
Meteoinfo
MeteoInfo: GIS and scientific computation environment for meteorological community.
Stars: ✭ 136 (-4.23%)
Mutual labels:  scientific-computing
Harold
An open-source systems and controls toolbox for Python3
Stars: ✭ 130 (-8.45%)
Mutual labels:  scientific-computing
Pynite
A 3D structural engineering finite element library for Python.
Stars: ✭ 123 (-13.38%)
Mutual labels:  finite-elements
Openmole
Workflow engine for exploration of simulation models using high throughput computing
Stars: ✭ 120 (-15.49%)
Mutual labels:  scientific-computing
Freud
Powerful, efficient particle trajectory analysis in scientific Python.
Stars: ✭ 118 (-16.9%)
Mutual labels:  scientific-computing

SolidsPy: 2D-Finite Element Analysis with Python

.. figure:: https://raw.githubusercontent.com/AppliedMechanics-EAFIT/SolidsPy/master/docs/img/wrench.png :alt: Wrench under bending.

.. image:: https://img.shields.io/pypi/v/solidspy.svg :target: https://pypi.python.org/pypi/continuum_mechanics :alt: PyPI download

.. image:: https://readthedocs.org/projects/solidspy/badge/?version=latest :target: https://solidspy.readthedocs.io/en/latest/ :alt: Documentation Status

.. image:: https://img.shields.io/pypi/dm/solidspy :target: https://pypistats.org/packages/solidspy :alt: Downloads frequency

.. image:: https://zenodo.org/badge/48294591.svg :target: 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.

Features

  • It is based on an open-source environment.

  • It is easy to use.

  • The code allows to find displacement, strain and stress solutions for arbitrary two-dimensional domains discretized into finite elements and subject 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 pipelines.

  • It was created with academic and research purposes.

  • It has been used to tech the following courses:

    • Computational Modeling.
    • Introduction to the Finite Element Methods.

Installation

The code is written in Python and it depends on numpy, and scipy and. It has been tested under Windows, Mac, Linux and Android.

To install SolidsPy open a terminal and type:

::

pip install solidspy

To specify through a GUI the folder where the input files are stored you will need to install easygui <http://easygui.readthedocs.org/en/master/>__.

To easily generate the required SolidsPy text files out of a Gmsh <http://gmsh.info/>__ model you will need meshio <https://github.com/nschloe/meshio>__.

These two can be installed with:

::

pip install easygui
pip install meshio

How to run a simple model

For further explanation check the docs <http://solidspy.readthedocs.io/en/latest/>__.

Let's suppose that we have a simple model represented by the following files (see tutorials/square example <http://solidspy.readthedocs.io/en/latest/tutorials/square_example.html>__ for further explanation).

  • nodes.txt

::

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
  • eles.txt

::

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
  • mater.txt

::

1.0  0.3
  • loads.txt

::

3  0.0  1.0
6  0.0  2.0
2  0.0  1.0

Run it in Python as follows:

.. code:: 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 <http://en.wikipedia.org/wiki/MIT_License>. The documents are licensed under Creative Commons Attribution License <http://creativecommons.org/licenses/by/4.0/>.

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

A BibTeX entry for LaTeX users is

.. code:: bibtex

@software{solidspy,
 title = {SolidsPy: 2D-Finite Element Analysis with Python},
 version = {1.0.16},
 author = {Guarín-Zapata, Nicolás and Gómez, Juan},
 year = 2020,
 keywords = {Python, Finite elements, Scientific computing, Computational mechanics},
 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},
 doi = {http://doi.org/10.5281/zenodo.4029270}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].