FE-Project
Loading...
Searching...
No Matches
scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2 Type Reference

Derived type for elementwise operations with 3D tensor product elements with polynomial order p=2. More...

Inheritance diagram for scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2:
scale_element_operation_tensorprod3d::elementoperationtensorprod3d scale_element_operation_base::elementoperationbase3d

Public Member Functions

procedure, public init (this, elem3d)
 Initialization.
procedure, public final (this)
 Finalization.
procedure, public dx (this, vec_in, vec_out)
 Calculate the differential in x-direction.
procedure, public dy (this, vec_in, vec_out)
 Calculate the differential in y-direction.
procedure, public dz (this, vec_in, vec_out)
 Calculate the differential in z-direction.
procedure, public lift (this, vec_in, vec_out)
 Calculate the lifting term.
procedure, public dxdydzlift (this, vec_in, vec_in_lift, vec_out_dx, vec_out_dy, vec_out_dz, vec_out_lift)
 Calculate the 3D gradient.
procedure, public div (this, vec_in, vec_in_lift, vec_out)
 Calculate the 3D divergence.
procedure, public div_var5 (this, vec_in, vec_in_lift, vec_out_d)
 Calculate the 3D gradient applied for five variables.
procedure, public div_var5_2 (this, vec_in, vec_out_d)
 Calculate the 3D divergence applied for five variables.
procedure, public lift_var5 (this, vec_in, vec_out)
 Calculate the lifting term applied for five variables.
procedure, public vfilterpm1 (this, vec_in, vec_out)
 Apply a vertical modal filter which a coefficient with the highest vertical mode is set to zero.
procedure, public setup_modalfilter (this, mf_etac_h, mf_alpha_h, mf_order_h, mf_etac_v, mf_alpha_v, mf_order_v)
 Setup modal filter.
procedure, public setup_modalfilter_tracer (this, mf_etac_h, mf_alpha_h, mf_order_h, mf_etac_v, mf_alpha_v, mf_order_v)
 Setup modal filter for tracer.
procedure, public modalfilter_tracer (this, vec_in, vec_work, vec_out)
 Apply a modal filter for tracer variables.
procedure, public modalfilter_var5 (this, vec_in, vec_work, vec_out)
 Apply a modal filter for five variables.
Public Member Functions inherited from scale_element_operation_tensorprod3d::elementoperationtensorprod3d
procedure(elementoperationtensorprod3d_init), deferred, public init elementoperationtensorprod3d_init
procedure(elementoperationtensorprod3d_final), deferred, public final elementoperationtensorprod3d_final
Public Member Functions inherited from scale_element_operation_base::elementoperationbase3d
procedure(elementoperationbase_dx), deferred, public dx elementoperationbase_dx
procedure(elementoperationbase_dy), deferred, public dy elementoperationbase_dy
procedure(elementoperationbase_dz), deferred, public dz elementoperationbase_dz
procedure(elementoperationbase_lift), deferred, public lift elementoperationbase_lift
procedure(elementoperationbase_dxdydzlift), deferred, public dxdydzlift elementoperationbase_dxdydzlift
procedure(elementoperationbase_div), deferred, public div elementoperationbase_div
procedure(elementoperationbase_div_var5), deferred, public div_var5 elementoperationbase_div_var5
procedure(elementoperationbase_div_var5_2), deferred, public div_var5_2 elementoperationbase_div_var5_2
procedure(elementoperationbase_lift_var5), deferred, public lift_var5 elementoperationbase_lift_var5
procedure(elementoperationbase_vfilterpm1), deferred, public vfilterpm1 elementoperationbase_vfilterpm1
procedure(elementoperationbase_setup_modalfilter), deferred, public setup_modalfilter elementoperationbase_setup_modalfilter
procedure(elementoperationbase_setup_modalfilter_tracer), deferred, public setup_modalfilter_tracer elementoperationbase_setup_modalfilter_tracer
procedure(elementoperationbase_modalfilter_tracer), deferred, public modalfilter_tracer elementoperationbase_modalfilter_tracer
procedure(elementoperationbase_modalfilter_var5), deferred, public modalfilter_var5 elementoperationbase_modalfilter_var5

Public Attributes

