Skip to Content.
Sympa Menu

opal - Re: [Opal] Initial longitudinal momentum, thermal emittance, reference particle

opal AT lists.psi.ch

Subject: The OPAL Discussion Forum

List archive

Re: [Opal] Initial longitudinal momentum, thermal emittance, reference particle


Chronological Thread  
  • From: Adelmann Andreas <andreas.adelmann AT psi.ch>
  • To: Zhi Li <zhili29882 AT gmail.com>
  • Cc: "opal AT lists.psi.ch" <opal AT lists.psi.ch>
  • Subject: Re: [Opal] Initial longitudinal momentum, thermal emittance, reference particle
  • Date: Thu, 15 Dec 2022 07:53:50 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 20.250.76.7) smtp.rcpttodomain=gmail.com smtp.mailfrom=psi.ch; dmarc=pass (p=none sp=none pct=100) action=none header.from=psi.ch; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9LTn1KXkYbWOWHgdF1XmHOGzkju1QT3X+uAGUYcwlZU=; b=dYyOiG93mmIZ4sILRKWGJ8j4gXxZbr23b/SEFiCFCQBne1zBxeG7bteyVPUPZ2ym8MesbQzI3mpGQGZSzHkoEStC94yNfJZ17YzE2jXYGuDfErhHn83LErd4CFOd3RHi+e+b3RG7wx1hBP662BWiNkxkJj7HYKmceDy0RKItnIdSnuBoB7BUbn7ZOKz9JylO1s+tUz3V9Tg9/zYwGYfaC14okxz8x+s9lUPxMLfGSq5yd6+Y6lqbK/4rVEMzevck13gotUF6af5X26poEMMYGUbUgJUyylcYSPcMnGxWaWxLiU6qE8/9og8aqHi3PHYlcHazRnrLxAOh8EcddeeOiw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HzwJP09NjbTp/9c7niOqXYRqjGJv5mTBkqWjmXRPcOhNJOF8gFZcDRxFcmWdgydXSd7dphdwJPpCd76vodLXvz7dzTD4YopmukUT8PYo4zsL3DxeN9SxOsdgwHX/hKP6zOpGaA0JqB8Zbat8OzyMusXmGhzjTk0wAONuh86K03fF9lv013X5agd5Ps0xc/gXdcTH1PplQqZ9SpJ35n4oyxqQl3CglmHXBBgDmwuJm9KxpsG/M+zvBCmfLQdFlbYL6F/yibI0iWiMrUMMM8Ui5d1NmPVGFWMWN7QxzneEMEVm2ueJzlMmpdSsfxhXUPzlWtxx7QJHP6EEXCtq4O3WOg==
  • Authentication-results: mc1; iprev=pass (mail-gv0che01on2047.outbound.protection.outlook.com) smtp.remote-ip=40.107.23.47; spf=pass smtp.mailfrom=psi.ch; dkim=pass header.d=psi.ch header.s=selector2 header.a=rsa-sha256; dmarc=pass header.from=psi.ch
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=psi.ch;

Hi Zhi, yes Urand() is the uniform rng.

The lower Energy Limit is calculates and eZ is the z-component of the electric field at the cathode.
However this does not include space charge!

double phiEffective = (cathodeWorkFunc_m
                               - std::sqrt(std::max(0.0, (Physics::q_e * beam->getQ() * eZ) /
                                                    (4.0 * Physics::pi * Physics::epsilon_0))));
double lowEnergyLimit = cathodeFermiEnergy_m + phiEffective - laserEnergy_m;

Cheers A
------
Dr. sc. math. Andreas (Andy) Adelmann
Head a.i. Labor for Scientific Computing and Modelling 
Paul Scherrer Institut OHSA/D09 CH-5232 Villigen PSI
Phone Office: xx41 56 310 42 33 Fax: xx41 56 310 31 91
Zoom ID: 470-582-4086 Password: AdA
Zoom Link: https://ethz.zoom.us/j/4705824086?pwd=dFcvT1pMMGY0bHg0dTNncUNZZTJkZz09

-------------------------------------------------------
Friday: ETH HPK G 28   +41 44 633 3076
============================================
The more exotic, the more abstract the knowledge, 
the more profound will be its consequences.
Leon Lederman 
============================================

On 14 Dec 2022, at 19:53, Zhi Li <zhili29882 AT gmail.com> wrote:

Hi Andreas, Joel, Philippe,

Thank you all for the great suggestions, I am currently in the process of checking all those things and may need your help with more questions soon.

Quick question for Andreas:
In regards to the applyEmissionModelNonEquil.pdf notes, is the lower energy limit (E_LL) for the function " applyEmissModelNonEquil()" user chosen? If so, where in my input file do I specify this value? Also "Urand()" is just a random integer generator, correct?

Best regards,

Zhi

On Wed, Dec 14, 2022 at 4:32 AM Adelmann Andreas <andreas.adelmann AT psi.ch> wrote:
Hi Zhi, the Schottky effect is not included. Also just to be sure: NONQUIL needs to be NONEQUIL.
Attached the notes on how we emit in NONEQUIL, be aware of the fact that the notes need to 

Cheers Andy 


On 13 Dec 2022, at 21:07, Zhi Li <zhili29882 AT gmail.com> wrote:

Hi Mr. Adelmann,

Thank you very much for clarifying questions 1) and 3).

Now that I have done more searching, regarding the latter part of question 2), if I set my monitor position to be nanometers away from the cathode I should be expecting a captured value for emittance that is very close to a value calculated by the formula below, correct? NONQUIL model takes into account of Schotty effect right?
<image.png>
<image.png>


