XGC1
Public Member Functions | Private Attributes | List of all members
FGridCoarseGraining Class Reference

#include <fgrid_coarse_graining.hpp>

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

Public Member Functions

 FGridCoarseGraining ()
 
 FGridCoarseGraining (NLReader::NamelistReader &nlr)
 Construct and configure FGridCoarseGraining from the f0_param namelist. More...
 
void apply (Plasma &plasma, VGridDistribution< DeviceType > &df0g) const
 Apply the coarse‑graining operation to all non‑adiabatic species. More...
 
- Public Member Functions inherited from Source
bool is_triggered (int step)
 

Private Attributes

double alpha
 
bool enabled
 

Additional Inherited Members

- Public Attributes inherited from Source
StepTrigger step_trigger
 

Constructor & Destructor Documentation

◆ FGridCoarseGraining() [1/2]

FGridCoarseGraining::FGridCoarseGraining ( )
inline

◆ FGridCoarseGraining() [2/2]

FGridCoarseGraining::FGridCoarseGraining ( NLReader::NamelistReader nlr)
inline

Construct and configure FGridCoarseGraining from the f0_param namelist.

Parameters
[in]nlrReference to an active NamelistReader.

The following keys are read (defaults in parentheses):

  • f0_coarse_graining_on (.false.)
  • f0_coarse_graining_alpha (1.0e‑3)

The internal StepTrigger is set to a period of 1 (i.e. apply is called in f_source every time). Note that the constructor is called only if enabled==true (see sources.hpp).

Here is the call graph for this function:

Member Function Documentation

◆ apply()

void FGridCoarseGraining::apply ( Plasma plasma,
VGridDistribution< DeviceType > &  df0g 
) const
inline

Apply the coarse‑graining operation to all non‑adiabatic species.

Parameters
[in,out]plasmaFull plasma state (provides f0g for each species).
[in,out]df0gReference to the cumulative delta-f container (same layout as species.f0.f0g). The kernel adds alpha*f0g into this view.

The routine loops over all non-adiabatic species and then over the configuration space vertices (parallelized with Kokkos), and the two velocity dimensions to move a fraction alpha·f0g from the background grid distribution species.f0.f0g into the cumulative source container df0g and removes the same amount from f0g

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

Member Data Documentation

◆ alpha

double FGridCoarseGraining::alpha
private

◆ enabled

bool FGridCoarseGraining::enabled
private

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