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

Classes

struct  CopysphereSpeciesParameters
class  Copysphere
 Copysphere is a class applying an ionosphere-ish boundary conditions. More...
class  DoNotCompute
 DoNotCompute is a class handling cells not to be computed. More...
struct  InflowSpeciesParameters
class  Inflow
 Base class for boundary conditions with settings and parameters read from file. More...
struct  IonosphereSpeciesParameters
struct  SphericalTriGrid
class  Ionosphere
 Ionosphere is a class applying ionospheric boundary conditions. More...
struct  OutflowSpeciesParameters
class  Outflow
 Outflow is a class applying copy/outflow boundary conditions. More...
class  Maxwellian
 Maxwellian is a class applying fixed Maxwellian conditions according to parameters read from an input file. More...
class  SysBoundaryCondition
 SBC::SysBoundaryCondition is the base class for system boundary conditions. More...
class  OuterBoundaryCondition

Typedefs

typedef Real iSolverReal

Enumerations

enum  IonosphereBoundaryVDFmode { FixedMoments , AverageMoments , AverageAllMoments , CopyAndLosscone }

Functions

Real getR (creal x, creal y, creal z, uint geometry, Real center[3])
static Real ReesIsotropicLambda (Real x)
static Real SergienkoIvanovLambda (Real E0, Real Chi)
void averageCellData (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > cellList, SpatialCell *to, const uint popID, const creal fluffiness)
vmesh::LocalID findMaxwellianBlocksToInitialize (const uint popID, spatial_cell::SpatialCell &cell, creal &rho, creal &T, creal &VX0, creal &VY0, creal &VZ0)
 SBC::findMaxwellianBlocksToInitialize returns a list of blocks to construct the VDF with.
void determineFaceNoClassMembers (bool *isThisCellOnAFace, creal x, creal y, creal z, creal dx, creal dy, creal dz, const std::array< bool, 3 > periodicity, const bool excludeSlicesAndPeriodicDimensions)
void averageCellData (const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, std::vector< CellID > cellList, SpatialCell *to, const uint popID, const creal fluffiness=0)

Variables

IonosphereBoundaryVDFmode boundaryVDFmode = FixedMoments
SphericalTriGrid ionosphereGrid
static constexpr int productionNumAccEnergies = 60
static constexpr int productionNumTemperatures = 60
static constexpr int productionNumParticleEnergies = 100
static constexpr Real productionMinAccEnergy = 0.1
static constexpr Real productionMaxAccEnergy = 100.
static constexpr Real productionMinTemperature = 0.1
static constexpr Real productionMaxTemperature = 100.
static constexpr Real ion_electron_T_ratio = 4.
static const int MAX_TOUCHING_ELEMENTS = 12
static const int MAX_DEPENDING_NODES = 22

Typedef Documentation

◆ iSolverReal

Definition at line 73 of file ionosphere.h.

Enumeration Type Documentation

◆ IonosphereBoundaryVDFmode

Enumerator
FixedMoments 
AverageMoments 
AverageAllMoments 
CopyAndLosscone 

Definition at line 62 of file ionosphere.h.

Function Documentation

◆ averageCellData() [1/2]

void SBC::averageCellData ( const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const vector< CellID > cellList,
SpatialCell * to,
const uint popID,
const creal fluffiness )

Take a list of cells and set the destination cell distribution function to the average of the list's cells'.

Parameters
mpiGridGrid
cellListVector of cells to copy from.
toPointer to cell in which to set the averaged distribution.
popIDID of population to average the distribution of
fluffinessFactor to replace data with from 0.0 (default, do nothing) to 1.0 (replace all destination data with source data)

Definition at line 440 of file sysboundarycondition.cpp.

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

◆ averageCellData() [2/2]

void SBC::averageCellData ( const dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
std::vector< CellID > cellList,
SpatialCell * to,
const uint popID,
const creal fluffiness = 0 )

◆ determineFaceNoClassMembers()

void SBC::determineFaceNoClassMembers ( bool * isThisCellOnAFace,
creal x,
creal y,
creal z,
creal dx,
creal dy,
creal dz,
const std::array< bool, 3 > periodicity,
const bool excludeSlicesAndPeriodicDimensions )

Definition at line 837 of file sysboundarycondition.cpp.

Here is the caller graph for this function:

◆ findMaxwellianBlocksToInitialize()

vmesh::LocalID SBC::findMaxwellianBlocksToInitialize ( const uint popID,
spatial_cell::SpatialCell & cell,
creal & rho,
creal & T,
creal & VX0,
creal & VY0,
creal & VZ0 )

SBC::findMaxwellianBlocksToInitialize returns a list of blocks to construct the VDF with.

Here the while loop iterates from the centre of the maxwellian in blocksize (4*dvx) increments, and looks at the centre of the first velocity cell in the block (+0.5dvx), checking if the phase-space density there is large enough to be included due to sparsity threshold. That results in a "blocks radius" vRadiusSquared from the centre of the Maxwellian distribution. Then we iterate through the actual blocks and calculate their radius R2 based on their velocity coordinates and the plasma bulk velocity. Blocks that fullfil R2<vRadiusSquared are included to blocksToInitialize.

Definition at line 739 of file sysboundarycondition.cpp.

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

◆ getR()

Real SBC::getR ( creal x,
creal y,
creal z,
uint geometry,
Real center[3] )

Definition at line 131 of file copysphere.cpp.

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

◆ ReesIsotropicLambda()

Real SBC::ReesIsotropicLambda ( Real x)
static

Definition at line 832 of file ionosphere.cpp.

Here is the caller graph for this function:

◆ SergienkoIvanovLambda()

Real SBC::SergienkoIvanovLambda ( Real E0,
Real Chi )
static

Definition at line 842 of file ionosphere.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ boundaryVDFmode

IonosphereBoundaryVDFmode SBC::boundaryVDFmode = FixedMoments

Definition at line 69 of file ionosphere.cpp.

◆ ion_electron_T_ratio

Real SBC::ion_electron_T_ratio = 4.
staticconstexpr

Definition at line 53 of file ionosphere.h.

◆ ionosphereGrid

SphericalTriGrid SBC::ionosphereGrid

Ionosphere finite element grid

Definition at line 71 of file ionosphere.cpp.

◆ MAX_DEPENDING_NODES

const int SBC::MAX_DEPENDING_NODES = 22
static

Definition at line 71 of file ionosphere.h.

◆ MAX_TOUCHING_ELEMENTS

const int SBC::MAX_TOUCHING_ELEMENTS = 12
static

Definition at line 70 of file ionosphere.h.

◆ productionMaxAccEnergy

Real SBC::productionMaxAccEnergy = 100.
staticconstexpr

Definition at line 50 of file ionosphere.h.

◆ productionMaxTemperature

Real SBC::productionMaxTemperature = 100.
staticconstexpr

Definition at line 52 of file ionosphere.h.

◆ productionMinAccEnergy

Real SBC::productionMinAccEnergy = 0.1
staticconstexpr

Definition at line 49 of file ionosphere.h.

◆ productionMinTemperature

Real SBC::productionMinTemperature = 0.1
staticconstexpr

Definition at line 51 of file ionosphere.h.

◆ productionNumAccEnergies

int SBC::productionNumAccEnergies = 60
staticconstexpr

Definition at line 46 of file ionosphere.h.

◆ productionNumParticleEnergies

int SBC::productionNumParticleEnergies = 100
staticconstexpr

Definition at line 48 of file ionosphere.h.

◆ productionNumTemperatures

int SBC::productionNumTemperatures = 60
staticconstexpr

Definition at line 47 of file ionosphere.h.