jacobian_det_side_second Module Function

pure elemental module function jacobian_det_side_second(self, r) result(jacobian_det)

Arguments

Type IntentOptional Attributes Name
class(type_side_second), intent(in) :: self
type(type_dp_vector_3d), intent(in) :: r

Return Value real(kind=real64)


Calls

proc~~jacobian_det_side_second~~CallsGraph proc~jacobian_det_side_second jacobian_det_side_second interface~jacobian_side_second type_side_second%jacobian_side_second proc~jacobian_det_side_second->interface~jacobian_side_second proc~jacobian_side_second jacobian_side_second interface~jacobian_side_second->proc~jacobian_side_second interface~dpsi_side_second type_side_second%dpsi_side_second proc~jacobian_side_second->interface~dpsi_side_second proc~get_coordinate abst_mesh%get_coordinate proc~jacobian_side_second->proc~get_coordinate proc~get_num_nodes~3 abst_mesh%get_num_nodes proc~jacobian_side_second->proc~get_num_nodes~3 proc~dpsi_side_second dpsi_side_second interface~dpsi_side_second->proc~dpsi_side_second

Called by

proc~~jacobian_det_side_second~~CalledByGraph proc~jacobian_det_side_second jacobian_det_side_second interface~jacobian_det_side_second type_side_second%jacobian_det_side_second interface~jacobian_det_side_second->proc~jacobian_det_side_second proc~get_length_side_second get_length_side_second proc~get_length_side_second->interface~jacobian_det_side_second interface~get_length_side_second type_side_second%get_length_side_second interface~get_length_side_second->proc~get_length_side_second

Source Code

    pure elemental module function jacobian_det_side_second(self, r) result(jacobian_det)
        implicit none
        class(type_side_second), intent(in) :: self
        type(type_dp_vector_3d), intent(in) :: r
        real(real64) :: jacobian_det

        real(real64) :: jac_x, jac_y, jac_z

        ! Get the three components of the Jacobian vector at point r
        jac_x = self%jacobian(1, 1, r)
        jac_y = self%jacobian(2, 1, r)
        jac_z = self%jacobian(3, 1, r)

        ! The determinant is the vector's magnitude (norm), which is ds/dξ
        jacobian_det = sqrt(jac_x**2 + jac_y**2 + jac_z**2)

    end function jacobian_det_side_second