added (6Li,d) support )
This commit is contained in:
parent
5503212312
commit
7d7cf0b6e3
|
@ -103,8 +103,8 @@ int InFileCreator(string readFile, string infile, double angMin, double angMax,
|
||||||
bool isReactionSupported = false;
|
bool isReactionSupported = false;
|
||||||
bool isTransferReaction = true;
|
bool isTransferReaction = true;
|
||||||
|
|
||||||
if( iso_a.A <= 4 && iso_a.Z <= 2 && iso_b.A <=4 && iso_b.Z <=2 ) isReactionSupported = true;
|
if( iso_a.A <= 4 && iso_a.Z <= 2 && iso_b.A <= 4 && iso_b.Z <=2 ) isReactionSupported = true;
|
||||||
|
|
||||||
///======= elastics-ish scattering
|
///======= elastics-ish scattering
|
||||||
if( iso_a.Mass == iso_b.Mass ) isTransferReaction = false;
|
if( iso_a.Mass == iso_b.Mass ) isTransferReaction = false;
|
||||||
|
|
||||||
|
@ -114,7 +114,10 @@ int InFileCreator(string readFile, string infile, double angMin, double angMax,
|
||||||
///======= 3-nucleons transfer is not supported. e.g. (n,a), (p,a), (a,n), (a,p)
|
///======= 3-nucleons transfer is not supported. e.g. (n,a), (p,a), (a,n), (a,p)
|
||||||
int numNucleonsTransfer = iso_a.A - iso_b.A;
|
int numNucleonsTransfer = iso_a.A - iso_b.A;
|
||||||
if( abs(numNucleonsTransfer) >= 3 ) isReactionSupported = false;
|
if( abs(numNucleonsTransfer) >= 3 ) isReactionSupported = false;
|
||||||
|
|
||||||
|
///======= (6Li,d) reaction
|
||||||
|
if( iso_a.A == 6 && iso_a.Z == 3 && iso_b.A == 2 && iso_b.Z == 1 ) isReactionSupported = true;
|
||||||
|
|
||||||
if( isReactionSupported == false ){
|
if( isReactionSupported == false ){
|
||||||
printf(" ===> Ignored. Reaction type not supported. \n");
|
printf(" ===> Ignored. Reaction type not supported. \n");
|
||||||
continue;
|
continue;
|
||||||
|
@ -176,12 +179,17 @@ int InFileCreator(string readFile, string infile, double angMin, double angMax,
|
||||||
spdf = GetLValue(lValue);
|
spdf = GetLValue(lValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
// two-nucleons transfer
|
// two-nucleons transfer, v vc
|
||||||
if( abs(iso_a.A - iso_b.A) == 2 ){
|
if( abs(iso_a.A - iso_b.A) == 2 || abs(iso_a.A - iso_b.A) == 4 ){
|
||||||
size_t posEq = orbital.find('=');
|
size_t posEq = orbital.find('=');
|
||||||
lValue = orbital.substr(posEq+1,1);
|
lValue = orbital.substr(posEq+1,1);
|
||||||
spdf=atoi(lValue.c_str());
|
spdf=atoi(lValue.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// (6Li,d)
|
||||||
|
if( abs(iso_a.A - iso_b.A) == 4 ){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if( abs(iso_a.A - iso_b.A) == 0 ){
|
if( abs(iso_a.A - iso_b.A) == 0 ){
|
||||||
printf(" ===? skipped. p-n exchange reaction does not support. \n");
|
printf(" ===? skipped. p-n exchange reaction does not support. \n");
|
||||||
|
@ -320,10 +328,14 @@ int InFileCreator(string readFile, string infile, double angMin, double angMax,
|
||||||
fprintf(file_out, "PARAMETERSET alpha3 r0target\n");
|
fprintf(file_out, "PARAMETERSET alpha3 r0target\n");
|
||||||
fprintf(file_out, "lstep=1 lmin=0 lmax=30 maxlextrap=0 ASYMPTOPIA=40\n");
|
fprintf(file_out, "lstep=1 lmin=0 lmax=30 maxlextrap=0 ASYMPTOPIA=40\n");
|
||||||
fprintf(file_out, "\n");
|
fprintf(file_out, "\n");
|
||||||
fprintf(file_out, "PROJECTILE\n");
|
fprintf(file_out, "PROJECTILE nodes=0 l=0 r0=1.25 a=0.65 rc0=1.25\n");
|
||||||
fprintf(file_out, "wavefunction phiffer\n");
|
|
||||||
fprintf(file_out, "L = 0 NODES=0 R0 = 1.25 A = .65 RC0 = 1.25\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( iso_a.A == 6 && iso_a.Z == 3 && iso_b.A == 2 && iso_b.Z == 1 ){
|
||||||
|
fprintf(file_out, "PARAMETERSET alpha3 r0target maxlextrap=0 asymptopia=100\n");
|
||||||
|
fprintf(file_out, "PROJECTILE nodes=0 l=0 r0=1.25 a=0.65 rc0=1.25\n");
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(file_out, ";\n");
|
fprintf(file_out, ";\n");
|
||||||
|
|
||||||
//===== TARGET
|
//===== TARGET
|
||||||
|
@ -359,9 +371,13 @@ int InFileCreator(string readFile, string infile, double angMin, double angMax,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( iso_a.A == 6 && iso_a.Z == 3 && iso_b.A == 2 && iso_b.Z == 1 ){
|
||||||
|
fprintf(file_out, "nodes=4 l=%d \n", spdf);
|
||||||
|
}
|
||||||
|
|
||||||
fprintf(file_out, ";\n");
|
fprintf(file_out, ";\n");
|
||||||
|
|
||||||
//===== POTENTIAL
|
//===== POTENTIAL
|
||||||
string pot1Name = potential.substr(0,1);
|
string pot1Name = potential.substr(0,1);
|
||||||
string pot1Ref = potentialRef(pot1Name);
|
string pot1Ref = potentialRef(pot1Name);
|
||||||
fprintf(file_out, "INCOMING $%s\n", pot1Ref.c_str());
|
fprintf(file_out, "INCOMING $%s\n", pot1Ref.c_str());
|
||||||
|
|
|
@ -25,7 +25,7 @@ void PrintPotential(){
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
/// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
||||||
/// 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1
|
/// 1 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 1 1 // 1 = used
|
||||||
string potentialRef(string name){
|
string potentialRef(string name){
|
||||||
|
|
||||||
//======== Deuteron
|
//======== Deuteron
|
||||||
|
@ -107,6 +107,11 @@ string potentialRef(string name){
|
||||||
if( name == "f"){
|
if( name == "f"){
|
||||||
return "(FIXED) Bassani and Picard, (1969) 24 < E < 31 | A = 90 | https://doi.org/10.1016/0375-9474(69)90601-0";
|
return "(FIXED) Bassani and Picard, (1969) 24 < E < 31 | A = 90 | https://doi.org/10.1016/0375-9474(69)90601-0";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//======= 6Li
|
||||||
|
if( name == "6"){
|
||||||
|
return "Fixed 6Li potential";
|
||||||
|
}
|
||||||
|
|
||||||
//====== custom
|
//====== custom
|
||||||
if( name == "Y"){
|
if( name == "Y"){
|
||||||
|
@ -168,6 +173,22 @@ bool CustomYPotential(int A, int Z, double E){
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//======================== 6Li
|
||||||
|
bool SixLithium(){
|
||||||
|
v = 101.2;
|
||||||
|
r0 = 1.24;
|
||||||
|
a = 0.817;
|
||||||
|
|
||||||
|
vi = 12.64;
|
||||||
|
ri0 = 1.57;
|
||||||
|
ai = 0.690;
|
||||||
|
|
||||||
|
rc0 = 1.3;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//======================== deuteron
|
//======================== deuteron
|
||||||
bool AnCaiPotential(int A, int Z, double E){
|
bool AnCaiPotential(int A, int Z, double E){
|
||||||
// d + A(Z)
|
// d + A(Z)
|
||||||
|
@ -1065,6 +1086,8 @@ bool CallPotential(string potName, int A, int Z, double E, int Zproj){
|
||||||
|
|
||||||
if( potName == "X") okFlag = CustomXPotential(A, Z, E);
|
if( potName == "X") okFlag = CustomXPotential(A, Z, E);
|
||||||
if( potName == "Y") okFlag = CustomYPotential(A, Z, E);
|
if( potName == "Y") okFlag = CustomYPotential(A, Z, E);
|
||||||
|
|
||||||
|
if( potName == "6") okFlag = SixLithium();
|
||||||
|
|
||||||
//printf(" Potenital : %s | A : %d | Z : %d | E : %f\n", potName.c_str(), A, Z, E);
|
//printf(" Potenital : %s | A : %d | Z : %d | E : %f\n", potName.c_str(), A, Z, E);
|
||||||
//PrintPotential();
|
//PrintPotential();
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
# s = Su and Han, 2015 | E < 398 | 20 < A < 209 | http://dx.doi/org/10.1142/S0218301315500925
|
# s = Su and Han, 2015 | E < 398 | 20 < A < 209 | http://dx.doi/org/10.1142/S0218301315500925
|
||||||
# a = Avrigeanu et al., 2009 | E ??? | A ??? | http://dx.doi/org/10.1016/j.adt.2009.02.001
|
# a = Avrigeanu et al., 2009 | E ??? | A ??? | http://dx.doi/org/10.1016/j.adt.2009.02.001
|
||||||
# f = Bassani and Picard, 1969(FIXED)| 24 < E < 31 | A = 90 | https://doi.org/10.1016/0375-9474(69)90601-0
|
# f = Bassani and Picard, 1969(FIXED)| 24 < E < 31 | A = 90 | https://doi.org/10.1016/0375-9474(69)90601-0
|
||||||
|
#========================= 6Li
|
||||||
|
# 6 = a fixed 6Li potential, only valid for (6Li,d)
|
||||||
#=======================================================================
|
#=======================================================================
|
||||||
#reaction gs-spin orbital spin-pi(Ex) Ex ELab Potentials
|
#reaction gs-spin orbital spin-pi(Ex) Ex ELab Potentials
|
||||||
#206Hg(d,d)206Hg 0 none 9/2+ 0.000 7.39MeV/u AA #elastic
|
#206Hg(d,d)206Hg 0 none 9/2+ 0.000 7.39MeV/u AA #elastic
|
||||||
|
@ -42,5 +44,4 @@
|
||||||
#32Si(t,p)34Si 0 0L=0 0+ 0.000 8MeV/u lA #two-nucleon_transfer
|
#32Si(t,p)34Si 0 0L=0 0+ 0.000 8MeV/u lA #two-nucleon_transfer
|
||||||
#133Sb(t,3He)133Sn 7/2 0g7/2 0+ 0.000 8.5MeV/u Ax .... cannot cal
|
#133Sb(t,3He)133Sn 7/2 0g7/2 0+ 0.000 8.5MeV/u Ax .... cannot cal
|
||||||
|
|
||||||
11C(d,p)12C 3/2- 0p1/2 2+ 4.4 10MeV/u AK
|
12C(6Li,d)16O 0+ nL=2 2+ 0.0 10MeV/u 6K
|
||||||
11C(d,p)12C 3/2- 0p1/2 1+ 15.1 10MeV/u AK
|
|
|
@ -63,6 +63,9 @@ class MyWindow(QMainWindow):
|
||||||
self.bnOpenXsecFile = QPushButton("Open X-sec File")
|
self.bnOpenXsecFile = QPushButton("Open X-sec File")
|
||||||
self.bnOpenXsecFile.clicked.connect(lambda: self.LoadFileToTextBox(self.DWBAFileName + ".Xsec.txt"))
|
self.bnOpenXsecFile.clicked.connect(lambda: self.LoadFileToTextBox(self.DWBAFileName + ".Xsec.txt"))
|
||||||
|
|
||||||
|
self.bnDeleteFiles = QPushButton("Delete in/out/Xsec files")
|
||||||
|
self.bnDeleteFiles.clicked.connect(self.DeleteinOutXsecFiles)
|
||||||
|
|
||||||
lbAngMin = QLabel("angMin :")
|
lbAngMin = QLabel("angMin :")
|
||||||
lbAngMin.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignCenter)
|
lbAngMin.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignCenter)
|
||||||
lbAngMax = QLabel("angMax :")
|
lbAngMax = QLabel("angMax :")
|
||||||
|
@ -107,22 +110,23 @@ class MyWindow(QMainWindow):
|
||||||
group_layout.addWidget(self.bnOpenInFile, 1, 0, 1, 2)
|
group_layout.addWidget(self.bnOpenInFile, 1, 0, 1, 2)
|
||||||
group_layout.addWidget(self.bnOpenOutFile, 2, 0, 1, 2)
|
group_layout.addWidget(self.bnOpenOutFile, 2, 0, 1, 2)
|
||||||
group_layout.addWidget(self.bnOpenXsecFile, 3, 0, 1, 2)
|
group_layout.addWidget(self.bnOpenXsecFile, 3, 0, 1, 2)
|
||||||
|
group_layout.addWidget(self.bnDeleteFiles, 4, 0, 1, 2)
|
||||||
|
|
||||||
group_layout.addWidget(lbAngMin, 4, 0)
|
group_layout.addWidget(lbAngMin, 5, 0)
|
||||||
group_layout.addWidget(self.sbAngMin, 4, 1)
|
group_layout.addWidget(self.sbAngMin, 5, 1)
|
||||||
group_layout.addWidget(lbAngMax, 5, 0)
|
group_layout.addWidget(lbAngMax, 6, 0)
|
||||||
group_layout.addWidget(self.sbAngMax, 5, 1)
|
group_layout.addWidget(self.sbAngMax, 6, 1)
|
||||||
group_layout.addWidget(lbAngSize, 6, 0)
|
group_layout.addWidget(lbAngSize, 7, 0)
|
||||||
group_layout.addWidget(self.sbAngSize, 6, 1)
|
group_layout.addWidget(self.sbAngSize, 7, 1)
|
||||||
|
|
||||||
group_layout.addWidget(self.chkCreateInFile, 7, 0, 1, 2)
|
group_layout.addWidget(self.chkCreateInFile, 8, 0, 1, 2)
|
||||||
group_layout.addWidget(self.chkRunPtolemy, 8, 0, 1, 2)
|
group_layout.addWidget(self.chkRunPtolemy, 9, 0, 1, 2)
|
||||||
group_layout.addWidget(self.chkExtracrXsec, 9, 0, 1, 2)
|
group_layout.addWidget(self.chkExtracrXsec, 10, 0, 1, 2)
|
||||||
|
|
||||||
group_layout.addWidget(self.cbXsec, 10, 0, 1, 2)
|
group_layout.addWidget(self.cbXsec, 11, 0, 1, 2)
|
||||||
group_layout.addWidget(self.chkPlot, 11, 0, 1, 2)
|
group_layout.addWidget(self.chkPlot, 12, 0, 1, 2)
|
||||||
|
|
||||||
group_layout.addWidget(self.bnCalDWBA, 12, 0, 1, 2)
|
group_layout.addWidget(self.bnCalDWBA, 13, 0, 1, 2)
|
||||||
|
|
||||||
# Ex Group
|
# Ex Group
|
||||||
self.gbEx = QGroupBox("Ex")
|
self.gbEx = QGroupBox("Ex")
|
||||||
|
@ -230,6 +234,15 @@ class MyWindow(QMainWindow):
|
||||||
file.write(self.text_edit.toPlainText())
|
file.write(self.text_edit.toPlainText())
|
||||||
self.leStatus.setText(f"File saved to: {file_path}")
|
self.leStatus.setText(f"File saved to: {file_path}")
|
||||||
|
|
||||||
|
def DeleteinOutXsecFiles(self):
|
||||||
|
if os.path.exists(self.DWBAFileName + ".in"):
|
||||||
|
os.remove(self.DWBAFileName + ".in")
|
||||||
|
if os.path.exists(self.DWBAFileName + ".out"):
|
||||||
|
os.remove(self.DWBAFileName + ".out")
|
||||||
|
if os.path.exists(self.DWBAFileName + ".Xsec.txt"):
|
||||||
|
os.remove(self.DWBAFileName + ".Xsec.txt")
|
||||||
|
self.leStatus.setText("Deleted " + self.DWBAFileName + ".in/.out/.Xsec.txt files")
|
||||||
|
|
||||||
def BashCommand(self, cmd):
|
def BashCommand(self, cmd):
|
||||||
print("Bash Command : |" + cmd + "|")
|
print("Bash Command : |" + cmd + "|")
|
||||||
self.bashResult = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
self.bashResult = subprocess.run(cmd, shell=True, capture_output=True, text=True)
|
||||||
|
@ -276,7 +289,7 @@ class MyWindow(QMainWindow):
|
||||||
if isRunOK and self.chkExtracrXsec.isChecked() and self.file_exists(self.DWBAFileName + ".out") :
|
if isRunOK and self.chkExtracrXsec.isChecked() and self.file_exists(self.DWBAFileName + ".out") :
|
||||||
extract_xsec(self.DWBAFileName + ".out", self.cbXsec.currentIndex())
|
extract_xsec(self.DWBAFileName + ".out", self.cbXsec.currentIndex())
|
||||||
|
|
||||||
if self.chkPlot.isChecked() and self.file_exists(self.DWBAFileName + ".Xsec.txt") :
|
if isRunOK and self.chkPlot.isChecked() and self.file_exists(self.DWBAFileName + ".Xsec.txt") :
|
||||||
self.open_plot_window()
|
self.open_plot_window()
|
||||||
|
|
||||||
def open_plot_window(self):
|
def open_plot_window(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user