Can't extract energy from .dst file [SOLVED]
Can't extract energy from .dst file [SOLVED]
OS : win10 (64-bit)
ProductName: Tracewin.exe and TraceW64.exe
Tracewin version: 2.18.2
User :lihaipeng
Computer :lihaipeng
I'm sorry to bother you, but I have no choice. I am now trying to optimize the beam with Deep Reinforcement Learning. So I need to use Python to call Tracewin to load the part_ dtl1.dst file and run it (there are relevant operations in the manual). I tried many times but failed.
It seems that Tracewin is loaded part_ dtl1.dst file, But the input beam parameters (emittances and twin parameters) are not automatically extracted from the specified file and used for computation.
This is my python code:
path=r'C:\Users\HaoLuo\TraceWin.exe C:\Users\HaoLuo\QD_DTL.ini dst_file1=C:\Users\HaoLuo\part_dtl1.dst’
#tracewin software,ini file,and dst file
os.system(path)
There are relevant operations on page 15 of the Tracewin manual: There are files I used:
ProductName: Tracewin.exe and TraceW64.exe
Tracewin version: 2.18.2
User :lihaipeng
Computer :lihaipeng
I'm sorry to bother you, but I have no choice. I am now trying to optimize the beam with Deep Reinforcement Learning. So I need to use Python to call Tracewin to load the part_ dtl1.dst file and run it (there are relevant operations in the manual). I tried many times but failed.
It seems that Tracewin is loaded part_ dtl1.dst file, But the input beam parameters (emittances and twin parameters) are not automatically extracted from the specified file and used for computation.
This is my python code:
path=r'C:\Users\HaoLuo\TraceWin.exe C:\Users\HaoLuo\QD_DTL.ini dst_file1=C:\Users\HaoLuo\part_dtl1.dst’
#tracewin software,ini file,and dst file
os.system(path)
There are relevant operations on page 15 of the Tracewin manual: There are files I used:
Last edited by lihaipeng on Fri 4 Nov 2022 17:50, edited 1 time in total.
-
- Global moderators
- Posts: 8
- Joined: Fri 2 Sep 2022 11:39
- Country:
France (fr)
Re: A bug in Tracewin? i need help
Dear lihaipeng,
I think you forgot something when you saved your "QD_DTL.ini" file: if you click on the "Multiparticle" tab and you go to "Input distribution type", "6 dimensional ellipse" was selected. So, the input beam distribution of your simulation was randomly generated in 6D (gaussian), considering the Twiss parameters that were on the "Main" tab.
You have to select "use distribution from input particle file (*.dst)", and save again your project(to save the correct "ini" file). That way, the input distribution you have specified in your command line will be taken into account and loaded by the code before the run.
I hope it helped,
Regards,
Nicolas.
I think you forgot something when you saved your "QD_DTL.ini" file: if you click on the "Multiparticle" tab and you go to "Input distribution type", "6 dimensional ellipse" was selected. So, the input beam distribution of your simulation was randomly generated in 6D (gaussian), considering the Twiss parameters that were on the "Main" tab.
You have to select "use distribution from input particle file (*.dst)", and save again your project(to save the correct "ini" file). That way, the input distribution you have specified in your command line will be taken into account and loaded by the code before the run.
I hope it helped,
Regards,
Nicolas.
Re: A bug in Tracewin? i need help
Dear Nicolas
Thanks,This is very helpful!
Regards
Lihaipeng
Thanks,This is very helpful!
Regards
Lihaipeng
Re: A bug in Tracewin? i need help
Dear Nicolas
I tried your method, but when I run it in batch mode, it seems that tracewin still cannot read the particle energy from the dst file. (The particle energy in each of my dst files is different)
But When I manually operate, when I click Import all beam parameters from file ,Kinetic Energy parameters can be loaded normally.
I tried your method, but when I run it in batch mode, it seems that tracewin still cannot read the particle energy from the dst file. (The particle energy in each of my dst files is different)
But When I manually operate, when I click Import all beam parameters from file ,Kinetic Energy parameters can be loaded normally.
-
- Global moderators
- Posts: 8
- Joined: Fri 2 Sep 2022 11:39
- Country:
France (fr)
Re: A bug in Tracewin? i need help
Dear lihaipeng,
Indeed, I was able to reproduce this bug and it will be addressed by Didier as soon as possible.
In the meantime, you can use the following workaround:
1) You read the dst file you want to use and you compute the mean energy of the particles: MeanEnergyCalculated (see the 'GetMeanEnergy' function in the attached python script but I had to change the file extension to ".dat", please replace it by ".py")
2) You change the initial energy of your Tracewin simulation by adding in the command line your are using: "energy1=MeanEnergyCalculated'
Let me know if it works for you.
Regards,
Nicolas.
Indeed, I was able to reproduce this bug and it will be addressed by Didier as soon as possible.
In the meantime, you can use the following workaround:
1) You read the dst file you want to use and you compute the mean energy of the particles: MeanEnergyCalculated (see the 'GetMeanEnergy' function in the attached python script but I had to change the file extension to ".dat", please replace it by ".py")
2) You change the initial energy of your Tracewin simulation by adding in the command line your are using: "energy1=MeanEnergyCalculated'
Let me know if it works for you.
Regards,
Nicolas.
- Attachments
-
- Test_CommandLine_MeanEnergy.dat
- (1.11 KiB) Downloaded 235 times
Re: A bug in Tracewin? i need help
Dear lihaipeng,
In fact, this is not a bug, the behaviour was defined as such for practical reasons. Considering your remarks, I changed the behaviour of the code as follows:
If the dst_filex input is specified, the input beam parameters (number of particle, emittances, Twiss parameters, beam centroid, beam current and energy) are automatically extracted from the specified file and used for the calculation. The emittances and Twiss parameters cannot be modified by the corresponding input commands, but it is still possible for the beam centroid, current, energy, number of particles.
The corresponding new TraceWin version is available.
Regards,
Didier
In fact, this is not a bug, the behaviour was defined as such for practical reasons. Considering your remarks, I changed the behaviour of the code as follows:
If the dst_filex input is specified, the input beam parameters (number of particle, emittances, Twiss parameters, beam centroid, beam current and energy) are automatically extracted from the specified file and used for the calculation. The emittances and Twiss parameters cannot be modified by the corresponding input commands, but it is still possible for the beam centroid, current, energy, number of particles.
The corresponding new TraceWin version is available.
Regards,
Didier
Re: A bug in Tracewin? i need help
Dear Didier:
You said If the dst_filex input is specified, the input beam parameters (number of particle, emittances, Twiss parameters, beam centroid, beam current and energy) are automatically extracted from the specified file and used for the calculation。
But in fact, The number of particle, emittances , Twiss parameters, beam centroid and beam current are automatically extracted from the specified file (dst_file)and used for the calculation , but energy not.
Regards,
Lihaipeng
You said If the dst_filex input is specified, the input beam parameters (number of particle, emittances, Twiss parameters, beam centroid, beam current and energy) are automatically extracted from the specified file and used for the calculation。
But in fact, The number of particle, emittances , Twiss parameters, beam centroid and beam current are automatically extracted from the specified file (dst_file)and used for the calculation , but energy not.
Regards,
Lihaipeng
Re: A bug in Tracewin? i need help
Dear Nicolas
Thank you for your help, your method is very helpful!
In addition, I found that after each run, the normalized emittance in partran.out file and the normalized emittance extracted from the part_dtl1.dst file is a little different. For example, the normalized emittance(x direction,y direction ,z direction) in partran.out file are( 0.3730797, 0.3323209 ,0.358912), But the normalized emittance extracted from the part_dtl1.dst are (0.3724123 ,0.3317265, 0.3623556),
Why is it different and Which is the true value ?(Since I divide the whole structure into many parts for calculation, and The Deep Reinforcement Learning algorithm has low tolerance for errors) My English is not very good. If you feel uncomfortable reading and don't understand anything, please let me know in time. I will ask for help and rewrite it.
Your help was very much appreciated!
Thank you for your help, your method is very helpful!
In addition, I found that after each run, the normalized emittance in partran.out file and the normalized emittance extracted from the part_dtl1.dst file is a little different. For example, the normalized emittance(x direction,y direction ,z direction) in partran.out file are( 0.3730797, 0.3323209 ,0.358912), But the normalized emittance extracted from the part_dtl1.dst are (0.3724123 ,0.3317265, 0.3623556),
Why is it different and Which is the true value ?(Since I divide the whole structure into many parts for calculation, and The Deep Reinforcement Learning algorithm has low tolerance for errors) My English is not very good. If you feel uncomfortable reading and don't understand anything, please let me know in time. I will ask for help and rewrite it.
Your help was very much appreciated!
Re: A bug in Tracewin? i need help
Dear Lihaipeng,
About energy extraction:
I maintain that in the latest version of TraceWin (2.18.5.3) the energy used is the one extracted from the dst file when it is specified as an argument with "dst_file1=xxx. This is true unless you also have as argument "energy=xxxx", in which case this latter value will be used.
About Emittance values:
I don't observe any differences as you mention in your example between the part_dtl1.dst and partran.out. Now using the file "part_dtl1.dst" as an input file as you do is extremely ambiguous and dangerous because it is also the output file of the simulation and there the behaviour is difficult to understand. You have to rename "part_dtl1.dst" before injecting it as input.
Regards,
Didier
About energy extraction:
I maintain that in the latest version of TraceWin (2.18.5.3) the energy used is the one extracted from the dst file when it is specified as an argument with "dst_file1=xxx. This is true unless you also have as argument "energy=xxxx", in which case this latter value will be used.
About Emittance values:
I don't observe any differences as you mention in your example between the part_dtl1.dst and partran.out. Now using the file "part_dtl1.dst" as an input file as you do is extremely ambiguous and dangerous because it is also the output file of the simulation and there the behaviour is difficult to understand. You have to rename "part_dtl1.dst" before injecting it as input.
Regards,
Didier
Re: A bug in Tracewin? i need help
Dear Didier
About energy extraction:
First of all, thank you very much for your help. My English is not good enough to understand your meaning in time. i 'm sorry. I will download the latest version in time.
About Emittance values:
Normalized emittance is really different. In my previous example, Emit Xx is 0.3730797 in partran1.out, but in the dst file,the Emit Xx is 0.3724123 Besides, I know exactly what I'm doing. When I use the Deep Reinforcement Learning algorithm to explore the structure of the beam transmission line (what structure should be put in front and which part should be put behind), I use part_ dtl1.dst file as input are very efficient and fast.
About energy extraction:
First of all, thank you very much for your help. My English is not good enough to understand your meaning in time. i 'm sorry. I will download the latest version in time.
About Emittance values:
Normalized emittance is really different. In my previous example, Emit Xx is 0.3730797 in partran1.out, but in the dst file,the Emit Xx is 0.3724123 Besides, I know exactly what I'm doing. When I use the Deep Reinforcement Learning algorithm to explore the structure of the beam transmission line (what structure should be put in front and which part should be put behind), I use part_ dtl1.dst file as input are very efficient and fast.