Package org.jmol.util
Class Modulation
- java.lang.Object
-
- org.jmol.util.Modulation
-
public class Modulation extends java.lang.ObjectA class to allow for more complex vibrations and associated phenomena, such as modulated crystals, including Fourier series, Crenel functions, and sawtooth functions- Author:
- Bob Hanson hansonr@stolaf.edu 8/8/2013
-
-
Field Summary
Fields Modifier and Type Field Description private doublea1private doublea2private charaxisprivate doublecenterprivate doubledelta2private doubleleft(package private) static double[][]legendreprivate intorderprivate double[]paramsprivate double[]qCoefsprivate doublerightprivate static doubleTWOPIprivate chartypestatic charTYPE_DISP_FOURIERstatic charTYPE_DISP_LEGENDREstatic charTYPE_DISP_SAWTOOTHstatic charTYPE_OCC_CRENELstatic charTYPE_OCC_FOURIERstatic charTYPE_SPIN_FOURIERstatic charTYPE_SPIN_SAWTOOTHstatic charTYPE_U_FOURIERstatic charTYPE_U_LEGENDREprivate java.lang.Stringutens
-
Constructor Summary
Constructors Constructor Description Modulation(char axis, char type, double[] params, java.lang.String utens, double[] qCoefs)Each atomic modulation involves a fractional coordinate wave vector q, a Fourier power n, a modulation axis (x, y, or, z), and specified parameters that depend upon the type of function.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidapply(ModulationSet ms, double[][] t)(package private) voidcalcLegendre(int m)java.util.Hashtable<java.lang.String,java.lang.Object>getInfo()private booleanrange(double x4)Check that left < x4 < right, but allow for folding
-
-
-
Field Detail
-
TWOPI
private static final double TWOPI
- See Also:
- Constant Field Values
-
qCoefs
private double[] qCoefs
-
a1
private double a1
-
a2
private double a2
-
center
private double center
-
left
private double left
-
right
private double right
-
order
private int order
-
axis
private char axis
-
type
private final char type
-
params
private double[] params
-
utens
private java.lang.String utens
-
delta2
private double delta2
-
TYPE_DISP_FOURIER
public static final char TYPE_DISP_FOURIER
- See Also:
- Constant Field Values
-
TYPE_SPIN_FOURIER
public static final char TYPE_SPIN_FOURIER
- See Also:
- Constant Field Values
-
TYPE_SPIN_SAWTOOTH
public static final char TYPE_SPIN_SAWTOOTH
- See Also:
- Constant Field Values
-
TYPE_DISP_SAWTOOTH
public static final char TYPE_DISP_SAWTOOTH
- See Also:
- Constant Field Values
-
TYPE_OCC_FOURIER
public static final char TYPE_OCC_FOURIER
- See Also:
- Constant Field Values
-
TYPE_OCC_CRENEL
public static final char TYPE_OCC_CRENEL
- See Also:
- Constant Field Values
-
TYPE_U_FOURIER
public static final char TYPE_U_FOURIER
- See Also:
- Constant Field Values
-
TYPE_DISP_LEGENDRE
public static final char TYPE_DISP_LEGENDRE
- See Also:
- Constant Field Values
-
TYPE_U_LEGENDRE
public static final char TYPE_U_LEGENDRE
- See Also:
- Constant Field Values
-
legendre
static double[][] legendre
-
-
Constructor Detail
-
Modulation
public Modulation(char axis, char type, double[] params, java.lang.String utens, double[] qCoefs)Each atomic modulation involves a fractional coordinate wave vector q, a Fourier power n, a modulation axis (x, y, or, z), and specified parameters that depend upon the type of function. Types supported: Fourier [csin, ccos] Legendre [center, width, coeff, order] Crenel [center, width, amplitude] Sawtooth [center, width, amplitude]- Parameters:
axis-type-params-utens- TODOqCoefs-
-
-
Method Detail
-
apply
void apply(ModulationSet ms, double[][] t)
- Parameters:
ms-t- -- Vector of coordinates for [x4, x5, x6, ...]
-
range
private boolean range(double x4)
Check that left < x4 < right, but allow for folding- Parameters:
x4-- Returns:
- true only if x4 is in the (possibly folded) range of left and right
-
getInfo
public java.util.Hashtable<java.lang.String,java.lang.Object> getInfo()
-
calcLegendre
void calcLegendre(int m)
-
-