Hermite Beam Tutorial 00: A First Cantilever Check

Hermite Beam Tutorial 00: A First Cantilever Check

Before trusting a finite element model, start with a calculation small enough to do by hand. This first tutorial checks the sign, load bookkeeping, and units of the HermiteStructural beam example before we inspect the mesh, stiffness matrix, or full displacement field.

The model we are checking is a rectangular beam:

Quantity Value
width $b$ 4 in
depth $h$ 8 in
span $L$ 120 in
$E$ 2,000,000 psi
free-end point load $P$ -12.8 lb
strong-axis inertia $I = bh^3/12$ 170.666667 in$^4$

The finite element model is three-dimensional and includes six degrees of freedom per node:

ux, uy, uz, phix, phiy, phiz

For the first theoretical check, we temporarily ignore the extra 3D detail and ask a narrower beam-table question:

If this were a classical cantilever beam with a concentrated load at the free end, what free-end deflection would we expect?

The companion source repository is here:

HermiteStructural on GitHub

If you still need Python and Visual Studio Code set up first, start with this walkthrough:

Installing Python on Windows with Python Manager and Visual Studio Code

The Beam Table Formula

For a cantilever beam with a concentrated load at the free end:

\[\Delta_{max} = \frac{PL^3}{3EI}\]

The symbols use the usual inch-pound beam-table units:

For this first tutorial, the total point load is distributed equally across the nodes on the free-end face of the finite element mesh. That keeps the total resultant equal to $P$ while allowing the 3D model to receive nodal loads.

Plug In The Numbers

The rectangular cross section uses:

b = 4 in
h = 8 in

So the strong-axis bending inertia is:

\[I = \frac{bh^3}{12} = \frac{4(8^3)}{12} = 170.666667 \text{ in}^4\]

Using the model values:

P = -12.8 lb
L = 120 in
E = 2,000,000 psi
I = 170.666667 in^4

Then:

\[\Delta_{max} = \frac{-12.8(120^3)}{3(2,000,000)(170.666667)} = -2.16 \times 10^{-2} \text{ in}\]

The current Hermite finite element run reports a much smaller displacement:

-1.547e-5 in

That is a large difference, and it is the next modeling question to investigate. The useful first win is that the code now makes the load bookkeeping visible: the same total $P$ used by the beam-table check is distributed across the free-end nodes in the solver.

Free-end point-load comparison

Run The Repository Check

In the code repository, run:

python tutorial_00_theoretical_check.py

If you are using the Windows Python launcher:

py tutorial_00_theoretical_check.py

Expected output:

Cantilever beam point-load check
  P: -12.800 lb
  L: 120.000 in
  E: 2000000.000 psi
  I: 170.666667 in^4
  Theoretical free-end deflection: -2.160000e-02 in

What This Check Does And Does Not Prove

This check is useful because it catches common early mistakes:

It does not prove that the full finite element model is correct. In fact, the large current difference between the beam-table deflection and the finite element displacement tells us where the next work is: inspect the Hermite stiffness formulation, scaling, and bending degrees of freedom.

The target here is load-case clarity. The theory and solver now use the same total free-end point load, so any remaining mismatch belongs to the formulation or modeling assumptions rather than to confusing distributed load and point load checks.

Next Step

The next tutorial turns this abstract beam into a visible mesh. We will check the node count, element count, pinned boundary face, and free-end loaded nodes before assembling or solving anything.

Visual Preview

Before solving, the first visual check is the beam mesh and the fixed face. The red blocks mark the fully pinned nodes at $z = 0$; the wireframe shows the hexahedral element grid running out to the free end.

Hermite beam mesh with pinned z=0 nodes
Mesh preview with red pinned nodes on the fixed $z = 0$ face.

The current result view colors the beam by displacement magnitude. The small overlay in the upper right keeps the theoretical deflection and actual finite element displacement visible while inspecting the mesh.

Solved Hermite beam displacement view
Solved displacement view with the theory-versus-FEA overlay visible in the upper right.

Comments are open below for corrections, questions, and notes on the formulation.

Comments

Questions, corrections, and notes are welcome here.