I would like to model a post-tensioned concrete slab, similar to this paper: (PDF) Layout optimization of post-tensioned cables in concrete slabs

Treating the tensioning cable as a spatial curve (e.g. a Bspline), the shell nodal forces due to the cable {f}_{pe} (three force components, two moments) can be expressed using virtual work. The so-called cable strain matrix B_p (Eq 7) relates the three shell displacements and two rotations to the axial strain of the cable (here shown for one node).

Here a,b,c are constants (the components of the cable’s normalized tangent vector).

My question is how to best implement something like this B in UFL. The Jacobian components I get via `ufl.Jacobian`

and `ufl.JacobianInverse`

, but I do not remember how to access the basis functions and derivatives. Perhaps there is a more elegant formulation for the nodal forces.

I’m using the linear Naghdi model in fenics-shells as a starting point (@jackhale). Appreciate any suggestions!