Applying external pressure on a large deformed media

I need to solve a hyperelastic problem in the form seen in the FEniCS tutorial.

\Pi = \int_{\Omega} \psi(u) \, {\rm d} x - \int_{\Omega} B \cdot u \, {\rm d} x - \int_{\partial\Omega} T \cdot u \, {\rm d} s.

The problem I have with this variational formulation is that it considers that the traction force is applied to the reference area. Since the Neumann boundary conditions in my code are in the form of external pressures, I will need the traction force to be applied to the deformed area, not the undeformed one. I just wanted to ask how do I need to modify the equation above to be compatible with my simulations.

You would need to use Nanson’s formula (as derived clearly in a Wikipedia article) to obtain \mathbf{n}da, where \mathbf{n} is the deformed normal (i.e., the direction in which a pressure traction would act) and da is the measure for integration over the deformed surface. In the notation of the linked Wikipedia article, “dA” would correspond to ds in a total Lagrangian implementation (like the hyperelasticity demo), and \mathbf{N} would be FacetNormal(mesh).

Also, you would have to add the traction term directly to the residual to get a problem like

D_\mathbf{v}\Pi - \int_{\partial\Omega}\mathbf{t}\cdot\mathbf{v}\,da = 0\text{ ,}

instead of adding \int_{\partial\Omega}\mathbf{T}\cdot\mathbf{u}\,dA to \Pi. Note that

D_{\mathbf{v}}\int_{\partial\Omega}\mathbf{t}\cdot\mathbf{u}\,da \neq \int_{\partial\Omega}\mathbf{t}\cdot\mathbf{v}\,da\text{ ,}

because \mathbf{t} and da also depend on \mathbf{u}.


Thanks a lot, I did exactly as you said and yeah it works perfectly.


I am also encountering the same issue. Could you please send me the corrected FEnics code?

Thanks for raising the issue.