Parameter lists for Treelm
This module holds the numbering of elements and subelements acoording to the treelm numbering (Morton-curve).
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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(len=1), | 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 |