tem_param_module Module

Parameter lists for Treelm

This module holds the numbering of elements and subelements acoording to the treelm numbering (Morton-curve).


Uses

  • module~~tem_param_module~~UsesGraph module~tem_param_module tem_param_module module~env_module env_module module~tem_param_module->module~env_module module~aotus_module aotus_module module~env_module->module~aotus_module module~flu_binding flu_binding module~env_module->module~flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env mpi mpi module~env_module->mpi

Used by

  • module~~tem_param_module~~UsedByGraph module~tem_param_module tem_param_module module~tem_spacetime_var_module tem_spacetime_var_module module~tem_spacetime_var_module->module~tem_param_module module~tem_pmllayer_module tem_pmlLayer_module module~tem_pmllayer_module->module~tem_param_module module~tem_bc_prop_module tem_bc_prop_module module~tem_bc_prop_module->module~tem_param_module module~tem_intersection_module tem_intersection_module module~tem_intersection_module->module~tem_param_module module~tem_vrtx_module tem_vrtx_module module~tem_vrtx_module->module~tem_param_module module~tem_construction_module tem_construction_module module~tem_construction_module->module~tem_param_module module~tem_ic_predefs_module tem_ic_predefs_module module~tem_ic_predefs_module->module~tem_param_module module~tem_cylinder_module tem_cylinder_module module~tem_cylinder_module->module~tem_param_module module~tem_miescatter_module tem_miescatter_module module~tem_miescatter_module->module~tem_param_module module~tem_heaviside_gibbs_fun_module tem_heaviside_gibbs_fun_module module~tem_heaviside_gibbs_fun_module->module~tem_param_module module~tem_temporal_module tem_temporal_module module~tem_temporal_module->module~tem_param_module module~tem_stencil_module tem_stencil_module module~tem_stencil_module->module~tem_param_module module~tem_miescatter_module~2 tem_miescatter_module module~tem_miescatter_module~2->module~tem_param_module module~tem_rotation_module tem_rotation_module module~tem_rotation_module->module~tem_param_module module~tem_geometry_module tem_geometry_module module~tem_geometry_module->module~tem_param_module module~tem_face_module tem_face_module module~tem_face_module->module~tem_param_module module~tem_matrix_module tem_matrix_module module~tem_matrix_module->module~tem_param_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_param_module module~tem_spongelayer_module tem_spongeLayer_module module~tem_spongelayer_module->module~tem_param_module

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: c_x =1
integer, public, parameter:: c_y =2
integer, public, parameter:: c_z =3
integer, public, parameter:: qQQQ =26

Neighboring convention

integer, public, parameter:: q__W =1
integer, public, parameter:: q__S =2
integer, public, parameter:: q__B =3
integer, public, parameter:: q__E =4
integer, public, parameter:: q__N =5
integer, public, parameter:: q__T =6
integer, public, parameter:: q_BS =7
integer, public, parameter:: q_TS =8
integer, public, parameter:: q_BN =9
integer, public, parameter:: q_TN =10
integer, public, parameter:: q_BW =11
integer, public, parameter:: q_BE =12
integer, public, parameter:: q_TW =13
integer, public, parameter:: q_TE =14
integer, public, parameter:: q_SW =15
integer, public, parameter:: q_NW =16
integer, public, parameter:: q_SE =17
integer, public, parameter:: q_NE =18
integer, public, parameter:: qBSW =19
integer, public, parameter:: qBSE =20
integer, public, parameter:: qBNW =21
integer, public, parameter:: qBNE =22
integer, public, parameter:: qTSW =23
integer, public, parameter:: qTSE =24
integer, public, parameter:: qTNW =25
integer, public, parameter:: qTNE =26
integer, public, parameter:: qN00 =1
integer, public, parameter:: q0N0 =2
integer, public, parameter:: q00N =3
integer, public, parameter:: q100 =4
integer, public, parameter:: q010 =5
integer, public, parameter:: q001 =6
integer, public, parameter:: q0NN =7
integer, public, parameter:: q0N1 =8
integer, public, parameter:: q01N =9
integer, public, parameter:: q011 =10
integer, public, parameter:: qN0N =11
integer, public, parameter:: q10N =12
integer, public, parameter:: qN01 =13
integer, public, parameter:: q101 =14
integer, public, parameter:: qNN0 =15
integer, public, parameter:: qN10 =16
integer, public, parameter:: q1N0 =17
integer, public, parameter:: q110 =18
integer, public, parameter:: qNNN =19
integer, public, parameter:: qNN1 =20
integer, public, parameter:: qN1N =21
integer, public, parameter:: qN11 =22
integer, public, parameter:: q1NN =23
integer, public, parameter:: q1N1 =24
integer, public, parameter:: q11N =25
integer, public, parameter:: q111 =26
integer, public, parameter:: q000 =27
integer, public, parameter, dimension(qQQQ):: qInvDir =(/q__E, q__N, q__T, q__W, q__S, q__B, q_TN, q_BN, q_TS, q_BS, q_TE, q_TW, q_BE, q_BW, q_NE, q_SE, q_NW, q_SW, qTNE, qTNW, qTSE, qTSW, qBNE, qBNW, qBSE, qBSW/)
integer, public, parameter, dimension(qQQQ):: qDir =(/q__W, q__S, q__B, q__E, q__N, q__T, q_BS, q_TS, q_BN, q_TN, q_BW, q_BE, q_TW, q_TE, q_SW, q_NW, q_SE, q_NE, qBSW, qBSE, qBNW, qBNE, qTSW, qTSE, qTNW, qTNE/)
integer, public, parameter:: qAxis(6) =[1, 2, 3, 1, 2, 3]

mapping the first six neihbor directions to x, y, z (1,2,3)

integer, public, parameter, dimension(qQQQ,3):: qOffset =reshape((/-1, 0, 0, 1, 0, 0, 0, 0, 0, 0, -1, +1, -1, +1, -1, -1, +1, +1, -1, +1, -1, +1, -1, +1, -1, +1, 0, -1, 0, 0, 1, 0, -1, -1, +1, +1, 0, 0, 0, 0, -1, +1, -1, +1, -1, -1, +1, +1, -1, -1, +1, +1, 0, 0, -1, 0, 0, 1, -1, +1, -1, +1, -1, -1, +1, +1, 0, 0, 0, 0, -1, -1, -1, -1, +1, +1, +1, +1/), (/qQQQ, 3/))

Spatial offset according to the directions above for q__W, ...

character(len=3), public, parameter:: qDirName(qQQQ) =['  W', '  S', '  B', '  E', '  N', '  T', ' BS', ' TS', ' BN', ' TN', ' BW', ' BE', ' TW', ' TE', ' SW', ' NW', ' SE', ' NE', 'BSW', 'BSE', 'BNW', 'BNE', 'TSW', 'TSE', 'TNW', 'TNE']

direction names of q__W, ... very useful for debuggin

character, public, parameter, dimension(q000):: qOffset_inChar =(/achar(20), achar(17), achar(5), achar(22), achar(25), achar(37), achar(1), achar(33), achar(9), achar(41), achar(4), achar(6), achar(36), achar(38), achar(16), achar(24), achar(18), achar(26), achar(0), achar(2), achar(8), achar(10), achar(32), achar(34), achar(40), achar(42), achar(21)/)

Offset character bit to encode qOffset offset_bit = achar((qOffset(1)+1) + (qOffset(2)+1)4 + (qOffset(3)+1)16) Bit can be converted back to qOffset using qOffset(1) = mod(ichar(offset_bit),4) - 1 qOffset(2) = mod(ichar(offset_bit),16)/4 - 1 qOffset(3) = ichar(offset_bit)/16 - 1

integer, public, parameter, dimension(8,3):: childPosition =reshape((/-1, +1, -1, +1, -1, +1, -1, +1, -1, -1, +1, +1, -1, -1, +1, +1, -1, -1, -1, -1, 1, 1, 1, 1/), (/8, 3/))

Spatial position of the child relative to the parent barycenter in integer coordinates

integer, public, parameter, dimension(8,3):: childCoord =reshape((/0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1/), (/8, 3/))

Coordinates of children starting in the lower, left, bottom corner. This ordering follows the Z-curve

integer, public, parameter, dimension(3,3,8):: tem_rotationMatrix =reshape((/0, -1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1/), (/3, 3, 8/))
integer, public, parameter, dimension(7,3):: parentNeighbor =reshape((/1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0/), (/7, 3/))
integer, public, parameter, dimension(8):: vtk8_vrtxMap =(/1, 2, 4, 3, 5, 6, 8, 7/)
integer, public, parameter, dimension(20):: vtk20_vrtxMap =(/1, 2, 6, 5, 3, 4, 8, 7, 9, 15, 17, 13, 12, 16, 20, 14, 10, 11, 19, 18/)
integer, public, parameter:: prp_state =0
integer, public, parameter:: prp_density =1
integer, public, parameter:: prp_pressure =2
integer, public, parameter:: prp_wss =3
integer, public, parameter:: prp_velMag =10
integer, public, parameter:: prp_velX =11
integer, public, parameter:: prp_velY =12
integer, public, parameter:: prp_velZ =13
real(kind=rk), public, parameter:: PI =3.14159265358979323846_rk

