XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
Diffusion Class Reference

#include <diffusion.hpp>

Inheritance diagram for Diffusion:
Inheritance graph
[legend]
Collaboration diagram for Diffusion:
Collaboration graph
[legend]

Public Member Functions

 Diffusion ()
 
 Diffusion (NLReader::NamelistReader &nlr, const MagneticField< DeviceType > &magnetic_field)
 
void apply (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, const DomainDecomposition< DeviceType > &pol_decomp, const VelocityGrid &vgrid, Plasma &plasma, const Moments &moments, VGridDistribution< HostType > &f0_f, VGridDistribution< HostType > &f0_df0g, VGridDistribution< HostType > &df0g_tmp, double dt)
 
- Public Member Functions inherited from Source
bool is_triggered (int step)
 

Private Attributes

double inner_psi_bound
 
double outer_psi_bound
 

Additional Inherited Members

- Public Attributes inherited from Source
StepTrigger step_trigger
 

Constructor & Destructor Documentation

Diffusion::Diffusion ( )
inline
Diffusion::Diffusion ( NLReader::NamelistReader nlr,
const MagneticField< DeviceType > &  magnetic_field 
)
inline

Here is the call graph for this function:

Member Function Documentation

void Diffusion::apply ( const Simulation< DeviceType > &  sml,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
ElectricField< DeviceType > &  electric_field,
const DomainDecomposition< DeviceType > &  pol_decomp,
const VelocityGrid vgrid,
Plasma plasma,
const Moments moments_h,
VGridDistribution< HostType > &  f0_f_h,
VGridDistribution< HostType > &  f0_df0g_h,
VGridDistribution< HostType > &  df0g_tmp_h,
double  dt 
)

Calls the diffusion timestepper. The solve uses PETSc and the setup for that is still in Fortran.

Parameters
[in]smlSimulation parameters
[in]gridThe grid object
[in]magnetic_fieldThe magnetic field object
[in]electric_fieldUsed for dpot to remove adiabatic response
[in]pol_decompThe domain decomposition
[in]velocity_gridVelocity grid
[in,out]plasmaPlasma object. f0_delta_n/u/T are updated
[in]moments_hMoments
[in]f0_f_hThe part of the distribution function represented on the velocity grid
[in,out]f0_df0g_hThe change to the distribution function
[out]df0g_tmp_hA scratch allocation, appears unused so can probably be removed
[in]dtThe time step return View marking whether each mesh node is in bounds

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

double Diffusion::inner_psi_bound
private
double Diffusion::outer_psi_bound
private

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