Skip to content

Current Interpolation: During add to EMF#888

Merged
psychocoderHPC merged 3 commits into
ComputationalRadiationPhysics:devfrom
ax3l:topic-currentInterpolation
May 27, 2015
Merged

Current Interpolation: During add to EMF#888
psychocoderHPC merged 3 commits into
ComputationalRadiationPhysics:devfrom
ax3l:topic-currentInterpolation

Conversation

@ax3l
Copy link
Copy Markdown
Member

@ax3l ax3l commented May 26, 2015

This commit adds the general infrastructure to call functors before adding FieldJ to the electro-magnetic fields (in Yee: before manipulating the E field).

The previous method None without interpolation is added as a default in fieldSolver.param. Additionally, a simple second order Binomial filter for 2D and 3D is added to test the new functionality.

Run time tests:

  • KHI 3D e+/e- devvs. with/without Binomial filter (with ZigZag & TSC)

@ax3l ax3l added feature component: core in PIConGPU (core application) labels May 26, 2015
@ax3l ax3l added this to the Open Beta milestone May 26, 2015
@ax3l ax3l force-pushed the topic-currentInterpolation branch 2 times, most recently from 36ee083 to d602ecc Compare May 26, 2015 09:57
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@psychocoderHPC: for loop over simDim -> avoids second impl

@ax3l ax3l force-pushed the topic-currentInterpolation branch 3 times, most recently from 46ae85f to b698421 Compare May 26, 2015 11:33
This commit adds the general infrastructure to call functors
before adding `FieldJ` to the electro-magnetic fields (in
Yee: before manipulating the `E` field).

The previous method `None` without interpolation is added as a
default in `fieldSolver.param`. Additionally, a simple second order
Binomial filter for 2D and 3D is added to test the new functionality.
@ax3l ax3l force-pushed the topic-currentInterpolation branch from b698421 to c270936 Compare May 26, 2015 11:40
@ax3l
Copy link
Copy Markdown
Member Author

ax3l commented May 27, 2015

@psychocoderHPC event system updates added.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be ok for NULL values when unused.

Also see: #532

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes __delete() checks for NULL

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

even delete() itself checks for null (nullptr and NULL are well-defined input for the std delete), that is why __delete() should not double-check it (see #532)

Reorder dependencies in the event system and
add a GUARD receive functionality to FieldJ.
@ax3l ax3l force-pushed the topic-currentInterpolation branch from a3352df to 1fdbc60 Compare May 27, 2015 09:04
@ax3l
Copy link
Copy Markdown
Member Author

ax3l commented May 27, 2015

Yee solver, KHI default but with e+/e-:
dev vs pull with None vs pull with Binomial

-d 2 8 1 -g 192 512 16 -s 2000 (hdf5 every 250)
Courant c*dt <= 1.02768 ? 1
full simulation time: 556 564 561 sec

khi_currentfilter_ene
t=1000:
khi_currentfilter

@ax3l
Copy link
Copy Markdown
Member Author

ax3l commented May 27, 2015

the main difference might be due to the seed, since the species ID is used in it (dev to None).

The binomial image looks "smoother" with less edgy features in the B-fields, which I would expect and is quite physically correct.

I'll check again with the old seeds for a comparison (src/picongpu/include/simulation_types.hpp).

@psychocoderHPC
Copy link
Copy Markdown
Member

Is it correct that the CFL is near 1.0?
You wrote: Courant c*dt <= 1.02768 ? 1

Update: sry for closing, I would only close my comment without saving.

@psychocoderHPC
Copy link
Copy Markdown
Member

Only a note: In general a forward declaration like currentInterpolation/None/None.def and currentInterpolation/Binomial/Binomial.def is not needed because the solver itself is free from dependencies.
It is also possible to write and use only *.hpp because everything is given in as template.

Update: Some solver needs EPS0 therefore it isn't possible to scip the *def files.

@ax3l
Copy link
Copy Markdown
Member Author

ax3l commented May 27, 2015

same as before, no hdf5, png every 100 (instead of 10):

else still: binning every 100, energy sum of fields & particles every 10.

full simulation time: 341 341 346 sec (order: dev, none, bin.)

total energy over time:
khi_currentfilter_ene
t=1000: (B red/green, density e- red)
khi_currentfilter

@ax3l
Copy link
Copy Markdown
Member Author

ax3l commented May 27, 2015

ok that looks valid (I now keep the seed change as we planned, see first pictures before). the energy and images are identical for dev and the new None. Binomial is with a slightly better smoothed b-field.

the only small difference is a tiny bit different scaling in the png preview, that I don't see an immediate reason for, and the correct smoother b-fields with Binomial.

@psychocoderHPC
Copy link
Copy Markdown
Member

👍

psychocoderHPC added a commit that referenced this pull request May 27, 2015
Current Interpolation: During add to EMF
@psychocoderHPC psychocoderHPC merged commit 46389dc into ComputationalRadiationPhysics:dev May 27, 2015
@ax3l ax3l deleted the topic-currentInterpolation branch May 27, 2015 12:40
@ax3l ax3l mentioned this pull request Jul 20, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component: core in PIConGPU (core application)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants