Setup experimental geometry from Georgies paper. i.e a glass bottle with contents
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(toml_table), | intent(inout) | :: | dict |
function setup_exp(dict) result(array) !! Setup experimental geometry from Georgies paper. i.e a glass bottle with contents use sdfs, only : sdf, box, cylinder!, subtraction use sdfHelpers, only : rotate_y, translate use utils, only : deg2rad use vector_class, only : vector use mat_class, only : invert use opticalProperties, only : mono, opticalProp_t type(toml_table), intent(inout) :: dict type(sdf), allocatable :: array(:) type(opticalProp_t) :: opt(3) type(vector) :: a, b real(kind=wp) :: n, optprop(5) error stop "add model and subtraction here" call get_value(dict, "musb", optprop(1)) call get_value(dict, "muab", optprop(2)) call get_value(dict, "musc", optprop(3)) call get_value(dict, "muac", optprop(4)) call get_value(dict, "hgg", optprop(5)) n = 1._wp opt(1) = mono(optprop(1), optprop(2), optprop(5), 1.5_wp) opt(2) = mono(optprop(3), optprop(4), optprop(5), 1.3_wp) a = vector(-10._wp, 0._wp, 0._wp) b = vector(10._wp, 0._wp, 0._wp) !bottle array(2) = cylinder(a, b, 1.75_wp, opt(1), 2) ! contents array(1) = cylinder(a, b, 1.55_wp, opt(2), 1) ! t = invert(translate(vector(0._wp, 0._wp, -5._wp+1.75_wp))) ! slab = box(vector(10._wp, 10._wp, 10._wp), optprop(3), optprop(4), optprop(5), 1.3_wp, 1, transform=t) opt(3) = mono(0.0_wp, 0.0_wp, 0.0_wp, n) array(3) = box(vector(4._wp, 4._wp, 4._wp), opt(3), 2) end function setup_exp