PLaSK library

Loading...
Searching...
No Matches
expansion.cpp
Go to the documentation of this file.
1/*
2 * This file is part of PLaSK (https://plask.app) by Photonics Group at TUL
3 * Copyright (c) 2022 Lodz University of Technology
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 3.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14#include "expansion.hpp"
15
16 namespace plask { namespace optical { namespace modal {
17
18 void Expansion::getDiagonalEigenvectors(cmatrix& Te, cmatrix& Te1, const cmatrix&, const cdiagonal&)
19{
20 size_t nr = Te.rows(), nc = Te.cols();
21 // Eigenvector matrix is simply a unity matrix
22 std::fill_n(Te.data(), nr*nc, 0.);
23 std::fill_n(Te1.data(), nr*nc, 0.);
24 for (size_t i = 0; i < nc; i++)
25 Te(i,i) = Te1(i,i) = 1.;
26}
27
28}}} // namespace