pyyeti.ode.addconj

pyyeti.ode.addconj(lam, ur, ur_inv)[source]

Add back in the missing complex-conjugate mode

Parameters:
  • lam (1d ndarray) – The vector of complex eigenvalues

  • ur (2d ndarray) – Normalized complex right eigenvectors

  • ur_inv (2d ndarray) – Inverse of right eigenvectors

Returns:

  • lam1 (1d ndarray; complex) – The vector of complex eigenvalues (complete set)

  • ur1 (2d ndarray; complex) – Complete set of normalized complex right eigenvectors; will be square

  • ur_inv1 (2d ndarray; complex) – Complete set of inverse of right eigenvectors; will be square

Notes

This routine adds the missing one of each complex-conjugate pair from state-space complex eigensolution and divides the other one by 2 in ur.

addconj() can safely be called even if modes were already added back in (or if they were never deleted).

Though unlikely, addconj() could be fooled into adding inappropriate modes if modes were deleted in a different manner than how eigss() does it. This routine does some checks to try to ensure that the inputs have been processed as expected:

  • checks for all positive imaginary parts in lam (eigss() deletes the negative conjugates)

  • check for the factor of 2 (see above) in ur

  • check that ur1 and ur_inv1 will be square after adding in the modes

  • check that all underdamped modes are sorted last (as eigss() has them)