< Назад | Содержимое | Далее >
Чтобы преодолеть или сократить вышеупомянутые высокие вычислительные затраты, было реализовано несколько функций. Например, для вычислений волн Блоха доступны два подхода: (i) Классический метод матрицы рассеяния (Fujimoto, 1959; Sturkey, 1962; Yamazaki et al., 2013), иногда называемый методом стекированных волн Блоха (Pennington et al., 2014), может быть использован для вычисления матричных экспонент напрямую с использованием метода масштабирования и возведения в квадрат с приближением Паде (Higham, 2005). (ii) Вместо этого может быть использован метод собственных значений Бете, который использует диагонализации матриц для непосредственного получения собственных значений и собственных векторов отдельных собственных состояний Блоха.
Самый быстрый из этих алгоритмов будет выбран автоматически. Метод матрицы рассеяния также кратко описан в Приложении C. В обоих методах также автоматически выбирается лучшая математическая библиотека для матричных и векторных операций из Eigen (https://eigen.tuxfamily.org), Intel MKL (https://software.intel.com/ mkl) и Math.NET (https://mathdotnet.com/) в зависимости от возможностей компьютерной системы пользователя и моделируемого шаблона (SAED, PED или CBED).