WarpX
Public Member Functions | Private Attributes | List of all members
MultiFluidContainer Class Reference

#include <MultiFluidContainer.H>

Public Member Functions

 MultiFluidContainer (int nlevs_max)
 
 ~MultiFluidContainer ()=default
 
 MultiFluidContainer (MultiFluidContainer const &)=delete
 
MultiFluidContaineroperator= (MultiFluidContainer const &)=delete
 
 MultiFluidContainer (MultiFluidContainer &&)=default
 
MultiFluidContaineroperator= (MultiFluidContainer &&)=default
 
WarpXFluidContainerGetFluidContainer (int ispecies) const
 
std::unique_ptr< WarpXFluidContainer > & GetUniqueContainer (int ispecies)
 
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 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)
 
int nSpecies () const
 
void DepositCharge (int lev, amrex::MultiFab &rho)
 
void DepositCurrent (int lev, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz)
 

Private Attributes

std::vector< std::string > species_names
 
amrex::Vector< std::unique_ptr< WarpXFluidContainer > > allcontainers
 

Detailed Description

The class MultiFluidContainer holds multiple instances of the class WarpXFluidContainer, stored in its member variable "allcontainers". The class WarpX typically has a single (pointer to an) instance of MultiFluidContainer.

MultiFluidContainer typically has two types of functions:

Constructor & Destructor Documentation

◆ MultiFluidContainer() [1/3]

MultiFluidContainer::MultiFluidContainer ( int  nlevs_max)

◆ ~MultiFluidContainer()

MultiFluidContainer::~MultiFluidContainer ( )
default

◆ MultiFluidContainer() [2/3]

MultiFluidContainer::MultiFluidContainer ( MultiFluidContainer const &  )
delete

◆ MultiFluidContainer() [3/3]

MultiFluidContainer::MultiFluidContainer ( MultiFluidContainer &&  )
default

Member Function Documentation

◆ AllocateLevelMFs()

void MultiFluidContainer::AllocateLevelMFs ( int  lev,
const amrex::BoxArray ba,
const amrex::DistributionMapping dm 
)

◆ DepositCharge()

void MultiFluidContainer::DepositCharge ( int  lev,
amrex::MultiFab rho 
)

◆ DepositCurrent()

void MultiFluidContainer::DepositCurrent ( int  lev,
amrex::MultiFab jx,
amrex::MultiFab jy,
amrex::MultiFab jz 
)

◆ Evolve()

void MultiFluidContainer::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 
)

This evolves all the fluids by one PIC time step, including current deposition, the field solve, and pushing the fluids, for all the species in the MultiFluidContainer.

◆ GetFluidContainer()

WarpXFluidContainer& MultiFluidContainer::GetFluidContainer ( int  ispecies) const
inline

◆ GetUniqueContainer()

std::unique_ptr<WarpXFluidContainer>& MultiFluidContainer::GetUniqueContainer ( int  ispecies)
inline

◆ InitData()

void MultiFluidContainer::InitData ( int  lev,
amrex::Box  init_box,
amrex::Real  cur_time 
)

◆ nSpecies()

int MultiFluidContainer::nSpecies ( ) const
inline

◆ operator=() [1/2]

MultiFluidContainer& MultiFluidContainer::operator= ( MultiFluidContainer &&  )
default

◆ operator=() [2/2]

MultiFluidContainer& MultiFluidContainer::operator= ( MultiFluidContainer const &  )
delete

Member Data Documentation

◆ allcontainers

amrex::Vector<std::unique_ptr<WarpXFluidContainer> > MultiFluidContainer::allcontainers
private

◆ species_names

std::vector<std::string> MultiFluidContainer::species_names
private

The documentation for this class was generated from the following files: