ComputationalRadiationPhysics / picongpu

Performance-Portable Particle-in-Cell Simulations for the Exascale Era :sparkles:
https://picongpu.readthedocs.io
Other
710 stars 218 forks source link

Isolate in-cell indexing to its own kernel #1786

Open n01r opened 7 years ago

n01r commented 7 years ago

Make inCellOffset an optional attribute PMacc attribute and use it in the future example ThinFoil. #1765

Update 2017-01-24 : More general: remove the in-cell indexing device function from FillGaps kernel but leave it usable in there.

Most of the work for this one is already done because updateCellsForOneFrame is a static function.

theZiz commented 7 years ago

You see, we can play this game in two directions. ;)

n01r commented 7 years ago

Damn! My plan is foiled!
Will you now self-assign the other issue that I opened, too? :laughing:

theZiz commented 7 years ago

Guess this is only fair...

theZiz commented 7 years ago

Okay, I am sitting on the issue now, but I wonder, why I should move the function out of the struct? Even if it is needed somewhere else, it can be reference with KernelFillGaps::updateCellsForOneFrame.

But even if I move this function out of the struct. is there anything else to do what I oversee?

n01r commented 7 years ago

Well, yes - this is a more general method. We will likely need it for certain radiation transport methods where we would propagate photons through our simulation volume and have them interact with a randomly chosen ion (i.e. their bound electrons) in the cell. Therefore it does not exactly belong to KernelFillGaps but to a namespace of collisional-radiative methods.