WarpX
Loading...
Searching...
No Matches
MultiFluidContainer Class Reference

#include <MultiFluidContainer.H>

Public Member Functions

 MultiFluidContainer ()
 
 ~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 (ablastr::fields::MultiFabRegister &m_fields, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm, int lev)
 
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 Evolve (ablastr::fields::MultiFabRegister &fields, int lev, std::string const &current_fp_string, amrex::Real cur_time, bool skip_deposition=false)
 
int nSpecies () const
 
void DepositCharge (ablastr::fields::MultiFabRegister &m_fields, amrex::MultiFab &rho, int lev)
 
void DepositCurrent (ablastr::fields::MultiFabRegister &m_fields, amrex::MultiFab &jx, amrex::MultiFab &jy, amrex::MultiFab &jz, int lev)
 

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 ( )

◆ ~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 ( ablastr::fields::MultiFabRegister & m_fields,
const amrex::BoxArray & ba,
const amrex::DistributionMapping & dm,
int lev )

◆ DepositCharge()

void MultiFluidContainer::DepositCharge ( ablastr::fields::MultiFabRegister & m_fields,
amrex::MultiFab & rho,
int lev )

◆ DepositCurrent()

void MultiFluidContainer::DepositCurrent ( ablastr::fields::MultiFabRegister & m_fields,
amrex::MultiFab & jx,
amrex::MultiFab & jy,
amrex::MultiFab & jz,
int lev )

◆ Evolve()

void MultiFluidContainer::Evolve ( ablastr::fields::MultiFabRegister & fields,
int lev,
std::string const & current_fp_string,
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
inlinenodiscard

◆ GetUniqueContainer()

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

◆ InitData()

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

◆ nSpecies()

int MultiFluidContainer::nSpecies ( ) const
inlinenodiscard

◆ 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: