def modelSourceVolume(): """Model source volume Source volume model of the laboratory situation described in Refs. [1,2]. Args: None Returns: (x,y,z) (3-tuple, numpy array, ndim=1): 1D coordinate grids. (x0,y0,z0) (2-tuple, floats): x and y center position of ISP symmetry axis and z position of absorbing layer. roi (numpy array, ndim=3): computational region of interest containing absorbed energy density in units (J/m^3). Note: Used units are: mu (cm^-1) and F0 (J/cm^2), hence after beam propagation one yields roi (J/cm^3 = 10^6 J/m^3). Output is adjusted to roi in units (J/m^3). The parameters used for the flat-top beam profile and the irradiated fluence are taken from Ref. [2]. Refs: [1] Light distribution measurement sin absorbing materials by optical detection of laser-induced stress waves Paltauf, G and Schmidt-Kloiber, H and Guss, H Appl. Phys. Lett. 69 (1996) 1526 [2] Measurement of laser-induced acoustic waves with a calibrated optical transducer Paltauf, G and Schmidt-Kloiber, H J. Appl. Phys. 82 (1997) 1525 """ # SOURCE VOLUME PARS -------------------------------------------------- xMax, Nx = 0.6, 600 # bdry, meshpts: x-axis yMax, Ny = 0.6, 600 # bdry, meshpts: y-axis zMax, Nz = 0.6, 200 # bdry, meshpts: z-axis # ABSORBING LAYER PARS ------------------------------------------------ z0, dz = 0.0, 0.6 # start, width of absorbing layer mu = 24.0 # absorption coeffiecient # FLAT TOP BEAM PROFILE PARS ----------------------------------------- x0, y0 = xMax / 2, yMax / 2 # x,y pos of symmetry axis fta, ftr = float(sys.argv[1]), 4.5 # radius, radius/edge width ratio f0 = 0.18 # incident fluence (J/cm^2) # SET OPTICAL PROPERTIES OF SOURCE VOLUME ----------------------------- (x, y, z), roi = sv.setROI((xMax, yMax, zMax), (Nx, Ny, Nz)) sv.addAbsorbingLayer(((x, y, z), roi), z0, dz, mu) # CHOOSE ISP AND PROPAGATE BEAM --------------------------------------- iProf = f0 * isp.flatTop((x, y), (x0, y0), fta, ftr) sv.propagateBeam((z, roi), iProf) # roi in units (J/cm^3 = 10^6 J/m^3). Scale output to (J/m^3). return (x, y, z), (x0, y0, z0), roi * 10**6
def modelSourceVolume(): """Model source volume Source volume model of the laboratory situation underlying Figs. 8(a,b) in Ref. [1], Section IV.B on far field measurements. Args: ma (float): absorption coefficient in (cm^-1). ftd (float): diameter of flat-top ISP in (cm) Returns: (x,y,z) (3-tuple, numpy array, ndim=1): 1D coordinate grids. (x0,y0,z0) (2-tuple, floats): x and y center position of ISP symmetry axis and z position of absorbing layer. roi (numpy array, ndim=3): computational region of interest containing absorbed energy density in units (J/m^3). Note: Used units are: mu (cm^-1) and F0 (J/cm^2), hence after beam propagation one yields roi (J/cm^3 = 10^6 J/m^3). Output is adjusted to roi in units (J/m^3). The parameters used for the flat-top beam profile and the irradiated fluence are adjusted to reproduce the experimental data displayed in Fig. 8 of Ref. [1]. Refs: [1] Pulsed optoacoustic characterization of layered media Paltauf, G and Schmidt-Kloiber, H J. Appl. Phys. 88 (2000) 1624 """ # SOURCE VOLUME PARS -------------------------------------------------- #xMax, Nx = 1.0, 900 # bdry, meshpts: x-axis #yMax, Ny = 1.0, 900 # bdry, meshpts: y-axis #zMax, Nz = 1.0, 300 # bdry, meshpts: z-axis xMax, Nx = 1.0, 900 # bdry, meshpts: x-axis yMax, Ny = 1.0, 900 # bdry, meshpts: y-axis zMax, Nz = 1.0, 263 # bdry, meshpts: z-axis # ABSORBING LAYER PARS ------------------------------------------------ z0, dz = 0.0, 1.0 # start, width of absorbing layer # FLAT TOP BEAM PROFILE PARS ----------------------------------------- x0, y0 = xMax / 2, yMax / 2 # x,y pos of symmetry axis fta, ftR = 0.1, 2. # radius, edge width f0 = 1.0 # incident fluence (J/cm^2) # SET OPTICAL PROPERTIES OF SOURCE VOLUME ----------------------------- ma = 24.0 # absorption coeficcient (x, y, z), roi = sv.setROI((xMax, yMax, zMax), (Nx, Ny, Nz)) sv.addAbsorbingLayer(((x, y, z), roi), z0, dz, ma) # CHOOSE ISP AND PROPAGATE BEAM --------------------------------------- iProf = f0 * isp.flatTop((x, y), (x0, y0), fta, ftR) sv.propagateBeam((z, roi), iProf) # roi in units (J/cm^3 = 10^6 J/m^3). Scale output to (J/m^3). return (x, y, z), (x0, y0, z0), roi * 10**6