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:
bang...@colostate.edu
www:
http://www.math.colostate.edu/~bangerth/