This is a collection of macros that are used to model the effects of a flat plate sample in transmission, either in asymmetric or symmetric geometry.
There is a (nice) overview of their application in [1]. The required equations for reflection and capillary geometry are also reviewed, as are preferred orientation issues.
Contributor: Matthew Rowles
These are probably the macros you'll actually put in your input files. They have all of the commonly used corrections.
''master macro to encapsulate all asymmetric transmission corrections in a single macro macro Asymmetric_Transmission(omega, omega_v, beam, beam_v, sd, sd_v, mu, mu_v, t, t_v) { Asymmetric_Transmission_Intensity_Correction(omega, omega_v, mu, mu_v, t, t_v) Asymmetric_Transmission_Absorption_Correction(omega, omega_v, mu, mu_v, t, t_v) Asymmetric_Transmission_Parallel_Footprint_Correction(omega, omega_v, beam, beam_v) Asymmetric_Transmission_Specimen_Displacement(omega, omega_v, sd, sd_v) }
''master macro to encapsulate all symmetric transmission corrections in a single macro macro Symmetric_Transmission(beam, beam_v, sd, sd_v, mu, mu_v, t, t_v) { Symmetric_Transmission_Intensity_Correction(mu, mu_v, t, t_v) Symmetric_Transmission_Absorption_Correction(t, t_v) Symmetric_Transmission_Parallel_Footprint_Correction(beam, beam_v) Symmetric_Transmission_Specimen_Displacement(sd, sd_v) }
These are the macros that actually do the maths.
''Intensity correction in asymmetric transmission - equation 22 macro Asymmetric_Transmission_Intensity_Correction(omega, omega_v, mu, mu_v, t, t_v) { #m_argu omega ''in degrees #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique beta = (180 - ((2 Th) Rad + CeV(omega, omega_v))); '' in degrees prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency scale_pks = 2 Exp(-mu_s CeV(t, t_v) / Sin(beta Deg)) (Sin(beta Deg) / (Sin(CeV(omega, omega_v) Deg) - Sin(beta Deg))) (Exp(-mu_s CeV(t, t_v) (Sin(beta Deg) - Sin(CeV(omega, omega_v) Deg)) / (Sin(CeV(omega, omega_v) Deg) Sin(beta Deg))) - 1); }
''Intensity correction in symmetric transmission - equation 24 macro Symmetric_Transmission_Intensity_Correction(mu, mu_v, t, t_v) { #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency scale_pks = (2 mu_s CeV(t, t_v) Exp(-mu_s CeV(t, t_v) / Cos(Th))) / Cos(Th); }
''Relative intensity scaling for buried layers in asymmetric transmission geometry -- Equation 25 macro Asymmetric_Transmission_Intensity_Correction_for_prelayers(omega, omega_v, mu, mu_v, t, t_v) { #m_argu omega ''in degrees #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency scale_pks = Exp((-mu_s CeV(t, t_v)) / Sin(CeV(omega, omega_v) Deg)) ; }
''Relative intensity scaling for buried layers in asymmetric transmission geometry -- Equation 26 macro Asymmetric_Transmission_Intensity_Correction_for_postlayers(omega, omega_v, mu, mu_v, t, t_v) { #m_argu omega ''in degrees #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique beta = (180 - ((2 Th) Rad + CeV(omega, omega_v))); '' in degrees prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency scale_pks = Exp((-mu_s CeV(t, t_v)) / Sin(beta Deg) ; }
''Relative intensity scaling for buried layers in symmetric transmission geometry -- implied from Equation 25 & 26 macro Symmetric_Transmission_Intensity_Correction_for_prepostlayers(omega, omega_v, mu, mu_v, t, t_v) { #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency scale_pks = Exp((-mu_s CeV(t, t_v)) / Cos(Th)) ; }
''Line profile correction due to absorption in asymmetric transmission - equation 36 macro Asymmetric_Transmission_Absorption_Correction(omega, omega_v, mu, mu_v, t, t_v) { #m_argu omega ''in degrees #m_argu mu ''in cm^-1 #m_argu t ''in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(mu, mu_v, min 3 max 500) If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique beta = (180 - ((2 Th) Rad + CeV(omega, omega_v))); '' in degrees prm #m_unique mu_s = CeV(mu, mu_v) / 10; ''converts cm^-1 --> mm^-1 for dimensional consistency prm #m_unique g = Exp(-mu_s ((X Rs/Sin(2 Th) Deg (Sin(CeV(omega, omega_v) Deg)/Sin(beta Deg) - 1) + (ts/Sin(beta Deg)))); user_defined_convolution =g; ''convolutions are automatically normalised min =(-CeV(t, t_v)/Rs) (Sin2 Th)/Sin(CeV(omega, omega_v) Deg)) Rad; max 0 }
''Line profile correction due to absorption in symmetric transmission - equation 37 macro Symmetric_Transmission_Absorption_Correction(t, t_v) { #m_argu t ''in mm If_Prm_Eqn_Rpt(t, t_v, min 0.001 max 5) prm #m_unique eps_min = (-2 CeV(t, t_v)/Rs) Sin(Th) Rad; user_defined_convolution = -1/eps_min; min =eps_min; max 0 }
''Line profile correction due to footprint in asymetric transmission - equation 38 macro Asymmetric_Transmission_Parallel_Footprint_Correction(omega, omega_v, beam, beam_v) { #m_argu omega ''in degrees #m_argu beam ''height in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(beam, beam_v, min 0.001 max 5) prm #m_unique beta = (180 - ((2 Th) Rad + CeV(omega, omega_v))); '' in degrees hat = ((CeV(beam, beam_v) Sin(beta Deg)) / (Rs Sin(CeV(omega, omega_v) Deg))) Rad; }
''Line profile correction due to footprint in symetric transmission - implied by equation 38 macro Symmetric_Transmission_Parallel_Footprint_Correction(beam, beam_v) { #m_argu beam ''height in mm If_Prm_Eqn_Rpt(beam, beam_v, min 0.001 max 5) hat = (CeV(beam, beam_v)/ Rs) Rad; }
''Specimen displacement in asymmetric transmission -- equation 39 macro Asymmetric_Transmission_Specimen_Displacement(omega, omega_v, sd, sd_v) { #m_argu omega '' degrees #m_argu sd ''displacement of the sample in mm If_Prm_Eqn_Rpt(omega, omega_v, min 0.0001 max 90) If_Prm_Eqn_Rpt(sd, sd_v, min -2 max 2) th2_offset = (CeV(sd, sd_v) / Rs) (Sin(2 Th)/Sin(CeV(omega, omega_v) Deg)) Rad; }
''Specimen displacement in symmetric transmission -- equation 40 macro Symmetric_Transmission_Specimen_Displacement(sd, sd_v) { #m_argu sd ''displacement of the sample in mm If_Prm_Eqn_Rpt(sd, sd_v, min -2 max 2) th2_offset = (CeV(sd, sd_v) / Rs) (2 Sin(Th)) Rad; }