| 
         SCATMECH > Classes and Functions >
        Optical Properties and
        Materials > optical_constant 
        class optical_constant
         
        The class that handles the storage of optical constants,
        n and k, and its conversion to dielectric
        constants. Functions that require this information can be
        prototyped with either optical_constant or dielectric_constant arguments, and the
        compiler will perform the conversion when necessary. Use of
        the classes optical_constant and dielectric_constant avoids one
        accidentally confusing the two when passing values to
        functions, as can happen if they are left as complex
        numbers. To store information about the wavelength dependence
        of the optical constants, use the class dielectric_function.
	 Include file:
          
#include "optconst.h"
 
        Source code:
          
optconst.h
 
        See also:
        SCATMECH Home,  
        Conventions,   dielectric_constant,   dielectric_function 
        M. Born and E. Wolf, Principles of Optics,
        (Pergamon, Oxford, 1980). 
	Definition of public elements:
          
class optical_constant {
    double n;
    double k;
    optical_constant();
    optical_constant(complex<double> x);
    optical_constant(double x, double y=0.);
    optical_constant(const dielectric_constant& e);
    operator complex<double>() const;
    friend istream& operator>>(istream& is, optical_constant& nn);
    friend ostream& operator<<(ostream& os, const optical_constant& nn);
};
         
        
        
          The two optical constants. The convention in SCATMECH
          is k>0 for absorbing materials. (See Conventions.)
          
        Top of Page 
	
        
          Default constructor that initializes the optical
          constants n=1 and k=0.
          
        Top of Page 
	
        
          Constructor that initializes the complex optical constant
          to be x.
         Example:
          
optical_constant silicon(complex<double>(3.882,0.019));
 
         
        Top of Page 
	
        
          Constructor that uses a pair of real numbers as n
          and k.
         Example:
          
optical_constant glass(1.5,0);
optical_constant glass(1.5);  // Same thing.
 
         
        Top of Page 
	
        
          Constructor that converts a dielectric_constant to an
          optical_constant.
         Example:
          
dielectric_constant silicon(16.,0.);
optical_constant n(silicon);
 
         
        Top of Page 
	
        
          Conversion from optical_constant to
          complex<double>. This operator is often useful if
          numerical calculations need to be carried out with a
          complex optical constant.
         Example:
          
optical_constant oc;
complex<double> q=sqrt((complex<double>)oc*(complex<double>)oc-sin(theta)*sin(theta));
 
         
        Top of Page 
	
        
          Operators to input and output an optical_constant
          to or from a stream.
         Example:
          
optical_constant n;
cout << "Enter an optical constant:";
cin >> n;
cout << "You entered: " << n << endl;
 
         
        Top of Page 
 
For More Information
SCATMECH Technical Information and Questions 
Sensor Science Division Home Page 
Sensor Science Division Inquiries 
Website Comments
 
Current SCATMECH version: 7.22 (April 2021) 
 
  |