Yes. Otherwise I would not like to write a simulator. ;)
Nevertheless, to write a simulator engine, you do not need to have a deep knowledge of electronics. Maths is much more important. Do you know any good books on the topic e.g. on solving stiff differential equations?
solving stiff differential equations?
Oh God, I did that way back in 1981 era, and it was only at beginners level really - certainly not at a 'stiff' level
I would read around SPICE (Simulation Program with Integrated Circuit Emphasis). That should give you a good idea about the data structures and algorithms needed.
There are links to versions with code on wikipedia.
http://en.wikipedia.org/wiki/SPICE
OMG, they use linked lists to implement sparse matrices. This must be dead slow (especially the allocation by malloc required for each of the elements). And hardcoded equations of derivatives for Jacobian computation (there were bugs in these equations in SPICE2 according to one of the linked articles). WTF did they not let the program compute them symbolically? And lots of gotos and global variables everywhere. This is ridiculous.
Don't you have any links to some simulators that were written by someone who actually could program?
@xoreaxeax
I beleive your question was not intended for a C++ forum. As you dont see any future in the language perhaps.... Why dont you use ASP.NET instead, it will give you a better GUI...
If it was so simple to find in a Google, I would do it. But it returns lots of irrelevant papers.
Actually the links from wikipedia are the most valuable ones, so thank you Grey Wolf.
I'm not planning to write it in C++, but I expected to find some good simulators written in C or C++ just to get some more inspiration, so that is why I posted it here. Maybe someone already played with that and wants to share his/her experience. If SPICE3 is the state-of-the-art thing, then it should be easy to create a much better one in a modern language.