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)
|