예제 #1
0
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