CompChem Library

From Henkelman Group

Jump to: navigation, search

This is for the design of a common library for our group computational chemistry purposes.

Be sure to use the discussion page for any changes you make.

[edit] Numerical

  1. Vector
    1. Members
      1. elements: an array of the Vector elements
      2. dimension: the dimension of the Vector (same as the number of elements)
    2. Methods
      1. magnitude: returns the length of the Vector
      2. unit: returns a unit Vector in the direction of the Vector
      3. plus: returns a new Vector which is the sum of the Vector and another Vector
      4. minus: returns a new Vector which is the Vector minus another Vector
      5. dot: returns the dot product of the Vector and another Vector
      6. random: returns a new Vector of random direction and unit length
  2. Point
    1. Members
      1. coordinates: an array of the coordinates of the point
      2. dimension: the dimension of the Point (same as the number of coordinates)
    2. Methods
      1. random: returns a random Point
      2. vectorTo: returns a Vector to another Point
      3. distanceTo: returns the distance to another Point
      4. plus: returns a new Point with a Vector added to it
      5. minus returns a new Point with a Vector subtracted from it
  3. Path
    1. Members
      1. images: an array of Points that defines the Path
    2. Methods
      1. length: returns the length of the Path
    3. EnergyPath
      1. Members
        1. potential: a Potential associated with the Path
        2. forceCalls: records the number of force calls made
      2. Methods
        1. imageForce: returns the force Vector due to the Potential on an image in the Path
        2. totalForce: returns the magnitude of the total force being exerted on all the images of the Path
        3. resetForceCalls: resets the number of recorded force calls to zero (redundant if we go with an public member framework)
      3. MinimumEnergyPath
        1. ElasticBand
          1. Members
            1. k: the spring force constant
          2. Methods
            1. springForce: returns the spring force Vector on a single image
            2. step: calculates and implements the next step
          3. NEB
            1. Methods
              1. tangentForce: returns the spring force tangent to the Path
              2. step: calculates and implements the next step (override)
            2. NEBSwitching
              1. Methods
                1. switchingForce: returns the spring force Vector perpendicular to the Path, taking the switching function into account
        2. String
          1. Methods
            1. redistribute: redistributes the images along the Path
        3. GrowingString
          1. note: Not a type of "String", so it is not a subclass.
  4. Function
    1. Methods
      1. value: returns the value at a Point
      2. derivative: returns the derivative at a Point (1D functions only)
      3. partialDerivative: returns the partial derivative at a point, given one independent variable.
      4. gradient: returns a Vector which is the gradient at a point.
    2. Potential
      1. Methods
        1. force: returns a Vector representing the force at a Point
      2. Morse
      3. LEPS

[edit] I/O

  1. Visualizer
    1. I propose we do this entirely in 3D, with any required 2D graphics done on a plane in 3D space. (Rye Terrell 08:04, 2 May 2007 (CDT))
  2. Camera
    1. Defines a camera in 3D space.
  3. TextIO
    1. Opens a window with a text field for textual output and a field for textual input.
Personal tools