QCA-STACK is a QCA design and simulation system written in Haskell. The system simulates discretely (with a modified bistable approximation simulation engine) and has no limits regarding the third spacial dimension, lending itself well to theoretical exploration with (stackable) three-dimensional designs. Read the thesis included in this repository for more information.
NB: The project was made on Windows and has thus not been tested on Linux or macOS.
- Install Haskell Stack.
- Install Jetbrains IntelliJ IDEA and install the plugin IntelliJ-Haskell. The latter link has detailed instruction on running a stack project in IntelliJ. Consult this if the following steps do not work for you.
- NB: At the moment of writing the current version of IntelliJ-Haskell is 1.0.0-beta87. This version gives an error when you want to create a run configuration, though version 1.0.0-beta85 does not. This older version breaks IntelliJ version 2021.2.2 (the latest version at the time of writing) however, so you will need to downgrade it to version 2020.3.4.
- Clone this repository or make sure you have the
code
folder and its contents on your file system. - Open the aforementioned folder in IntelliJ with the following steps (the steps could depend on your IntelliJ version):
- Import project, select the
code
directory. - Select "Import project from external model" and select Haskell Stack.
- Click configure on "Haskell Tool Stack" and select the path to the stack binary. On Windows, this is typically in:
C:\Users\<username>\AppData\Roaming\local\bin\stack.exe
.
- Import project, select the
- Under the 'Haskell' menu, click "Update Settings and restart REPLs".
- Now you can add run configurations:
- Add new, Haskell Stack -> Haskell Stack REPL. Give a name to the run configuration (for instance "REPL"), tick "Allow running in parallel" and press OK. This configuration will launch GHCi.
- Add new, Haskell Stack -> Haskell Stack Runner. Give a name again (for instance "RUN") and press OK. This configuration will compile the project running the
main
function inapp/Main.hs
to an exe; the output is written to.stack-work/dist/<buildid>/build/QCA-STACK-exe/QCA-STACK-exe.exe
.
- You are now ready to explore the possibilities of quantum-dot cellular automata with QCA-STACK.