Vlasiator ebf0dd394 on dev (v5.4.0 + 1054 commits)
Loading...
Searching...
No Matches
vlasovmover.h File Reference
#include <vector>
#include "../definitions.h"
#include "../spatial_cells/spatial_cell_wrapper.hpp"
#include <stdint.h>
#include <dccrg.hpp>
#include <dccrg_cartesian_geometry.hpp>
Include dependency graph for vlasovmover.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void calculateAcceleration (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const Real dt)
void calculateSpatialTranslation (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const Real dt)
void reduce_vlasov_dt (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const vector< CellID > &cells, Real(&dtMaxLocal)[3])
void calculateCellMoments (spatial_cell::SpatialCell *cell, const bool &computeSecond, const bool &computePopulationMomentsOnly, const bool &doNotSkip=false)
void calculateInterpolatedVelocityMoments (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid, const int cp_rhom, const int cp_vx, const int cp_vy, const int cp_vz, const int cp_rhoq, const int cp_p11, const int cp_p22, const int cp_p33, const int cp_p23, const int cp_p13, const int cp_p12)
 Compute real-time 1st order accurate moments from the moments after propagation in velocity and spatial space.
void calculateInitialVelocityMoments (dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > &mpiGrid)
 Compute 0th, 1st and 2nd velocity moments (RHO,VX,VY,VZ,P_11,P_22,P_33 and *_DT2) for all cells in the grid directly from distribution function. The simulation should be at a true time-step! This is at the moment only called at initialisation.

Function Documentation

◆ calculateAcceleration()

void calculateAcceleration ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const Real dt )

Accelerate all particle populations to new time t+dt. This function is AMR safe.

Parameters
mpiGridParallel grid library.
dtTime step.

Definition at line 481 of file vlasovmover.cpp.

Here is the call graph for this function:

◆ calculateCellMoments()

void calculateCellMoments ( spatial_cell::SpatialCell * cell,
const bool & computeSecond,
const bool & computePopulationMomentsOnly,
const bool & doNotSkip )

Calculate velocity moments for the given spatial cell. This function is defined in the arch_moments.cpp file.

Calculate zeroth, first, and (possibly) second bulk velocity moments for the given spatial cell. The calculated moments include contributions from all existing particle populations.

Parameters
cellSpatial cell.
computeSecondIf true, second velocity moments are calculated.
doNotSkipIf false, DO_NOT_COMPUTE cells are skipped.

Definition at line 41 of file arch_moments.cpp.

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

◆ calculateInitialVelocityMoments()

void calculateInitialVelocityMoments ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid)

Compute 0th, 1st and 2nd velocity moments (RHO,VX,VY,VZ,P_11,P_22,P_33 and *_DT2) for all cells in the grid directly from distribution function. The simulation should be at a true time-step! This is at the moment only called at initialisation.

Parameters
mpiGridGrid of spatial cells for which moments are computed

Definition at line 633 of file vlasovmover.cpp.

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

◆ calculateInterpolatedVelocityMoments()

void calculateInterpolatedVelocityMoments ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const int cp_rhom,
const int cp_vx,
const int cp_vy,
const int cp_vz,
const int cp_rhoq,
const int cp_p11,
const int cp_p22,
const int cp_p33,
const int cp_p23,
const int cp_p13,
const int cp_p12 )

Compute real-time 1st order accurate moments from the moments after propagation in velocity and spatial space.

Definition at line 587 of file vlasovmover.cpp.

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

◆ calculateSpatialTranslation()

void calculateSpatialTranslation ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const Real dt )

Propagates the distribution function in spatial space.

Based on SLICE-3D algorithm: Zerroukat, M., and T. Allen. "A three‐dimensional monotone and conservative semi‐Lagrangian scheme (SLICE‐3D) for transport problems." Quarterly Journal of the Royal Meteorological Society 138.667 (2012): 1640-1651.

Definition at line 267 of file vlasovmover.cpp.

Here is the call graph for this function:

◆ reduce_vlasov_dt()

void reduce_vlasov_dt ( dccrg::Dccrg< SpatialCell, dccrg::Cartesian_Geometry > & mpiGrid,
const vector< CellID > & cells,
Real(&) dtMaxLocal[3] )

Definition at line 34 of file arch_dt.cpp.

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