real(rp), dimension(3, 3) d1d
real(rp), dimension(3, 3) d1d_tr
real(rp), dimension(3, 3, 3, 6) lift_mat
real(rp), dimension(3, 3, 3, 6) lift_mat_tr
real(rp), dimension(3, 3) intrpmat_vpordm1_tr
real(rp), dimension(3, 3) mfilter_h1d
real(rp), dimension(3, 3) mfilter_h1d_tr
real(rp), dimension(3, 3) mfilter_v1d_tr
real(rp), dimension(3, 3) mfilter_tracer_h1d
real(rp), dimension(3, 3) mfilter_tracer_h1d_tr
real(rp), dimension(3, 3) mfilter_tracer_v1d_tr
Public Attributes inherited from scale_element_operation_base::elementoperationbase3d
class(elementbase3d), pointer elem3d
 Pointer to an object of 3D element.
integer operator_type
 Type of operator (e.g., general, tensor-product)

Detailed Description

Derived type for elementwise operations with 3D tensor product elements with polynomial order p=2.

Definition at line 99 of file scale_element_operation_tensorprod3D.F90.

Member Function/Subroutine Documentation

◆ init()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::init ( class(elementoperationtensorprod3d_p2), intent(inout) this,
class(elementbase3d), intent(in), target elem3d )

Initialization.

Definition at line 114 of file scale_element_operation_tensorprod3D.F90.

◆ final()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::final ( class(elementoperationtensorprod3d_p2), intent(inout) this)

Finalization.

Definition at line 115 of file scale_element_operation_tensorprod3D.F90.

◆ dx()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::dx ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Calculate the differential in x-direction.

Definition at line 116 of file scale_element_operation_tensorprod3D.F90.

◆ dy()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::dy ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Calculate the differential in y-direction.

Definition at line 117 of file scale_element_operation_tensorprod3D.F90.

◆ dz()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::dz ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Calculate the differential in z-direction.

Definition at line 118 of file scale_element_operation_tensorprod3D.F90.

◆ lift()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::lift ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%nfptot), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Calculate the lifting term.

Definition at line 119 of file scale_element_operation_tensorprod3D.F90.

◆ dxdydzlift()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::dxdydzlift ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%nfptot), intent(in) vec_in_lift,
real(rp), dimension(this%elem3d%np), intent(out) vec_out_dx,
real(rp), dimension(this%elem3d%np), intent(out) vec_out_dy,
real(rp), dimension(this%elem3d%np), intent(out) vec_out_dz,
real(rp), dimension(this%elem3d%np), intent(out) vec_out_lift )

Calculate the 3D gradient.

Definition at line 120 of file scale_element_operation_tensorprod3D.F90.

◆ div()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::div ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np,3), intent(in) vec_in,
real(rp), dimension(this%elem3d%nfptot), intent(in) vec_in_lift,
real(rp), dimension(this%elem3d%np,4), intent(out) vec_out )

Calculate the 3D divergence.

Parameters
vec_inArray storing flux data (Fx,Fy,Fz) at nodes that we apply the differential matrices Dx, Dy, and Dz, respectively
vec_in_liftArray storing surface flux data (Fs) at nodes that we apply the lifting operator
vec_outArray storing the resulting data (Dx Fx, Dy Fy, Dz Fz, Lift Fs)

Definition at line 121 of file scale_element_operation_tensorprod3D.F90.

◆ div_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::div_var5 ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np,3,5), intent(in) vec_in,
real(rp), dimension(this%elem3d%nfptot,5), intent(in) vec_in_lift,
real(rp), dimension(this%elem3d%np,4,5), intent(out) vec_out_d )

Calculate the 3D gradient applied for five variables.

Definition at line 122 of file scale_element_operation_tensorprod3D.F90.

◆ div_var5_2()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::div_var5_2 ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np,3,5), intent(in) vec_in,
real(rp), dimension(this%elem3d%np,3,5), intent(out) vec_out_d )

Calculate the 3D divergence applied for five variables.

Definition at line 123 of file scale_element_operation_tensorprod3D.F90.

◆ lift_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::lift_var5 ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%nfptot,5), intent(in) vec_in,
real(rp), dimension(this%elem3d%np,5), intent(out) vec_out )

Calculate the lifting term applied for five variables.

Definition at line 124 of file scale_element_operation_tensorprod3D.F90.

