11#include "scaleFElib.h"
35 procedure(elementoperationbase_dx),
deferred,
public :: dx
36 procedure(elementoperationbase_dy),
deferred,
public :: dy
37 procedure(elementoperationbase_dz),
deferred,
public :: dz
38 procedure(elementoperationbase_lift),
deferred,
public :: lift
39 procedure(elementoperationbase_dxdydzlift),
deferred,
public :: dxdydzlift
40 procedure(elementoperationbase_div),
deferred,
public :: div
41 procedure(elementoperationbase_div_var5),
deferred,
public :: div_var5
42 procedure(elementoperationbase_div_var5_2),
deferred,
public :: div_var5_2
43 procedure(elementoperationbase_lift_var5),
deferred,
public :: lift_var5
44 procedure(elementoperationbase_vfilterpm1),
deferred,
public :: vfilterpm1
45 procedure(elementoperationbase_setup_modalfilter),
deferred,
public :: setup_modalfilter
46 procedure(elementoperationbase_setup_modalfilter_tracer),
deferred,
public :: setup_modalfilter_tracer
47 procedure(elementoperationbase_modalfilter_tracer),
deferred,
public :: modalfilter_tracer
48 procedure(elementoperationbase_modalfilter_var5),
deferred,
public :: modalfilter_var5
56 subroutine elementoperationbase_dx( this, vec_in, vec_out )
60 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
61 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
62 end subroutine elementoperationbase_dx
64 subroutine elementoperationbase_dy( this, vec_in, vec_out )
68 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
69 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
70 end subroutine elementoperationbase_dy
72 subroutine elementoperationbase_dz( this, vec_in, vec_out )
76 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
77 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
78 end subroutine elementoperationbase_dz
80 subroutine elementoperationbase_lift( this, vec_in, vec_out )
84 real(RP),
intent(in) :: vec_in(this%elem3D%NfpTot)
85 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
86 end subroutine elementoperationbase_lift
88 subroutine elementoperationbase_dxdydzlift( this, vec_in, vec_in_lift, vec_out_dx, vec_out_dy, vec_out_dz, vec_out_lift )
92 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
93 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot)
94 real(RP),
intent(out) :: vec_out_dx(this%elem3D%Np)
95 real(RP),
intent(out) :: vec_out_dy(this%elem3D%Np)
96 real(RP),
intent(out) :: vec_out_dz(this%elem3D%Np)
97 real(RP),
intent(out) :: vec_out_lift(this%elem3D%Np)
98 end subroutine elementoperationbase_dxdydzlift
100 subroutine elementoperationbase_div( this, vec_in, vec_in_lift, &
105 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3)
106 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot)
107 real(RP),
intent(out) :: vec_out(this%elem3D%Np,4)
108 end subroutine elementoperationbase_div
110 subroutine elementoperationbase_div_var5( this, vec_in, vec_in_lift, &
115 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3,5)
116 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot,5)
117 real(RP),
intent(out) :: vec_out_d(this%elem3D%Np,4,5)
118 end subroutine elementoperationbase_div_var5
120 subroutine elementoperationbase_div_var5_2( this, vec_in, &
125 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3,5)
126 real(RP),
intent(out) :: vec_out_d(this%elem3D%Np,3,5)
127 end subroutine elementoperationbase_div_var5_2
128 subroutine elementoperationbase_lift_var5( this, vec_in, vec_out )
132 real(RP),
intent(in) :: vec_in(this%elem3D%NfpTot,5)
133 real(RP),
intent(out) :: vec_out(this%elem3D%Np,5)
134 end subroutine elementoperationbase_lift_var5
136 subroutine elementoperationbase_vfilterpm1( this, vec_in, vec_out )
140 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
141 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
142 end subroutine elementoperationbase_vfilterpm1
144 subroutine elementoperationbase_setup_modalfilter( this, &
145 MF_ETAC_h, MF_ALPHA_h, MF_ORDER_h, &
146 MF_ETAC_v, MF_ALPHA_v, MF_ORDER_v )
150 real(RP),
intent(in) :: MF_ETAC_h
151 real(RP),
intent(in) :: MF_ALPHA_h
152 integer,
intent(in) :: MF_ORDER_h
153 real(RP),
intent(in) :: MF_ETAC_v
154 real(RP),
intent(in) :: MF_ALPHA_v
155 integer,
intent(in) :: MF_ORDER_v
156 end subroutine elementoperationbase_setup_modalfilter
158 subroutine elementoperationbase_setup_modalfilter_tracer( this, &
159 MF_ETAC_h, MF_ALPHA_h, MF_ORDER_h, &
160 MF_ETAC_v, MF_ALPHA_v, MF_ORDER_v )
164 real(RP),
intent(in) :: MF_ETAC_h
165 real(RP),
intent(in) :: MF_ALPHA_h
166 integer,
intent(in) :: MF_ORDER_h
167 real(RP),
intent(in) :: MF_ETAC_v
168 real(RP),
intent(in) :: MF_ALPHA_v
169 integer,
intent(in) :: MF_ORDER_v
170 end subroutine elementoperationbase_setup_modalfilter_tracer
172 subroutine elementoperationbase_modalfilter_tracer( this, vec_in, vec_work, vec_out )
176 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
177 real(RP),
intent(out) :: vec_work(this%elem3D%Np)
178 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
179 end subroutine elementoperationbase_modalfilter_tracer
181 subroutine elementoperationbase_modalfilter_var5( this, vec_in, vec_work, vec_out )
185 real(RP),
intent(in) :: vec_in(this%elem3D%Np,5)
186 real(RP),
intent(out) :: vec_work(this%elem3D%Np)
187 real(RP),
intent(out) :: vec_out(this%elem3D%Np,5)
188 end subroutine elementoperationbase_modalfilter_var5
module FElib / Element / Base
subroutine, public elementbase3d_init(elem, lumpedmat_flag)
Initialize an object to manage a 3D reference element.
subroutine, public elementbase3d_final(elem)
Finalize an object to manage a 3D reference element.
module FElib / Element / Operation / Base
Derived type representing a 3D reference element.