|
WarpX
|
#include <WarpXFluidContainer.H>
Public Member Functions | |
| WarpXFluidContainer (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 (ablastr::fields::MultiFabRegister &m_fields, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, int lev) const |
| void | InitData (ablastr::fields::MultiFabRegister &m_fields, amrex::Box init_box, amrex::Real cur_time, int lev, const amrex::Geometry &geom_lev, amrex::Real gamma_boost, amrex::Real beta_boost) |
| void | ReadParameters () |
| void | Evolve (ablastr::fields::MultiFabRegister &fields, int lev, const std::string ¤t_fp_string, amrex::Real cur_time, bool skip_deposition=false) |
| void | AdvectivePush_Muscl (ablastr::fields::MultiFabRegister &m_fields, int lev) |
| Advective term, cold-rel. fluids. | |
| void | ApplyBcFluidsAndComms (ablastr::fields::MultiFabRegister &m_fields, int lev) |
| Apply non-periodic BC to fluids and communicate boundaries. | |
| void | centrifugal_source_rz (ablastr::fields::MultiFabRegister &m_fields, int lev) |
| Centrifugal source term. | |
| void | GatherAndPush (ablastr::fields::MultiFabRegister &m_fields, 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, int lev) |
| Lorentz Momentum Source. | |
| void | DepositCurrent (ablastr::fields::MultiFabRegister &m_fields, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz, int lev) |
| Deposit fluid current density. | |
| void | DepositCharge (ablastr::fields::MultiFabRegister &m_fields, amrex::MultiFab &rho, int lev, int icomp=0) |
| Deposit fluid charge density. | |
| amrex::Real | getCharge () const |
| amrex::Real | getMass () const |
Public Attributes | |
| friend | MultiFluidContainer |
| std::string | name_mf_N = "fluid_density_"+species_name |
| std::string | name_mf_NU = "fluid_momentum_density_"+species_name |
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.
| WarpXFluidContainer::WarpXFluidContainer | ( | int | ispecies, |
| const std::string & | name ) |
|
default |
|
delete |
|
default |
| void WarpXFluidContainer::AdvectivePush_Muscl | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| 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
| m_fields | reference to MultiFab register storing all fields | |
| [in] | lev | refinement level |
| void WarpXFluidContainer::AllocateLevelMFs | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| const amrex::BoxArray & | ba, | ||
| const amrex::DistributionMapping & | dm, | ||
| int | lev ) const |
| void WarpXFluidContainer::ApplyBcFluidsAndComms | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| 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
| m_fields | reference to MultiFab register storing all fields | |
| [in] | lev | refinement level |
| void WarpXFluidContainer::centrifugal_source_rz | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| 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
| m_fields | reference to MultiFab register storing all fields | |
| [in] | lev | refinement level |
| void WarpXFluidContainer::DepositCharge | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| amrex::MultiFab & | rho, | ||
| int | lev, | ||
| 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
| m_fields | reference to MultiFab register storing all fields | |
| [in,out] | rho | charge density MultiFab. |
| [in] | lev | refinement level |
| [in] | icomp | Fourth component index of the rho MultiFab to deposit in |
| void WarpXFluidContainer::DepositCurrent | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| amrex::MultiFab & | jx, | ||
| amrex::MultiFab & | jy, | ||
| amrex::MultiFab & | jz, | ||
| int | lev ) |
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,out] | m_fields | MultiFab register of fields |
| [in,out] | jx | current density MultiFab x comp. |
| [in,out] | jy | current density MultiFab y comp. |
| [in,out] | jz | current density MultiFab z comp. |
| [in] | lev | refinement level |
| void WarpXFluidContainer::Evolve | ( | ablastr::fields::MultiFabRegister & | fields, |
| int | lev, | ||
| const std::string & | current_fp_string, | ||
| amrex::Real | cur_time, | ||
| bool | skip_deposition = false ) |
Evolve updates a single timestep (dt) of the cold relativistic fluid equations
| void WarpXFluidContainer::GatherAndPush | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| 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, | ||
| int | lev ) |
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,out] | m_fields | MultiFab register of fields |
| [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 |
| [in] | lev | refinement level |
|
inlinenodiscard |
|
inlinenodiscard |
| void WarpXFluidContainer::InitData | ( | ablastr::fields::MultiFabRegister & | m_fields, |
| amrex::Box | init_box, | ||
| amrex::Real | cur_time, | ||
| int | lev, | ||
| const amrex::Geometry & | geom_lev, | ||
| amrex::Real | gamma_boost, | ||
| amrex::Real | beta_boost ) |
|
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 |
| std::string WarpXFluidContainer::name_mf_N = "fluid_density_"+species_name |
| std::string WarpXFluidContainer::name_mf_NU = "fluid_momentum_density_"+species_name |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |