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

DoNotCompute is a class handling cells not to be computed. More...

#include <donotcompute.h>

Inheritance diagram for SBC::DoNotCompute:
Collaboration diagram for SBC::DoNotCompute:

Public Member Functions

 DoNotCompute ()
virtual ~DoNotCompute ()
virtual void getParameters () override
void initSysBoundary (creal &t, Project &project) override
void assignSysBoundary (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid) override
void applyInitialState (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::bgbspan bgb, Project &project) override
void updateState (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, fsgrids::technicalspan technical, FieldSolverGrid &fsgrid, fsgrids::perbspan perb, fsgrids::bgbspan bgb, creal t) override
void getFaces (bool *faces) override
std::string getName () const override
uint getIndex () const override
Real fieldSolverBoundaryCondMagneticField (fsgrids::perbspan, fsgrids::constbgbspan, fsgrids::consttechnicalspan, const std::array< Real, 3 > &, const std::array< fsgrid::FsSize_t, 3 > &, const fsgrid::FsStencil &, cuint) override
void fieldSolverBoundaryCondElectricField (fsgrids::efieldspan, const fsgrid::FsStencil &, cuint) override
void fieldSolverBoundaryCondHallElectricField (fsgrids::ehallspan, const fsgrid::FsStencil &, cuint) override
void fieldSolverBoundaryCondGradPeElectricField (fsgrids::egradpespan, const fsgrid::FsStencil &, cuint) override
void fieldSolverBoundaryCondDerivatives (fsgrids::dperbspan, fsgrids::dmomentsspan, const fsgrid::FsStencil &, cuint, cuint) override
void fieldSolverBoundaryCondBVOLDerivatives (fsgrids::volspan, const fsgrid::FsStencil &, cuint) override
void vlasovBoundaryCondition (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &, const CellID &, const uint, const bool) override
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::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::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

DoNotCompute is a class handling cells not to be computed.

DoNotCompute is a class handling cells tagged as sysboundarytype::DO_NOT_COMPUTE by a system boundary condition (e.g. SysBoundaryCondition::Ionosphere).

Definition at line 39 of file donotcompute.h.

Constructor & Destructor Documentation

◆ DoNotCompute()

SBC::DoNotCompute::DoNotCompute ( )

Definition at line 36 of file donotcompute.cpp.

Here is the call graph for this function:

◆ ~DoNotCompute()

SBC::DoNotCompute::~DoNotCompute ( )
virtual

Definition at line 37 of file donotcompute.cpp.

Member Function Documentation

◆ addParameters()

void SBC::DoNotCompute::addParameters ( )
static

Definition at line 39 of file donotcompute.cpp.

Here is the caller graph for this function:

◆ applyInitialState()

void SBC::DoNotCompute::applyInitialState ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
fsgrids::technicalspan technical,
FieldSolverGrid & fsgrid,
fsgrids::perbspan perb,
fsgrids::bgbspan bgb,
Project & project )
overridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 55 of file donotcompute.cpp.

Here is the call graph for this function:

◆ assignSysBoundary()

void SBC::DoNotCompute::assignSysBoundary ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
fsgrids::technicalspan technical,
FieldSolverGrid & fsgrid )
overridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 50 of file donotcompute.cpp.

◆ fieldSolverBoundaryCondBVOLDerivatives()

void SBC::DoNotCompute::fieldSolverBoundaryCondBVOLDerivatives ( fsgrids::volspan ,
const fsgrid::FsStencil & ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 88 of file donotcompute.h.

◆ fieldSolverBoundaryCondDerivatives()

void SBC::DoNotCompute::fieldSolverBoundaryCondDerivatives ( fsgrids::dperbspan ,
fsgrids::dmomentsspan ,
const fsgrid::FsStencil & ,
cuint ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 83 of file donotcompute.h.

◆ fieldSolverBoundaryCondElectricField()

void SBC::DoNotCompute::fieldSolverBoundaryCondElectricField ( fsgrids::efieldspan ,
const fsgrid::FsStencil & ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 71 of file donotcompute.h.

◆ fieldSolverBoundaryCondGradPeElectricField()

void SBC::DoNotCompute::fieldSolverBoundaryCondGradPeElectricField ( fsgrids::egradpespan ,
const fsgrid::FsStencil & ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 79 of file donotcompute.h.

◆ fieldSolverBoundaryCondHallElectricField()

void SBC::DoNotCompute::fieldSolverBoundaryCondHallElectricField ( fsgrids::ehallspan ,
const fsgrid::FsStencil & ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 75 of file donotcompute.h.

◆ fieldSolverBoundaryCondMagneticField()

Real SBC::DoNotCompute::fieldSolverBoundaryCondMagneticField ( fsgrids::perbspan ,
fsgrids::constbgbspan ,
fsgrids::consttechnicalspan ,
const std::array< Real, 3 > & ,
const std::array< fsgrid::FsSize_t, 3 > & ,
const fsgrid::FsStencil & ,
cuint  )
inlineoverridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 63 of file donotcompute.h.

◆ getFaces()

void SBC::DoNotCompute::getFaces ( bool * faces)
overridevirtual

Function used to know which faces the boundary condition is applied to.

Parameters
facesPointer to array of 6 bool in which the values are returned whether the corresponding face is of that type. Order: 0 x+; 1 x-; 2 y+; 3 y-; 4 z+; 5 z-

Function used in some cases to know which faces the system boundary condition is being applied to.

Parameters
facesPointer to array of 6 bool in which the values are returned whether the corresponding face is of that type. Order: 0 x+; 1 x-; 2 y+; 3 y-; 4 z+; 5 z-

Implements SBC::SysBoundaryCondition.

Definition at line 84 of file donotcompute.cpp.

◆ getIndex()

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

Implements SBC::SysBoundaryCondition.

Definition at line 88 of file donotcompute.cpp.

◆ getName()

string SBC::DoNotCompute::getName ( ) const
overridevirtual

Reimplemented from SBC::SysBoundaryCondition.

Definition at line 86 of file donotcompute.cpp.

◆ getParameters()

void SBC::DoNotCompute::getParameters ( )
overridevirtual

Reimplemented from SBC::SysBoundaryCondition.

Definition at line 40 of file donotcompute.cpp.

◆ initSysBoundary()

void SBC::DoNotCompute::initSysBoundary ( creal & t,
Project & project )
overridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 42 of file donotcompute.cpp.

◆ updateState()

void SBC::DoNotCompute::updateState ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
fsgrids::technicalspan technical,
FieldSolverGrid & fsgrid,
fsgrids::perbspan perb,
fsgrids::bgbspan bgb,
creal t )
overridevirtual

Implements SBC::SysBoundaryCondition.

Definition at line 79 of file donotcompute.cpp.

◆ vlasovBoundaryCondition()

void SBC::DoNotCompute::vlasovBoundaryCondition ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const CellID & cellID,
const uint popID,
const bool calculate_V_moments )
inlineoverridevirtual

This function computes the Vlasov (distribution function) boundary condition for the given particle species only. It is not! allowed to change block structure in cell.

Parameters
mpiGridParallel grid.
cellIDSpatial cell ID.
popIDParticle species ID.

Implements SBC::SysBoundaryCondition.

Definition at line 92 of file donotcompute.h.


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