15#include "scaleFElib.h"
60 procedure :: final => elementoperationgpu_final
76 use scale_prc,
only: prc_abort
84 this%Nnode_h1D = elem_optr_base3d%elem3D%Nnode_h1D
85 this%Nnode_v = elem_optr_base3d%elem3D%Nnode_v
86 this%NfpTot = elem_optr_base3d%elem3D%NfpTot
89 select type(elem_optr_base3d)
91 this%elem_optr_tensorprod3D_P1 => elem_optr_base3d
101 this%elem_optr_tensorprod3D_P2 => elem_optr_base3d
111 this%elem_optr_tensorprod3D_P3 => elem_optr_base3d
121 this%elem_optr_tensorprod3D_P4 => elem_optr_base3d
131 this%elem_optr_tensorprod3D_P5 => elem_optr_base3d
141 this%elem_optr_tensorprod3D_P6 => elem_optr_base3d
151 this%elem_optr_tensorprod3D_P7 => elem_optr_base3d
161 this%elem_optr_tensorprod3D_P8 => elem_optr_base3d
171 this%elem_optr_tensorprod3D_P9 => elem_optr_base3d
181 this%elem_optr_tensorprod3D_P10 => elem_optr_base3d
191 this%elem_optr_tensorprod3D_P11 => elem_optr_base3d
201 this%elem_optr_tensorprod3D_P12 => elem_optr_base3d
211 this%elem_optr_tensorprod3D_P13 => elem_optr_base3d
221 this%elem_optr_tensorprod3D_P14 => elem_optr_base3d
231 this%elem_optr_tensorprod3D_P15 => elem_optr_base3d
241 log_info(
"ElementOperationGPU_Init",*)
"Unsupported type is specified for elem_optr_base3D. Check!"
249 subroutine elementoperationgpu_final( this )
255 end subroutine elementoperationgpu_final
260 integer,
intent(in) :: ne_in, ne_out
261 real(rp),
intent(in) :: vec_in(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne_in)
262 real(rp),
intent(out) :: vec_out(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne_out)
267 select case (this%Nnode_h1D)
305 real(rp),
intent(in) :: flux2d_kplane(this%nnode_h1d,this%nnode_h1d,2)
306 real(rp),
intent(in) :: e11(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
307 real(rp),
intent(in) :: e22(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
308 integer,
intent(in) :: k
309 real(rp),
intent(out) :: div_xy(this%nnode_h1d,this%nnode_h1d)
314 select case (this%Nnode_h1D)
317 e11(:,:,k), e22(:,:,k), &
321 e11(:,:,k), e22(:,:,k), &
325 e11(:,:,k), e22(:,:,k), &
329 e11(:,:,k), e22(:,:,k), &
333 e11(:,:,k), e22(:,:,k), &
337 e11(:,:,k), e22(:,:,k), &
341 e11(:,:,k), e22(:,:,k), &
345 e11(:,:,k), e22(:,:,k), &
349 e11(:,:,k), e22(:,:,k), &
353 e11(:,:,k), e22(:,:,k), &
357 e11(:,:,k), e22(:,:,k), &
361 e11(:,:,k), e22(:,:,k), &
365 e11(:,:,k), e22(:,:,k), &
369 e11(:,:,k), e22(:,:,k), &
373 e11(:,:,k), e22(:,:,k), &
382 real(rp),
intent(in) :: flux2d_kplane(this%nnode_h1d,this%nnode_h1d,5,2)
383 real(rp),
intent(in) :: e11(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
384 real(rp),
intent(in) :: e22(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
385 integer,
intent(in) :: k
386 real(rp),
intent(out) :: div_xy(this%nnode_h1d,this%nnode_h1d,5)
391 select case (this%Nnode_h1D)
393 call element_operation_kernel_matvec_divlike_dirxy_var5_p1( this%elem_optr_tensorprod3D_P1%D1D, this%elem_optr_tensorprod3D_P1%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
394 e11(:,:,k), e22(:,:,k), &
397 call element_operation_kernel_matvec_divlike_dirxy_var5_p2( this%elem_optr_tensorprod3D_P2%D1D, this%elem_optr_tensorprod3D_P2%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
398 e11(:,:,k), e22(:,:,k), &
401 call element_operation_kernel_matvec_divlike_dirxy_var5_p3( this%elem_optr_tensorprod3D_P3%D1D, this%elem_optr_tensorprod3D_P3%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
402 e11(:,:,k), e22(:,:,k), &
405 call element_operation_kernel_matvec_divlike_dirxy_var5_p4( this%elem_optr_tensorprod3D_P4%D1D, this%elem_optr_tensorprod3D_P4%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
406 e11(:,:,k), e22(:,:,k), &
409 call element_operation_kernel_matvec_divlike_dirxy_var5_p5( this%elem_optr_tensorprod3D_P5%D1D, this%elem_optr_tensorprod3D_P5%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
410 e11(:,:,k), e22(:,:,k), &
413 call element_operation_kernel_matvec_divlike_dirxy_var5_p6( this%elem_optr_tensorprod3D_P6%D1D, this%elem_optr_tensorprod3D_P6%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
414 e11(:,:,k), e22(:,:,k), &
417 call element_operation_kernel_matvec_divlike_dirxy_var5_p7( this%elem_optr_tensorprod3D_P7%D1D, this%elem_optr_tensorprod3D_P7%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
418 e11(:,:,k), e22(:,:,k), &
421 call element_operation_kernel_matvec_divlike_dirxy_var5_p8( this%elem_optr_tensorprod3D_P8%D1D, this%elem_optr_tensorprod3D_P8%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
422 e11(:,:,k), e22(:,:,k), &
425 call element_operation_kernel_matvec_divlike_dirxy_var5_p9( this%elem_optr_tensorprod3D_P9%D1D, this%elem_optr_tensorprod3D_P9%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
426 e11(:,:,k), e22(:,:,k), &
429 call element_operation_kernel_matvec_divlike_dirxy_var5_p10( this%elem_optr_tensorprod3D_P10%D1D, this%elem_optr_tensorprod3D_P10%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
430 e11(:,:,k), e22(:,:,k), &
433 call element_operation_kernel_matvec_divlike_dirxy_var5_p11( this%elem_optr_tensorprod3D_P11%D1D, this%elem_optr_tensorprod3D_P11%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
434 e11(:,:,k), e22(:,:,k), &
437 call element_operation_kernel_matvec_divlike_dirxy_var5_p12( this%elem_optr_tensorprod3D_P12%D1D, this%elem_optr_tensorprod3D_P12%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
438 e11(:,:,k), e22(:,:,k), &
441 call element_operation_kernel_matvec_divlike_dirxy_var5_p13( this%elem_optr_tensorprod3D_P13%D1D, this%elem_optr_tensorprod3D_P13%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
442 e11(:,:,k), e22(:,:,k), &
445 call element_operation_kernel_matvec_divlike_dirxy_var5_p14( this%elem_optr_tensorprod3D_P14%D1D, this%elem_optr_tensorprod3D_P14%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
446 e11(:,:,k), e22(:,:,k), &
449 call element_operation_kernel_matvec_divlike_dirxy_var5_p15( this%elem_optr_tensorprod3D_P15%D1D, this%elem_optr_tensorprod3D_P15%D1D_tr, flux2d_kplane(:,:,:,1), flux2d_kplane(:,:,:,2), &
450 e11(:,:,k), e22(:,:,k), &
459 real(rp),
intent(in) :: flux2d_kplane_x(this%nnode_h1d,this%nnode_h1d,5)
460 real(rp),
intent(in) :: flux2d_kplane_y(this%nnode_h1d,this%nnode_h1d,5)
461 real(rp),
intent(in) :: e11(this%nnode_h1d,this%nnode_h1d)
462 real(rp),
intent(in) :: e22(this%nnode_h1d,this%nnode_h1d)
463 integer,
intent(in) :: k
464 real(rp),
intent(out) :: div_xy(this%nnode_h1d,this%nnode_h1d,5)
469 select case (this%Nnode_h1D)
537 real(rp),
intent(in) :: fluxz(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v)
538 real(rp),
intent(in) :: ebnd_flux(this%nfptot,5)
539 real(rp),
intent(in) :: e33(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
540 real(rp),
intent(in) :: gsqrt(this%nnode_h1d,this%nnode_h1d,this%nnode_v)
541 real(rp),
intent(inout) :: div3d(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v)
546 select case (this%Nnode_h1D)
549 this%elem_optr_tensorprod3D_P1%D1D_tr, this%elem_optr_tensorprod3D_P1%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
553 this%elem_optr_tensorprod3D_P2%D1D_tr, this%elem_optr_tensorprod3D_P2%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
557 this%elem_optr_tensorprod3D_P3%D1D_tr, this%elem_optr_tensorprod3D_P3%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
561 this%elem_optr_tensorprod3D_P4%D1D_tr, this%elem_optr_tensorprod3D_P4%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
565 this%elem_optr_tensorprod3D_P5%D1D_tr, this%elem_optr_tensorprod3D_P5%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
569 this%elem_optr_tensorprod3D_P6%D1D_tr, this%elem_optr_tensorprod3D_P6%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
573 this%elem_optr_tensorprod3D_P7%D1D_tr, this%elem_optr_tensorprod3D_P7%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
577 this%elem_optr_tensorprod3D_P8%D1D_tr, this%elem_optr_tensorprod3D_P8%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
581 this%elem_optr_tensorprod3D_P9%D1D_tr, this%elem_optr_tensorprod3D_P9%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
585 this%elem_optr_tensorprod3D_P10%D1D_tr, this%elem_optr_tensorprod3D_P10%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
589 this%elem_optr_tensorprod3D_P11%D1D_tr, this%elem_optr_tensorprod3D_P11%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
593 this%elem_optr_tensorprod3D_P12%D1D_tr, this%elem_optr_tensorprod3D_P12%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
597 this%elem_optr_tensorprod3D_P13%D1D_tr, this%elem_optr_tensorprod3D_P13%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
601 this%elem_optr_tensorprod3D_P14%D1D_tr, this%elem_optr_tensorprod3D_P14%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
605 this%elem_optr_tensorprod3D_P15%D1D_tr, this%elem_optr_tensorprod3D_P15%Lift_mat, fluxz, ebnd_flux, e33, gsqrt, &
611 subroutine elementoperationgpu_divvar5( this, Flux_x, Flux_y, Flux_z, ebnd_flux, E11, E22, E33, Gsqrt, Ne, div3D )
614 integer,
intent(in) :: ne
615 real(rp),
intent(in) :: flux_x(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v,ne)
616 real(rp),
intent(in) :: flux_y(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v,ne)
617 real(rp),
intent(in) :: flux_z(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v,ne)
618 real(rp),
intent(in) :: ebnd_flux(this%nfptot,5,ne)
619 real(rp),
intent(in) :: e11(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne)
620 real(rp),
intent(in) :: e22(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne)
621 real(rp),
intent(in) :: e33(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne)
622 real(rp),
intent(in) :: gsqrt(this%nnode_h1d,this%nnode_h1d,this%nnode_v,ne)
623 real(rp),
intent(out) :: div3d(this%nnode_h1d,this%nnode_h1d,5,this%nnode_v,ne)
626 select case (this%Nnode_h1D)
629 this%elem_optr_tensorprod3D_P1%D1D, this%elem_optr_tensorprod3D_P1%D1D_tr, this%elem_optr_tensorprod3D_P1%Lift_mat, &
630 flux_x, flux_y, flux_z, ebnd_flux, &
631 e11, e22, e33, gsqrt, ne, &
635 this%elem_optr_tensorprod3D_P2%D1D, this%elem_optr_tensorprod3D_P2%D1D_tr, this%elem_optr_tensorprod3D_P2%Lift_mat, &
636 flux_x, flux_y, flux_z, ebnd_flux, &
637 e11, e22, e33, gsqrt, ne, &
641 this%elem_optr_tensorprod3D_P3%D1D, this%elem_optr_tensorprod3D_P3%D1D_tr, this%elem_optr_tensorprod3D_P3%Lift_mat, &
642 flux_x, flux_y, flux_z, ebnd_flux, &
643 e11, e22, e33, gsqrt, ne, &
647 this%elem_optr_tensorprod3D_P4%D1D, this%elem_optr_tensorprod3D_P4%D1D_tr, this%elem_optr_tensorprod3D_P4%Lift_mat, &
648 flux_x, flux_y, flux_z, ebnd_flux, &
649 e11, e22, e33, gsqrt, ne, &
653 this%elem_optr_tensorprod3D_P5%D1D, this%elem_optr_tensorprod3D_P5%D1D_tr, this%elem_optr_tensorprod3D_P5%Lift_mat, &
654 flux_x, flux_y, flux_z, ebnd_flux, &
655 e11, e22, e33, gsqrt, ne, &
659 this%elem_optr_tensorprod3D_P6%D1D, this%elem_optr_tensorprod3D_P6%D1D_tr, this%elem_optr_tensorprod3D_P6%Lift_mat, &
660 flux_x, flux_y, flux_z, ebnd_flux, &
661 e11, e22, e33, gsqrt, ne, &
665 this%elem_optr_tensorprod3D_P7%D1D, this%elem_optr_tensorprod3D_P7%D1D_tr, this%elem_optr_tensorprod3D_P7%Lift_mat, &
666 flux_x, flux_y, flux_z, ebnd_flux, &
667 e11, e22, e33, gsqrt, ne, &
671 this%elem_optr_tensorprod3D_P8%D1D, this%elem_optr_tensorprod3D_P8%D1D_tr, this%elem_optr_tensorprod3D_P8%Lift_mat, &
672 flux_x, flux_y, flux_z, ebnd_flux, &
673 e11, e22, e33, gsqrt, ne, &
677 this%elem_optr_tensorprod3D_P9%D1D, this%elem_optr_tensorprod3D_P9%D1D_tr, this%elem_optr_tensorprod3D_P9%Lift_mat, &
678 flux_x, flux_y, flux_z, ebnd_flux, &
679 e11, e22, e33, gsqrt, ne, &
683 this%elem_optr_tensorprod3D_P10%D1D, this%elem_optr_tensorprod3D_P10%D1D_tr, this%elem_optr_tensorprod3D_P10%Lift_mat, &
684 flux_x, flux_y, flux_z, ebnd_flux, &
685 e11, e22, e33, gsqrt, ne, &
689 this%elem_optr_tensorprod3D_P11%D1D, this%elem_optr_tensorprod3D_P11%D1D_tr, this%elem_optr_tensorprod3D_P11%Lift_mat, &
690 flux_x, flux_y, flux_z, ebnd_flux, &
691 e11, e22, e33, gsqrt, ne, &
695 this%elem_optr_tensorprod3D_P12%D1D, this%elem_optr_tensorprod3D_P12%D1D_tr, this%elem_optr_tensorprod3D_P12%Lift_mat, &
696 flux_x, flux_y, flux_z, ebnd_flux, &
697 e11, e22, e33, gsqrt, ne, &
701 this%elem_optr_tensorprod3D_P13%D1D, this%elem_optr_tensorprod3D_P13%D1D_tr, this%elem_optr_tensorprod3D_P13%Lift_mat, &
702 flux_x, flux_y, flux_z, ebnd_flux, &
703 e11, e22, e33, gsqrt, ne, &
707 this%elem_optr_tensorprod3D_P14%D1D, this%elem_optr_tensorprod3D_P14%D1D_tr, this%elem_optr_tensorprod3D_P14%Lift_mat, &
708 flux_x, flux_y, flux_z, ebnd_flux, &
709 e11, e22, e33, gsqrt, ne, &
713 this%elem_optr_tensorprod3D_P15%D1D, this%elem_optr_tensorprod3D_P15%D1D_tr, this%elem_optr_tensorprod3D_P15%Lift_mat, &
714 flux_x, flux_y, flux_z, ebnd_flux, &
715 e11, e22, e33, gsqrt, ne, &
731 integer,
intent(in) :: ne
732 real(rp),
intent(in) :: vec_in(this%nnode_h1d**2*this%nnode_v,ne,5)
733 real(rp),
intent(out) :: vec_work(this%nnode_h1d**2*this%nnode_v,ne)
734 real(rp),
intent(out) :: vec_out(this%nnode_h1d**2*this%nnode_v,ne,5)
738 select case (this%Nnode_h1D)
module FElib / Element / Base
module FElib / Element / Operation / Base
module FElib / Element / Driver for operation with 3D tensor product elements using GPU
subroutine elementoperationgpu_init(this, elem_optr_base3d)
Initialize an object of ElementOperationGPUDriver.
subroutine, public elementoperationgpu_divvar5_z_lift(this, fluxz, ebnd_flux, e33, gsqrt, div3d)
subroutine, public elementoperationgpu_divvar5(this, flux_x, flux_y, flux_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public elementoperationgpu_div_kplane(this, flux2d_kplane, e11, e22, k, div_xy)
subroutine, public elementoperationgpu_divvar5_kplane(this, flux2d_kplane, e11, e22, k, div_xy)
subroutine, public elementoperationgpu_modalfilter_var5(this, vec_in, vec_work, ne, vec_out)
Apply a modal filter for five variables.
subroutine, public elementoperationgpu_vfilterpm1(this, vec_in, ne_in, ne_out, vec_out)
subroutine, public elementoperationgpu_divvar5_kplane2(this, flux2d_kplane_x, flux2d_kplane_y, e11, e22, k, div_xy)
module FElib / Element / Operation with 3D tensor product elements for GPU
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p1(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p5(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=5.
subroutine, public element_operation_kernel_matvec_divlike_var5_p7_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p14(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p7(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p2(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_var5_p2_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p7(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p11(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=11.
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p12(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p13(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p14(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p9(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p8(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=8.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p13(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p8(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p10(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=10.
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p6(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_var5_p3_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_dirz_p5(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p5(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p11(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p3(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=3.
subroutine, public element_operation_kernel_matvec_modalfilter_p13(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=13.
subroutine, public element_operation_kernel_matvec_modalfilter_p9(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=9.
subroutine, public element_operation_kernel_matvec_divlike_var5_p9_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p11(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p3(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p2(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_dirz_p9(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p11(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p10(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p12(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_var5_p10_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p15(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p2(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=2.
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p14(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p12(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=12.
subroutine, public element_operation_kernel_matvec_divlike_var5_p12_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p14(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=14.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p3(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p6(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p5(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_var5_p5_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p4(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p15(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=15.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p5(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_var5_p1_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p6(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=6.
subroutine, public element_operation_kernel_matvec_divlike_var5_p11_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p2(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p15(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_var5_p13_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p10(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p8(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_var5_p14_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p6(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p3(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_var5_p15_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p4(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p12(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_var5_p4_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p13(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_var5_p8_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p1(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p15(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p10(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p7(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p1(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p11(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p6(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p8(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p8(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirz_lift_var5_p10(mat_tr, lift, vec_in_z, ebnd_flux, e33, gsqrt, div3d)
subroutine, public element_operation_kernel_matvec_modalfilter_p7(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=7.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p1(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p1(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=1.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p12(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p4(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p9(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_modalfilter_p4(mat_h1d, mat_h1d_tr, mat_v1d_tr, vec_in, vec_work, ne, vec_out)
Calculate a matrix-vector multiplication associated with 3D modal filtering with p=4.
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p7(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p2(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxy_var5_p9(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_var5_p6_v2(mat, mat_tr, lift, vec_in_x, vec_in_y, vec_in_z, ebnd_flux, e11, e22, e33, gsqrt, ne, div3d)
subroutine, public element_operation_kernel_matvec_dirz_p3(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p15(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_divlike_dirxy_p4(mat, mat_tr, vec_in_x, vec_in_y, e11, e22, div_out_xy)
subroutine, public element_operation_kernel_matvec_dirz_p14(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
subroutine, public element_operation_kernel_matvec_dirz_p13(mat_z_tr, vec_in, ne_in, ne_out, vec_out)
Calculate a matrix-vector multiplication associated with mathematical operations in the z direction (...
module FElib / Element / Operation with 3D tensor product elements for GPU
Derived type representing a 3D reference element.
Base type for elementwise operations.
Driver for element operation with 3D tensor product elements using GPU.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=10.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=11.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=12.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=13.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=14.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=15.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=1.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=2.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=3.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=4.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=5.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=6.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=7.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=8.
Derived type for elementwise operations with 3D tensor product elements with polynomial order p=9.