Yes! Thank you very much, I was indeed missing the mathematical derivation. I better checked my computations and I actually need: *div([I + grad(u)]^{-T})* instead of *div([I + grad(u)]^{-1})* but following your steps that leads to a similar result: *div([I + grad(u)]^{-T}) = - Finv [grad(grad(u)^T)] Finv* Then I guess that using get_function_hessians() on *u* is what I need to assemble correctly my weak form.
Thank you again! Il giorno venerdì 4 aprile 2025 alle 17:49:05 UTC+2 Wolfgang Bangerth ha scritto: > On 4/4/25 09:24, Sclah wrote: > > > > - take the gradient of the previous solution > > /fe_values[components].get_function_gradients(old_sol, local_old_grad);/ > > - for every quadrature point "q" compute the deformation gradient (F = > > Identity + grad(u)) > > /Tensor<2, dim> F = Identity + local_old_grad(q);/ > > /Tensor<2, dim> F_inv = invert(F);/ > > Now I'd like to compute the divergence of /F_inv/, is there a way to do > that? > > I was thinking about automatic differentiation but maybe there is a more > > straightforward way > > You need to apply the chain rule. If I understand correctly, you need > div ( [I + grad(u)]^{-1} ) > = trace grad ( [I + grad(u)]^{-1} ) > which is of the form > grad ( A^{-1} ) > and which you can compute by observing that on the one hand > grad ( A A^{-1} ) = grad I = 0 > and on the other hand by using the product rule > grad ( A A^{-1} ) = (grad A) A^{-1} + A (grad A^{-1}) > and so > grad A^{-1} = - A^{-1} (grad A) A^{-1} > with an appropriate choice of contraction over indices. So that gives you > something (you'll have to check the details) of the form > grad ( [I + grad(u)]^{-1} ) > = - Finv grad (I + grad(u)) Finv > = - Finv [grad^2(u))] Finv > > Best > W. > > -- > ------------------------------------------------------------------------ > Wolfgang Bangerth email: bang...@colostate.edu > www: http://www.math.colostate.edu/~bangerth/ > > > -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/dealii/d30f1961-81e8-4614-bb27-d2923d540619n%40googlegroups.com.