XGCa
 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, const Grid< DeviceType > &grid)
 
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, DiagF0DF &diag_f0_df, const Moments &moments, const VGridDistribution< DeviceType > &f0_f, VGridDistribution< HostType > &f0_df0g, 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,
const Grid< DeviceType > &  grid 
)

< Outer boundary (for Poisson solver), normalized poloidal flux

< Outer boundary (for Poisson solver, 2nd private region), normalized poloidal flux

< To move the outer boundary of the Poisson solver away from the inner wall (in m)

< Start time (in time steps) for anomalous diffusion

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,
DiagF0DF diag_f0_df,
const Moments moments_h,
const VGridDistribution< DeviceType > &  f0_f,
VGridDistribution< HostType > &  f0_df0g_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_fThe part of the distribution function represented on the velocity grid
[in,out]f0_df0g_hThe change to the distribution function
[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: