Open AdrainT opened 1 year ago
Hi @AdrainT, we can indeed use ARTEMIS for calculating the S-parameter. Our work describing how to do so has been recently submitted and gone through one revision. Here is the arXiv link for the manuscript: ([https://arxiv.org/abs/2208.04371]).
I will be able to provide you with the inputs file for collecting diagnostics that can be used to compute the S-parameter, as well as the jupyter-notebook that computes the equations described in the paper. I would need a day or two to get these two things ready for you. I will provide these things for a simple case of a microstrip (also briefly explained in the manuscript) and then you can use it as a guideline for your problem. For specifics regarding the Maxwell-LLG problem, @jackieyao0114 will be able to help.
Meanwhile, if you have any questions regarding the equations used in the manuscript, let me know.
Hi @PeculiarOvertones, thanks so much for your detailed reply, that's really helpful and inspiring. Congratulations to you for your new work and achievements, it is awesome! Looking forward to hearing from you soon.
Hi @AdrainT, thank you for your words! I am glad that you are interested in using ARTEMIS for your research.
To help you understand the step-by-step procedure for computing the S-parameter, I am attaching a folder, SheenLFP.zip. It describes S-parameter computation for the low pass filter (case 2), described in Sheen et al. [1] and its comparison with ARTEMIS. This comparison is briefly described in our manuscript, Sec. B.
[1] D. M. Sheen, S. M. Ali, M. D. Abouzahra, and J. A. Kong, “Application of the three-dimensional finite-difference time-domain method to the analysis of planar microstrip circuits,” IEEE Transactions on Microwave Theory and Techniques, vol. 38, no. 7, pp. 849–857, 1990
(Please note that this case does not correspond to simulation with Maxwell-LLG equations. @jackieyao0114 will help you with setting up specific parameters for your case.)
This zip file contains 3 folders: A) Total B) Incident C) Analysis
First I will go through (A) and (B) folders, which is about generating input files with diagnostics so that you can output voltages, currents at specific ports in your simulation domain, which you can then use to compute S-parameter.
A) The Total/ folder:
Total/ contains a recipe for generating input file for an entire low-pass-filter as described by Sheen et al.
It contains a jupyter-notebook script, entitled, "InputGenerator_SheenCase2.ipynb." Using this script you can generate a fine named, 'Sheen_LPF_Total_Diagnostics'
It contains part of the input that is used for defining surfaces for extracting a) E-field on a 2-D surface to calculate voltage b) B-field on a 2D surface to calculate current c) Volume integral of E-field d) Volume integral of B-field. You can control how many surfaces you want to define and which of these quantities would you like to specify in the input file. I have written comments in the python code for you to understand.
The Total/ folder also contains a file, `Sheen_LPF_Total_TOP' which incorporates part of the input file without diagnostics.
The final input file is created by appending the _TOP and _Diagnostics files. For example, we can do this using the cat command on linux:
_cat Sheen_LPF_Total_TOP Sheen_LPF_Total_Diagnostics > Sheen_LPF_Total
I have provided these files in the folder.
B) The Incident/ folder:
Incident/ contains a recipe for generating input file for only obtaining the incident waveforms. This is needed for computing the S-parameter. (Please see the discussion in our manuscript).
-It contains similar files for the setup involving incident waves. You can follow the procedure described above and create a file named Sheen_LPF_Incident
I have provided this file in the folder.
Next, you can run ARTEMIS twice using these input files and generate diagnostics. We are mainly interested in the reduced diagnostics which refer to surface integrals to compute voltages and currents. These are written out in _Bin/diags/reducedfiles.
C) The Analysis/ folder:
I have run ARTEMIS with these input files on my local CPU and copied the reducedfiles generated using Sheen_LPF_Incident and Sheen_LPF_Total into folders Analysis/reduced_diags_incident and Analysis/reduced_diags_total.
The Analysis/ folder also contains a jupyter-notebook file, 'Analysis_SheenCase2.ipynb'. In this file, we go step-by-step to compute voltages, S-parameter (S) compared with Sheen et al., Current and Impedance calculation, and transformation of S into S-parameter normalized to 50 Ohms.
I have included comments for you to follow. But please feel free to ask me any questions you may have.
Hi @PeculiarOvertones, thank you for your preparation by heart, very detailed!I would read them carefully.
@AdrainT We have uploaded the revised version of our manuscript which will be online on arXiv tomorrow I think. I will post the link here and update my above response (in place) to refer to figures in the revised paper.
Hi @PeculiarOvertones, sounds good!I’m looking forward to it!
Hi @PeculiarOvertones, I‘ve already read through your delicate script of calculating the S-parameter, that was really useful. I have some questions about using ARTEMIS to calculate S parameter for Maxwell-LLG problems. Can I follow the similar procedure to calculate the S parameter for LLG coupled problems, or there's something other need to be paying attention to? Should I use the same Gaussian pulse as an excitation? Thanks so much!
Hi @PeculiarOvertones, I carefully checked the materials you provided, thank you for your elaborate preparation. I used a simple microstrip as an example for learning the process of calculating the S parameter with ARTEMIS, and compared the result with simulation software COMSOL. I found that the result is similar, but still with some gap, and I can’t figure out if it is normal. In order to find out where does the gap come from, I have the following suppose: (1) I notice that in your microstrip demo, the E-surface is placed 10dy away from the port. How is this distance be selected? (2) Is it necessary to add air layer around the boundary in order to avoid applying boundary condition directly on the microstrip, which might cause error since there is a discontinuity on the dielectric constant at the boundary of microstrip while we set PML at that boundary.? (3) I apply the same modulated gaussian pulse exp(-(t-t0)2/(T)2)sin(2pif0*t) as in COMSOL for calculating broadband S parameter, where f0 is the central frequency point. Is it a good selection of excitation function, or do you have other better suggestion? I also attached my incident input file. In this case the incident waveforms and the total waveforms are the same. Thanks for your attention, I'm looking forward to your reply. The microstrip model S parameter from COMSOL
@AdrainT Sorry for the delay in my response, I didn't receive notification for this. Let me go through what you have posted and get back. You can email me next time if I dont respond: SaurabhSawant@lbl.gov.
@AdrainT
Can I follow the similar procedure to calculate the S parameter for LLG coupled problems, or there's something other need to be paying attention to?
-- It depends on the geometry. What is your particular geometry like? Does LLG goes all the way up to the boundary.
One thing to note is that when you have a nonreciprocal circuit then your S21 is not equal to S12. So we need to do another 2 calculations for calculating S12 and S22, i.e. by putting excitation on the other side (Ymax if the propagation direction is Y). You would notice that in the script I had given you, before converting S to S we assumed S12 = S21 and S11 = S22*. It made sense for that particular case because the circuit was reciprocal and the geometry was symmetric about Y/2.
Even if the transmission line is reciprocal, but the geometry is such that it is not symmetric about Y/2 and port 2 has different geometric structure than port 1, then S21 is not equal to S12 but after S* to S transformation, S12=S21. This was the case for our transmission line discussed in the paper. See the accepted paper: (S. S. Sawant, Z. Yao, R. Jambunathan and A. Nonaka, "Characterization of Transmission Lines in Microelectronic Circuits Using the ARTEMIS Solver," in IEEE Journal on Multiscale and Multiphysics Computational Techniques, vol. 8, pp. 31-39, 2023, doi: 10.1109/JMMCT.2022.3228281.)
I found that the result is similar, but still with some gap, and I can’t figure out if it is normal. In order to find out where does the gap come from, I have the following suppose: --I couldnt understand the gap you are referring to. Could you please explain?
(1) I notice that in your microstrip demo, the E-surface is placed 10dy away from the port. How is this distance be selected? --I just meant to keep it slightly away from the excitation. As long as I am away 2 or more cell distances away, that's OK.
Basically the wave needs to move a little bit further down so that the magnetic field (around the strip) is setup. Also note that the other port should also be equal distance away from the other boundary.
(2) Is it necessary to add air layer around the boundary in order to avoid applying boundary condition directly on the microstrip, which might cause error since there is a discontinuity on the dielectric constant at the boundary of microstrip while we set PML at that boundary.? --No no adding air layer is going to cause a physical reflection. We do not want that. So I excite it on the actual structure, typically on the first cell, right adjacent to the PML. Whatever goes in PML get's absorbed, that's OK.
_(3) I apply the same modulated gaussian pulse exp(-(t-t0)2/(T)2)sin(2pif0*t) as in COMSOL for calculating broadband S parameter, where f0 is the central frequency point. Is it a good selection of excitation function, or do you have other better suggestion?_**
--In our paper we used differential Gaussian. But it doesn't really matter. If you have a particular application where f0 is known then you can go ahead with the aforementioned pulse. We didn't have any. Main point to note is that we want a pulse which doesn't have any DC content. Pure Gaussian pulse does and that's why we do not use that. But differential Gaussian or even modulated Gaussian is OK. It's a good practice to see the spectrum of the pulse by taking FFT before you use it in your simulation.
Hi, I am new to ARTEMIS and is now seeking to use ARTEMIS for S parameter calculation, espeically for Maxwell-LLG problems. However, I have not figured out a way to use the code to set corresponding exciation/boundary conditions. Is there any possible way to do this? Thanks a lot!