443 Downloads
Updated 19 Oct 2023

Courseware on Finite Element Methods

View Courseware on Finite Element Methods on File Exchange or Open in MATLAB Online

Curriculum Module
Created with R2022b. Compatible with R2022b and later releases.

Description

This courseware on Finite Element Methods addresses standard and advanced Finite Element formulations for shear-deformable lightweight structures of the Timoshenko beam and Reissner-Mindlin plate types.

Moreover, the interactive courseware uses extensively the MATLAB® Live Editor and the Symbolic Math Toolbox™ for the development and the presentation.

Additionally, a comprehensive (but not exhaustive) set of MATLAB Grader assignments for this material exist. These assignments touch upon the topics mentioned in each of the chapters in the courseware syllabus. Please reach out to Andreas Apostolatos (aapostol@mathworks.com) to request access to the underlying MATLAB Grader assignments.

Please refer to the recording Introduction-to-the-Courseware-on-Finite-Element-Methods.mp4 under folder Introduction/ for a short introduction on how to use the courseware along with its main highlights

Owner/s

Andreas Apostolatos, PhD (aapostol@mathworks.com)

Contents

The repository contains the following Live Scripts and folders:

  • CoursewareonFiniteElementMethods.prj
    This is the MATLAB project file which sets up all necessary dependencies

  • main.mlx
    This is the main document that can be used to navigate to the rest of the Live Scripts in the repository

  • main_unitTests.mlx
    This is the Live Script that executes the unit tests

  • 1_BasisFunctions/
    This folder contains the Live Script addressing the construction of the Finite Element basis functions

    • main_Chapter1_BasisFunctions.mlx

basis_functions
(This animation can be generated using script main_Chapter3_AShearDeformablePlateElement.mlx in Chapter 3)

  • 2_TimoshenkoBeam/
    This folder contains the Live Script addressing the variational formulation and Finite Element approximation of the Timoshenko beam problem
    • main_Chapter2_ALinearStraightTimoshenkoBeamElement.mlx

  • 3_ReissnerMindlinPlate/
    This folder contains the Live Scripts addressing the variational formulation and Finite Element approximation of the Reissner-Mindlin plate problem
    • main_Chapter3_AShearDeformablePlateElement.mlx

  • 4_TransverseShearLocking/
    This folder contains the Live Scripts highlighting and addressing the transverse-shear locking:
    • main_Chapter4_TransverseShearLocking_TimoshenkoBeam.mlx
    • main_Chapter4_Locking_ReissnerMindlinCantileverPlate.mlx
    • main_Chapter4_Locking_ReissnerMindlinSquarePlate.mlx

  • 5_WeakDirichletBoundaryConditions/
    This folder contains the Live Script addressing the weak application of Dirichlet boundary conditions for the Timoshenko beam problem
    • main_Chapter5_WeakBoundaryConditions_TimoshenkoBeam.mlx

  • 6_HellingerReissnerFormulation/
    This folder contains the Live Scripts addressing the variational formulation of the Timoshenko beam problem by means of the Hellinger-Reissner principle
    • main_Chapter6_HellingerReissnerFormulation_TimoshenkoBeam.mlx
    • main_Chapter6_HellingerReissnerFormulation_TimoshenkoBeam_Study.mlx

  • AppexA_EfficiencyConsiderations/
    This folder contains the Live Scripts demonstrating the runtime performance speedup by using page-wise computation of the element stiffness matrices and sparse assembly
    • main_AppexA_EfficiencyCondiderationsReissnerMindlinPlate.mlx
    • main_AppexA_EfficiencyCondiderationsTimoshenkoBeam.mlx

  • TimoshenkoBeam/
    This folder contains all functions needed for the Finite Element discretization of the Timoshenko beam problem

  • EulerBernoulliBeam/
    This folder contains all functions needed for the Finite Element discretization of the Bernoulli beam problem

  • ReissnerMindlinPlate/
    This folder contains all functions needed for the Finite Element discretization of the Reissner-Mindlin plate problem

  • utilityFunctions/
    This folder contains all auxiliary functions, such the computation of the basis functions, functions related to visualization and functions for the numerical integration among others

  • unitTest/
    This folder contains all classes and functions needed for the unit testing performed by means of the Live Script main_unitTests.mlx

Concepts

Finite Element Methods, lightweight structures, Timoshenko beam, Reissner-Mindlin plate, transverse-shear locking, high-order basis functions, assumed natural strain, Hellinger-Reissner principle, slenderness study, convergence study, analytical solutions, Live Functions, Local Functions, Symbolic Math Toolbox™, plotting, unit-testing, MATLAB Projects, Git-integration

Suggested Audience

All engineering disciplines, such as, civil engineers, mechanical engineers, etc.

Workflow

Firstly, open the project file CoursewareonFiniteElementMethods.prj to have all the folder dependencies resolved. Then, open Live Script main.mlx, go to Section Quick guide, select any of the desirable Live Scripts from the list, and hit Run!

Unit-testing framework

To run the unit tests for this courseware, just type the following commands in the Command Window of MATLAB
>> suite = matlab.unittest.TestSuite.fromProject("CoursewareonFiniteElementMethods.prj");
>> run(suite)
Alternatively, start the project and then run the file main_unitTests.mlx

Release last tested

R2022b

TODO

  • Add the Finite Element discretization of the Euler-Bernoulli beam using the third order Hermitian basis functions
  • Add structural dynamics

Revision History

Cite As

Andreas Apostolatos (2024). Courseware on Finite Element Methods (https://github.com/MathWorks-Teaching-Resources/Courseware-on-Finite-Element-Methods/releases/tag/1.1.3), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

1_BasisFunctions

2_TimoshenkoBeam

3_ReissnerMindlinPlate

4_TransverseShearLocking/4_TransverseShearLocking_ReissnerMindlinCantileverPlate

4_TransverseShearLocking/4_TransverseShearLocking_ReissnerMindlinSquarePlate

4_TransverseShearLocking/4_TransverseShearLocking_TimoshenkoBeam

5_WeakDirichletBoundaryConditions

6_HellingerReissnerFormulation

AppexA_EfficiencyConsiderations

ReissnerMindlinPlate

TimoshenkoBeam

unitTest/@testBasisFunctions

unitTest/@testQuadrature

unitTest/@testReissnerMindlinPlate

unitTest/@testTimoshenkoBeam

utilityFunctions

utilityFunctions/+utilityFunctionsCantileverPlate

utilityFunctions/+utilityFunctionsTwoSidedClampedPlate

utilityFunctions/+utilityFunctionsWeakDBCTimoshenkoBeam

Version Published Release Notes
1.1.3.0

See release notes for this release on GitHub: https://github.com/MathWorks-Teaching-Resources/Courseware-on-Finite-Element-Methods/releases/tag/1.1.3

1.1.2

See release notes for this release on GitHub: https://github.com/MathWorks-Teaching-Resources/Courseware-on-Finite-Element-Methods/releases/tag/1.1.2

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.