## Course Description

EN2340 is a graduate level course on the theory and implementation of the finite element method for solving boundary value problems in solid mechanics. It is intended primarily to provide the background necessary to develop finite element code to model advanced materials (for which constitutive models are not available in commercial finite element software) and to implement special types of finite element, which might be needed to solve multi-physics problems.

A strong background in solid mechanics is necessary. Before taking this course you should have completed at least an advanced solid mechanics course equivalent to EN1750, so you have some experience with nonlinear mechanics of continua, and have some prior exposure to finite element analysis. In addition, you need to be comfortable with programming and debugging at least MATLAB code. Most FEA coding is still done in FORTRAN.

The course will cover use of ABAQUS; and the practical implementation of finite element procedures, using MATLAB coding exercises to illustrate basic concepts, as well as more advanced coding either through ABAQUS user elements or by adding subroutines to a basic standalone FEA code.

You will also learn to use a modern Integrated Development Environment (IDE) and how to manage your coding with version control software (we will use Eclipse and GitHub for this).

Work Expectation:

- Lectures: 40 hours
- Software installation, tutorials 20 hrs
- Homework assignments: 10 at 10 hours each
- Final Project: at 20 hours

TOTAL:180 hours.

Course outcomes:After completing EN2340, you should be:

- Familiar with the theoretical basis for FEA in solid mechanics
- Able to set up and solve solid mechanics problems using ABAQUS (or matlab/mathematica for simple problems)
- Able to develop user elements and user materials for ABAQUS (or implement elements/materials in open source codes
- Able to use an IDE/Git for writing and debugging code, version control, and collaboration

## Course Outline

1. Overview of the finite element method in solid mechanics

- Features of a finite element code
- Introduction to ABAQUS/CAE and ABAQUS

2. The Finite Element Method for Static Linear Elasticity

- Derivation and implementation of a basic 2D FE code with triangular constant strain elements
- Generalization of finite element procedures for linear elasticity: interpolation and numerical integration in 1D, 2D and 3D
- Deriving finite element equations - constructing variational forms; mixed methods.
- Accuracy and convergence; the Patch test

3. Advanced Element Formulations

- Shear locking and incompatible mode elements
- Volumetric locking: reduced integration and Bbar methods
- Mixed (hybrid) elements

4. Finite element method for nonlinear and history dependent problems

- Small strain hypoelastic materials
- Small strain viscoplasticity
- Large strain elasticity
- Large strain visco-plasticity

5. The finite element method for time dependent and dynamic problems

- First-order systems - the diffusion equation
- Explicit time integration – the Newmark method
- Implicit time integration
- Modal analysis and modal time integration

6. Structural Elements

- Continuum Beams
- Shells

7. Interfaces and contact

- Cohesive Zones
- Enforcing constraints using penalty methods and Lagrange Multipliers
- Contact elements (in two dimensions)

## Lecture Notes from Class

- L1: Intro slides,

Overview of FEA - Nodes and Elements - L2: Overview of FEA: BCs, constraints, contact, solution methods
- L3: Units and scaling in FEA; FEA for linear elastostatics part 1 - basic plane elasticity with constant strain triangles
- L4: Linear elastic FEA with constant strain triangles. MATLAB code Simple 2 el input file Hole-in-a-plate input file
- L5: Generalizing linear elastic FEA
- L6: General linear elastic FEA: Isoparametric interpolation; matrix form for k,r, Gaussian Quadrature
- L7: Implementing 3D elasticity as a UEL; Perspectives on FEA for solid mechanics (Galerkin methods)
- L8: Perspectives on FEA for linear elasticity, shear locking Matlab code input file 1, input file 2, input file 3
- L9: Incompatible mode elements; volumetric locking
- Matlab code for incompatible mode elements, short beam input file long beam input file
- Matlab code demonstrating volumetric locking linear quad input file quadratic quad input file
- L10 Hourglass control, selective reduced integration, B-bar elements.
- L11 Hybrid elements and Augmented Lagrangian elements
- Simple hybrid FEA code (run with input files from L10)
- Augmented Lagrangean FEA code (run with input files from L10)

- L12 FEA for nonlinear materials: hypoelasticity
- UMAT for EN234FEA/ABAQUS (you will need to rename any existing UMAT subroutines to use this)
- optional user print file for EN234FEA (to plot the s-e curve). To use this you have to rename the user_print() subroutine in user_print_cahn_hilliard.f90 to something other than user_print, and uncomment the lines for user printing in the input file.
- input file for EN234FEA
- input file for ABAQUS

- L13 FEA for large deformations: hyperelasticity (with neo-hookean material model)
- L14 FEA implementation for hyperelasticity; FEA for time dependent problems - viscoplasticity
- L15 Viscoplasticity
- UMAT for viscoplasticity (will run in EN234FEA or ABAQUS)
- EN234FEA input file for viscoplasticity (needs the user print file from L12)

- L16: Time integration for first-order systems - the Cahn Hilliard Equation
- L17: Newmark time integration for linear momentum balance in solid mechanics
- L18: Numerical tests on Newmark; ABAQUS VUMAT for viscoplasticity
- L19 Stability of Newmark time-stepping; modal analysis
- L20 Modal analysis examples; writing UMAT and VUMAT for finite deformations
- L21 ABAQUS UMAT/VUMAT for finite deformations; structural elements
- L22 Continuum beam elements
- L23 Cohesive Zones
- L24 Implementing Cohesive Zones; Constraints (penalty methods and Lagrange Multipliers)
- L25 Contact
- L26 Contact