How to add torsion to a beam problem?


So, I’ve managed to script a simple 2D cantilever beam under several point loads and now wish to add torque (twisting moments) at several points also. From this I’d like to output the maximum rotation at the end of the beam.

How should I go about doing this? Any guidance/help will be much appreciated.



I am also doing the same thing as you, I am wondering if you already got a solution to your question? I’d appreciate it if you can share it. Thank you!


Are you looking to do this in legacy DOLFIN or DOLFINx? Do you have a beam model that already captures torsion? If not, I’d suggest looking at this demo. If so, what does you formulation look like? (Mixed? Hermetian?)

Applying point moments is typically handled mathematically through a dirac delta applied a specific location. There are two sorts of cases that are relevant for us:

  1. the point moment is applied at a node. In this case, we can assemble our system and directly modify the RHS PETSC vector.
  2. the point moment is not applied at a node. In this case, we need to use some sort of PointSource functionality. In legacy DOLFIN, we can directly use PointSource(). In DOLFINx, PointSource() has not yet been reimplemented, so in this case, I’m not sure how to implement that yet ¯\_(ツ)_/¯

I’m using dolfinx, and I am trying to bring a single torsion to my mesh generated by using GMSH(a 3D beam) or even just to a minimal 3D beam mesh with rectangular section. The demo you posted here maybe not fits my situation. To 2: Yes it’s a pity we don’t have PointSource in dolfinx. To 1: maybe could you please explain it a little bit more with a minimal example? I’d appreciate it very much.