Skip to Content.
Sympa Menu

opal - Re: [Opal] Source code about computing self-field.

opal AT lists.psi.ch

Subject: The OPAL Discussion Forum

List archive

Re: [Opal] Source code about computing self-field.


Chronological Thread  
  • From: "Adelmann Andreas (PSI)" <andreas.adelmann AT psi.ch>
  • To: sherlp <1341516422 AT qq.com>
  • Cc: "opal AT lists.psi.ch" <opal AT lists.psi.ch>
  • Subject: Re: [Opal] Source code about computing self-field.
  • Date: Thu, 7 Apr 2022 15:51:27 +0000
  • Accept-language: en-US, de-CH
  • Authentication-results: mc1; iprev=pass (psi-seppmail1.ethz.ch) smtp.remote-ip=129.132.93.141; spf=pass smtp.mailfrom=psi.ch; dmarc=skipped

Hi Sherlp

Dear all,

While computing self-field in OPAL-CYCL, a cubic domain containing all
macroparticles is created and then discretized. After that, all particles are
scattered on the grids. And I have found the scatter() function whose
annotation says 'scatter particles charge onto grid' at(although I don't know
how it actually works)

https://gitlab.psi.ch/OPAL/src/-/blob/master/src/Classic/Algorithms/PartBunch.cpp#L640


yes that is the place and it does a cloud in cell (CIC) interpolation, as the third argument of scatter indicates. 



And I got this from computeSelfFields_cycl() function at

https://gitlab.psi.ch/OPAL/src/-/blob/master/src/Algorithms/ParallelCyclotronTracker.cpp#L3368

But I couldn't find any statement to create the whole physical domain to
discretize and scatter particles.


well I am confused: you just found the scatter function. Setting up the computational domain is at 

https://gitlab.psi.ch/OPAL/src/-/blob/master/src/Track/TrackRun.cpp#L462

in setupFieldsolver(). 

Hope that helps!

Cheers A 

I think the statement should be after the time integration of bunch and before
the next scattering on grids to compute self-field because we should know the
position and boundary of bunch to contain all macroparticles but I still
couldn't find it.

Best regards,
Sherlp




Archive powered by MHonArc 2.6.19.

Top of Page