One of the biggest time sinks I deal with in my research is performing device simulations using the Silvaco simulator. The simulator engine itself is quite powerful. The wrapper around the engine, however, is pretty obtuse. The language is not particularly expressive, and doesn't seem to easily allow for things like nested sweeps of various physics parameters. This leads to a lot of manual changes to input decks, and we all know that manual changes cause errors. Frequently, I will modify some parameters in a deck but forget to change the line that dictates the output log file, leading to overwritten results.
To try to remedy this situation, I've been developing a small pre-processor to try to automate the task of running large numbers of Silvaco simulations. The idea is to write a template input deck with parameter ranges specified in-line that will then be parsed by the pre-processor. The pre-processor will generate as many discrete decks as necessary and then spawn child processes to concurrently perform simulations. The output log files will be named in a sane manner to avoid overwriting results.
I've got about 1/3 of this script finished at the moment. I'll post it here when I'm done.
i'm glad you updated this again.
ReplyDelete