constant PI value

real(kind=rk), public, parameter:: cs =0.57735026918962576451_rk

the speed of sound cs in various ways

real(kind=rk), public, parameter:: csInv =1.73205080756887729352_rk
real(kind=rk), public, parameter:: cs2inv =3._rk
real(kind=rk), public, parameter:: cs2 =1._rk/3._rk
real(kind=rk), public, parameter:: cs4 =1._rk/9._rk
real(kind=rk), public, parameter:: t2cs4inv =4.5_rk
real(kind=rk), public, parameter:: t2cs2inv =1.5_rk
real(kind=rk), public, parameter:: cs4inv =9._rk
real(kind=rk), public, parameter:: cs6inv =27._rk
real(kind=rk), public, parameter:: cs8inv =81._rk
real(kind=rk), public, parameter:: cs10inv =243._rk
real(kind=rk), public, parameter:: cs12inv =729._rk
real(kind=rk), public, parameter:: rho0 =1._rk
real(kind=rk), public, parameter:: rho0Inv =1._rk/rho0
real(kind=rk), public, parameter:: sqrt2 =1.4142135623731_rk
real(kind=rk), public, parameter:: divSqrt2_2 =0.707106781186548_rk
real(kind=rk), public, parameter:: sqrt3 =1.73205080756887729352_rk
real(kind=rk), public, parameter:: two_sqrt2 =2._rk*sqrt2
real(kind=rk), public, parameter:: div1_2 =1._rk/2._rk
real(kind=rk), public, parameter:: div1_3 =1._rk/3._rk
real(kind=rk), public, parameter:: div1_4 =1._rk/4._rk
real(kind=rk), public, parameter:: div1_6 =1._rk/6._rk
real(kind=rk), public, parameter:: div1_7 =1._rk/7._rk
real(kind=rk), public, parameter:: div1_8 =1._rk/8._rk
real(kind=rk), public, parameter:: div1_9 =1._rk/9._rk
real(kind=rk), public, parameter:: div1_12 =1._rk/12._rk
real(kind=rk), public, parameter:: div1_16 =1._rk/16._rk
real(kind=rk), public, parameter:: div1_18 =1._rk/18._rk
real(kind=rk), public, parameter:: div1_21 =1._rk/21._rk
real(kind=rk), public, parameter:: div1_24 =1._rk/24._rk
real(kind=rk), public, parameter:: div1_27 =1._rk/27._rk
real(kind=rk), public, parameter:: div1_36 =1._rk/36._rk
real(kind=rk), public, parameter:: div1_42 =1._rk/42._rk
real(kind=rk), public, parameter:: div1_48 =1._rk/48._rk
real(kind=rk), public, parameter:: div1_54 =1._rk/54._rk
real(kind=rk), public, parameter:: div1_72 =1._rk/72._rk
real(kind=rk), public, parameter:: div1_108 =1._rk/108._rk
real(kind=rk), public, parameter:: div1_216 =1._rk/216._rk
real(kind=rk), public, parameter:: div2_3 =2._rk/3._rk
real(kind=rk), public, parameter:: div2_8 =2._rk/8._rk
real(kind=rk), public, parameter:: div2_9 =2._rk/9._rk
real(kind=rk), public, parameter:: div2_27 =2._rk/27._rk
real(kind=rk), public, parameter:: div4_3 =4._rk/3._rk
real(kind=rk), public, parameter:: div4_9 =4._rk/9._rk
real(kind=rk), public, parameter:: div4_21 =4._rk/21._rk
real(kind=rk), public, parameter:: div4_27 =4._rk/27._rk
real(kind=rk), public, parameter:: div3_2 =3._rk/2._rk
real(kind=rk), public, parameter:: div3_4 =3._rk/4._rk
real(kind=rk), public, parameter:: div3_4h =3._rk/4.5_rk
real(kind=rk), public, parameter:: div3_7 =3._rk/7._rk
real(kind=rk), public, parameter:: div3_8 =3._rk/8._rk
real(kind=rk), public, parameter:: div3_16 =3._rk/16._rk
real(kind=rk), public, parameter:: div5_9 =5._rk/9._rk
real(kind=rk), public, parameter:: div5_21 =5._rk/21._rk
real(kind=rk), public, parameter:: div5_42 =5._rk/42._rk
real(kind=rk), public, parameter:: div8_3 =8._rk/3._rk
real(kind=rk), public, parameter:: div8_7 =8._rk/7._rk
real(kind=rk), public, parameter:: div8_27 =8._rk/27._rk
real(kind=rk), public, parameter:: div9_16 =9._rk/16._rk