What is the difference between essential and natural boundary conditions in FEM?

Carrying out a FEM simulation is like a team work where the team players are factors like geometry, material properties, loads, boundary conditions, mesh, solver in a broader sense. Effective contributions from all the team members make the team very successful (a valid and desired simulation result). Of course, the user is the captain of team with whose prudence and engineering ability the team succeeds.

Okay, now that you know you are the important person calling the shots as a captain, it is good to know in depth about your team player who makes your job easy when applied with proper engineering sense.

So, let’s welcome that player – Boundary Conditions

Yes, in this article, you will be reading about boundary conditions in a Finite Element Analysis(FEA), their types and applications in actual practice.

Why do we need them?

Finite Element analysis involves solving partial differential equations applied over analysis domains for variables (Displacement, Stress etc.,) that are of interest.

7 general steps in any FEM simulation

These governing equations are applied on finite elements discretized over the domain and are difficult to solve for a problem as such.

Let’s take an example of a static, linear FE analysis problem – Bending of a cantilever beam. If we approximate this beam with a linear element and linearize the governing equations, we would be having elements for the well-known formulation

[k] {u} = {F}

Where {F}, {u} are the force and displacement vectors and [k] is the stiffness matrix.

Based on a single element approximation for easier illustration purposes, effectively the above equation will look like


Here q and θ represent the translation and rotational displacements of the two nodes of the element that we have assumed. In a cantilever beam, one node (the corresponding to the fixed end) is fully constrained which means no displacement and no rotation. This is effectively a boundary condition. As we clearly know that q1 and θ1 are zero, we can rule out the corresponding rows and columns from the above matrix-vector formulation.

In end effect, the 4X4 matrix is reduced to a 2X2 matrix, thereby resulting in lesser number of equations to solve without any compromise on the accuracy.

Sounds like a great idea, right? Cool.

Now that you just noticed the importance of boundary condition in a 2-node element, imagine how powerful and numerically efficient, the application of boundary conditions would be for problems with thousands of nodes or degrees of freedom. With a proper application of an engineering sense, one can arrive at the right set of boundary conditions.

With experience, I have practically witnessed the importance of boundary conditions in computationally bigger problems. If you are a beginner, then it is actually a good practice to spend some understanding the problem in your hand before actually jumping into the CAE tool that you intend to use. This will ensure that you make use of boundary conditions and solve your problem smartly with less resources without loosing out on the accuracy.

Coming back to boundary conditions, there are broadly two categories of boundary conditions, namely essential and natural boundary conditions. The following table is aimed to give the difference between the two.

Essential boundary conditions

Natural boundary conditions

Specify the value of the variable at the boundary Specify the value of the derivative of a variable at the boundary
They are imposed explicitly for solving These conditions are automatically, “naturally” satisfied without any external conditions
Are satisfied in the exact sense Are satisfied up to the order of the polynomial degree

Some examples would be

Displacement in stress analysis Bending moment or shear forces in stress analysis
Temperature in thermal analysis Adiabatic boundary in heat conduction analysis

After going through this table, now can you figure out the type of boundary condition that we used for our cantilever beam illustration?

And, if you have read or glanced standard FEM textbooks or manuals, you would have come across terms such as Dirichlet boundary conditions and Neumann boundary conditions.

As a beginner, it is safe to have this thumb rule in mind that in most cases, Dirichlet boundary conditions belong to the “Essential” and Neumann boundary conditions to the “Natural” category. This statement is not always true but holds good for majority of simple examples.

If you had gone through one of my previous articles (Strong and weak formulations in FEA), during the weak formulation of the problem, natural boundary conditions (Neumann) get applied automatically. I mean, these boundary conditions are applied even before the development of algebraic equations for unknown coefficients.

But the scenario is different with respect to essential boundary conditions. The shape functions that we choose do not satisfy these conditions automatically. So, before solving the FE equations globally, the essential boundary conditions (Dirichlet) must be applied.

The topic of essential and natural boundary conditions is difficult to understand for a beginner when he/she reads a standard FEM text book directly. I believe, this article will be a good foundation for understanding deeper concepts further from textbooks and literature.



A book on Python Scripting for ABAQUS:

I have written a book that helps you to write Python scripts for ABAQUS in just 10 days.

Why should you buy my book?

Please use the link below to purchase the book.

Crash Course on Python Scripting for ABAQUS: Learn to write python scripts for ABAQUS in 10 days

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s