11#include "scaleFElib.h"
35 integer :: operator_type
38 procedure(elementoperationbase_dx),
deferred,
public :: dx
39 procedure(elementoperationbase_dy),
deferred,
public :: dy
40 procedure(elementoperationbase_dz),
deferred,
public :: dz
41 procedure(elementoperationbase_lift),
deferred,
public :: lift
42 procedure(elementoperationbase_dxdydzlift),
deferred,
public :: dxdydzlift
43 procedure(elementoperationbase_div),
deferred,
public :: div
44 procedure(elementoperationbase_div_var5),
deferred,
public :: div_var5
45 procedure(elementoperationbase_div_var5_2),
deferred,
public :: div_var5_2
46 procedure(elementoperationbase_lift_var5),
deferred,
public :: lift_var5
47 procedure(elementoperationbase_vfilterpm1),
deferred,
public :: vfilterpm1
48 procedure(elementoperationbase_setup_modalfilter),
deferred,
public :: setup_modalfilter
49 procedure(elementoperationbase_setup_modalfilter_tracer),
deferred,
public :: setup_modalfilter_tracer
50 procedure(elementoperationbase_modalfilter_tracer),
deferred,
public :: modalfilter_tracer
51 procedure(elementoperationbase_modalfilter_var5),
deferred,
public :: modalfilter_var5
59 subroutine elementoperationbase_dx( this, vec_in, vec_out )
63 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
64 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
65 end subroutine elementoperationbase_dx
67 subroutine elementoperationbase_dy( this, vec_in, vec_out )
71 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
72 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
73 end subroutine elementoperationbase_dy
75 subroutine elementoperationbase_dz( this, vec_in, vec_out )
79 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
80 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
81 end subroutine elementoperationbase_dz
83 subroutine elementoperationbase_lift( this, vec_in, vec_out )
87 real(RP),
intent(in) :: vec_in(this%elem3D%NfpTot)
88 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
89 end subroutine elementoperationbase_lift
91 subroutine elementoperationbase_dxdydzlift( this, vec_in, vec_in_lift, vec_out_dx, vec_out_dy, vec_out_dz, vec_out_lift )
95 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
96 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot)
97 real(RP),
intent(out) :: vec_out_dx(this%elem3D%Np)
98 real(RP),
intent(out) :: vec_out_dy(this%elem3D%Np)
99 real(RP),
intent(out) :: vec_out_dz(this%elem3D%Np)
100 real(RP),
intent(out) :: vec_out_lift(this%elem3D%Np)
101 end subroutine elementoperationbase_dxdydzlift
103 subroutine elementoperationbase_div( this, vec_in, vec_in_lift, &
108 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3)
109 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot)
110 real(RP),
intent(out) :: vec_out(this%elem3D%Np,4)
111 end subroutine elementoperationbase_div
113 subroutine elementoperationbase_div_var5( this, vec_in, vec_in_lift, &
118 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3,5)
119 real(RP),
intent(in) :: vec_in_lift(this%elem3D%NfpTot,5)
120 real(RP),
intent(out) :: vec_out_d(this%elem3D%Np,4,5)
121 end subroutine elementoperationbase_div_var5
123 subroutine elementoperationbase_div_var5_2( this, vec_in, &
128 real(RP),
intent(in) :: vec_in(this%elem3D%Np,3,5)
129 real(RP),
intent(out) :: vec_out_d(this%elem3D%Np,3,5)
130 end subroutine elementoperationbase_div_var5_2
131 subroutine elementoperationbase_lift_var5( this, vec_in, vec_out )
135 real(RP),
intent(in) :: vec_in(this%elem3D%NfpTot,5)
136 real(RP),
intent(out) :: vec_out(this%elem3D%Np,5)
137 end subroutine elementoperationbase_lift_var5
139 subroutine elementoperationbase_vfilterpm1( this, vec_in, vec_out )
143 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
144 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
145 end subroutine elementoperationbase_vfilterpm1
147 subroutine elementoperationbase_setup_modalfilter( this, &
148 MF_ETAC_h, MF_ALPHA_h, MF_ORDER_h, &
149 MF_ETAC_v, MF_ALPHA_v, MF_ORDER_v )
153 real(RP),
intent(in) :: MF_ETAC_h
154 real(RP),
intent(in) :: MF_ALPHA_h
155 integer,
intent(in) :: MF_ORDER_h
156 real(RP),
intent(in) :: MF_ETAC_v
157 real(RP),
intent(in) :: MF_ALPHA_v
158 integer,
intent(in) :: MF_ORDER_v
159 end subroutine elementoperationbase_setup_modalfilter
161 subroutine elementoperationbase_setup_modalfilter_tracer( this, &
162 MF_ETAC_h, MF_ALPHA_h, MF_ORDER_h, &
163 MF_ETAC_v, MF_ALPHA_v, MF_ORDER_v )
167 real(RP),
intent(in) :: MF_ETAC_h
168 real(RP),
intent(in) :: MF_ALPHA_h
169 integer,
intent(in) :: MF_ORDER_h
170 real(RP),
intent(in) :: MF_ETAC_v
171 real(RP),
intent(in) :: MF_ALPHA_v
172 integer,
intent(in) :: MF_ORDER_v
173 end subroutine elementoperationbase_setup_modalfilter_tracer
175 subroutine elementoperationbase_modalfilter_tracer( this, vec_in, vec_work, vec_out )
179 real(RP),
intent(in) :: vec_in(this%elem3D%Np)
180 real(RP),
intent(out) :: vec_work(this%elem3D%Np)
181 real(RP),
intent(out) :: vec_out(this%elem3D%Np)
182 end subroutine elementoperationbase_modalfilter_tracer
184 subroutine elementoperationbase_modalfilter_var5( this, vec_in, vec_work, vec_out )
188 real(RP),
intent(in) :: vec_in(this%elem3D%Np,5)
189 real(RP),
intent(out) :: vec_work(this%elem3D%Np)
190 real(RP),
intent(out) :: vec_out(this%elem3D%Np,5)
191 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
integer, public element_operator_type_general
Type ID of general operator.
integer, public element_operator_type_tensorprod3d
Type ID of tensor-product operator for 3D elements.
Derived type representing a 3D reference element.
Base type for elementwise operations.