Mismatch Between Impedance Matrix and Current Eigenvector

Adrian Bauer
Adrian Bauer Altair Community Member
edited August 2021 in Community Q&A

Hello, I've recently started using Feko and I have been trying to export the impedance matrix as well as the current eigenvector for further analysis. The current eigenvector that I extract from the .str output file has a number of elements corresponding to the total number of basis functions produced by Feko. The impedance matrix, however, has elements corresponding to the number of unknown basis functions rather than all of the basis functions. Why are some basis functions already known and what could I do to reconcile the difference in dimensions between the current eigenvector and the impedance matrix? In other words how do I make it so the vector is Nx1 and the matrix is NxN.

On a side note, I assume that the two elements in each row of the .str file correspond to the real part and the imaginary part of the current, respectively, correct?

Cheers

Tagged:

Best Answer

  • Mel
    Mel Altair Community Member
    edited August 2021 Answer ✓

    In the *.str file, in this case, you can ignore the duplicate entries, although there might be sign differences - i.e. only take the first entry and disregard the 2nd one regardless of sign.

    Could you please clarify what you are trying to do?

    What is the purpose of exporting both the Feko MoM matrix and the solution vector and trying to correlate the two? Usually either the one or the other is exported and then processed further, but not both - if you already let Feko compute the solution, why do you still need the matrix?

    Some users want to work with the MoM matrix (like eigenvector solutions for CMA with their own correlation methods etc.). They then export the *.mat file (which is the "compressed" format, i.e. only the "real" unknowns), but do not care about the solution vector.

    On the other hand, exporting the fully expanded solution vector, which is not only for MoM, but includes FEM, PO etc. unknowns if available, is mostly for Feko internal purposes. These internal purposes are mainly to save the solution and re-use it in another Feko run to add further output requests later.
    With the ASCII conversion utility (str2ascii) some users do also use it for e.g. computing their own radiation integrals, but then you only need the *.str file, you do not need the matrix along with it (and there might not even be a matrix like for PO).

    As a side note, I noticed the model contains finite thickness of around 20 um. This can cause inaccuracies in some cases. I removed the finite the thickness and added some local mesh sizes - see the details tree for Edges and Faces where I added this.

    Also it is best to center the edge port between the two sides. I just used two plates instead of 3 - that will shorten the distance of the extension beyond the dielectric, but still ensure that the edge for the port is not placed exactly on the surface of the dielectric.

    image

     

Answers

  • Mel
    Mel Altair Community Member
    edited August 2021

    Regarding the str file, you are correct in stating that the two elements are the real and imaginary parts.

    Regarding the first part of your question, could you attach your model? If not, please provide a detailed description. Have you applied symmetry to the model?

  • Adrian Bauer
    Adrian Bauer Altair Community Member
    edited August 2021
    mel_21333 said:

    Regarding the str file, you are correct in stating that the two elements are the real and imaginary parts.

    Regarding the first part of your question, could you attach your model? If not, please provide a detailed description. Have you applied symmetry to the model?

    Thank you for your reply. I've attached the model which is a tunable cavity-backed slot antenna. I haven't applied any symmetry to the model and I'm not using the parallel feature of Feko so that I can extract the impedance matrix.

  • Mel
    Mel Altair Community Member
    edited August 2021 Answer ✓

    In the *.str file, in this case, you can ignore the duplicate entries, although there might be sign differences - i.e. only take the first entry and disregard the 2nd one regardless of sign.

    Could you please clarify what you are trying to do?

    What is the purpose of exporting both the Feko MoM matrix and the solution vector and trying to correlate the two? Usually either the one or the other is exported and then processed further, but not both - if you already let Feko compute the solution, why do you still need the matrix?

    Some users want to work with the MoM matrix (like eigenvector solutions for CMA with their own correlation methods etc.). They then export the *.mat file (which is the "compressed" format, i.e. only the "real" unknowns), but do not care about the solution vector.

    On the other hand, exporting the fully expanded solution vector, which is not only for MoM, but includes FEM, PO etc. unknowns if available, is mostly for Feko internal purposes. These internal purposes are mainly to save the solution and re-use it in another Feko run to add further output requests later.
    With the ASCII conversion utility (str2ascii) some users do also use it for e.g. computing their own radiation integrals, but then you only need the *.str file, you do not need the matrix along with it (and there might not even be a matrix like for PO).

    As a side note, I noticed the model contains finite thickness of around 20 um. This can cause inaccuracies in some cases. I removed the finite the thickness and added some local mesh sizes - see the details tree for Edges and Faces where I added this.

    Also it is best to center the edge port between the two sides. I just used two plates instead of 3 - that will shorten the distance of the extension beyond the dielectric, but still ensure that the edge for the port is not placed exactly on the surface of the dielectric.

    image

     

  • Adrian Bauer
    Adrian Bauer Altair Community Member
    edited August 2021
    mel_21333 said:

    In the *.str file, in this case, you can ignore the duplicate entries, although there might be sign differences - i.e. only take the first entry and disregard the 2nd one regardless of sign.

    Could you please clarify what you are trying to do?

    What is the purpose of exporting both the Feko MoM matrix and the solution vector and trying to correlate the two? Usually either the one or the other is exported and then processed further, but not both - if you already let Feko compute the solution, why do you still need the matrix?

    Some users want to work with the MoM matrix (like eigenvector solutions for CMA with their own correlation methods etc.). They then export the *.mat file (which is the "compressed" format, i.e. only the "real" unknowns), but do not care about the solution vector.

    On the other hand, exporting the fully expanded solution vector, which is not only for MoM, but includes FEM, PO etc. unknowns if available, is mostly for Feko internal purposes. These internal purposes are mainly to save the solution and re-use it in another Feko run to add further output requests later.
    With the ASCII conversion utility (str2ascii) some users do also use it for e.g. computing their own radiation integrals, but then you only need the *.str file, you do not need the matrix along with it (and there might not even be a matrix like for PO).

    As a side note, I noticed the model contains finite thickness of around 20 um. This can cause inaccuracies in some cases. I removed the finite the thickness and added some local mesh sizes - see the details tree for Edges and Faces where I added this.

    Also it is best to center the edge port between the two sides. I just used two plates instead of 3 - that will shorten the distance of the extension beyond the dielectric, but still ensure that the edge for the port is not placed exactly on the surface of the dielectric.

    image

     

    I'm using both the solution vector and the impedance matrix to calculate the quality factor of the antenna in Matlab using the following equations:

    Q = 2w*max(We,Wm)/Prad

    where We and Wm are found by

    Wm = (1/8)*I^H(dX/dw + X/w)I

    Wm = (1/8)*I^H(dX/dw - X/w)I

    and Prad is found by 

    Prad = (1/2)*I^HRI

    with w being omega and ^H being the complex conjugate transpose and where is the solution vector I believe, and + jX is the MoM impedance matrix.

    I apologize if that looks sloppy, but I don't know if I can use Latex on this forum. Thank you so much for your help and for further improving the model in Feko