jacobian_side_first Module Function

pure elemental module function jacobian_side_first(self, i, j, r) result(jacobian)

Arguments

Type IntentOptional Attributes Name
class(type_side_first), intent(in) :: self
integer(kind=int32), intent(in) :: i
integer(kind=int32), intent(in) :: j
type(type_dp_vector_3d), intent(in) :: r

Return Value real(kind=real64)


Calls

proc~~jacobian_side_first~~CallsGraph proc~jacobian_side_first jacobian_side_first proc~get_coordinate abst_mesh%get_coordinate proc~jacobian_side_first->proc~get_coordinate

Called by

proc~~jacobian_side_first~~CalledByGraph proc~jacobian_side_first jacobian_side_first interface~jacobian_side_first type_side_first%jacobian_side_first interface~jacobian_side_first->proc~jacobian_side_first

Source Code

    pure elemental module function jacobian_side_first(self, i, j, r) result(jacobian)
        implicit none
        class(type_side_first), intent(in) :: self
        integer(int32), intent(in) :: i
        integer(int32), intent(in) :: j
        type(type_dp_vector_3d), intent(in) :: r
        real(real64) :: jacobian

        type(type_dp_vector_3d) :: coord1
        type(type_dp_vector_3d) :: coord2
        type(type_dp_vector_3d) :: delta

        jacobian = 0.0d0
        select case (j)
        case (1)
            coord1 = self%get_coordinate(1)
            coord2 = self%get_coordinate(2)
            delta = coord2 - coord1

            ! J = 0.5 * (x2 - x1)
            select case (i)
            case (1) ! x-component
                jacobian = 0.5d0 * delta%x
            case (2) ! y-component
                jacobian = 0.5d0 * delta%y
            case (3) ! z-component
                jacobian = 0.5d0 * delta%z
            end select
        end select

    end function jacobian_side_first