Python code for solving 3D structural problems using the finite element method

Overview

3DFEM

Python 3D finite element code

This python code allows for solving 3D structural problems using the finite element method. New features will be added over time.

This code has NOT been validated on reference cases yet.

Requirements and dependencies

  • Python 3

  • numpy, scipy

  • Paraview is suggested for visualizing exported VTK files, especially since animations are generated as a series of VTK files as handled by this software.

Current features:

Meshes

  • Tetrahedral mesh generation from a set of points using scipy.spatial.Delaunay
  • 4-node tetrahedral (Tet4), 6-node prism (Prism6), 8-node brick (Brick8) elements support
  • Support for meshes containing different types of elements, possibly of different orders

Materials

  • Linear isotropic elastic materials

Structural matrices

  • Consistent mass matrix
  • Linear elastic stiffness matrix
  • Rayleigh damping matrix (linear combination of mass and stiffness matrices)
  • Support only for zero-Dirichlet boundary conditions
  • Full Gauss quadrature scheme

Reduced-Order Modeling

  • Projection on linear elastic modes

Forces

  • Nodal forces
  • Support for modulation of the initial force vector by a given function over time steps or frequency steps in dynamical analyses

Solvers

  • Modal analysis
  • Linear static analysis
  • Linear time-domain dynamics using the Newmark scheme and a reduced-order model based on elastic modes

Post-processing

  • Export of a deformed mesh to VTK format (PolyData legacy format)
  • Export of a series of deformed meshes to VTK format for animations (for visualizing elastic modes, or deformations in time-domain dynamical analyses)

Examples of solutions

Modal analysis

Beam Mode

First linear elastic mode of a clamped-clamped beam displayed in Paraview

Time-domain dynamics

Beam Time Dynamics

Linear elastic cantilever beam with Rayleigh damping pulled up by a constant force on its free end, then released

Plate Time Dynamics

Linear elastic plate with Rayleigh damping excited by a nodal force, on the center of the upper face, varying with a bell curve envelope


Intended future features:

Meshes

  • Support for Tet10, Prism18, Brick27 elements

Materials

  • All anisotropy classes for elastic materials
  • Linear viscoelastic materials using the Generalized Maxwell Model

Structural matrices

  • Arbitrary Dirichlet boundary conditions

Reduced-Order Modeling

  • Proper Orthogonal Decomposition (POD) for nonlinear problems

Forces

  • Body forces
  • Surface forces

Solvers

  • Frequency-domain dynamical analysis
  • Newton-Raphson method for geometrically nonlinear elastostatics and elastodynamics
  • Arc-length method for geometrically nonlinear elastostatics and elastodynamics with strong nonlinearities (e.g. post-buckling analysis)

Post-processing

  • Plotting of Frequency-Response Functions (FRF)
  • Support for including element stress and strain components in the VTK files

Uncertainty Quantification

  • Typical Maximum Entropy-probability distributions for elastic coefficients (Young's modulus, Poisson's ratio, anisotropic coefficients) for parametric uncertainties
  • Typical Maximum Entropy-probability distributions for mass, linear elastic stiffness, Rayleigh damping and linear viscoelastic damping matrices for nonparametric uncertainties
  • Monte Carlo method for uncertainty propagation with plotting of confidence intervals
  • Gaussian Kernel Density Estimation (GKDE) for the estimation of probability density functions of observable quantities
  • Causal nonparametric probabilistic models (linear viscoelasticity)
Owner
Rémi Capillon
Phd in Computational Mechanics
Rémi Capillon
Glue is a python project to link visualizations of scientific datasets across many files.

Glue Glue is a python project to link visualizations of scientific datasets across many files. Click on the image for a quick demo: Features Interacti

675 Dec 09, 2022
Collection of data visualizing projects through Tableau, Data Wrapper, and Power BI

Data-Visualization-Projects Collection of data visualizing projects through Tableau, Data Wrapper, and Power BI Indigenous-Brands-Social-Movements Pyt

Jinwoo(Roy) Yoon 1 Feb 05, 2022
Plot, scatter plots and histograms in the terminal using braille dots

Plot, scatter plots and histograms in the terminal using braille dots, with (almost) no dependancies. Plot with color or make complex figures - similar to a very small sibling to matplotlib. Or use t

Tammo Ippen 207 Dec 30, 2022
script to generate HeN ipfs app exports of GLSL shaders

HeNerator A simple script to generate HeN ipfs app exports from any frag shader created with: GlslViewer GlslEditor The Book of Shaders glslCanvas VS

Patricio Gonzalez Vivo 22 Dec 21, 2022
Function Plotter: a simple application with GUI to plot mathematical functions

Function-Plotter Function Plotter is a simple application with GUI to plot mathe

Mohamed Nabawe 4 Jan 03, 2022
Editor and Presenter for Manim Generated Content.

Editor and Presenter for Manim Generated Content. Take a look at the Working Example. More information can be found on the documentation. These Browse

Manim Community 149 Dec 29, 2022
2D maze path solver visualizer implemented with python

2D maze path solver visualizer implemented with python

SS 14 Dec 21, 2022
PyFlow is a general purpose visual scripting framework for python

PyFlow is a general purpose visual scripting framework for python. State Base structure of program implemented, such things as packages disco

1.8k Jan 07, 2023
A GUI for Pandas DataFrames

PandasGUI A GUI for analyzing Pandas DataFrames. Demo Installation Install latest release from PyPi: pip install pandasgui Install directly from Githu

Adam 2.8k Jan 03, 2023
`charts.css.py` brings `charts.css` to Python. Online documentation and samples is available at the link below.

charts.css.py charts.css.py provides a python API to convert your 2-dimension data lists into html snippet, which will be rendered into charts by CSS,

Ray Luo 3 Sep 23, 2021
Create HTML profiling reports from pandas DataFrame objects

Pandas Profiling Documentation | Slack | Stack Overflow Generates profile reports from a pandas DataFrame. The pandas df.describe() function is great

10k Jan 01, 2023
Parallel t-SNE implementation with Python and Torch wrappers.

Multicore t-SNE This is a multicore modification of Barnes-Hut t-SNE by L. Van der Maaten with python and Torch CFFI-based wrappers. This code also wo

Dmitry Ulyanov 1.7k Jan 09, 2023
Lime: Explaining the predictions of any machine learning classifier

lime This project is about explaining what machine learning classifiers (or models) are doing. At the moment, we support explaining individual predict

Marco Tulio Correia Ribeiro 10.3k Dec 29, 2022
NumPy and Pandas interface to Big Data

Blaze translates a subset of modified NumPy and Pandas-like syntax to databases and other computing systems. Blaze allows Python users a familiar inte

Blaze 3.1k Jan 01, 2023
LinkedIn connections analyzer

LinkedIn Connections Analyzer 🔗 https://linkedin-analzyer.herokuapp.com Hey hey 👋 , welcome to my LinkedIn connections analyzer. I recently found ou

Okkar Min 5 Sep 13, 2022
An automatic prover for tautologies in Metamath

completeness An automatic prover for tautologies in Metamath This program implements the constructive proof of the Completeness Theorem for propositio

Scott Fenton 2 Dec 15, 2021
Extract and visualize information from Gurobi log files

GRBlogtools Extract information from Gurobi log files and generate pandas DataFrames or Excel worksheets for further processing. Also includes a wrapp

Gurobi Optimization 56 Nov 17, 2022
A TileDB backend for xarray.

TileDB-xarray This library provides a backend engine to xarray using the TileDB Storage Engine. Example usage: import xarray as xr dataset = xr.open_d

TileDB, Inc. 14 Jun 02, 2021
The open-source tool for building high-quality datasets and computer vision models

The open-source tool for building high-quality datasets and computer vision models. Website • Docs • Try it Now • Tutorials • Examples • Blog • Commun

Voxel51 2.4k Jan 07, 2023
Pyan3 - Offline call graph generator for Python 3

Pyan takes one or more Python source files, performs a (rather superficial) static analysis, and constructs a directed graph of the objects in the combined source, and how they define or use each oth

Juha Jeronen 235 Jan 02, 2023