[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:

Arpeggio vs. other Frequency-Domain EM simulator ----- As said in
the FAQs, Arpeggio is true 3D EM simulator. Most of other Frequency-Domain
method assume an infinite large substrate which we refer as 2.5D EM simulator.

Arpeggio vs. other FD-TD based commercial tool ----- I didn't do
the comparsion, but I believe Arpeggio is faster since I spent lots of
time optimizing the code (to tell you guys the truth, I have been a computer
guys for a long time doing CPU, computer architecture, software programming....,
I know lots of tricks for making codes run faster). It is a horrible task
since you have to know both EM and computer.

Arpeggio vs. other home brew FD-TD code ----- Arpeggio is much more
general although will be a little bit slower than a well-optimized hand-craft
FD-TD code. But try to modified the code each time for different structure
for your own hand-craft FD-TD code, it will drive you nuts!

[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.