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
Movies-chart - A CLI app gets the top 250 movies of all time from imdb.com and the top 100 movies from rottentomatoes.com

movies-chart This CLI app gets the top 250 movies of all time from imdb.com and

3 Feb 17, 2022
A streamlit component for bi-directional communication with bokeh plots.

Streamlit Bokeh Events A streamlit component for bi-directional communication with bokeh plots. Its just a workaround till streamlit team releases sup

Ashish Shukla 123 Dec 25, 2022
Splore - a simple graphical interface for scrolling through and exploring data sets of molecules

Scroll through and exPLORE molecule sets The splore framework aims to offer a si

3 Jun 18, 2022
Generate a roam research like Network Graph view from your Notion pages.

Notion Graph View Export Notion pages to a Roam Research like graph view.

Steve Sun 214 Jan 07, 2023
Customizing Visual Styles in Plotly

Customizing Visual Styles in Plotly Code for a workshop originally developed for an Unconference session during the Outlier Conference hosted by Data

Data Design Dimension 9 Aug 03, 2022
A Python toolbox for gaining geometric insights into high-dimensional data

"To deal with hyper-planes in a 14 dimensional space, visualize a 3D space and say 'fourteen' very loudly. Everyone does it." - Geoff Hinton Overview

Contextual Dynamics Laboratory 1.8k Dec 29, 2022
Homework 2: Matplotlib and Data Visualization

Homework 2: Matplotlib and Data Visualization Overview These data visualizations were created for my introductory computer science course using Python

Sophia Huang 12 Oct 20, 2022
Python scripts for plotting audiograms and related data from Interacoustics Equinox audiometer and Otoaccess software.

audiometry Python scripts for plotting audiograms and related data from Interacoustics Equinox 2.0 audiometer and Otoaccess software. Maybe similar sc

Hamilton Lab at UT Austin 2 Jun 15, 2022
Simple and lightweight Spotify Overlay written in Python.

Simple Spotify Overlay This is a simple yet powerful Spotify Overlay. About I have been looking for something like this ever since I got Spotify. I th

27 Sep 03, 2022
A small timeseries transformation API built on Flask and Pandas

#Mcflyin ###A timeseries transformation API built on Pandas and Flask This is a small demo of an API to do timeseries transformations built on Flask a

Rob Story 84 Mar 25, 2022
This GitHub Repository contains Data Analysis projects that I have completed so far! While most of th project are focused on Data Analysis, some of them are also put here to show off other skills that I have learned.

Welcome to my Data Analysis projects page! This GitHub Repository contains Data Analysis projects that I have completed so far! While most of th proje

Kyle Dini 1 Jan 31, 2022
Generate "Jupiter" plots for circular genomes

jupiter Generate "Jupiter" plots for circular genomes Description Python scripts to generate plots from ViennaRNA output. Written in "pidgin" python w

Robert Edgar 2 Nov 29, 2021
Python scripts to manage Chia plots and drive space, providing full reports. Also monitors the number of chia coins you have.

Chia Plot, Drive Manager & Coin Monitor (V0.5 - April 20th, 2021) Multi Server Chia Plot and Drive Management Solution Be sure to ⭐ my repo so you can

338 Nov 25, 2022
A simple python tool for explore your object detection dataset

A simple tool for explore your object detection dataset. The goal of this library is to provide simple and intuitive visualizations from your dataset and automatically find the best parameters for ge

GRADIANT - Centro Tecnolóxico de Telecomunicacións de Galicia 142 Dec 25, 2022
Domain Connectivity Analysis Tools to analyze aggregate connectivity patterns across a set of domains during security investigations

DomainCAT (Domain Connectivity Analysis Tool) Domain Connectivity Analysis Tool is used to analyze aggregate connectivity patterns across a set of dom

DomainTools 34 Dec 09, 2022
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
China and India Population and GDP Visualization

China and India Population and GDP Visualization Historical Population Comparison between India and China This graph shows the population data of Indi

Nicolas De Mello 10 Oct 27, 2021
Dipto Chakrabarty 7 Sep 06, 2022
A site that displays up to date COVID-19 stats, powered by fastpages.

https://covid19dashboards.com This project was built with fastpages Background This project showcases how you can use fastpages to create a static das

GitHub 1.6k Jan 07, 2023
Matplotlib colormaps from the yt project !

cmyt Matplotlib colormaps from the yt project ! Colormaps overview The following colormaps, as well as their respective reversed (*_r) versions are av

The yt project 5 Sep 16, 2022