added (6Li,d) support )

This commit is contained in:
Ryan Tang 2024-11-05 14:55:43 -05:00
parent 5503212312
commit 7d7cf0b6e3
4 changed files with 78 additions and 25 deletions

View File

@ -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());

View File

@ -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();

View File

@ -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

View File

@ -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):