Starting from:
$29.99

$23.99

Project 2 Solution

Problem:  You are to create a program to help in the analysis of data obtained from an x-ray powder diffractometer used to characterize materials.  In the diffractometer a sample is exposed to x-rays of a specific wavelength and a detector placed on a goniometer is used to measure the angles (2-theta values) where constructive interference of the diffracted beam occur (called peaks) and the intensity of these peaks. The location of these peaks is dependent on the atomic structure of the material being examined.  This relationship is given by Bragg’s law which states

 

           nl = 2dsin(q)

 

where n is the harmonic of the diffracted beam (n = 1 for these experiments), l is the wavelength of the x-ray, d is the interplanar spacing between planes of specific orientation in the material and q (theta) is the angle between the x-ray beam and the sample of the material. 

 

You are to create a program that will read the 2-theta values and the intensities from a file and create a table that will contain the 2-theta values, the intensities, the d values and Q values where Q = 1/(sin(q))2.  The first line of the data file will contain the sample name which should be stored as a string object.  The second line will contain the anode (the elemental source of the x-ray) as a 2-character symbol which should also be stored as a string object.  You will need to use this symbol to determine the wavelength of the x-ray using the table below.  You should assume the format of the 2-character symbol will be an upper case letter followed by a lower case letter and the symbol will be one of those listed in the table below.

 

          Anode                      Wavelength

               Cu                       1.54059

               Cr                        2.28973

               Fe                        1.93604

               Co                       1.78900

               Mo                      0.70932      

 

The 2-theta (first column) and intensity values (second column) will start on the third line and continue on subsequent lines.  The intensity values are whole numbers.  You should design your program so it will continue to read data until the end of file is reached. 

 

Your output should be a file that contains the name of the sample, the wavelength and a table containing the 2-theta and intensity values from the file plus the calculated d and Q values.  The wavelength should be output with 6 significant digits, the 2-theta values with 5 significant digits, the d values with 6 significant digits and the Q values with 7 significant digits.  The table that you output should contain column headings then the values similar to the example given below.

 

Your program should allow the user to enter the name of the data file, but you do not need to worry about the folder path (assume the data file is in the same folder as your *.cpp file) and the name of the output file to be generated.  A data file called “Project2data.dat” has been placed on ANGEL.  This file contains different peaks than what is shown in the table below.  Your program should also allow the user to analyze data from another file without rerunning the program. 

 

 

For sample Project 2 demo with anode of Cu and wavelength of 1.54059 the values are

 

   2-theta    Intensity     d values        Q values

    16.375        20        5.40889         49.30620

    20.845        55        4.25800         30.55609

    26.622       100        3.34567         18.86480

    33.097        45        2.70443         12.32647

    36.520         5        2.45842         10.18587

    39.439        21        2.28293         8.783553

    40.263        34        2.23809         8.441890

 

There were 7 peaks in the file.

Would you like to analyze data from another file (y/n)?

 

 

More products