Class DVariable

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
PartialDerivative

public class DVariable extends XVariable
Holds all info about a variable. Has a name, an equation, a dimension (or sent of dimensions if matrix or tensor) and also a set of PartialDerivative. The derivatives are stored in a hashtable index by the sorted names of derivatives. i.e. d^2f/dxdy, and d^2f/dydx will both be indexed by {"x","y"}. df/dx is indexed by {"x"}, d^2f/dx^2 is index by {"x","x"}. Partial derivatives are calculated as required by the findDerivative method.
Author:
Rich Morris Created on 26-Oct-2003
See Also:
  • Field Details

  • Constructor Details

    • DVariable

      protected DVariable(String name)
      The constructor is package private. Variables should be created using the VariableTable.find(Sting name) method.
    • DVariable

      protected DVariable(String name, Object value)
  • Method Details

    • createDerivative

      protected PartialDerivative createDerivative(String[] derivnames, Node eqn)
    • setEquation

      public void setEquation(Node eqn)
      sets the equation
      Overrides:
      setEquation in class XVariable
    • invalidateAll

      public void invalidateAll()
      makes value and values of all derivatives invalid.
    • makeDerivString

      public static String makeDerivString(String rootname, String[] dnames)
      Produces a string to represent the derivative. The string will be of the form "dx^2/dxdy". This string is used to index the derivatives of a variable.
      Parameters:
      rootname - name of the variable we are calculating the derivative of.
      dnames - An array of the names of each of the partial derivatives.
      Returns:
      the string representation
    • getDerivative

      public PartialDerivative getDerivative(String... names)
      Gets the partial derivatives df^k/da db dc
      Parameters:
      names - the names of the derivatives in any order
      Returns:
      the derivative
    • calculateDerivative

      protected PartialDerivative calculateDerivative(String[] derivnames, DJep jep) throws ParseException
      calculate a derivative. Either by differentiation of one of the existing derivatives, or by differentiation of the equation of this variable. The method is protected, subclasses can override the methods where some other means of calculating the derivative is needed.
      Throws:
      ParseException
    • toString

      public String toString(PrintVisitor bpv)
      Description copied from class: XVariable
      Returns a string rep of variable with its equation and value.
      Overrides:
      toString in class XVariable
    • allDerivatives

      public Iterable<PartialDerivative> allDerivatives()
      Enumerate all the derivatives of this variable.
      Returns:
      an Enumeration running through all the derivatives.
    • derivativeIsTriviallyZero

      public boolean derivativeIsTriviallyZero()