Thanks to CuriosityStream for sponsoring this
video. There are a lot of different analytical methods
that engineers can use to solve structural mechanics problems, whether it's to calculate
the deflection of a beam or the stresses in a flat plate. But we often encounter problems that can't
be solved in this way, typically because the geometry, loads or materials are too complex. The finite element method is a powerful
numerical technique that uses computational power to calculate approximate solutions to
these types of problems. It's widely used in all major engineering
industries. It could be used to check that satellite components
will survive the launch conditions, for example. Or to optimise the design of automotive components,
like the lower control arm of this car's suspension system. Finite element analysis software can be used
to analyse a wide range of solid mechanics problems, including static, dynamic, buckling,
and modal analyses. But it can also be used for fluid flow, heat
transfer, and electromagnetic problems. For this introduction to the finite element
method, we'll focus on how it applies to static linear-elastic stress analysis. Imagine we want to analyse the brackets supporting
this air conditioning unit. The goal of a static stress analysis would
typically be to calculate the stresses, strains and displacements within the bracket. These unknowns are called "field variables". Internal stresses develop within a body in
such a way as to maintain equilibrium over any volume of the body, so we can apply the
concept of equilibrium to calculate the field variables. This is easy to do for a simple beam - we
can use equilibrium to calculate the bending moment and shear force along it, and from
there we can calculate the normal and shear stresses in the beam. But enforcing equilibrium over a two dimensional
shape like this bracket is difficult, and it becomes even more complicated for a three
dimensional body. The finite element method approaches this
problem by splitting the body into a number of small elements, that are connected together
at nodes. This process is called discretisation, and
the collection of nodes and elements is called the mesh. Discretisation is useful because the equilibrium
requirement now only needs to be satisfied over a finite number of discrete elements,
instead of continuously over the entire body. Several different element shapes can be used. We've used triangular surface elements to
model this bracket. Surface elements are two dimensional elements
that are typically used to model thin surfaces. They can be triangular or quadrilateral. Triangular elements are good for modelling
awkward shapes, although quadrilateral elements tend to perform better. Solid elements are used for three-dimensional
bodies. And then we have line elements. Choosing the right element for your model
will depend on the specific scenario being analysed, and requires some expertise. In the case of our bracket we could have used
solid elements, or even line elements, depending on how much we wanted to simplify the problem. Even for elements of the same shape, there
are hundreds of different types to choose from that each have different formulations,
and introduce different levels of approximation. A line element can be a bar, for example,
that only carries axial loads, or a beam, that can carry axial, bending, shear and torsional
loads. We can model the bracket using plane stress
surface elements, because the bracket is thin and the loading is all in the same plane. But that's only one of many surface element
types. These are all first order elements, but we
can also use second order elements, which have additional mid-side nodes and are more
accurate. For stress analysis problems the fundamental
variable we want to calculate is the displacement at each node. If we know how a body displaces when loads
are applied, we'll easily be able to calculate secondary outputs like stress and strain. For each element we can define a vector {u}
that contains all of the possible displacements for the nodes of the element, including rotations. If we're analysing a two-dimensional case
with beam elements, each node can translate along the X and Y axes and it can rotate about
the Z axis, so the vector {u} will look like this. Each of these displacements is called a degree
of freedom. For the beam element we have 3 degrees of
freedom per node, or 6 in total. For a 3D case that increases to 6 degrees
of freedom per node. A shell element node also has 3 degrees of
freedom in two dimensions, but since the element has 4 nodes, it has 12 degrees of freedom
in total. The nodes of a solid element only have the
3 translational degrees of freedom. The nodes aren't allowed to rotate and instead
rotation of the element is captured by translation of the nodes. So how can we calculate all of the displacements
at every node in our mesh? For a spring, the relationship between force
and displacement is defined by Hooke's law. The spring stiffness k determines how far
the spring will displace for a given force. In the same way, we can think of the elements
of our mesh as having a certain amount of stiffness, that resists deformation. In this equation {f} is a vector of the nodal
forces and moments, {u} is the vector of the nodal displacements, and [k] is the stiffness
matrix of the element. A 2D beam element has 6 degrees of freedom,
so the displacement vector looks like this. And the force vector and the stiffness matrix
will look like this. The element stiffness matrix defines how much
each node in the element will displace for a set of forces and moments applied to the
nodes, and so is the key to solving the displacements at every node of our mesh. It's a square matrix - the number of rows
and the number of columns are equal to the number of degrees of freedom of the element. We can figure out what the terms of the stiffness
matrix are by enforcing equilibrium. We'll come back to this later on in the video,
but for a 2D beam the matrix looks like this. We can think of this equation as a system
of linear equations that we can solve to obtain the displacements at the nodes of our mesh. If we apply a lateral displacement to node
2, for example, and all of the other degrees of freedom are fixed, and so are equal to
zero, we can use the stiffness matrix to calculate the forces and moments at both of the nodes. To make the next steps easier to visualise,
let's represent the stiffness matrix in a more abstract form. This is just one element, but our overall
mesh will be made up of many more elements. Let's look at a simple example where we have
a mesh made up of three 2D beam elements, that we're using to model a cantilever beam. We can assemble the individual stiffness matrices
for all of the elements in our mesh into a huge global stiffness matrix that defines
how the entire structure will displace when loads are applied to it. Like the element stiffness matrix, the global
stiffness matrix is a square matrix and the number of rows and columns is equal to the
total number of degrees of freedom in the model. The element stiffness matrices are assembled
together to form the global stiffness matrix based on how the elements are connected together. Elements 1 and 2 are connected at node 2 for
example. Continuity tells us that since these two elements
are connected at the same node, the displacements for both elements must be the same at the
common node. So when we assemble the global stiffness matrix,
the terms in the element stiffness matrices corresponding to node 2 should be summed for
each degree of freedom. Element 3 is not connected to node 2, so this
element's stiffness matrix should have no effect on the displacements at node 2. This is what the actual global stiffness matrix
looks like for this model. It has some interesting characteristics. It is said to be sparse, because it contains
a lot of zeros, and banded, because the non-zero terms are grouped around the diagonal. For linear-elastic problems the matrix will
also be symmetric. If we modify the mesh so that the three elements
are connected differently, the global stiffness matrix will change. In this case we have three nodes instead of
four, so the matrix will be smaller, and the fact that elements 1 and 3 are connected is
reflected in the matrix. An important thing to note here is that the
elements are no longer aligned to the same coordinate system, so we have to transform
the stiffness matrix for each element so that it aligns with a global coordinate system. We can do this by multiplying each element
stiffness matrix by a rotation matrix. Now that we've assembled the global stiffness
matrix, we need to solve this equation to obtain the displacements at each of the nodes. To do this we need to define the external
loads, and the boundary conditions. The boundary conditions are known displacements
at specific nodes, typically because specific degrees of freedom are fixed. In this model, vertical and horizontal translations
are fixed at node 1, and vertical translations are fixed at node 2, so the displacement vector
looks like this. And the force vector will look like this. It includes the applied force and the reaction
forces at the supports. Now we can solve the equation. We could do this by inverting the global stiffness
matrix and solving the displacements from there. But in practice inverting the matrix isn't
very efficient, particularly because it's a sparse matrix. Commercial solvers mostly use methods that
involve iteratively approximating the displacement vector, like the conjugate gradient method. Once we've solved for the nodal displacements,
we can calculate the strains and then stresses throughout the mesh. A typical finite element mesh could easily
have a hundred thousand degrees of freedom, which would be impossible to solve by hand,
and so applying the finite element method to anything more complicated than a very basic
model requires the use of appropriate software. Now that we have an overall understanding
of the finite element method, let's return to the element stiffness matrix to see how
it's derived. The matrix shown here is for a 2D beam element,
but it will look very different for different element types. Several different methods can be used to derive
these stiffness matrices, and they are all fundamentally based on the concept of equilibrium. The direct method derives the stiffness matrix
directly from the equilibrium equations that govern the behaviour of the element. The lateral deflection of a beam is governed
by this equation, for example, so we can solve the equation to obtain the stiffness matrix
for a beam element. These governing equations are usually differential
equations. The differential equations and associated
boundary conditions are what we call the "strong" form of the equilibrium problem. But it's only really possible to solve the
strong form for simple elements. For more general cases we can use "weak" forms
that describe the differential equations in integral form, instead of solving the differential
equations directly. These give approximate solutions to the equilibrium
equations, but are easier to solve. The first of the weak form methods is based
on variational principles. One such principle commonly used for structural
mechanics problems is the Principle of Minimum Potential Energy. It states that the displacement configuration
that satisfies equilibrium conditions is the one that minimises the total potential energy,
where the potential energy is the sum of the strain energy and the potential energy of
the external loads. By applying a mathematical technique called
the calculus of variations to minimise the total potential energy, we can obtain an approximate
solution to the equilibrium equations. The other weak form method is the Galerkin
method of weighted residuals. In this method the function that satisfies
the differential equation is approximated as the sum of a number of assumed trial functions
that each have unknown coefficients. This approximate solution is substituted into
the differential equation, and an equation for the error, called the residual, is obtained. If we multiply each trial function by the
residual and set the integral of this product to zero, we can calculate the unknown coefficients
that minimise the residual. This gives us an approximate solution to the
differential equation. This is a more widely applicable approach
than the principle of minimum potential energy, but for stress analysis problems both methods
give the same result. Regardless of which method we use, we end
up with the stiffness matrix for our element. But to apply these methods we need to be able
to describe how displacements and other field variables vary inside the element, instead
of just at the nodes of the element. To overcome this issue, an element needs to
have a defined function that calculates values inside the element by interpolating the values
at the nodes. The shape function is just an assumption. It's usually chosen to be a polynomial, since
they're relatively simple and sufficiently accurate. And with that we've covered all of the key
aspects of the finite element method. In summary, the first step in the finite element
method is defining the problem, including the relevant material properties, loads and
boundary conditions. Next the body being analysed is split into
a number of small elements connected at nodes, and the element types are chosen. Then a stiffness matrix is defined for each
element, using one of the three methods we covered earlier. The element stiffness matrices are then assembled
into a global stiffness matrix based on element connectivity. This global stiffness matrix defines how the
structure will respond to applied loads, and we can use it along with boundary conditions
to solve for the displacement at each node in the structure. Once we have displacements we can calculate
stresses, strains and other field variables of interest. Then all that's left to do is post-processing
to obtain the desired results, and validation of the model. A lot of the hard work like calculating the
element stiffness matrices, assembling the global stiffness matrix and solving the model
is done by the software being used. But the engineer is responsible for making
sure that the problem has been properly defined, that the mesh is suitable, and for interpreting
and validating the results. I hope this video has helped you develop a
better understanding of the fundamentals of the finite element method. If you're interested in learning more, you
can check out the extended version of this video, that's available now over on Nebula,
where I spend a few more minutes covering the problem definition, discretisation, post-processing,
and validation steps. Nebula is a streaming service built by independent
educational creators. It's a place where you can find extended versions
of my videos, alongside amazing original content from other creators, like Mustard and Wendover,
without any ads or sponsor messages. You can get access to Nebula for free when
you sign up for CuriosityStream. CuriosityStream is the perfect streaming service
for curious minds. It has thousands of high quality documentaries
to keep you entertained and learning, like Particle Fever, an incredible film that follows
experimental and theoretical physicists during the first round of experiments at the Large
Hadron Collider, the largest science experiment ever conducted, as they work to prove the
existence of the Higgs boson particle. If you sign up to CuriosityStream using this
link, you'll get a 26% discount on their annual plan, and you'll get access to Nebula for
free. All for less than $15 a year. So to watch my bonus content on Nebula, and
Particle Fever and countless other documentaries on CuriosityStream, head over to curiositystream.com/efficientengineer,
or click the link in the description. It's an amazing deal, and signing up is a
great way to support this channel. And that's it for this introduction to the
finite element method. Thanks for watching!
The Efficient Engineer is so wonderful
Man I hate FEA
Im a senior in highschool who is in precal. I have no chance in hell of understanding this. Will report back
Honestly Iโm just looking at the thumbnail and it says โfk u.โ Like thanks FEA I love you too.
I wish this stuff was around when I was studying ME
I really enjoyed this video. I never studied finite element method but I use FEA regularly in my work. The big takeaways for me that bring more context to FEA are:
Youโre basically solving hookeโs law at each of the nodes in your mesh. F=k*X, and your displacement vector X will depend on how many degrees of freedom your mesh element has.
In the above, your stiffness k is a square matrix composed of elements that depend on node-node relationships. The matrix elements are directly proportional to area A, modulus E, moment of inertia I, and inversely proportional to length between nodes L (mesh size). Given this, it seems the only important material property for FEM is elastic modulus.
For any given 2D or 3D mesh element, youโre only solving for stress/strain at the nodes, not the surface(s) between. The solver interpolates between the nodes to estimate the surface behavior.
Thanks for sharing!
What a powerful tool FEA is. Throughout the courses I took in mechanics of materials I always wondered how stresses in complex shapes (other than the beams, shafts and trusses that I studied) are calculated. I wonder how engineers in the past before FEA were able to design complex machine elements like car suspension or engine components?
I graduated as a ME last year but god, I wish I knew about this channel before! What a diverse and not so shallow approach to these topics, it is of great help to anyone here I bet. Thanks for sharing this OP!