Interface EquationTerm<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>

All Superinterfaces:
Evaluable
All Known Implementing Classes:
AbstractAsymmetricalClosedBranchCoupledFlowEquationTerm, AbstractClosedBranchAcFlowEquationTerm, AbstractClosedBranchDcFlowEquationTerm, AbstractElementEquationTerm, AbstractEquationTerm, AbstractHvdcAcEmulationFlowEquationTerm, AbstractLoadModelEquationTerm, AbstractNamedEquationTerm, AbstractShuntCompensatorEquationTerm, AbstractShuntFortescueCurrentEquationTerm, AbstractShuntFortescueEquationTerm, AsymmetricalClosedBranchCoupledCurrentEquationTerm, AsymmetricalClosedBranchCoupledPowerEquationTerm, ClosedBranchI1xFlowEquationTerm, ClosedBranchI1yFlowEquationTerm, ClosedBranchI2xFlowEquationTerm, ClosedBranchI2yFlowEquationTerm, ClosedBranchSide1ActiveFlowEquationTerm, ClosedBranchSide1CurrentMagnitudeEquationTerm, ClosedBranchSide1DcFlowEquationTerm, ClosedBranchSide1ReactiveFlowEquationTerm, ClosedBranchSide2ActiveFlowEquationTerm, ClosedBranchSide2CurrentMagnitudeEquationTerm, ClosedBranchSide2DcFlowEquationTerm, ClosedBranchSide2ReactiveFlowEquationTerm, EquationTerm.MultiplyByScalarEquationTerm, HvdcAcEmulationSide1ActiveFlowEquationTerm, HvdcAcEmulationSide2ActiveFlowEquationTerm, LoadFortescuePowerEquationTerm, LoadModelActiveFlowEquationTerm, LoadModelReactiveFlowEquationTerm, OpenBranchSide1ActiveFlowEquationTerm, OpenBranchSide1CurrentMagnitudeEquationTerm, OpenBranchSide1ReactiveFlowEquationTerm, OpenBranchSide2ActiveFlowEquationTerm, OpenBranchSide2CurrentMagnitudeEquationTerm, OpenBranchSide2ReactiveFlowEquationTerm, ShuntCompensatorActiveFlowEquationTerm, ShuntCompensatorReactiveFlowEquationTerm, ShuntFortescueIxEquationTerm, ShuntFortescueIyEquationTerm, VariableEquationTerm, VoltageMagnitudeInitializer.InitVmBusEquationTerm

public interface EquationTerm<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity> extends Evaluable
An equation term, i.e part of the equation sum.
Author:
Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
  • Method Details

    • multiply

      static <V extends Enum<V> & Quantity, E extends Enum<E> & Quantity> EquationTerm<V,E> multiply(EquationTerm<V,E> term, DoubleSupplier scalarSupplier)
    • multiply

      static <V extends Enum<V> & Quantity, E extends Enum<E> & Quantity> EquationTerm<V,E> multiply(EquationTerm<V,E> term, double scalar)
    • getChildren

      List<EquationTerm<V,E>> getChildren()
    • getEquation

      Equation<V,E> getEquation()
    • setEquation

      void setEquation(Equation<V,E> equation)
    • isActive

      boolean isActive()
    • setActive

      void setActive(boolean active)
    • setSelf

      void setSelf(EquationTerm<V,E> self)
    • getElementType

      ElementType getElementType()
    • getElementNum

      int getElementNum()
    • getVariables

      List<Variable<V>> getVariables()
      Get the list of variable this equation term depends on.
      Returns:
      the list of variable this equation term depends on.
    • setStateVector

      void setStateVector(StateVector sv)
      Set state vector to use for term evaluation.
      Parameters:
      sv - the state vector
    • eval

      double eval()
      Evaluate equation term.
      Specified by:
      eval in interface Evaluable
      Returns:
      value of the equation term
    • eval

      default double eval(StateVector sv)
      Evaluate the equation term with an alternative state vector.
      Returns:
      value of the equation term
    • der

      double der(Variable<V> variable)
      Get partial derivative.
      Parameters:
      variable - the variable the partial derivative is with respect to
      Returns:
      value of the partial derivative
    • hasRhs

      boolean hasRhs()
      Check rhs() can return a value different from zero.
      Returns:
      true if rhs() can return a value different from zero, false otherwise
    • rhs

      double rhs()
      Get part of the partial derivative that has to be moved to right hand side.
      Returns:
      value of part of the partial derivative that has to be moved to right hand side
    • calculateSensi

      double calculateSensi(com.powsybl.math.matrix.DenseMatrix x, int column)
    • write

      void write(Writer writer) throws IOException
      Throws:
      IOException
    • multiply

      default EquationTerm<V,E> multiply(DoubleSupplier scalarSupplier)
    • multiply

      default EquationTerm<V,E> multiply(double scalar)
    • minus

      default EquationTerm<V,E> minus()