Package org.jmol.util

Class Modulation

java.lang.Object
org.jmol.util.Modulation

public class Modulation extends Object
A 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 Details

    • TWOPI

      private static final double TWOPI
      See Also:
    • qCoefs

      private double[] qCoefs
    • a1

      private double a1
    • a2

      private double a2
    • center

      private double center
    • left

      private double left
    • order

      private int order
    • axis

      private char axis
    • type

      private final char type
    • params

      private double[] params
    • utens

      private String utens
    • delta2

      private double delta2
    • TYPE_DISP_FOURIER

      public static final char TYPE_DISP_FOURIER
      See Also:
    • TYPE_SPIN_FOURIER

      public static final char TYPE_SPIN_FOURIER
      See Also:
    • TYPE_SPIN_SAWTOOTH

      public static final char TYPE_SPIN_SAWTOOTH
      See Also:
    • TYPE_DISP_SAWTOOTH

      public static final char TYPE_DISP_SAWTOOTH
      See Also:
    • TYPE_OCC_FOURIER

      public static final char TYPE_OCC_FOURIER
      See Also:
    • TYPE_OCC_CRENEL

      public static final char TYPE_OCC_CRENEL
      See Also:
    • TYPE_U_FOURIER

      public static final char TYPE_U_FOURIER
      See Also:
    • TYPE_DISP_LEGENDRE

      public static final char TYPE_DISP_LEGENDRE
      See Also:
    • TYPE_U_LEGENDRE

      public static final char TYPE_U_LEGENDRE
      See Also:
    • legendre

      static double[][] legendre
  • Constructor Details

    • Modulation

      public Modulation(char axis, char type, double[] params, 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 - TODO
      qCoefs -
  • Method Details

    • 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 invalid input: '<' x4 invalid input: '<' right, but allow for folding
      Parameters:
      x4 -
      Returns:
      true only if x4 is in the (possibly folded) range of left and right
    • getInfo

      public Hashtable<String,Object> getInfo()
    • calcLegendre

      void calcLegendre(int m)
    • toString

      public String toString()
      Overrides:
      toString in class Object