CCEX-1.0.0
Loading...
Searching...
No Matches
general.h
1#ifndef __CCEX_SIMULATOR_GENERAL_H_
2#define __CCEX_SIMULATOR_GENERAL_H_
3
4#include "utilities.h"
5
12typedef struct {
13
14 // Method
34 char method[MAX_CHARARRAY_LENGTH];
35 char quantity[MAX_CHARARRAY_LENGTH];
36
37 // General options
38 int order;
39 float bfield[3];
40 float rbath;
41 float rdip;
42 float deltat;
43 int nstep;
44 float rbathcut;
45 float rdipcut;
46 int nstate;
47 int seed;
48
49 // Qubit and Bath file options
50 char* qubitfile;
51 char* gyrofile;
53 char** bathfiles;
54 double** bathadjust;
55 char* avaaxfile;
56 char* statefile;
57 char* exstatefile ;
59 int* _flines;
60
61 // tensorfile-related
63 // Central spin number in reading Atensor file (default S = 1)
64 // It is nesessary for calulation of Hyperfin tensor with Atensor file
65 // <ex.1>
66 // If you use the Q.E., you will set this value which you want (S=5/2 --> DefectTotSpin = 5/2)
67 // <ex.2>
68 // If using VASP version, you don't consider the DefectTotSpin value (DefectTotSpin = 1)
69 // <ex.3>
70 // But if you wat to use other central spin which is different from A-file in VASP version,
71 // you have to set the central spin which you want (S=3/2 --> DefectTotSpin =3/2)
72 // , and then you will change CorrTotSpin !!!
73
74 double CorrTotSpin;
75 // Correlation value of total spin in A-tensor (default : NULL)
76 // <ex.1>
77 // If A-tensor file of Q.E., automatically it adapt the central spin S = 1/2 into A-file
78 // --> CorrTotSpin = 1/2
79 // <ex.2>
80 // If using VASP version, you don't consider the CorrTotSpin value (CorrTotSpin = NULL)
81 // <ex.3>
82 // But if you want to use other central spin which is different from A-file in VASP version,
83 // you have to set the central spin of A-file (VASP; Half of Total magnetic moment (S/2))
84
85 // DFT Hyperfine tensor
88 double hf_cutoff ;
90
91
92 // DFT Quadrupole tensor
96 double qd_cellpara[3];
97
98 // HF medi
99 bool hfmedi;
100 bool knight;
101
102 // semi-classical options
103 // int Interval_filter; // Default : 500 //gsl interval in integration
104 // int Step_filter; // Default : 100 //filter function time table step
105 // double epsabs_filter; // Default : 1e-10
106 // double tolerance_filter; // Default : 1e-10
107 // double RoundOff_err_filter; // Default : 1e+6
108 // int SaveCorr; // Default : 1 //1 : save the correlation function
109
110 //filter function time table
111 // std::vector<double> FilterTable; //[0 ~ 1], step : Step_filter
112
113} Config;
114
115Config* Config_init();
116void Config_freeAll(Config* cnf);
117void Config_report(Config* cnf);
118
119/* Low level ----------------------------------------------------*/
120
121// get
122char* Config_getMethod(Config* cnf);
123char* Config_getQuantity(Config* cnf);
124int Config_getOrder(Config* cnf);
125float* Config_getBfield(Config* cnf);
126float Config_getRbath(Config* cnf);
127float Config_getRdip(Config* cnf);
128float Config_getDeltat(Config* cnf);
129int Config_getNstep(Config* cnf);
130float Config_getRbathcut(Config* cnf);
131float Config_getRdipcut(Config* cnf);
132int Config_getNstate(Config* cnf);
133int Config_getSeed(Config* cnf);
134char* Config_getQubitfile(Config* cnf);
135char* Config_getGyrofile(Config* cnf);
136int Config_getNbathfiles(Config* cnf);
137char* Config_getBathfiles_i(Config* cnf,int i);
138double* Config_getBathadjust_i(Config* cnf,int i);
139char* Config_getAvaaxfile(Config* cnf);
140char* Config_getStatefile(Config* cnf);
141char* Config_getExstatefile(Config* cnf);
142int Config_get_nflines(Config* cnf);
143int* Config_get_flines(Config* cnf);
144int Config_get_flines_i(Config* cnf, int i);
145double Config_getDefectTotSpin(Config* cnf);
146double Config_getCorrTotSpin(Config* cnf);
147char* Config_getHf_tensorfile(Config* cnf);
148double Config_getHf_cutoff(Config* cnf);
149int Config_getHf_ignore_oor(Config* cnf);
150int Config_getHf_readmode(Config* cnf);
151char* Config_getQd_tensorfile(Config* cnf);
152char* Config_getQd_tensorfile_woqubit(Config* cnf);
153double* Config_getQd_cellpara(Config* cnf);
154int Config_getQd_readmode(Config* cnf);
155bool Config_getHfmedi(Config* cnf);
156bool Config_getKnight(Config* cnf);
157
158// set
159void Config_setMethod(Config* cnf, char* method);
160void Config_setQuantity(Config* cnf, char* quantity);
161void Config_setOrder(Config* cnf, int order);
162void Config_setBfield(Config* cnf, float* bfield);
163void Config_setBfield_z(Config* cnf, float bz);
164void Config_setRbath(Config* cnf, float rbath);
165void Config_setRdip(Config* cnf, float rdip);
166void Config_setDeltat(Config* cnf, float deltat);
167void Config_setNstep(Config* cnf, int nstep);
168void Config_setRbathcut(Config* cnf, float rbathcut);
169void Config_setRdipcut(Config* cnf, float rdipcut);
170void Config_setNstate(Config* cnf, int nstate);
171void Config_setSeed(Config* cnf, int seed);
172void Config_setQubitfile(Config* cnf, char* qubitfile);
173void Config_setGyrofile(Config* cnf, char* gyrofile);
174void Config_setNbathfiles(Config* cnf, int nbathfiles);
175void Config_setBathfiles_i(Config* cnf, char* bathfiles, int i);
176void Config_setBathadjust_i(Config* cnf, double* bathadjust, int i);
177void Config_setAvaaxfile(Config* cnf, char* avaaxfile);
178void Config_setStatefile(Config* cnf, char* statefile);
179void Config_setExstatefile(Config* cnf, char* exstatefile);
180void Config_set_nflines(Config* cnf, int nflines);
181void Config_set_flines_i(Config* cnf, int fline, int i);
182
183void Config_setDefectTotSpin(Config* cnf, double DefectTotSpin);
184void Config_setCorrTotSpin(Config* cnf, double CorrTotSpin);
185void Config_setHf_tensorfile(Config* cnf, char* hf_tensorfile);
186void Config_setHf_cutoff(Config* cnf, double hf_cutoff);
187void Config_setHf_ignore_oor(Config* cnf, int hf_ignore_oor);
188void Config_setHf_readmode(Config* cnf, int hf_readmode);
189void Config_setQd_tensorfile(Config* cnf, char* qd_tensorfile);
190void Config_setQd_tensorfile_woqubit(Config* cnf, char* qd_tensorfile_woqubit);
191void Config_setQd_readmode(Config* cnf, int qd_readmode);
192void Config_setQd_cellpara(Config* cnf, double* qd_cellpara);
193void Config_setHfmedi(Config* cnf, bool hfmedi);
194void Config_setKnight(Config* cnf, bool knight);
195
196// alloc
197void Config_allocBathfiles(Config* cnf);
198void Config_reallocBathfiles(Config* cnf, int oldsize, int newsize);
199void Config_allocBathadjust(Config* cnf);
200void Config_reallocBathadjust(Config* cnf, int oldsize, int newsize);
201void Config_allocGyrofile(Config* cnf);
202void Config_allocQubitfile(Config* cnf);
203void Config_allocAvaaxfile(Config* cnf);
204void Config_allocStatefile(Config* cnf);
205void Config_allocExstatefile(Config* cnf);
206void Config_alloc_flines(Config* cnf, int size);
207void Config_realloc_flines(Config* cnf, int oldsize, int newsize);
208void Config_allocHf_tensorfile(Config* cnf);
209void Config_allocQd_tensorfile(Config* cnf);
210void Config_allocQd_tensorfile_woqubit(Config* cnf);
211
212// free
213void Config_freeBathfiles(Config* cnf);
214void Config_freeBathadjust(Config* cnf);
215void Config_freeGyrofile(Config* cnf);
216void Config_freeQubitfile(Config* cnf);
217void Config_freeAvaaxfile(Config* cnf);
218void Config_freeStatefile(Config* cnf);
219void Config_freeExstatefile(Config* cnf);
220void Config_free_flines(Config* cnf);
221void Config_freeHf_tensorfile(Config* cnf);
222void Config_freeQd_tensorfile(Config* cnf);
223void Config_freeQd_tensorfile_woqubit(Config* cnf);
224
225#endif // __CCEX_SIMULATOR_GENERAL_H_
Definition general.h:12
double ** bathadjust
Definition general.h:54
int * _flines
Definition general.h:59
int nbathfiles
Definition general.h:52
float rbathcut
Definition general.h:44
float rdipcut
Definition general.h:45
int order
Definition general.h:38
int hf_readmode
Definition general.h:86
char quantity[MAX_CHARARRAY_LENGTH]
Definition general.h:35
char * hf_tensorfile
Definition general.h:87
float deltat
Definition general.h:42
char * exstatefile
Definition general.h:57
double DefectTotSpin
Definition general.h:62
char * gyrofile
Definition general.h:51
char method[MAX_CHARARRAY_LENGTH]
Clustering algorithm : cce (default) | gcce | dsj | itb | dsjitb | pcce.
Definition general.h:34
float rbath
Definition general.h:40
char * statefile
Definition general.h:56
int hf_ignore_oor
Definition general.h:89
int nstate
Definition general.h:46
char * qd_tensorfile
Definition general.h:94
int seed
Definition general.h:47
char * qd_tensorfile_woqubit
Definition general.h:95
char * qubitfile
Definition general.h:50
int _nflines
Definition general.h:58
float bfield[3]
Definition general.h:39
double CorrTotSpin
Definition general.h:74
int nstep
Definition general.h:43
int qd_readmode
Definition general.h:93
bool knight
Definition general.h:100
char * avaaxfile
Definition general.h:55
double hf_cutoff
Definition general.h:88
float rdip
Definition general.h:41
char ** bathfiles
Definition general.h:53
bool hfmedi
Definition general.h:99