Giter Site home page Giter Site logo

kschab / iterative-characteristic-modes Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 0.0 49.96 MB

An example of an iterative, scattering-based algorithm for computing characteristic modes.

Home Page: https://doi.org/10.48550/arXiv.2209.00097

License: MIT License

MATLAB 100.00%
characteristic-modes computational-electromagnetics electromagnetics

iterative-characteristic-modes's Introduction

iterative-characteristic-modes

An example of the iterative, scattering-based algorithm for computing characteristic modes presented in [1].

Implementation notes

The example utilizes pre-calculated data from method of moments simulations to reduce both the code complexity and the computational cost of the demonstration. Pre-calculated data are provided for an infinitely long, perfectly conducting elliptical cylinder with major and minor axes related by an aspect ratio of 4. All electric fields are polarized parallel to the axis of the cylinder.

Steps listed in the comments of the code correspond to the steps in Algorithm 2 of [1].

The use of these pre-calculated data to emulate calls to a general full-wave solver is clearly delineated within the code. In more realistic applications of the algorithm, those lines would be replaced with calls to whatever full-wave simulator is best suited for the problem being studied.

Four user settings alter the behavior of the demonstration (see code for further details):

  • kdex : this selects one of three electrical sizes to show how the number of modes with high modal significance affects convergence of the iterative algorithm
  • undersampling : this parameter controls undersampling of radiation patterns used to construct the matrix representation of the scattering dyadic
  • fastflag : this flag precalculates a matrix inverse to accelerate emulation of a full-wave solver
  • plotting : this flag enables or disables plotting

By default, the modified Gram-Schmidt procedure is used in place of the Gram-Schmidt process described in Steps 8 and 9 of Algorithm 2 in [1]. This can be disabled by setting mgs = 0.

Note that this example does not include any of the time-domain, multi-frequency techniques discussed in Sec. II-B of [1].

Timing and performance

Live plot updates greatly increase the apparent time of the iterative algorithm. To accurately assess the relative computational cost of calculating characteristic modes using the full scattering dyadic versus the iterative algorithm, disable the plotting and full-wave acceleration features (fastflag = 0 and plotting = 0). With these settings, along with no undersampling (undersampling = 1), the following computational times, numbers of iterations, and numbers of modes with modal significance greater than 0.01 were obtained on a MacBook Air (M1, 2020):

ka = 0.1π ka = π ka = 10π
Full calculation time (s) 34 33 34
Iterative algorithm time (s) 1.5 4.7 21
Iterations 6 12 56
# modes MS>0.01 3 9 51

References

[1] Lundgren, Schab, Capek, Gustafsson, and Jelinek, "Iterative calculation of characteristic modes using arbitrary full-wave solvers,'' arXiv preprint arXiv:2209.00097 (2022)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.