solving eigen equations
as for the book
Computational Electrodynamics The Finite-Difference Time-Domain Method 2d ed- A. Taflove
covers all of that.
Well, as I see it splitting one 1k/1k matrix into one TM and one TE matrix wouldn't make much diffrence because you're still left with 2 matrices at the same size, just the entries correspond to TE or TM respectivly. So that does not do the trick to reduce the matrix's size if I think it over correctly.
Why is the matrix that huge in the first place? Is the modeled material that huge? Is it homogenous material or do you have i.e. magnetic phase transitions or things that make the material inhomogenous at some points?
As an Idea to get smaller matrices would be just to reduce the size of the material or, if thats not an option, try to split the material into smaller blocks and interpolate at the block boundaries.
I still would recommend going into fortran and using the lapack. Might be faster after all although you might have to write much of the code again. But I can't make a guess how long it will take to get this tackled in the other way as you have to do much code in addidtion anyway.
so long, janK