Class Transmission

java.lang.Object
  |
  +--Transmission

class Transmission
extends java.lang.Object
implements Solvable

Uses a matrix method to calculate transmission for a finite number of wells. Despite the name, this class not only calculates transmission, but also reflection.


Field Summary
protected  boolean abort
          Flag used internally to indicate that solve() should abort at the next available opportunity.
protected  ComplexMatrix[] cache
          A cache of the solution data
protected  MultipleWells eqn
          The potential function
 boolean wantTransmission
          Set this to true if solve() should return transmission coefficients, false for reflection.
 
Constructor Summary
Transmission(MultipleWells eqn)
          Create a new transmission calculator
 
Method Summary
 void abortSolve()
          Aborts a call to solve() currently in progress; that method will return at the next convenient opportunity, without supplying any solution data, and discarding any partial results.
 void flush()
          Emptys the cache of solutions.
protected  ComplexMatrix getInterfaceMatrix(double v1, double v2, double energy, double x)
          Constructs a matrix to represent the change in boundary conditions at an interface (discontinuous change in potential).
protected  ComplexMatrix getMatrix(double energy)
          Computes the matrix to represent the change in boundary conditions for all the wells in the potential function.
protected static double getReflection(ComplexMatrix m)
          Extracts the reflection coefficient from a matrix
 double getReflection(double energy)
          Returns the reflection coefficient for the specified energy
protected static double getTransmission(ComplexMatrix m)
          Extracts the transmission coefficient from a matrix
 double getTransmission(double energy)
          Returns the transmission coefficient for the specified energy
 void solve(double x0, double step, double[] solns)
          Requests that the supplied array be filled with solution data.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

cache

protected ComplexMatrix[] cache
A cache of the solution data

wantTransmission

public boolean wantTransmission
Set this to true if solve() should return transmission coefficients, false for reflection.

abort

protected boolean abort
Flag used internally to indicate that solve() should abort at the next available opportunity.

eqn

protected MultipleWells eqn
The potential function
Constructor Detail

Transmission

public Transmission(MultipleWells eqn)
Create a new transmission calculator
Parameters:
eqn - The potential function
Method Detail

getInterfaceMatrix

protected ComplexMatrix getInterfaceMatrix(double v1,
                                           double v2,
                                           double energy,
                                           double x)
Constructs a matrix to represent the change in boundary conditions at an interface (discontinuous change in potential). The matrices for the two interfaces of a potential well may be multiplied to produce a single matrix for the well. Similarly, the matrices for a number of wells may be multiplied.
Parameters:
v1 - The potential before the interface
v2 - The potential after the interface
energy - The energy
x - The x coordinate of the interface

getMatrix

protected ComplexMatrix getMatrix(double energy)
Computes the matrix to represent the change in boundary conditions for all the wells in the potential function.
Parameters:
energy - The energy to use

getTransmission

public double getTransmission(double energy)
Returns the transmission coefficient for the specified energy

getReflection

public double getReflection(double energy)
Returns the reflection coefficient for the specified energy

solve

public void solve(double x0,
                  double step,
                  double[] solns)
Description copied from interface: Solvable
Requests that the supplied array be filled with solution data. The nth element of the array should be the solution at x = x0 + step*n.
Specified by:
solve in interface Solvable
Tags copied from interface: Solvable
Parameters:
x0 - The initial x-value
step - The increment to be applied to x0
vals - The array which will hold the solution data

flush

public void flush()
Emptys the cache of solutions. Usually called after a change in the parameters of the potential function.

abortSolve

public void abortSolve()
Aborts a call to solve() currently in progress; that method will return at the next convenient opportunity, without supplying any solution data, and discarding any partial results.

getTransmission

protected static double getTransmission(ComplexMatrix m)
Extracts the transmission coefficient from a matrix

getReflection

protected static double getReflection(ComplexMatrix m)
Extracts the reflection coefficient from a matrix