This directory contains a PEEC code, based on stick elements, for the solution of full-wave electromagnetic problems.
An optimized, parallel (OpenMP), fortran90 version of this code has been used in
- R. Torchio, "A Volume PEEC Formulation Based on the Cell Method for Electromagnetic Problems From Low to High Frequency," in IEEE Transactions on Antennas and Propagation, vol. 67, no. 12, pp. 7452-7465, Dec. 2019, doi: 10.1109/TAP.2019.2927789
- P. Baumgartner, T. Bauernfeind, O. Bíró, A. Hackl, C. Magele, W. Renhart and Riccardo Torchio, "Multi-Objective Optimization of Yagi-Uda Antenna Applying Enhanced Firefly Algorithm With Adaptive Cost Function," in IEEE Transactions on Magnetics. doi: 10.1109/TMAG.2017.2764319
- T. Bauernfeind, P. Baumgartner, O. Bíró, A. Hackl, C. Magele, W. Renhart and Riccardo Torchio, "Multi-Objective Synthesis of NFC-Transponder Systems Based on PEEC Method," in IEEE Transactions on Magnetics. doi: 10.1109/TMAG.2017.2771366
- R. Torchio, P. Bettini and P. Alotto, "PEEC-Based Analysis of Complex Fusion Magnets During Fast Voltage Transients With H-Matrix Compression," in IEEE Transactions on Magnetics. doi: 10.1109/TMAG.2017.2651638
In this code, the PEEC system of equations is assembled in its reduced form where currents only are considered as unknowns:
[R+iwL+(1/(iw)A^TPA)j=e
see the above references for more details and consider citing it.
In this code only conductive media modeled by thin 1D (a.k.a "stick") elements are considered.
MAIN_PEEC_sticks_MF.m is the main file you must run to start the code.
The final system of equations is generated by a function
handle "sys_MF" which allows computing either the full PEEC system
or a generic block of it (or a single entry).
Thus, this code is suitable for the application of
low-rank compression techniques, e.g.:
https://github.com/numpi/hm-toolbox
https://github.com/klho/FLAM/
The varibale "barDoFs" contains the barycenters
related to the Degrees of Freedom, i.e. stick currents (and other lumped circuit currents)
MAIN_PEEC_sticks_MF_lowrank.m is the main file you must run to start the code coupled with the low rank compression library https://github.com/UniPD-DII-ETCOMP/hm-toolbox based on HODLR and HSS. 1) Download the Matlab HM-toolbox 2) Extract it so that the "hm-toolbox-master" directory is at the same level of "test_cases", "fun" and "lowrank". HSS, HODLR, and HMATRIX methods can be used to compress the PEEC matrix. Note that the compression performances are higly problem dependent and the compression may be very poor without a proper reordering of the DoFs.
All user-settable quantities, e.g. frequency and resistivity, are contained in the block identified by the BEGIN USER SETTINGS / END USER SETTINGS comments.
Several test cases are contained in separate directories under "test_cases". Each directory contains a description.txt file. Set the "test_case_dir" variable in "MAIN_PEEC_sticks_MF.m" and "MAIN_PEEC_sticks_MF_lowrank.m" to the appriapriate directory.
Follow the instuctions given in "README.txt" inside the "test_cases" directory.
Riccardo Torchio ([email protected])