Multimonostatic scattering in FEKO

Altair Forum User
Altair Forum User
Altair Employee
edited October 2020 in Community Q&A

Dear Sirs,

I would like to simulate multimonostatic scattering in FEKO. By multimonostatic, I mean that an object is illuminated by an electric dipole which changes its position on a grid and the scattered field is computed at the same points occupied by the source from time to time.

The image partially illustrates what I intend to do. In the figure, there is a scatterer and a single fixed electric dipole. However, I what the dipole to occupy different positions and the scattered field to be computed at the same positions.

I believe that the MoM system matrix could be recycled under the different illuminations provided by the dipole positions with a gain in computation time. Could Home -> Application Macro -> Parameter Sweep be an effective solution?

Thank you for any help.

<?xml version="1.0" encoding="UTF-8"?>Multimonostatic.JPG

Tagged:

Answers

  • Mel
    Mel Altair Community Member
    edited June 2019

    Hi Angelo

     

    Yes, parameter sweep is a good option.

     

    Another option is to use script recording for the setup of the 1st StandardConfiguration, source and farfield.

    Then modify the script and use a loop to create all the required source positions, each in their own StandardConfiguration.

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited June 2019

    Thank you Mel for the quick answer.

     

    I have further three questions:

    1) Are the two solutions (Parameter Sweep and for loop) equivalent from the computational point of view?

    2) Does Parameter Sweep 'recycle' the MoM matrix for the different illuminations or does it recompute the matrix for each illumination?

    3) How do I recombine the results in an unique file? It seems that this solution generates a different .efe file for each different tx/rx position.

     

    Again, thank you.

  • Mel
    Mel Altair Community Member
    edited June 2019

    Hi Angelo


    You're quite right, I did not consider the re-use of the current coefficients. Parameter sweep creates a new model each time. This is a much less computationally efficient solution.

     

    Using multiple configurations would be the way to go. The attached example script creates a Hertzian dipole at different positions and calculates the near field each time.

     

    It creates an efe/hfe file for each configuration. To combine, of course one could write another lua postpostprocessing script. Another easy way is to just append all the files into one.

    The headers in the files makes this somewhat complicated. However, Feko has an option to write efe/hfe files without headers. You can set this with the environment variable

    FEKO_DATA_EXPORT_FORMAT=1 or use the command line option --data-export-format n (see UserManual.pdf).

    Then you can append all the files into one, for example in Windows you can use from any terminal:

    type *.efe > concat.efe

     

     

    Unable to find an attachment - read this blog

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited June 2019

    Thank you very much for your answer, for your .cfx example and for the LUA script.

     

    Unfortunately, I have FEKO 2017 and cannot open the .cfx file.

     

    However, apart from that, the LUA script returns the following error message:

     

    Error 16108: Label ElectricPointSource1 is not unique. A unique case-insensitive label is required.

     

    I believe this is due to the fact that project.SolutionConfigurations:AddStandardConfiguration() already creates and ElectricPointSource1 which conflicts with ElectricPointSource1 = project.SolutionConfigurations['StandardConfiguration'..tonumber(step)].Sources:AddElectricDipole(properties) trying to add a new entity with the same name.

     

    Should I delete the default ElectricPointSource1 or how could I solve the problem?

     

    Again, thank you for your help.

  • Mel
    Mel Altair Community Member
    edited June 2019

    The script works in 2018.2. and 2019.

    I suggest you upgrade directly to 2019.

    See images below of the result of running the script.

    conf7.png

     

    conf5.png