DegreeTutors/Non-linear Finite Element Analysis of 2D Catenary & Cable Structures using Python

  • $97

Non-linear Finite Element Analysis of 2D Catenary & Cable Structures using Python

Build an iterative solution toolbox to analyse structures that exhibit geometric non-linearity due to large deflections

Contents

Introduction and Course Overview

In this introductory section, we'll set the stage for what's to come by taking a tour of the course and getting some preliminary housekeeping and setup out of the way.
1. Introduction and course overview
Preview
2. Course prerequisites
Preview
Support and Lecture Q&A (Please read!)

‘Heavy’ Cables - the Linear Solution

Cables very often undergo changes in their geometry under loading, either due to cable extension or flex in the cable supports - they are the classic example of a non-linear structure. In this section, we're going to establish a linear (closed-form) cable solution that ignores non-linear effects. This will provide a baseline case to test our non-linear code against later.
3. Section overview
Preview
4. Deriving a linear heavy cable equation
5. Accounting for cable self-weight
6. Problem-specific boundary conditions
7. Solving for max cable tension
7.1 Jupyter Notebook (lecture 7)

Getting Comfortable with Non-linearity

In this section, we'll consider sources of non-linearity in structural behaviour before focusing on geometric non-linearity in particular. The aim of this section is to take any mystery out of the term 'geometric non-linearity'. We'll also explore, at concept level, how we might set about solving for the behaviour of a non-linear structure.
8. Section overview
Preview
9. What is non-linear structural behaviour?
10. Large deflections and geometric non-linearity
11. An iterative solution strategy

The Non-linear Stiffness Matrix

Non-linear structures exhibit a change in their stiffness as their geometry changes - this change in stiffness is literally what leads to the non-linear behaviour since linear structures have a constant stiffness that links applied loads and deflections. In this section, we'll develop a non-linear stiffness matrix that can account for changes in stiffness due to large deformations.
12. Section overview
Preview
13. Building the transformation matrix
14. The linear stiffness matrix
15. Additional force due to large deflections
16. The local non-linear stiffness matrix
17. The global non-linear stiffness matrix

Building our 2D Solver Toolbox

Now that we have a stiffness matrix that can reflect progressive stiffening or softening due to large deformations and we understand, conceptually at least, how to iterate towards a solution, it's time to build out the code that can bring these ideas to life. In this section, we'll do the bulk of our code development.
18. Section overview
Preview
19. Initial setup and data import
20. Plotting the initial configuration
21. Blocking out the main convergence loop
22. Building the transformation matrices
23. Adding pre-tension to each member
24. Building the stiffness matrix
25. Solving for displacements
26. Updating the internal force system
27. Building a convergence test function
28. Calculating axial forces
29. Allowing for smaller external force increments
30. Generating a text summary output
31. Adding self-weight calculation
31.1 Jupyter Notebook (lectures 19-31)
Mid-course check-in

Visualising the Results

After the heavy-lifting of the previous section, we'll tackle something a little less intensive in this section. We'll build out the data visualisation that brings our solution to life. What we cover in this section will have a lot in common with previous DegreeTutors courses. This time, in addition to some aesthetic improvements, we'll implement a feature that allows us to 'step- through' the converged stages of our solution. 
32. Section overview
Preview
33. Plot setup and data selection
34. Plotting the undeformed structure
35. Building a colour scale
36. Plotting the deformed structure
37. Adding axial force labels
38. Plotting the applied forces
39. Plotting the reactions
39.1 Jupyter Notebook (lectures 33-39)

‘Heavy’ Cables - the Non-linear Solution

By now we've nearly come full circle - we have code that performs an iterative analysis that tries to converge on the final state of the structure. In this section, we'll compare our code's results with the linear cable solution we developed at the start of the course. We'll be able to closely approximate the linear solution but also observe the emergence of non-linear behaviour as the axial stiffness of our cable is progressively reduced.
40. Section overview
Preview
41. Exploring the convergence behaviour
41.1 Jupyter Notebook (lecture 41)
42. Modelling the cable with large axial stiffness
43. Introducing non-linearity by reducing the axial stiffness
43.1 Jupyter Notebook (lectures 42-43)
44. Linear vs. Non-linear comparison for a simple truss
44.1 Jupyter Notebook (lecture 44)

Modelling Initial Geometry in Blender

In this section, we'll use Blender to model and export the initial geometry of our structure. This will be a huge time-saver when dealing with larger structures. Again this will be similar to previous DegreeTutors courses however this time we'll also introduce Blender's cloth simulation tools which offer a quick and easy way of generating catenary geometry.
45. Section overview
Preview
46. Simulating initial catenary geometry
47. Basic geometry data export
48. Exporting cable definitions
49. Exporting restraint data
50. Exporting force location data
50.1 Blender File (lectures 46-50)

Mixing Cables and Bars in the Same Model

In this section, we'll work on the versatility of our toolbox by implementing the ability to combine cable elements that can only resist tension and bar elements that can resist tension and compression in a single structural model. This marks the completion of our toolbox and leaves you in a good position to expand it further.
51. Section overview
Preview
52. Modifying our code for different element types
52.1 Jupyter Notebook (lecture 52)
53. Analysing a combined cable and bar structure
54. Removing slack cable elements
54.1 Jupyter Notebook (lecture 54)
55. Antenna tower - modelling and analysis
Preview
55.1 Jupyter Notebook (lecture 55)
55.2 Blender File (lecture 55)
56. Course wrap up & completion certificate

Appendix: Introduction to Blender

A1. How can Blender help us?
A2. Downloading and installing Blender
A3. Blender overview and interface basics
A4. Object versus edit mode
A5. Basic modelling - rectilinear structures
A6. Basic modelling - organic/curved structures