XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
update_f0.hpp File Reference
#include "globals.hpp"
#include "sml.hpp"
#include "magnetic_field.hpp"
#include "grid.hpp"
#include "particles.hpp"
#include "plasma.hpp"
#include "vgrid_distribution.hpp"
#include "domain_decomposition.hpp"
#include "pseudo_inverse.hpp"
Include dependency graph for update_f0.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void all_species_update_f0 (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, double alpha_in, bool f_source_on, DMWrapper &pseudo_inv_dm, Pseudo_inverse< DeviceType > &pseudo_inv, VGridDistribution< HostType > &f0_f, VGridDistribution< HostType > &f0_n)
 
void update_f0_sp (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, Species< DeviceType > &species, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, double alpha_in, bool f_source_on, DMWrapper &pseudo_inv_dm, Pseudo_inverse< DeviceType > &pseudo_inv, VGridDistribution< HostType > &f0_f, VGridDistribution< HostType > &f0_n)
 
void f0_update_f0g_pseudo_inv (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const Species< DeviceType > &species, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, bool update_f_and_n, DMWrapper &pseudo_inv_dm, Pseudo_inverse< DeviceType > &pseudo_inv, VGridDistribution< DeviceType > &f)
 

Function Documentation

void all_species_update_f0 ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
Plasma plasma,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp,
double  alpha_in,
bool  f_source_on,
DMWrapper pseudo_inv_dm,
Pseudo_inverse< DeviceType > &  pseudo_inv,
VGridDistribution< HostType > &  f0_f,
VGridDistribution< HostType > &  f0_n 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void f0_update_f0g_pseudo_inv ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const Species< DeviceType > &  species,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp,
bool  update_f_and_n,
DMWrapper pseudo_inv_dm,
Pseudo_inverse< DeviceType > &  pseudo_inv,
VGridDistribution< DeviceType > &  dist 
)

Loop over nodes and interpolate weights to grid distribution. This is pseudo-inverse version with particles -> velocity grid interpolation done with PETSc.

NOTE: This method is slower than the other but may be necessary for a PETSc collision operator.

Parameters
[in]gridspatial grid object
[in]magnetic_fieldmagnetic field object
[in]speciescontains species parameters
[in]vgridcontains the velocity grid dimensions
[in]pol_decompcontains poloidal decomposition info
[in]update_f_and_nwhether to add particle weights in the distribution function used for the source routines
[in]pseudo_inv_dmpseudo-inverse mesh object
[in]pseudo_invpseudo-inverse object (contains pseudo-inverse arrays)
[in,out]distthe species distribution being added to the particle contributions
Returns
void

Here is the call graph for this function:

Here is the caller graph for this function:

void update_f0_sp ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
Species< DeviceType > &  species,
const VelocityGrid vgrid,
const DomainDecomposition< DeviceType > &  pol_decomp,
double  alpha_in,
bool  f_source_on,
DMWrapper pseudo_inv_dm,
Pseudo_inverse< DeviceType > &  pseudo_inv,
VGridDistribution< HostType > &  f0_f,
VGridDistribution< HostType > &  f0_n 
)

Here is the call graph for this function:

Here is the caller graph for this function: