psi_triangle_second Module Function

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

Arguments

Type IntentOptional Attributes Name
class(type_triangle_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_triangle_second~~CalledByGraph proc~psi_triangle_second psi_triangle_second interface~psi_triangle_second type_triangle_second%psi_triangle_second interface~psi_triangle_second->proc~psi_triangle_second proc~is_in_triangle_second is_in_triangle_second proc~is_in_triangle_second->interface~psi_triangle_second interface~is_in_triangle_second type_triangle_second%is_in_triangle_second interface~is_in_triangle_second->proc~is_in_triangle_second

Source Code

    module function psi_triangle_second(self, i, xi, eta) result(psi)
        implicit none
        class(type_triangle_second), intent(in) :: self
        integer(int32), intent(in) :: i
        real(real64), intent(in) :: xi, eta
        real(real64) :: psi
        select case (i)
        case (1)
            psi = xi * (2.0d0 * xi - 1.0d0)
        case (2)
            psi = eta * (2.0d0 * eta - 1.0d0)
        case (3)
            psi = (1.0d0 - xi - eta) * (1.0d0 - 2.0d0 * xi - 2.0d0 * eta)
        case (4)
            psi = 4.0d0 * xi * eta
        case (5)
            psi = 4.0d0 * (1.0d0 - xi - eta) * eta
        case (6)
            psi = 4.0d0 * xi * (1.0d0 - xi - eta)
        case default
            psi = 0.0d0
        end select
    end function psi_triangle_second