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

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

Inheritance diagram for scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3:
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(4, 4) d1d
real(rp), dimension(4, 4) d1d_tr
real(rp), dimension(4, 4, 4, 6) lift_mat
real(rp), dimension(4, 4, 4, 6) lift_mat_tr
real(rp), dimension(4, 4) intrpmat_vpordm1_tr
real(rp), dimension(4, 4) mfilter_h1d
real(rp), dimension(4, 4) mfilter_h1d_tr
real(rp), dimension(4, 4) mfilter_v1d_tr
real(rp), dimension(4, 4) mfilter_tracer_h1d
real(rp), dimension(4, 4) mfilter_tracer_h1d_tr
real(rp), dimension(4, 4) 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=3.

Definition at line 133 of file scale_element_operation_tensorprod3D.F90.

Member Function/Subroutine Documentation

◆ init()

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

Initialization.

Definition at line 148 of file scale_element_operation_tensorprod3D.F90.

◆ final()

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

Finalization.

Definition at line 149 of file scale_element_operation_tensorprod3D.F90.

◆ dx()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::dx ( class(elementoperationtensorprod3d_p3), 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 150 of file scale_element_operation_tensorprod3D.F90.

◆ dy()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::dy ( class(elementoperationtensorprod3d_p3), 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 151 of file scale_element_operation_tensorprod3D.F90.

◆ dz()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::dz ( class(elementoperationtensorprod3d_p3), 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 152 of file scale_element_operation_tensorprod3D.F90.

◆ lift()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::lift ( class(elementoperationtensorprod3d_p3), 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 153 of file scale_element_operation_tensorprod3D.F90.

◆ dxdydzlift()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::dxdydzlift ( class(elementoperationtensorprod3d_p3), 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 154 of file scale_element_operation_tensorprod3D.F90.

◆ div()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::div ( class(elementoperationtensorprod3d_p3), 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 155 of file scale_element_operation_tensorprod3D.F90.

◆ div_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::div_var5 ( class(elementoperationtensorprod3d_p3), 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 156 of file scale_element_operation_tensorprod3D.F90.

◆ div_var5_2()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::div_var5_2 ( class(elementoperationtensorprod3d_p3), 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 157 of file scale_element_operation_tensorprod3D.F90.

◆ lift_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::lift_var5 ( class(elementoperationtensorprod3d_p3), 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 158 of file scale_element_operation_tensorprod3D.F90.

◆ vfilterpm1()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::vfilterpm1 ( class(elementoperationtensorprod3d_p3), 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 159 of file scale_element_operation_tensorprod3D.F90.

◆ setup_modalfilter()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::setup_modalfilter ( class(elementoperationtensorprod3d_p3), 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 161 of file scale_element_operation_tensorprod3D.F90.

◆ setup_modalfilter_tracer()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::setup_modalfilter_tracer ( class(elementoperationtensorprod3d_p3), 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 162 of file scale_element_operation_tensorprod3D.F90.

◆ modalfilter_tracer()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::modalfilter_tracer ( class(elementoperationtensorprod3d_p3), 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 163 of file scale_element_operation_tensorprod3D.F90.

◆ modalfilter_var5()

procedure, public scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::modalfilter_var5 ( class(elementoperationtensorprod3d_p3), 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 164 of file scale_element_operation_tensorprod3D.F90.

Member Data Documentation

◆ d1d

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::d1d

Definition at line 134 of file scale_element_operation_tensorprod3D.F90.

134 real(RP) :: D1D(4,4)

◆ d1d_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::d1d_tr

Definition at line 135 of file scale_element_operation_tensorprod3D.F90.

135 real(RP) :: D1D_tr(4,4)

◆ lift_mat

real(rp), dimension(4,4,4,6) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::lift_mat

Definition at line 136 of file scale_element_operation_tensorprod3D.F90.

136 real(RP) :: Lift_mat(4,4,4,6)

◆ lift_mat_tr

real(rp), dimension(4,4,4,6) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::lift_mat_tr

Definition at line 137 of file scale_element_operation_tensorprod3D.F90.

137 real(RP) :: Lift_mat_tr(4,4,4,6)

◆ intrpmat_vpordm1_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::intrpmat_vpordm1_tr

Definition at line 138 of file scale_element_operation_tensorprod3D.F90.

138 real(RP) :: IntrpMat_VPOrdM1_tr(4,4)

◆ mfilter_h1d

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_h1d

Definition at line 140 of file scale_element_operation_tensorprod3D.F90.

140 real(RP) :: MFilter_h1D(4,4)

◆ mfilter_h1d_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_h1d_tr

Definition at line 141 of file scale_element_operation_tensorprod3D.F90.

141 real(RP) :: MFilter_h1D_tr(4,4)

◆ mfilter_v1d_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_v1d_tr

Definition at line 142 of file scale_element_operation_tensorprod3D.F90.

142 real(RP) :: MFilter_v1D_tr(4,4)

◆ mfilter_tracer_h1d

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_tracer_h1d

Definition at line 144 of file scale_element_operation_tensorprod3D.F90.

144 real(RP) :: MFilter_tracer_h1D(4,4)

◆ mfilter_tracer_h1d_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_tracer_h1d_tr

Definition at line 145 of file scale_element_operation_tensorprod3D.F90.

145 real(RP) :: MFilter_tracer_h1D_tr(4,4)

◆ mfilter_tracer_v1d_tr

real(rp), dimension(4,4) scale_element_operation_tensorprod3d::elementoperationtensorprod3d_p3::mfilter_tracer_v1d_tr

Definition at line 146 of file scale_element_operation_tensorprod3D.F90.

146 real(RP) :: MFilter_tracer_v1D_tr(4,4)

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