dpsi_triangle_second Module Function

pure elemental module function dpsi_triangle_second(self, i, j, r) result(dpsi)

Arguments

Type IntentOptional Attributes Name
class(type_triangle_second), 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)


Called by

proc~~dpsi_triangle_second~~CalledByGraph proc~dpsi_triangle_second dpsi_triangle_second interface~dpsi_triangle_second type_triangle_second%dpsi_triangle_second interface~dpsi_triangle_second->proc~dpsi_triangle_second proc~jacobian_triangle_second jacobian_triangle_second proc~jacobian_triangle_second->interface~dpsi_triangle_second interface~jacobian_triangle_second type_triangle_second%jacobian_triangle_second interface~jacobian_triangle_second->proc~jacobian_triangle_second proc~is_in_triangle_second is_in_triangle_second proc~is_in_triangle_second->interface~jacobian_triangle_second interface~jacobian_det_triangle_second type_triangle_second%jacobian_det_triangle_second proc~is_in_triangle_second->interface~jacobian_det_triangle_second proc~jacobian_det_triangle_second jacobian_det_triangle_second proc~jacobian_det_triangle_second->interface~jacobian_triangle_second interface~is_in_triangle_second type_triangle_second%is_in_triangle_second interface~is_in_triangle_second->proc~is_in_triangle_second interface~jacobian_det_triangle_second->proc~jacobian_det_triangle_second proc~get_area_triangle_second get_area_triangle_second proc~get_area_triangle_second->interface~jacobian_det_triangle_second interface~get_area_triangle_second type_triangle_second%get_area_triangle_second interface~get_area_triangle_second->proc~get_area_triangle_second

Source Code

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

        select case (j)
        case (1)
            select case (i)
            case (1)
                dpsi = 4.0d0 * r%x - 1.0d0
            case (2)
                dpsi = 0.0d0
            case (3)
                dpsi = -3.0d0 + 4.0d0 * r%x + 4.0d0 * r%y
            case (4)
                dpsi = 4.0d0 * r%y
            case (5)
                dpsi = -4.0d0 * r%y
            case (6)
                dpsi = 4.0d0 - 8.0d0 * r%x - 4.0d0 * r%y
            case default
                dpsi = 0.0d0
            end select
        case (2)
            select case (i)
            case (1)
                dpsi = 0.0d0
            case (2)
                dpsi = 4.0d0 * r%y - 1.0d0
            case (3)
                dpsi = -3.0d0 + 4.0d0 * r%y + 4.0d0 * r%x
            case (4)
                dpsi = 4.0d0 * r%x
            case (5)
                dpsi = 4.0d0 - 4.0d0 * r%x - 8.0d0 * r%y
            case (6)
                dpsi = -4.0d0 * r%x
            case default
                dpsi = 0.0d0
            end select
        end select
    end function dpsi_triangle_second