psi_square_second Module Function

module function psi_square_second(self, i, xi, eta) result(psi)

Arguments

Type IntentOptional Attributes Name
class(type_square_second), intent(in) :: self
integer(kind=int32), intent(in) :: i
real(kind=real64), intent(in) :: xi
real(kind=real64), intent(in) :: eta

Return Value real(kind=real64)


Called by

proc~~psi_square_second~~CalledByGraph proc~psi_square_second psi_square_second interface~psi_square_second type_square_second%psi_square_second interface~psi_square_second->proc~psi_square_second proc~is_in_square_second is_in_square_second proc~is_in_square_second->interface~psi_square_second interface~is_in_square_second type_square_second%is_in_square_second interface~is_in_square_second->proc~is_in_square_second

Source Code

    module function psi_square_second(self, i, xi, eta) result(psi)
        implicit none
        class(type_square_second), intent(in) :: self
        integer(int32), intent(in) :: i
        real(real64), intent(in) :: xi, eta
        real(real64) :: psi

        select case (i)
        case (1)
            psi = 0.25d0 * (1.0d0 - xi) * (1.0d0 - eta) * (-xi - eta - 1.0d0)
        case (2)
            psi = 0.25d0 * (1.0d0 + xi) * (1.0d0 - eta) * (xi - eta - 1.0d0)
        case (3)
            psi = 0.25d0 * (1.0d0 + xi) * (1.0d0 + eta) * (xi + eta - 1.0d0)
        case (4)
            psi = 0.25d0 * (1.0d0 - xi) * (1.0d0 + eta) * (-xi + eta - 1.0d0)
        case (5)
            psi = 0.5d0 * (1.0d0 - xi) * (1.0d0 + xi) * (1.0d0 - eta)
        case (6)
            psi = 0.5d0 * (1.0d0 + xi) * (1.0d0 - eta) * (1.0d0 + eta)
        case (7)
            psi = 0.5d0 * (1.0d0 - xi) * (1.0d0 + xi) * (1.0d0 + eta)
        case (8)
            psi = 0.5d0 * (1.0d0 - xi) * (1.0d0 - eta) * (1.0d0 + eta)
        case default
            psi = 0.0d0
        end select
    end function psi_square_second