Git Product home page Git Product logo

nonlinearfea's Introduction

Nonlinear Finite Element Analysis

Repository for nonlinear finite element analysis course, taught by Prof. Adrian Buganza Tepole

This repository mainly contains the Jupyter notebooks used in the class.

Module 1: Math fundamentals

Nonlinearities in solid mechanics

  • Jupyter notebook: code associated to Video: Nonlinearities in solid mechanics, as well as other examples not solved in the Video. The example from Video: Hyperelastic example is also solved in this notebook. Note that this notebook as some gaps for you to try to fill in. There are prompts in the notebooks to guide you along these examples on nonlinearities due to large displacements, nonlinear strains, and hyperelastic materials.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Solution of nonlinear equations

  • Jupyter notebook: code associated to Video: Solution of nonlinear equations using Newton Raphson, as well as other examples not solved in the Video. There are prompts in the notebooks to guide you solve equations of one variable as well as systems of nonlinear equations with the Newton-Raphson algorithm.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Vector and tensor calculus

  • Jupyter notebook: code associated to Video: Vector basics, Video: Second order tensors, Video: Fourth order tensors, as well as other examples not solved in the Videos. There are prompts in the notebooks to guide you to do coordinate transformations for vectors and tensors, computing dot products, cross products, invariants, and storing and applying four order tensors.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Motion and deformation gradient

  • Jupyter notebook: code associated to Vide: Motion and deformation gradient, as well as other examples not solved in the Video. This notebook will ask you to plot deforming grids and contours of length and area changes.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Velocities and accelerations

  • Jupyter notebook: code associated to Video: Velocities, accelerations, gradients, as well as other examples not solved in the Video. This notebook will ask you to plot particle trajectories, the corresponding velocity and acceleration vectors along the trajectory, and use that to generate the velocity and acceleration vectors in terms of material or spatial coordinates.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Hyperelasticity

  • Jupyter notebook: code associated to Video: Hyperelasticity, as well as other examples not solved in the Video. This notebook will review the neo-Hookean material and emphasize the difference between compressible (coupled) material models, nearly incompressible (uncoupled) materials, and perfectly incompressible models. The code will show how to plot stress-stretch curve for uniaxial tension and ask you to do the same for a Mooney-Rivlin material model.

  • Jupyter notebook (solution): same code as the previous one but will all gaps filled in.

Finite elements in 1D

  • Jupyter notebook: code associated to Video: Finite element discretization in 1D, as well as other examples not solved in the Video. This notebook will review the concept of shape functions to interpolate functions inside an element given nodal values. The code shows an example with linear elements and asks for the solution of an example with quadratic shape functions.

  • Jupyter notebook (solution): same code as the previous one but with the quadratic shape functions.

Isoparametric map, Gauss quadrature

  • Jupyter notebook: code associated to Video: Isoparametric map, Gauss quadrature, as well as other examples not solved in the Video. This notebook will review the concept of mapping the element physical coordinate x to the parametric domain xi. In this way, shape functions can be put directly in terms of xi and used to interpolate both the geometry and any function over either the x coordinates or the xi coordinates. The first example is based on linear elements and the first activity is with quadratic shape functions. The second part of the notebook introduces the Gauss integration or quadrature to approximate integrals, which will become important to integrate the weak form.

  • Jupyter notebook (solution): same code as the previous one but with the quadratic shape functions over the parametric domain, and a second example of Gauss quadrature.

Linear triangular elements

  • Jupyter notebook: code associated to Video: Triangular elements, it covers the shape functions in terms of (x,y) coordinates as well as in terms of barycentric coordinates for the isoparametric map. The notebook shows how the shape functions can be used to evaluate the function inside of an element given only nodal values.

Quadrilateral elements

  • Jupyter notebook: code associated to Video: Quadrilateral elements, it covers the shape functions in terms of the parametric coordinates (xi,eta) for the linear quadrilateral elements. It shows how to use the shape functions in terms of (xi,eta) and its derivatives to interpolate the geometry and bi-linear functions out of nodal values.

nonlinearfea's People

Contributors

abuganza avatar

Forkers

hectorlob

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.