Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
SBC::Maxwellian Class Reference

Maxwellian is a class applying fixed Maxwellian conditions according to parameters read from an input file. More...

#include <setmaxwellian.h>

Inheritance diagram for SBC::Maxwellian:
Collaboration diagram for SBC::Maxwellian:

Public Member Functions

 Maxwellian ()
virtual ~Maxwellian ()
virtual void getParameters () override
virtual string getName () const override
virtual uint getIndex () const override
void generateTemplateCell (spatial_cell::SpatialCell &templateCell, Real(&B)[3], int inputDataIndex, creal t) override
 Generate the template cell for the face corresponding to the index passed. This function generates a spatial cell which is to be used as a template for the system boundary condition.
Public Member Functions inherited from SBC::Inflow
 Inflow ()
virtual ~Inflow ()
virtual void initSysBoundary (creal &t, Project &project) override
virtual void applyInitialState (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::bgbspan bgb, Project &project) override
virtual void updateState (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::bgbspan bgb, creal t) override
virtual Real fieldSolverBoundaryCondMagneticField (fsgrids::perbspan b, fsgrids::constbgbspan bgb, fsgrids::consttechnicalspan technical, const std::array< Real, 3 > &gridSpacing, const std::array< fsgrid::FsSize_t, 3 > &globalCoordinates, const fsgrid::FsStencil &stencil, cuint component) override
virtual void fieldSolverBoundaryCondElectricField (fsgrids::efieldspan e, const fsgrid::FsStencil &stencil, cuint component) override
virtual void fieldSolverBoundaryCondHallElectricField (fsgrids::ehallspan ehall, const fsgrid::FsStencil &stencil, cuint component) override
virtual void fieldSolverBoundaryCondGradPeElectricField (fsgrids::egradpespan EGradPe, const fsgrid::FsStencil &stencil, cuint component) override
virtual void fieldSolverBoundaryCondDerivatives (fsgrids::dperbspan dperb, fsgrids::dmomentsspan dmoments, const fsgrid::FsStencil &stencil, cuint RKCase, cuint component) override
virtual void fieldSolverBoundaryCondBVOLDerivatives (fsgrids::volspan vols, const fsgrid::FsStencil &stencil, cuint component) override
virtual void vlasovBoundaryCondition (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const uint popID, const bool doCalcMomentsV) override
virtual void getFaces (bool *faces) override
Public Member Functions inherited from SBC::OuterBoundaryCondition
virtual void assignSysBoundary (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid)
Public Member Functions inherited from SBC::SysBoundaryCondition
 SysBoundaryCondition ()
