-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME
More file actions
165 lines (115 loc) · 4.01 KB
/
Copy pathREADME
File metadata and controls
165 lines (115 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
Decoherence CCPQ project
========================
This code is intended to calculate the decoherence of central
spin systems entangled with a bath of spin impurities.
***Last modified version 19/11/2014***
Decoherence - Fortran library for spin decoherence
==================================================
Solves for the many-body dynamics of a central spin system coupled to
an interacting spin bath.
- Includes the generation of a crystal structure.
- Includes special methods for decoherence of electron/nuclear qubits.
- Includes sequence of CPMG pulses.
Installation
============
Requirements:
- Intel or GNU fortran compiler
- Git
- Make
The following instructions are for a Unix-like environment
without root privileges.
In a terminal,
```sh
mkdir Decoherence
cd Decoherence
git clone https://github.com/UCLGuichard/CCPQ
```
This gets the code. Now let's build it.
```sh
cd CCPQ/src
make
```
If all went well, you should now have the final three messages
--------Compilation done--------
----Data classification done----
-------Data cleaning done-------
You may wish to modify the makefile to adapt to your own
system.
It creates an executable file in the ./bin folder that you can run
with ./Decoherence.exe. It outputs *.dat files which name represents
the cases of study.
***Decoherence has been tested on Linux***
Usage
-----
Run the executable Decoherence.exe in the ./bin folder.
It takes the arguments defined in the input files
System.inp ! Sets the properties of the crystal structure
Dynamics.inp ! Sets the dynamics
Output.inp ! Sets the outputs
in the ./input folder. Modify them for your own purposes.
Testing
-------
There are two types of testings: unit testing and case testing.
- Unit testing: go in the unit_test/test_src/ folder and run make
You should have the following messages
--------Compilation test_read done-----------
--------Compilation test_crystal done--------
--------Compilation test_interactions done---
--------Compilation test_decoherence done----
--------Data classification done-------------
--------Data cleaning done-------------------
Then go to ./unit_test you can now run a spate of unit testing
for all subroutines and modules:
```sh
bash ./run_test_read.sh
./test_crystal.exe
./test_interactions.exe
./test_decoherence.exe
```sh
It should display a list of testings with 'ok' statements.
It also generates output *.dat and *_test.dat files
calculated by two different methods. You can check that:
* dipolar C12 values are identical between the calculated C12.dat
and the analytical formula C12_analytical.dat (owing absolute value)
* decoherence for the FID, Hahn, CP2 and CP6 cases for electron donor
are identical (numerically calculated by Decoherence and analytically
computed in the test cases)
- Case testing: go in the ./test/Tania_subroutine folder and run make
You should have the following messages
--------Compilation test_read done-----------
--------Data cleaning done-------------------
Then run
bash ./run_test.sh in the above ./test folder. It runs Decoherence and
uses the outputs as input files for the code ROLAND.DD.f90. The comparison
between the decoherence calculated with the two methods can be checked
by plotting the output *.dat file in ./bin and the corresponding
./Tania_subroutine/CPMGN.dat (owing a factor 1000 in x axis for converting
units).
Example
-------
Getting help
------------
License
=======
See LICENSE file for more details.
Citation
========
See CITATION file for more details.
Version
=======
2.0 (in progress)
History
=======
Decoherence is based on bits and pieces of old code for certain spin baths
and central spin systems. These were written by R. Guichard starting
in 2014. Methods used to efficiently fill Hamiltonian matrix elements
were originally written in Fortran by Prof. Tania Monteiro. Checking has
been performed with Setrak Balian's C++ spindec code:
http://www.bitbucket.org/sbalian/spindec
Acknowledgements
================
- Prof. Tania Monteiro
- Setrak Balian
Contact
=======
[Roland Guichard] - <r.guichard@ucl.ac.uk>