|
Diffractive Optical Elements.
The various surfaces within the Geometric-Optical_System (GEOP) option of DIFFRACT™ may now be coated with Diffractive Optical Elements (DOEs). In previous versions, a Glass surface could be specified as bare or antireflection coated. In the new version, a Glass surface, be it Flat, Spherical, Conical, Aspherical, Cylindrical, or Axiconal, may be specified as Bare, Antireflection-coated, or Coated with DOE. The new command line in the command.dat file is Mirror surfaces can now be coated with Diffractive Optical Elements as well. In previous versions, a Mirror surface, whether Flat, Spherical, Conical, Aspherical, Cylindrical, or Axiconal, was characterized by its complex refractive index (n, k), which determined the Fresnel reflection coefficients of the surface. If both n and k were set to zero, the Mirror was understood to be a perfect reflector. In the new version, a Mirror surface can be Bare, Perfect Reflector (PR), or Coated with DOE. The following (new) command line appears in the command.dat file: When the DOE coating option is chosen for Glass and Mirror surfaces, the user is prompted for the various characteristics of the DOE. These include the construction wavelength λc, the desired diffracted order m, and the polynomial coefficients of the phase function encoded by the DOE. If the operating wavelength λo happens to be identical with the construction wavelength λc, the +1st diffracted order (i.e., m = +1) will have 100% efficiency while all other orders vanish. For λo ≠ λc, however, the user may choose values of m other than +1. In general, the DOE phase profile is centered at the vertex of the corresponding surface and is specified in terms of a circularly symmetric polynomial F(r), where r is the radial distance from the center in the plane that is tangent to the surface at its vertex. In the special case of a Flat surface, the user is given the option to specify the phase polynomial as F(x, y), where x and y are Cartesian coordinates in the plane of the Flat surface. The orientation of the xy-plane of the Flat surface relative to the xyz-coordinates of incidence may also be specified by the user. Higher-order Aspheric Coefficients.
In previous versions of DIFFRACT™, the sag polynomials for Aspheric Glass and Mirror surfaces within the Geometric-Optical_System (GEOP) option could be specified with coefficients up to the 12th order. In version 8.4 these polynomials are specified with 21 coefficients. In the command.dat file, therefore, after the line Surface Arrangement Analysis within the GEOP Option. DIFFRACT™ 8.4 conducts an automatic analysis of the Geometric-Optical Systems defined under the GEOP option. Since each surface, depending on whether it is hit or missed by incoming rays, can lead to two other surfaces, the number of possible paths through the system can be enormous. DIFFRACT™ conducts a complete search through the configuration space, finds all admissible paths, and determines their logical consistency. The user is then provided with a list of admissible paths and informed of any logical inconsistencies that might exist. Power content of the beam. In previous versions of DIFFRACT™ the total optical power of the beam was initially set to unity. Passage of this beam through an optical system would then cause its power to decline as the beam went through various lossy elements. The user could keep track of the total optical power by monitoring the values of XPOWER and YPOWER (corresponding to the x- and y-components of polarization), regularly displayed in the table above the main menu. Since the optical power was dimensionless, the beam intensity was similarly normalized and displayed in units of 1/λ² where λ=λo/NVIRON was the wavelength of the light beam within its environment. In Version 8.4, the user specifies at the outset the power of the beam in units of milliwatts. The values of XPOWER and YPOWER (as well as other similar parameters, e.g. ZPOWER) are now displayed in units of milliwatts. Moreover, the intensity (or irradiance) of the beam, signifying the time rate of flow of optical energy per unit cross-sectional area, is now displayed in units of Watts/m². The only change in the command.dat file is within the BEAM block, where the line containing the beam's center coordinates, Dye-polymer optical disk containing multiple sets of grooves and marks. In DIFFRACT™ 8.4 the multilayer stack of a dye-polymer optical disk may support up to four different sets of grooves and also, independently, up to four different sets of marks (i.e. bumps/pits). For the first groove-set the user specifies two layers whose thicknesses are affected by the presence of the grooves; these grooves may be with or without wobble (both Sine and Blip wobble are allowed). The user then specifies another pair of layers whose thicknesses are modified by the second set of grooves, defines the characteristics of the grooves (including wobble) independently of the preceding groove-set, and continues in the same vein until all groove-sets are specified. In a similar fashion, the user specifies the number of different mark-sets that must be embedded in the multilayer stack. Each set of marks affects the thickness of two layers, independently of all the groove-sets and of the other mark-sets. Within each mark-set an arbitrary number of marks may be specified, each with its own location, orientation, shape, and dimensions. Transmission mode for dye-polymer optical disk. Whereas in previous versions of DIFFRACT™ the dye-polymer optical disk was limited to the reflective type of media, in version 8.4 both reflective and transmissive types are allowed. In addition, each multilayer stack may have a (transparent) protective cover-layer on either or both sides of the stack. The user can thus specify a medium of incidence and an emergence medium for the dye-polymer disk, while defining multiple groove-sets as well as marks (i.e., bumps/pits) that can be placed at various depths within the multilayer structure.
Length Units. In previous versions of DIFFRACT all lengths were entered and displayed in normalized form. The normalization was with respect to the wavelength of the beam in its current environment. Thus, if lo denotes the vacuum wavelength and NVIRON the refractive index of the environment of the beam, all lengths would be divided by lo/NVIRON. This is the way DIFFRACT treats the lengths internally, but for input/output purposes the normalization is tedious and occasionally misleading. (The confusion usually arises when the beam enters a medium of different refractive index, which results in a change of lengths by the ratio of the refractive indices, even though the physical lengths remain the same.) DIFFRACT 8.4 eliminates the above problem by requiring that the user specify the vacuum wavelength lo in units of cm, mm, um, or nm. (In the past, the user did not have to specify lo because, in linear optics, once the lengths are properly normalized by wavelength within the environment, lo disappears from all equations.) As in previous versions, the user of DIFFRACT 8.4 is asked to specify at the outset the refractive index NVIRON of the initial environment of the beam. The user is then prompted for Length_Units, which may be cm, mm, um, or nm. (To maintain some degree of compatibility with older versions of DIFFRACT, the user may, in response to the Length_Units question, simply press the ENTER key, in which case the lengths will be assumed to be dimensionless, i.e., normalized by the vacuum wavelength lo). Note that there is a difference between the units of lo and the Length_Units used for all other lengths in DIFFRACT. The units for lo are specified at the outset and remain the same throughout the simulation, whereas the Length_Units for other length parameters can change as the beam evolves. For each command that requires the specification of one or more length parameters, the user is prompted for the corresponding Length_Units. Thus, in a given simulation, the BEAM command may operate with millimeter Length_Units, the LENS command may use centimeters, while the PLOT command may use microns. The important point to recognize is that, as the beam propagates through an optical system, it might expand or shrink in such a way that the Length_Units used in one part of the system may become inadequate for other parts. DIFFRACT thus allows the user to specify the Length_Units for each command independently of all the other commands, and also independently of the units used to specify the wavelength. When displaying the simulation parameters (or results of a particular calculation) DIFFRACT always shows the relevant Length_Units, either on the monitor or in prominent locations within the SESSION.DAT file, to ensure that the displayed lengths are properly interpreted. During interactive sessions, consult the box above the main menu for information about the vacuum wavelength lo, refractive index of the current environment (NVIRON), Length_Units, mesh parameters NMAX, NMAY, LMAX, LMAY, and other important information about the current state of the beam. Zernike Polynomials. The maximum allowed order of the Zernike polynomials has increased from 8 to 12 in the current release of DIFFRACT. The BEAM and LENS options can now be specified with Zernike aberrations up to the 12th order. Also, the MASK option, which in previous versions lacked any kind of wavefront distortions, can now be specified with either Seidel or Zernike aberrations (up to the 12th order). Of the four types of MASK presently available (Circular, Elliptical, Annular, Rectangular) only the Circular mask offers the option of Seidel or Zernike aberrations. Spatial Filter. This new feature in DIFFRACT 8.4 allows the user to modify the spatial frequency spectrum of the beam by a circular phase/amplitude mask placed in the Fourier domain. The same operation could have been done in previous versions by a combination of Positive-focusing_LENS, MASK, and Collimator_LENS, but the new Spatial Filter simplifies the operation. In addition, the new feature allows a choice between Fast Fourier Transformation (FFT) and Direct Fourier Transformation (DFT). The FFT method is faster, but the DFT method is more flexible, allowing the user to set the resolution in the frequency domain independently of the sampling interval in the space domain. The DFT method of spatial filtering (which can be painfully slow) does not have an equivalent in previous releases of DIFFRACT. FDTD Interface. In DIFFRACT 8.4 the user may call upon the FDTD_Interface to export a cross-section of the beam to an external file, which file is subsequently used by a Finite_Difference_Time_Domain (FDTD) program for near-field simulations. In Import mode, the FDTD_Interface reads a beam cross-section from an external file created by the FDTD program as the end result of near-field simulations. In this way, DIFFRACT 8.4 handles beam propagation and other manipulations that are best suited for the classical diffraction theory, leaving near-field calculations (which require full-vector solutions to Maxwell's equations) to an external FDTD program. A good example of the above approach is furnished by the problem of optical disk readout. Here the beam of light emanating from a semiconductor laser diode goes through a collimator lens, a quarter-wave plate, a beam-splitter, and a focusing lens before arriving at the disk surface. DIFFRACT simulates the entire optical path from the laser to the disk surface, but its treatment of the interaction between the focused spot and the pits at the disk surface is only an approximation based on treating the pits as phase objects. For more accurate simulations, therefore, it is necessary to solve the full-vector Maxwell equations within the volume of the focused spot in the presence of the pits. To this end, one may call upon the FDTD option of DIFFRACT 8.4 to export the E-field and B-field components of the focused spot to an external data file. The content of this file is then used as initial distribution for an FDTD program that proceeds to compute the reflected field in a plane immediately above the disk surface. The resulting complex-amplitude distribution, i.e., the reflection of the focused spot from the disk surface, is then saved to a data file. The FDTD option of DIFFRACT 8.4 is subsequently called upon (in the Import mode) to read this data file and to propagate the reflected beam back through the objective lens and to the photodetectors. Wobbled Grooves for Optical Disk Surface. The grooves in Writable, Magneto-optical, and Dye-Polymer types of optical media can now be wobbled. The two edges of each groove can be assigned different amplitude, period, and phase values for the wobble sinusoid. This enables the simulation of various types of wobble including groove-width-modulation and groove radial-position-modulation. Also, adjacent grooves can have in-phase wobbles or exhibit a fixed relative phase. A new type of wobble consisting of a periodic sequence of isolated wiggles (or blips) along the length of the grooves is also implemented in DIFFRACT 8.4. Geometric-optical_System. Several new features have been introduced in the Geometric-optical_System option of DIFFRACT 8.4. The various Glass and Mirror surfaces can now have a circular hole at their center. This is achieved by specifying both a minimum radius Rmin and a maximum radius Rmax for the clear aperture of each such surface. The Aperture surfaces, which were limited to circular and annular shapes, can now be elliptical or rectangular as well. Aperture dimensions and orientation in 3D space can be chosen by the user without restrictions. Aspheric Glass and Mirror surfaces in previous versions were limited to aspheric coefficients A4, A6, A8, and A10. In DIFFRACT 8.4 all aspheric coefficients up to the 12th order, namely, A1, A2, A3, A4, , A10, A11, A12 are allowed. In previous releases of DIFFRACT, the Gradient Index (GRIN) media were restricted to Type 1. In the new release, Type 2 GRIN media are also allowed. The index profiles for the two types of GRIN media are given by the following equations:
The surfaces of a Geometric-optical System are numbered sequentially from 1 up to a maximum allowed integer. Each system must have a first surface and a last surface, the latter being always the Destination plane. All remaining surfaces must be numbered between 1 and the number associated with the last surface. In previous versions of DIFFRACT, the incoming rays could only visit the surfaces sequentially, entering the first surface and ending up at the Destination plane. Perhaps the most powerful new feature in DIFFRACT 8.4 is the specification of Next_Surfaces for each surface within the Geometric-optical_System. In the new scheme, if an incoming ray intersects a given surface, it will be directed toward one surface, but if the incoming ray misses a given surface it will be directed toward a different surface. The introduction of Next_if_Hit and Next_if_Miss surfaces thus provides for far more complex systems than have heretofore been possible. For each Glass, Mirror, and Aperture the user specifies two other surfaces (within the same system) as alternative choices for the next surface; these are referred to as Next_if_Hit and Next_if_Miss surfaces. If a ray hits a given surface, it will seek the (user-specified) Next_if_Hit surface as a subsequent target. However, if a ray misses a surface, its next target becomes the associated Next_if_Miss surface. Each incident ray arriving at a Geometric-optical System thus starts by targeting surface 1 and follows a path through the system - as dictated by the specified sequence of next_surfaces - until it reaches the Destination plane. The Destination plane is the only surface that has no associated next_surfaces. A next_surface specified by the numeral 0 acts as an absorber. Any Glass, Mirror, or Aperture surface becomes opaque (i.e., an absorber) if its Next_if_Hit surface is set to 0. Similarly, rays that miss a given surface can be blocked (i.e., absorbed) by setting the corresponding Next_if_Miss surface to 0. The above sequencing scheme provides a powerful tool for simulating complex Geometric-optical Systems.
New Features in Version 7.9 Graphical User Interface. The General Edition of DIFFRACT now comes with an optional Graphical User Interface (GUI). The GUI allows the user to set up an optical system by selecting objects from a menu and specifying their parameter values in an interactive, user-friendly environment. Once the optical system is set up, the GUI submits its Command.dat file to DIFFRACT and waits for the simulation to run its course. Afterwards, GUI will access the various graphics and data files created by DIFFRACT during the simulation, displays the results, and enables the user to modify the setup, to put the simulation through loops, and to plot the various signals recorded in the Signals.dat file. Although DIFFRACT and its GUI are separate programs and can, in principle, function independently of each other, in practice GUI acts as gateway to DIFFRACT by facilitating the input/output of text and graphical information. In the process, the simulation engine (DIFFRACT) remains invisible, while its behind-the-scenes operation is fully controlled by an exchange of information with the GUI. Incident Beam: In addition to Uniform, Simple Gaussian, and Laser Diode beams, the new version allows the user to choose a General Gaussian, a Laguerre Gaussian, or a Hermite Gaussian beam from the menu. Perhaps more importantly, the incident beam can now exist in a medium of refractive index n ³ 1, thus allowing propagation in an environment other than free space. Propagate in Environment: In addition to propagation in an environment of refractive index n ³ 1, the user now has the option of shifting the beam to its centroid before propagating to the near field, intermediate field, or the far field. When this option is chosen, the program shifts the origin of the coordinate system to the beam's centroid, performs the propagation calculations, then returns the beam to its original position. This is a more accurate method of handling beam propagation in the Fresnel and Fraunhofer regimes, especially when the centroid is far from the origin of the coordinate system. Launch Guided Mode: This new feature of the main menu enables the user to create a Laguerre-Gaussian or a Hermite-Gaussian beam of specific properties, then compute its overlap integral with the beam residing in the mesh. The overlap integral may be saved in the SIGNAL array and subsequently printed to the SIGNALS.DAT file. This feature is useful when the coupling efficiency to a fiber or waveguide is desired. In addition, the Laguerre-Gaussian or the Hermite-Gaussian beam thus created replaces the existing beam in the mesh, assuming the amplitude and phase of the overlap integral. Thus, not only is the overlap integral computed, but the excited mode is launched as well. Wavefront Analysis: This new feature of the main menu allows the user to determine the effective wavefront error of the beam at any given cross-section. This effective wavefront error is related to the r.m.s. wavefront error and to the Strehl ratio of the beam, provided that the wavefront error is not too large. FDTD Interface. By allowing the export/import of ASCII (or Binary) data files, this new menu option provides the interface with an external Finite Difference Time Domain (FDTD) program. The Export mode creates a file containing the E-field and B-field components of the distribution presently residing in the mesh. This file serves as input to the FDTD program. In the Import mode the program reads the output of the FDTD program in the form of a file containing the Ex, Ey components of the E-field in an X Y-plane. The imported distribution then serves as an initial beam for DIFFRACT, and may be treated like any other complex-amplitude distribution defined on an X Y-plane. Spatial Filter. This new feature of the main menu involves a Fourier transformation of the beam's cross-section, multiplication by a filter function in the frequency domain (Sx, Sy), followed by an inverse Fourier transformation that returns the beam to the X Y-plane. In most cases, the conventional Fast Fourier Transform (FFT) algorithm is adequate for both forward and backward transforms. However, under certain circumstances (involving over-sampling in one domain and under-sampling in the other) it may be necessary to abandon the forward FFT in favor of the (much slower) Discrete Fourier Transform (DFT) method. The user must choose between the two methods of computing the forward Fourier transform, namely, between FFT and DFT. Phase/Amplitude Object: In version 7.9, when an external object is imported to DIFFRACT, the user will be given the option of tiling the available aperture with multiple copies of the object. If this option is chosen, several copies of the (rectangular) object will be placed side by side, creating a periodic structure within the specified aperture. Multilayer Structure: The beam transmitted through a multilayer stack may now stay within the homogeneous and isotropic medium of its substrate, and continue to propagate in this new environment. The program automatically sets the refractive index of the new environment to that of the substrate; all subsequent length parameters will have to be normalized by the wavelength of the light in this new environment. Similarly, in the reflection mode, if the medium of incidence on the multilayer happens to differ from the environment of the beam, the user will be given the option of returning the beam to its initial environment, or to keep it inside the medium of incidence, which then becomes the new environment for the reflected beam. The options of Beam Compression and Spectral Compression, which existed in previous versions of DIFFRACT and allowed for the entrance/exit of the beam through a flat or a spherical interface, are still available. These features, combined with the new possibility of keeping the beam inside the medium of incidence (reflection mode) or inside the substrate (transmission mode) provide many degrees of freedom for investigating the interaction of the beam with a multilayer stack using various entrance/exit strategies. Diffraction Grating: The beam transmitted through a grating may now stay within the homogeneous and isotropic medium of its substrate, and continue to propagate in this new environment. The program automatically sets the refractive index of the new environment to that of the substrate; all subsequent length parameters will have to be normalized by the wavelength of the light in this new environment. Similarly, in the reflection mode, if the medium of incidence on the grating happens to differ from the environment of the beam, the user will be given the option of returning the beam to its initial environment, or to keep it inside the medium of incidence, which then becomes the new environment for the reflected beam. The options of Beam Compression and Spectral Compression, which existed in previous versions of DIFFRACT and allowed for the entrance/exit of the beam through a flat or a spherical interface, are still available. These features, combined with the new possibility of keeping the beam inside the medium of incidence (reflection mode) or inside the substrate (transmission mode) provide many degrees of freedom for investigating the interaction of the beam with a grating using various entrance/exit strategies. Extract Phase/Amplitude: In addition to removing the phase of the beam or eliminating its amplitude non-uniformity, the user now has the option of reversing the sign of the phase, thus creating the complex conjugate of the beam. This is similar to the action of an ideal phase-conjugate mirror (PCM) on an incident beam. Geometric-optical System: In addition to flat, spherical, conical, and aspherical surfaces, the new version allows cylindrical, conic-cylindrical, and axiconical surfaces within the Geometric-optical_System option of the main menu. Also, whereas in previous versions the Destination plane had to be in free space, in version 7.9 the Destination plane can be placed inside a Glass medium as well. While tracing rays through a geometric-optical system, if the rays enter a Glass medium and the Destination plane is introduced before specifying an exit surface, then the emergent rays will remain within the last Glass medium, whose refractive index becomes the index of the new environment for the emergent beam. Within a geometric-optical system, the gradient-index (GRIN) media can have both radial and longitudinal gradients. Version 7.9 raises the order of the polynomial that represents the longitudinal gradient from 6 to 12. This feature allows GRADIUM glasses to be simulated within DIFFRACT's Geometric-optical_System environment. The combination of cylindrical surfaces and radial GRIN media also enables the simulation of special lenses (such as Doric) used in laser diode collimating optics. File Management/Graphics: A new option allows the contents of DIFFRACT's Graphics Window to be saved to a user-specified bitmap file XXXX.BMP. Also, when adding two data files, the second one can now be multiplied by a user-defined constant. If, for example, the value of this constant is -1, then the second file will be subtracted from the first. Phase/Amplitude Mask: In addition to circular, rectangular, and annular masks, version 7.9 allows elliptical masks of arbitrary orientation to be placed in the XY-plane. Also, the transition between adjacent regions of the various masks can now be smoothed out through the specification of a new parameter, a. When a is set to zero the transition will be sharp. However, when 0 < a £ 1, the phase/amplitude values of the mask in one region blend into the phase/amplitude values of the neighboring region at a rate determined by the value of the a-parameter. Process Signals: The assignment operation (=) now allows the mesh parameters (NMAX, NMAY, LMAX, LMAY) to be assigned to the SIGNAL elements. Typically, when Assignment (=) is requested, the user is prompted for the location 'i' within the SIGNAL array and the value C of the constant to be assigned to that location. If, instead of entering a number, the user types NMAX, NMAY, LMAX, or LMAY, the current value of the chosen parameter will be assigned to element 'i' of the SIGNAL. $ Commands: A new command ($MAKE) is added to the set of $ commands that are used when programming the COMMAND.DAT file for non-interactive sessions. The syntax of the $MAKE command is $MAKE#ln,ITEMi~#lm,ITEM j: The function of this command is to modify the value of an item on a given line of COMMAND.DAT by an amount depending on the value of another item on the same line or on a different line. The MAKE statement appears immediately after the $ sign; 'ln' is a 2-digit line number in COMMAND.DAT, which specifies the line targeted for modification; 'i' is a 1-digit number which specifies the targeted item within that line (i = 1, 2, 3); '~' is one of the ten operators +, -, *, /, =, E, L, S, C, T, which stand for addition, subtraction, multiplication, division, setting equal to, exponential function, natural logarithm, sine, cosine, and tangent. The 2-digit line number 'lm' and the 1-digit item number 'j' specify the item within COMMAND.DAT that determines the amount of change in the targeted item. In the process only the first item (i) is modified; the second item (j) remains intact. Multiple Directories: At the start of a session, DIFFRACT asks for the name of the subdirectory in which all the needed files reside (and all new files that will be created during the session will be stored). In Version 7.9, the user can specify up to 20 subdirectories. When DIFFRACT operates in the non-interactive ZOOM mode, the COMMAND.DAT files residing in the specified subdirectories will be sequentially executed. The program comes to a halt only after the last COMMAND.DAT has been executed. This feature allows multiple batch jobs to be submitted all at once. Invoking DIFFRACT.EXE from the command line. The executable DIFFRACT.EXE may now be invoked from the command line, in which case the initial parameter values may also be specified on the same command line. These parameters include the name(s) of one or more working subdirectories, the desired mode of operation (i.e., STEP, ZOOM, or Interactive), the values of NDIM and NDSP, and a parameter that indicates whether or not to disable the ray-tracing features of the program. If DIFFRACT is invoked simply by double-clicking on its icon, or if the command line contains no parameters, an insufficient number of parameters, or incorrect parameters, control will transfer to the Dialogue Window where DIFFRACT interrogates the user for its initial parameter values. Templates: The new <TEMPLATES > subdirectory located in DIFFRACT's home directory contains templates for constructing your own COMMAND.DAT, XXXX.SYS, and XXXX.STK files. For example, you may open on your monitor TEMPLATE.DAT and COMMAND.DAT files side by side, then copy desired command blocks and paste them (in a logical order) onto the (initially empty) COMMAND.DAT file. Proceed to modify the various command parameters until the elements of your system are properly represented within the newly-created COMMAND.DAT. When all the elements of the system are in place, you may want to copy one or more $commands to appropriate locations within the completed COMMAND.DAT file. These $commands enable the creation of loops (or other programming constructs) for the purpose of repeating a given simulation with different sets of parameters in non-interactive sessions. In similar fashion, you can construct new XXXX.SYS files for importation to the Geometric-optical_System feature of DIFFRACT, or build new XXXX.STK files for use in conjunction with the Multilayer option. Copy GEOP.SYS or MLYR.STK from <TEMPLATES> to a working subdirectory, then open this text file, and follow the instructions given in the file itself. More
examples of DIFFRACT applications:
The new manual contains many more examples of DIFFRACT applications. Also,
during the last several years, we have written over 40 journal articles
to describe the varied applications of DIFFRACT. A bound collection of
these articles - which were originally published in Optics & Photonics
News - is included in the DIFFRACT package, along with the program's manual
and a distribution CD-ROM. The distribution disk contains DIFFRACT's executable
code as well as an extensive set of test runs that can be used as guides
for setting up and running various COMMAND.DAT files. The new CD-ROM also
includes an <OPN> directory, which contains many resource files
extracted from the optical systems originally described in the OPN articles. Home
| About MM Research, Inc. | Online
Publications © Copyright 1987-2011, MM Research, Inc. 5748 N. Camino del Conde, Tucson, Arizona 85718 |