virtual ~SysBoundaryCondition ()
virtual void generateTemplateCell ()
virtual void mapCellPotentialAndGetEXBDrift (std::array< Real, CellParams::N_SPATIAL_CELL_PARAMS > &cellParams)
virtual void setupL2OutflowAtRestart (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
uint getPrecedence () const
bool isDynamic () const
bool updateSysBoundaryConditionsAfterLoadBalance (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const std::vector< CellID > &local_cells_on_boundary)
bool doApplyUponRestart () const
void setPeriodicity (std::array< bool, 3 > isFacePeriodic)

Static Public Member Functions

static void addParameters ()
Static Public Member Functions inherited from SBC::SysBoundaryCondition
static void addParameters ()
static void setCellDerivativesToZero (fsgrids::dperbspan dperb, fsgrids::dmomentsspan dmoments, const fsgrid::FsStencil &stencil, cuint component)
static void setCellBVOLDerivativesToZero (fsgrids::volspan vols, const fsgrid::FsStencil &stencil, cuint component)

Additional Inherited Members

Protected Member Functions inherited from SBC::Inflow
std::vector< std::vector< Real > > loadFile (const char *file, unsigned int nParams)
void loadInputData (const uint popID)
void interpolate (const int inputDataIndex, const uint popID, creal t, Real *outputData)
void generateTemplateCells (creal t)
void setCellsFromTemplate (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const uint popID)
void setBFromTemplate (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::perbspan perb, fsgrids::bgbspan bgb, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, const bool resetSolved)
Protected Member Functions inherited from SBC::SysBoundaryCondition
void determineFace (bool *isThisCellOnAFace, const creal x, const creal y, const creal z, const creal dx, const creal dy, const creal dz, const bool excludeSlicesAndPeriodicDimensions=false) const
 Function used to determine on which face(s) if any the cell at given coordinates is.
void determineFace (std::array< bool, 6 > &isThisCellOnAFace, const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, CellID id, const bool excludeSlicesAndPeriodicDimensions=false)
 Function used to determine on which face(s) if any the cell with the given MPI id is on.
void copyCellData (const SpatialCell *from, SpatialCell *to, const bool copyMomentsOnly, const uint popID, const bool copy_V_moments)
std::array< SpatialCell *, 27 > & getFlowtoCells (const CellID &cellID)
std::array< Realf *, 27 > getFlowtoCellsBlock (const std::array< SpatialCell *, 27 > flowtoCells, const vmesh::GlobalID blockGID, const uint popID)
int nbrID (const int i, const int j, const int k)
void vlasovBoundaryCopyFromTheClosestNbr (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const bool &copyMomentsOnly, const uint popID, const bool calculate_V_moments)
void vlasovBoundaryCopyFromTheClosestL1OutflowNbr (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const bool &copyMomentsOnly, const uint popID, const bool calculate_V_moments)
void vlasovBoundaryCopyFromAllClosestNbrs (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const uint popID, const bool calculate_V_moments)
void vlasovBoundaryFluffyCopyFromAllCloseNbrs (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const CellID &cellID, const uint popID, const bool calculate_V_moments, creal fluffiness)
std::array< int, 3 > getTheClosestNonsysboundaryCell (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, cint i, cint j, cint k)
std::vector< std::array< int, 3 > > getAllClosestNonsysboundaryCells (fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, cint i, cint j, cint k)
CellIDgetTheClosestNonsysboundaryCell (const CellID &cellID)
std::vector< CellID > & getAllClosestNonsysboundaryCells (const CellID &cellID)
std::vector< CellID > & getAllCloseNonsysboundaryCells (const CellID &cellID)
Real fieldBoundaryCopyFromSolvingNbrMagneticField (fsgrids::perbspan b, fsgrids::consttechnicalspan technical, const fsgrid::FsStencil &stencil, cuint component, cuint mask)
CellIDgetTheClosestL1OutflowCell (const CellID &cellID)
std::vector< CellID > & getAllClosestL1OutflowCells (const CellID &cellID)
Protected Attributes inherited from SBC::Inflow
spatial_cell::SpatialCell templateCells [6]
Real templateB [6][3]
Real tInterval
Real tLastApply
std::vector< std::string > faceList
std::vector< InflowSpeciesParametersspeciesParams
Protected Attributes inherited from SBC::OuterBoundaryCondition
std::array< bool, 6 > facesToProcess
Protected Attributes inherited from SBC::SysBoundaryCondition
uint precedence
bool dynamic
std::array< bool, 3 > periodic
std::unordered_map< CellID, std::vector< CellID > > allClosestNonsysboundaryCells
std::unordered_map< CellID, std::vector< CellID > > allCloseNonsysboundaryCells
std::unordered_map< CellID, std::vector< CellID > > allClosestL1OutflowCells
std::unordered_map< CellID, std::vector< CellID > > allCloseL1OutflowCells
bool applyUponRestart

Detailed Description

Maxwellian is a class applying fixed Maxwellian conditions according to parameters read from an input file.

Maxwellian is a class handling cells tagged as sysboundarytype::MAXWELLIAN by this boundary condition.

It applies fixed Maxwellian settings to the inflow boundary cells, the parameters of which are being read from an input file.

Definition at line 44 of file setmaxwellian.h.

Constructor & Destructor Documentation

◆ Maxwellian()

SBC::Maxwellian::Maxwellian ( )

Definition at line 38 of file setmaxwellian.cpp.

Here is the call graph for this function:

◆ ~Maxwellian()

SBC::Maxwellian::~Maxwellian ( )
virtual

Definition at line 39 of file setmaxwellian.cpp.

Member Function Documentation

◆ addParameters()

void SBC::Maxwellian::addParameters ( )
static

Definition at line 41 of file setmaxwellian.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateTemplateCell()

void SBC::Maxwellian::generateTemplateCell ( spatial_cell::SpatialCell & templateCell,
Real(&) B[3],
int inputDataIndex,
creal t )
overridevirtual

Generate the template cell for the face corresponding to the index passed. This function generates a spatial cell which is to be used as a template for the system boundary condition.

Parameters
templateCellAddress of the template cell to be generated.
BAddress of the magnetic field to be used as template.
inputDataIndexIndex used for the location of the input data.
tCurrent simulation time.

Reimplemented from SBC::Inflow.

Definition at line 125 of file setmaxwellian.cpp.

Here is the call graph for this function:

◆ getIndex()

uint SBC::Maxwellian::getIndex ( ) const
overridevirtual

Implements SBC::Inflow.

Definition at line 230 of file setmaxwellian.cpp.

Here is the caller graph for this function:

◆ getName()

std::string SBC::Maxwellian::getName ( ) const
overridevirtual

Reimplemented from SBC::Inflow.

Definition at line 229 of file setmaxwellian.cpp.

◆ getParameters()

void SBC::Maxwellian::getParameters ( )
overridevirtual

Reimplemented from SBC::SysBoundaryCondition.

Definition at line 86 of file setmaxwellian.cpp.

Here is the call graph for this function:

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