On 6/26/23 00:49, Krish wrote:

I am following step-44 to solve an elasticity problem. I am trying to implement current traction (as opposed to the dead load used in step-44) on a part of the boundary. For that I need to use the deformation gradient and its determinant at the f_q_point(s) (face quadrature points). I am interested to know what might be a suitable way to get these.

If you have the deformation field as a solution vector, then computing its gradient at quadrature points on faces is easily done using FEFaceValues. Take a look at the computation of "fluxes" here:
https://dealii.org/developer/doxygen/deal.II/step_4.html#PostprocessingWhattodowiththesolution
In your case, the gradients are going to be tensors, and you will compute them using code such as

std::vector<Tensor<2, dim>> solution_gradients(face_quadrature_formula.size());

FEValuesExtractors::Vector deformation(...);
...

fe_face_values[deformation].get_function_gradients(solution, solution_gradients);

There is a free function called 'determinant()' that can be used to compute the determinant of a dim x dim tensor.

Best
 W.

--
------------------------------------------------------------------------
Wolfgang Bangerth          email:                 bange...@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 on the web visit 
https://groups.google.com/d/msgid/dealii/b2883699-40b6-3052-c797-ccd7b2332f0c%40colostate.edu.

Reply via email to