4) Recently my colleague made a simulation with the same field map, same distribution parameters using GPT and I realized that the normalized x-emittance plot looks very different. To my understanding, there was a benchmark done by  N. R. Neveu et al. and the results seem to agree between the two codes. Can you help take a guess what might be causing this discrepancy? I can send the input file for the GPT simulation if you need it. Thanks again for the help!

Best regards,

Zhi

<image.png>
<image.png>

On Tue, Dec 6, 2022 at 3:05 PM Adelmann Andreas (PSI) <andreas.adelmann AT psi.ch> wrote:
Hi Zhi, great that you are using OPAL! 


Questions:

1) If I generate my initial distribution using the NONEQUIL emission model, does the longitudinal momentum of the particles from this override the longitudinal momentum (P0) define in the BEAM parameters? If yes, how do I set this BEAM parameter longitudinal momentum (P0) to 0?


Yes P0 is overwritten. In case you have problems setting P0=0.0, then try P0=1.0E-12.


2) Is there a way to have the thermal emittance value saved to the output file (.stat) from the emitted distribution by NONEQUIL? Perhaps I can define a monitor very close to the cathode and capture this value? So far the closest I can set the monitor to the cathode is one micrometer away, is there a way to set it to 0 so its right ontop of the cathode?

Yes with a monitor you can achieve this, however a distance of 0.0 will not work. The minimal distance is determined by the time step, the smaller 
the time step the closer you can put the monitor towards the cathode. 

What is the exact formula that OPAL uses to calculate this thermal emittance? I want to confirm the thermal emittance value captured by a monitor with theoretical calculation by plugging in laser energy, work function, cathode temp, and Fermi energy into an equation. 

I think I do not understand the question. In case of a monitor you have access to the phase space and can calculate the emittance “by hand”. Other
than that the emission process is described in chapter 15.4 of the manual (http://amas.web.psi.ch/opal/Documentation/2022.1/#sec.distribution.emissionmodel ). 

3) In the output (.stat) file, I can plot the field seen by the reference particle. What is the exact definition of this reference particle? I don't seem to find a good description of this in the user manual. Is this the first particle emitted from the cathode or does it represent the average of every particle in the bunch?

If you plot against column 2, it uses the path length (m) in the floor coordinate system of the on-axis particle if I remember correctly. 
@Christof can you confirm please! 

Cheer Andy 


Best regards,

Zhi


Here is my input file:


OPTION, PSDUMPFREQ = 300;  
OPTION, STATDUMPFREQ = 1;  
OPTION, BOUNDPDESTROYFQ=10;
OPTION, AUTOPHASE=4;      
                           
OPTION, VERSION = 20300;

Title, string="Original AWA Photoinjector input file modified";

//----------------------------------------------------------------------------
//Global Parameters

REAL rf_freq             = 2.998e3;     //RF frequency. (MHz)
REAL n_particles         = 1E3;      //Number of particles in simulation.
REAL beam_bunch_charge   = 1e-3;      //Charge of bunch. (C)

//Initial Momentum Calculation
REAL Edes    = 1e-9; //initial energy in GeV
REAL gamma   = (Edes+EMASS)/EMASS;
REAL beta    = sqrt(1-(1/gamma^2));
REAL P0      = gamma*beta*EMASS;    //inital z momentum

//Printing initial energy and momentum to terminal output.
value , {Edes, P0};

//----------------------------------------------------------------------------
REAL gun_inj_phase = 0;  

GUN:    RFCavity, L = 0.1, VOLT = 110.26, ELEMEDGE = 0.0, TYPE = "STANDING",
        FMAPFN = "DriveGunGPTmap.T7", FREQ = 2998, LAG = (gun_inj_phase*Pi)/180.0,
 APVETO = TRUE;
//----------------------------------------------------------------------------
// DEFINE BEAM LINE

myLine:  Line = (GUN);
//M: MONITOR, ELEMEDGE = 1e-9, OUTFN = 'mon';

// Complete accelerator
DRIVE: Line = (myLine);
//----------------------------------------------------------------------------
Dist:DISTRIBUTION, TYPE = GAUSS,
 SIGMAR = 0.001,
 CUTOFFR = 2.0,
 SIGMAT = 1e-12,
 CUTOFFLONG = 2.0,
 NBIN = 10,
 EMISSIONSTEPS = 100,
 EMISSIONMODEL = NONEQUIL,
 ELASER = 6.48,
 W = 4.31,
 FE = 7.0,
 CATHTEMP = 300,
 EMITTED = TRUE,
 WRITETOFILE = True;
//----------------------------------------------------------------------------
FS_SC: Fieldsolver, FSTYPE = FFT,
            MX = 10, MY = 10, MT = 10,
            PARFFTX = True,
            PARFFTY = True,
            PARFFTT = True,
            BCFFTX = open,
            BCFFTY = open,
            BCFFTT = open,
            BBOXINCR = 1,
            GREENSF = INTEGRATED;
//----------------------------------------------------------------------------
// Electron Beam Definition

BEAM1:  BEAM, PARTICLE = ELECTRON, pc = P0, NPART = n_particles,
        BFREQ = rf_freq,BCURRENT = beam_bunch_charge * rf_freq, CHARGE = -1;

//----------------------------------------------------------------------------
TRACK, LINE = DRIVE, BEAM = BEAM1, MAXSTEPS = 1900000,
    DT = {1.0e-13}, ZSTOP={0.12};

RUN, METHOD = "PARALLEL-T", BEAM = BEAM1,
    FIELDSOLVER = FS_SC, DISTRIBUTION = Dist;
ENDTRACK;

Quit;








Archive powered by MHonArc 2.6.19.

Top of Page