Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Add electron energy equation to hybrid solver #5323

Draft
wants to merge 79 commits into
base: development
Choose a base branch
from

Conversation

marcoacc95
Copy link
Contributor

@marcoacc95 marcoacc95 commented Sep 24, 2024

This PR adds the following changes:

  • temperature and entropy multifabs to fluid container
  • creates an electron fluid container in the warpx class specifically for the hybrid solver
  • adds a pressure calculation function that uses ideal gas expression instead of adiabatic formula
  • Electron pressure calculation now reads Te from the multifab in the electron fluid container
  • calculate Ue for electron fluid after ampere(plasma) current is computed
  • Added functions to set Ke on grid and to update Te
  • will use qdsmc from Topanga paper for EEES (see section III-A) in: https://doi.org/10.1063/5.0177132)
  • Added a QdsmcParticleContainer similar to the FieldProbeParticleContainer. This container is needed for the qdsmc fictitious particles that advect the electron entropy and updates Te in absence of sources/sinks. This particle container contains the logic to initialize and push the qdsmc particles as well as gather properties from the grid (Ke, density) and deposit Ke after pushing the particles every step.
  • Current implementation is nodal

Work in progress:

  • current implementation is only for 3D simulations, extend to the rest of the dimensions the Hybrid solver can work with.

  • Generalize DepositK to DepositScalarField for future extensions to the general qdsmc algorithm (neutral fluid)

  • Move qdsmc particle container and electron fluid container to HybridPICModel object instead of WarpX class.

  • Fluid container might be an overkill for this algorithm, might be useful to write separate QDSMC class that contains all the logic and can be extended in the future for neutral gases.

##############################################################################
Note: some Field Wrappers added just to test

…b.com:marcoacc95/WarpX into add_electron_energy_equation_to_hybrid_solver
@marcoacc95 marcoacc95 changed the title Add electron energy equation to hybrid solver WIP Add electron energy equation to hybrid solver Sep 24, 2024
@marcoacc95 marcoacc95 changed the title WIP Add electron energy equation to hybrid solver [WIP] Add electron energy equation to hybrid solver Sep 24, 2024
@marcoacc95 marcoacc95 requested a review from RemiLehe September 24, 2024 18:54
@marcoacc95 marcoacc95 marked this pull request as draft September 25, 2024 19:19
pre-commit-ci bot and others added 30 commits October 22, 2024 00:44
…ointer and interpolate J ampere (plasma) and Ji to nodal grid before calculating Ue
…HybridPIC.cpp and InitParticles to WarpX class.
…b.com:marcoacc95/WarpX into add_electron_energy_equation_to_hybrid_solver
…d missing particle weight to HybridInitializeKe and HybridUpdateTe methods.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants