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
A blender import/export system for Defold

defold-blender-export A Blender export system for the Defold game engine. Setup Notes There are no exhaustive documents for this tool yet. Its just no

David Lannan 27 Dec 30, 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
Sky attention heatmap of submissions to astrometry.net

astroheat Installation Requires Python 3.6+, Tested with Python 3.9.5 Install library dependencies pip install -r requirements.txt The program require

4 Jun 20, 2022
哔咔漫画window客户端,界面使用PySide2,已实现分类、搜索、收藏夹、下载、在线观看、waifu2x等功能。

picacomic-windows 哔咔漫画window客户端,界面使用PySide2,已实现分类、搜索、收藏夹、下载、在线观看等功能。 功能介绍 登陆分流,还原安卓端的三个分流入口 分类,搜索,排行,收藏夹使用同一的逻辑,滚轮下滑自动加载下一页,双击打开 漫画详情,章节列表和评论列表 下载功能,目

1.8k Dec 31, 2022
Here I plotted data for the average test scores across schools and class sizes across school districts.

HW_02 Here I plotted data for the average test scores across schools and class sizes across school districts. Average Test Score by Race This graph re

7 Oct 27, 2021
Using SQLite within Python to create database and analyze Starcraft 2 units data (Pandas also used)

SQLite python Starcraft 2 English This project shows the usage of SQLite with python. To create, modify and communicate with the SQLite database from

1 Dec 30, 2021
Fast data visualization and GUI tools for scientific / engineering applications

PyQtGraph A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6 Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill h

pyqtgraph 3.1k Jan 08, 2023
Visualise Ansible execution time across playbooks, tasks, and hosts.

ansible-trace Visualise where time is spent in your Ansible playbooks: what tasks, and what hosts, so you can find where to optimise and decrease play

Mark Hansen 81 Dec 15, 2022
Visualizing weather changes across the world using third party APIs and Python.

WEATHER FORECASTING ACROSS THE WORLD Overview Python scripts were created to visualize the weather for over 500 cities across the world at varying di

G Johnson 0 Jun 12, 2021
Extensible, parallel implementations of t-SNE

openTSNE openTSNE is a modular Python implementation of t-Distributed Stochasitc Neighbor Embedding (t-SNE) [1], a popular dimensionality-reduction al

Pavlin Poličar 1.1k Jan 03, 2023
DrawBot lets you draw images taken from the internet on Skribbl.io, Gartic Phone and Paint

DrawBot You don't speak french? No worries, english translation is over here. C'est quoi ? DrawBot est un logiciel codé par V2F qui va prendre possess

V2F 205 Jan 01, 2023
Plot and save the ground truth and predicted results of human 3.6 M and CMU mocap dataset.

Visualization-of-Human3.6M-Dataset Plot and save the ground truth and predicted results of human 3.6 M and CMU mocap dataset. human-motion-prediction

Gaurav Kumar Yadav 5 Nov 18, 2022
Material for dataviz course at university of Bordeaux

Material for dataviz course at university of Bordeaux

Nicolas P. Rougier 50 Jul 17, 2022
Main repository for Vispy

VisPy: interactive scientific visualization in Python Main website: http://vispy.org VisPy is a high-performance interactive 2D/3D data visualization

vispy 3k Jan 03, 2023
Easily convert matplotlib plots from Python into interactive Leaflet web maps.

mplleaflet mplleaflet is a Python library that converts a matplotlib plot into a webpage containing a pannable, zoomable Leaflet map. It can also embe

Jacob Wasserman 502 Dec 28, 2022
Smoking Simulation is an app to simulate the spreading of smokers and non-smokers, their interactions and population during certain amount of time.

Smoking Simulation is an app to simulate the spreading of smokers and non-smokers, their interactions and population during certain

Bohdan Ruban 5 Nov 08, 2022
A Python wrapper of Neighbor Retrieval Visualizer (NeRV)

PyNeRV A Python wrapper of the dimensionality reduction algorithm Neighbor Retrieval Visualizer (NeRV) Compile Set up the paths in Makefile then make.

2 Aug 29, 2021
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
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
An intuitive library to add plotting functionality to scikit-learn objects.

Welcome to Scikit-plot Single line functions for detailed visualizations The quickest and easiest way to go from analysis... ...to this. Scikit-plot i

Reiichiro Nakano 2.3k Dec 31, 2022