◆ vfilterpm1()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::vfilterpm1 ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Apply a vertical modal filter which a coefficient with the highest vertical mode is set to zero.

Definition at line 125 of file scale_element_operation_tensorprod3D.F90.

◆ setup_modalfilter()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::setup_modalfilter ( class(elementoperationtensorprod3d_p2), intent(inout) this,
real(rp), intent(in) mf_etac_h,
real(rp), intent(in) mf_alpha_h,
integer, intent(in) mf_order_h,
real(rp), intent(in) mf_etac_v,
real(rp), intent(in) mf_alpha_v,
integer, intent(in) mf_order_v )

Setup modal filter.

Definition at line 127 of file scale_element_operation_tensorprod3D.F90.

◆ setup_modalfilter_tracer()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::setup_modalfilter_tracer ( class(elementoperationtensorprod3d_p2), intent(inout) this,
real(rp), intent(in) mf_etac_h,
real(rp), intent(in) mf_alpha_h,
integer, intent(in) mf_order_h,
real(rp), intent(in) mf_etac_v,
real(rp), intent(in) mf_alpha_v,
integer, intent(in) mf_order_v )

Setup modal filter for tracer.

Definition at line 128 of file scale_element_operation_tensorprod3D.F90.

◆ modalfilter_tracer()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::modalfilter_tracer ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_work,
real(rp), dimension(this%elem3d%np), intent(out) vec_out )

Apply a modal filter for tracer variables.

Definition at line 129 of file scale_element_operation_tensorprod3D.F90.

◆ modalfilter_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::modalfilter_var5 ( class(elementoperationtensorprod3d_p2), intent(in) this,
real(rp), dimension(this%elem3d%np,5), intent(in) vec_in,
real(rp), dimension(this%elem3d%np), intent(out) vec_work,
real(rp), dimension(this%elem3d%np,5), intent(out) vec_out )

Apply a modal filter for five variables.

Definition at line 130 of file scale_element_operation_tensorprod3D.F90.

Member Data Documentation

◆ d1d

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::d1d

Definition at line 100 of file scale_element_operation_tensorprod3D.F90.

100 real(RP) :: D1D(3,3)

◆ d1d_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::d1d_tr

Definition at line 101 of file scale_element_operation_tensorprod3D.F90.

101 real(RP) :: D1D_tr(3,3)

◆ lift_mat

real(rp), dimension(3,3,3,6) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::lift_mat

Definition at line 102 of file scale_element_operation_tensorprod3D.F90.

102 real(RP) :: Lift_mat(3,3,3,6)

◆ lift_mat_tr

real(rp), dimension(3,3,3,6) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::lift_mat_tr

Definition at line 103 of file scale_element_operation_tensorprod3D.F90.

103 real(RP) :: Lift_mat_tr(3,3,3,6)

◆ intrpmat_vpordm1_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::intrpmat_vpordm1_tr

Definition at line 104 of file scale_element_operation_tensorprod3D.F90.

104 real(RP) :: IntrpMat_VPOrdM1_tr(3,3)

◆ mfilter_h1d

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_h1d

Definition at line 106 of file scale_element_operation_tensorprod3D.F90.

106 real(RP) :: MFilter_h1D(3,3)

◆ mfilter_h1d_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_h1d_tr

Definition at line 107 of file scale_element_operation_tensorprod3D.F90.

107 real(RP) :: MFilter_h1D_tr(3,3)

◆ mfilter_v1d_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_v1d_tr

Definition at line 108 of file scale_element_operation_tensorprod3D.F90.

108 real(RP) :: MFilter_v1D_tr(3,3)

◆ mfilter_tracer_h1d

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_tracer_h1d

Definition at line 110 of file scale_element_operation_tensorprod3D.F90.

110 real(RP) :: MFilter_tracer_h1D(3,3)

◆ mfilter_tracer_h1d_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_tracer_h1d_tr

Definition at line 111 of file scale_element_operation_tensorprod3D.F90.

111 real(RP) :: MFilter_tracer_h1D_tr(3,3)

◆ mfilter_tracer_v1d_tr

real(rp), dimension(3,3) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p2::mfilter_tracer_v1d_tr

Definition at line 112 of file scale_element_operation_tensorprod3D.F90.

112 real(RP) :: MFilter_tracer_v1D_tr(3,3)

The documentation for this type was generated from the following file: