From 09aa9761c6ff824146229e7f5e2705b048d64166 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Sun, 27 Nov 2022 12:36:53 -0800 Subject: [PATCH] Use same variable names as in code --- meanas/fdfd/bloch.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/meanas/fdfd/bloch.py b/meanas/fdfd/bloch.py index 7749c8c..ce4a41b 100644 --- a/meanas/fdfd/bloch.py +++ b/meanas/fdfd/bloch.py @@ -600,9 +600,17 @@ def eigsolve( # Now know the direction (D), but need to find how far to go (alpha) # We are still minimizing E = tr((Z + alpha D)t A (Z + alpha D) U') # = tr(ZtAZU' + alpha DtAZU' + alpha ZtADU' + alpha**2 DtADU') + # = tr((ZtAZ + 2 alpha sym(DtAZ) + alpha**2 DtAD) U') + # = tr(R U') + # = tr(R Qi) = tr(R inv(Q)) - # where U' = inv((Z + alpha D)t (Z + alpha D)) - # = inv(ZtZ + alpha ZtD + alpha DtZ + alpha**2 DtD) + # where + # R = ZtAZ + 2 alpha sym(DtAZ) + alpha**2 DtAD + # + # Q = (Z + alpha D)t (Z + alpha D) + # = inv(ZtZ + alpha ZtD + alpha DtZ + alpha**2 DtD) + # + # Qi = inv(Q) = U' AD = scipy_op @ D DtD = D.conj().T @ D