“Simulations” is quite a generic term. Overall we can think of physical level simulations and circuit level simulations.
Examples of physical simulation are mode-solvers, beam propagation, eigenmode expansion, or FDTD 2D or 3D. There are a number of open source tools online in c(++), Matlab or Python. FDTD open source examples are MEEP and B-CALM. For circuit simulations Qucs is an open source example.
The questions is: how to integrate simulation tools, open or commercial use, with (layout) in Nazca?
First of all I would recommend a Python interface to minimize programming overhead (spend time on design instead) and to keep it platform independent. Secondly, I would prefer tools that (also) have a command line interface, so you can outsource activities to them and skip a GUI.
Note that tool integration is a very active topic in the PIC research community and at this point there are no complete integrated commercial or open source solutions. There is still a lack of standards. Tool integration needs to work in a real-live work flow, which throws curve balls, not just in a demo.
Very important is to have an open interface, so you can connect your tools of preference and/or solve issues when they pop up in your specific case. This flexibility a goal of Nazca.
In the architecture of the Nazca layout it is possible to connect to e.g. mode-solvers. The solver is an attribute of a layout element. There is a simple library for a symmetric waveguide solver already included in Nazca to demonstrate this integration (a tutorial may be helpful…). The element stores, can access, all the info your solver needs, then call the solver and collect the solver results from the solver object for plotting etc.
Nazca is connecting to circuit design tools as well. This part focusses more at the netlist level and you can export a Nazca layout from the circuit simulator. More information on this becomes available in the near future.