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
 4node tetrahedral (Tet4), 6node prism (Prism6), 8node 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 zeroDirichlet boundary conditions
 Full Gauss quadrature scheme
ReducedOrder 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 timedomain dynamics using the Newmark scheme and a reducedorder model based on elastic modes
Postprocessing
 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 timedomain dynamical analyses)
Examples of solutions
Modal analysis
First linear elastic mode of a clampedclamped beam displayed in Paraview
Timedomain dynamics
Linear elastic cantilever beam with Rayleigh damping pulled up by a constant force on its free end, then released
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
ReducedOrder Modeling
 Proper Orthogonal Decomposition (POD) for nonlinear problems
Forces
 Body forces
 Surface forces
Solvers
 Frequencydomain dynamical analysis
 NewtonRaphson method for geometrically nonlinear elastostatics and elastodynamics
 Arclength method for geometrically nonlinear elastostatics and elastodynamics with strong nonlinearities (e.g. postbuckling analysis)
Postprocessing
 Plotting of FrequencyResponse Functions (FRF)
 Support for including element stress and strain components in the VTK files
Uncertainty Quantification
 Typical Maximum Entropyprobability distributions for elastic coefficients (Young’s modulus, Poisson’s ratio, anisotropic coefficients) for parametric uncertainties
 Typical Maximum Entropyprobability 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)