Hello,
Allow me to first thank the authors of deal.ii for writing a program that allows anyone to delve into FEM without emptying their wallets! :)
I am trying to extract individual entries from the Jacobian of face elements. By face elements, I am referring to the surfaces of elements in 3D, or edges of elements in 2D. These elements are created using the FEFaceValues class.
Unfortunately, when I try to extract the Jacobian of these face elements, I always end up with matrices filled with zeroes. Additionally, I expected the matrix to be a dim x (dim - 1) matrix, but the return value is a dim x dim matrix.
The reason why I am trying to get their Jacobians is to calculate the derivative of the area of an element's surface in real space (x,y,z) with respect to the area of the parent element's surface (ξ1, ξ2, ξ3). This is for the 3D case.
I first tried doing this in 2-D by modifying the step-7 code. Below are some of the changes I did:
Line 600 (added the update_jacobian flag)
FEFaceValues<dim> fe_face_values (*fe, face_quadrature_formula,
update_jacobians | update_values | update_quadrature_points |
update_normal_vectors | update_JxW_values);
Line 700 (display the Jacobian row by row)
Tensor<2,dim> jacobian = fe_face_values.jacobian(q_point);
std:cout << "Face number: "
<< face
<< std:endl
<< "q_point: "
<< q_point
<< std::endl
<< "Jacobian x1: "
<< jacobian[0]
<< std::endl
<< "Jacobian x2: "
<< jacobian[1]
<< std::endl;
The output will be mostly a bunch of zeroes. I greatly appreciate any help with this issue. Thank you!