[Q] What is Arpeggio?
[A] Arpeggio is a music term. It is a way to play the chord shuch like do-mi-so-do-so-mi.
[Q] I am looking for infomation on Full-Wave EM simulator, so I am in the wrong place?!
[A] No, you are absolutely in the right place. Don't leave!!
[Q] So what is Arpeggio using EM language?
[A] Arpeggio is a Time-Domain Full-Wave EM simulator. It solves the Maxwell Equations in time domain and find the desired frequency quantities via Fourier Transform.
[Q] I've read the previous two FAQs. So Arpeggio is categorized as Time-Domain, Finite-Difference method?
[A] Yes, we often use FD-TD instead.
[Q] From the two FAQs, I know the difference between different EM Full-Wave method. So what is the feature of this Ar....pegg.....io.....?
[A] Arpeggio is a very general EM simulator. It let you simulate
almost everything as long as you have powerful computer and enough memory.
If you like to know the main difference between Arpeggio and other EM simulators,
here are some comparsions:
[Q] Interesting, so you said you did lots of optimizations, can you tell me how?
[A] Hmmmm, this is secret....... But I can give you an example. If you have three nested do-loops, using different language, compiler, CPU, computer plateform, how to nest the do-loops to run fast is different. You have to dig every detail in order to let it reach maximun speed!!
[Q] So what's the speed improvement you are talking about here, can it run as fast as Libra, MDS...?
[A] Sorry the answer might disappoint you. No matter what, Arpeggio is still a Full-Wave EM simulator. It has to do lots of number-crunching. I will say the speed improvement over other general FD-TD code under same situation will be from 0% - 30% (but have to check on this).
[Q] Can you describe how to use Arpeggio?
[A] Sure. First you have to define the circuit you want to simulate and give those parameters into Arpeggio using Arpeggio's ParaEditor. But notice first you have to simulate a Main Circuit (in Arpeggio's language) which is the circuit you want. Then you can copy the parameters for Main Circuit to a Reference Circuit (which might be, for example, a uniform microstrip line) and use ParaEditor to modify the parameters for Reference Circuit and start running the simulation. You will see The Reference Circuit is being simulated first and then Main Circuit. You can also see the progress of the simulation in time domain. After the simulation is done, you can examine the time-domain response and aslo obtain the S-parameters using Arpeggio's PostProcessor.
[Q] Why we need to simulate twice, one for Main and the other for Reference?
[A] It depends on which quantity you want. If you want S parameters, you have to run twice since the S parameters are defined as being normalized to the incident wave. For Main Circuit simulation, you will get incident+refelcted at port 1. In order to get incident wave (and then be able to subtract the incident wave from the response from Main Circuit simulation), you need to run a Reference Circuit to obtain the incident wave without any reflection. The Reference Circuit is simply a uniform microstrip line or CPW or ..... any transmission line you are using.
[Q] What is ABC? How important is it?
[A] Sorry I forgot to mention that. ABC stands for Absorbing Boundary Condition which is used to emulate an 'infinitely large space'. It is just like the absorbers in an antenna chamber to absorb the EM wave without reflecting them back to the circuit under test. The reason is simple, since we have only limited computer resource, we need to put an artificial absorber in our simulation space to emulate absorbers.
ABC is the most important thing in FD-TD method. It affect the run time,
memory requirement and the results so much that its importance can not be ignored.