WarpX
|
#include <WarpXFluidContainer.H>
Public Member Functions | |
WarpXFluidContainer (int nlevs_max, int ispecies, const std::string &name) | |
~WarpXFluidContainer ()=default | |
WarpXFluidContainer (WarpXFluidContainer const &)=delete | |
WarpXFluidContainer & | operator= (WarpXFluidContainer const &)=delete |
WarpXFluidContainer (WarpXFluidContainer &&)=default | |
WarpXFluidContainer & | operator= (WarpXFluidContainer &&)=default |
void | AllocateLevelMFs (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
void | InitData (int lev, amrex::Box init_box, amrex::Real cur_time) |
void | ReadParameters () |
void | Evolve (int lev, const amrex::MultiFab &Ex, const amrex::MultiFab &Ey, const amrex::MultiFab &Ez, const amrex::MultiFab &Bx, const amrex::MultiFab &By, const amrex::MultiFab &Bz, amrex::MultiFab *rho, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz, amrex::Real cur_time, bool skip_deposition=false) |
void | AdvectivePush_Muscl (int lev) |
Advective term, cold-rel. fluids. More... | |
void | ApplyBcFluidsAndComms (int lev) |
Apply non-periodic BC to fluids and communicate boundaries. More... | |
void | centrifugal_source_rz (int lev) |
Centrifugal source term. More... | |
void | GatherAndPush (int lev, const amrex::MultiFab &Ex, const amrex::MultiFab &Ey, const amrex::MultiFab &Ez, const amrex::MultiFab &Bx, const amrex::MultiFab &By, const amrex::MultiFab &Bz, amrex::Real t) |
Lorentz Momentum Source. More... | |
void | DepositCurrent (int lev, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz) |
Deposit fluid current density. More... | |
void | DepositCharge (int lev, amrex::MultiFab &rho, int icomp=0) |
Deposit fluid charge density. More... | |
amrex::Real | getCharge () const |
amrex::Real | getMass () const |
Public Attributes | |
friend | MultiFluidContainer |
amrex::Vector< std::unique_ptr< amrex::MultiFab > > | N |
amrex::Vector< std::array< std::unique_ptr< amrex::MultiFab >, 3 > > | NU |
WarpXFluidContainer is the base class from which all concrete fluid container classes derive.
WarpXFluidContainer contains the main functions for initialization, interaction with the grid (field gather and current deposition), fluid source and push, advective update and updates for non-inertial terms.
|
default |
|
delete |
|
default |
void WarpXFluidContainer::AdvectivePush_Muscl | ( | int | lev | ) |
Advective term, cold-rel. fluids.
AdvectivePush_Muscl takes a single timestep (dt) of the cold relativistic fluid equations using a Muscl-Handcock scheme
[in] | lev | refinement level |
void WarpXFluidContainer::AllocateLevelMFs | ( | int | lev, |
const amrex::BoxArray & | ba, | ||
const amrex::DistributionMapping & | dm | ||
) |
void WarpXFluidContainer::ApplyBcFluidsAndComms | ( | int | lev | ) |
Apply non-periodic BC to fluids and communicate boundaries.
Apply (non-periodic) BC on the fluids (needed for spatial derivative), and communicate N, NU at boundaries
[in] | lev | refinement level |
void WarpXFluidContainer::centrifugal_source_rz | ( | int | lev | ) |
Centrifugal source term.
centrifugal_source_rz adds contributions due to curvature acceleration for a single timestep using an SSP-RK3 timestep for RZ specifically
[in] | lev | refinement level |
void WarpXFluidContainer::DepositCharge | ( | int | lev, |
amrex::MultiFab & | rho, | ||
int | icomp = 0 |
||
) |
Deposit fluid charge density.
DepositCharge interpolates the fluid charge density onto the Yee grid and sums the contributions to the particle charge density
[in] | lev | refinement level |
[in,out] | rho | charge density MultiFab. |
void WarpXFluidContainer::DepositCurrent | ( | int | lev, |
amrex::MultiFab & | jx, | ||
amrex::MultiFab & | jy, | ||
amrex::MultiFab & | jz | ||
) |
Deposit fluid current density.
DepositCurrent interpolates the fluid current density comps. onto the Yee grid and sums the contributions to the particle current density
[in] | lev | refinement level |
[in,out] | jx | current density MultiFab x comp. |
[in,out] | jy | current density MultiFab y comp. |
[in,out] | jz | current density MultiFab z comp. |
void WarpXFluidContainer::Evolve | ( | int | lev, |
const amrex::MultiFab & | Ex, | ||
const amrex::MultiFab & | Ey, | ||
const amrex::MultiFab & | Ez, | ||
const amrex::MultiFab & | Bx, | ||
const amrex::MultiFab & | By, | ||
const amrex::MultiFab & | Bz, | ||
amrex::MultiFab * | rho, | ||
amrex::MultiFab & | jx, | ||
amrex::MultiFab & | jy, | ||
amrex::MultiFab & | jz, | ||
amrex::Real | cur_time, | ||
bool | skip_deposition = false |
||
) |
Evolve updates a single timestep (dt) of the cold relativistic fluid equations
void WarpXFluidContainer::GatherAndPush | ( | int | lev, |
const amrex::MultiFab & | Ex, | ||
const amrex::MultiFab & | Ey, | ||
const amrex::MultiFab & | Ez, | ||
const amrex::MultiFab & | Bx, | ||
const amrex::MultiFab & | By, | ||
const amrex::MultiFab & | Bz, | ||
amrex::Real | t | ||
) |
Lorentz Momentum Source.
GatherAndPush introduces the Lorentz term in the cold relativistic fluid equations for a single timestep (dt) using Higuera and Cary Push
[in] | lev | refinement level |
[in] | Ex | Yee electric field (x) |
[in] | Ey | Yee electric field (y) |
[in] | Ez | Yee electric field (z) |
[in] | Bx | Yee magnetic field (x) |
[in] | By | Yee magnetic field (y) |
[in] | Bz | Yee magnetic field (z) |
[in] | t | Current time |
|
inline |
|
inline |
void WarpXFluidContainer::InitData | ( | int | lev, |
amrex::Box | init_box, | ||
amrex::Real | cur_time | ||
) |
|
default |
|
delete |
void WarpXFluidContainer::ReadParameters | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
friend WarpXFluidContainer::MultiFluidContainer |
amrex::Vector< std::unique_ptr<amrex::MultiFab> > WarpXFluidContainer::N |
amrex::Vector<std::array< std::unique_ptr<amrex::MultiFab>, 3 > > WarpXFluidContainer::NU |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |