Skip to content

Conversation

psychocoderHPC
Copy link
Member

@psychocoderHPC psychocoderHPC commented May 12, 2025

Provide poisson solver

  • add unit test
  • move PIConGPU bug fix to independent PRs
    • main.cpp simulation lifetime
    • PMacc reduce buffer init
  • move forEachCell to PMacc
  • generalize stencil() and move it to PMacc (low priority)
  • documentation (this is a task for a physicist)
  • squash commits

The poison solver is only solving the E-Field for the initial gas density not for densities created during the slide!

Use picongpu --help to see how to enable the poison solver

Poisson solver:
  --poisson.activate                    enable poisson solver
  --poisson.maxSteps arg (=2000)        maximum number of steps for the 
                                        preconditioner
  --poisson.epsilon arg (=1e-08)        maximal allowed error of the poisson 
                                        solver
  --poisson.preconditioner.disable      disable poisson solver preconditioner
  --poisson.preconditioner.maxSteps arg (=20)
                                        maximum number of steps for the 
                                        preconditioner

output during execution

...
PIConGPUVerbose PHYSICS(1) | Poisson solver:
PIConGPUVerbose PHYSICS(1) |   - converged after 74/100 iterations with norm=509.216, total epsilon=5.15989e-09
PIConGPUVerbose PHYSICS(1) |   - duration 3.5903 sec
...

lucak17 and others added 17 commits May 5, 2025 11:49
- add algorithms for fill initial data
- move reduce into the stage for better reusebility
- adjust KHI to dump FieldV and chargedensities
- fix charge density creation in poisson solver
- make FieldV printable with OpenPMD plugin
- define `DeviceLambda` trivially copyable
- add `DeviceLambda` deduction guide
- increase poisson iterations
- add stencil to compute fieldE
- throw exeption if poisson solver not converge
- add duration for poisson solver
- call poisson after `fixAtomicStateInit()`
- allocate memory only if poisson solver is enabled
- add cmd parameters to activate and controll poisson solver
- add method `forEachCell` and `stencil()`
@psychocoderHPC psychocoderHPC added this to the 0.9.0 / next stable milestone May 12, 2025
@psychocoderHPC psychocoderHPC added the component: core in PIConGPU (core application) label May 12, 2025
@psychocoderHPC psychocoderHPC marked this pull request as draft May 12, 2025 15:48
- fix missing `setTransactionEvent` after async communication
- allow to select redcue functor
- remove MPI reduce check if all domains conferge because it is not
  possible that a single domain not find a solution
@PrometheusPi
Copy link
Member

@BeyondEspresso Did you already have time to test this (as discussed in the last dev meeting)?

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.

3 participants