test_masked_data_m.pf Source File


Contents

Source Code


Source Code

module test_masked_data_m
    !! tests on masked_data
    use funit
    implicit none
contains

    @test
    subroutine test_masked_data_cerfons
        !! Test of masked data in cerfons geometry
        use precision_grillix_m, only : GP
        use screen_io_m, only : get_stdout
        use helpers_mesh_sample_m, only : mesh_sample_cerfons
        use equilibrium_m, only : equilibrium_t
        use mesh_cart_m, only : mesh_cart_t
        use mask_data_m, only : mask_data_t

        class(equilibrium_t), allocatable :: equi
        type(mesh_cart_t) :: mesh
        type(mask_data_t) :: masks

        logical :: inv
        integer :: l
        real(GP) :: phi, x, y

        write(get_stdout(),*) '' // new_line('a') // repeat('-',80)
        write(get_stdout(),*)'test_masked_data_cerfons'

        ! Create samplemesh
        phi = 0.0_GP
        call mesh_sample_cerfons(equi, phi, mesh)

        call masks%build(equi, mesh)

        do l = 1, mesh%get_n_points()
            @assertEquivalent(masks%is_inner(l), mesh%is_inner_point(l))
            @assertEquivalent(masks%is_boundary(l), mesh%is_boundary_point(l))
            @assertEquivalent(masks%is_ghost(l), mesh%is_ghost_point(l))

            x = mesh%get_x(l)
            y = mesh%get_y(l)
            inv = equi%in_vessel(x, y, phi)
            @assertEquivalent(masks%is_in_vessel(l), inv)

            @assertEquivalent(masks%is_parbnd_immersed(l), .false.)
        enddo

        write(get_stdout(),*) repeat('-',80) // new_line('a') // ''

    end subroutine

end module