8#include "iinitialization.hpp"
9#include "paraconfpp.hpp"
10#include "species_info.hpp"
21 DConstFieldSpVx m_fequilibrium;
23 host_t<IFieldMemSp> m_init_perturb_mode;
25 host_t<DFieldMemSp> m_init_perturb_amplitude;
38 int const perturb_mode,
39 double const perturb_amplitude)
const;
48 DConstFieldSpVx fequilibrium,
49 host_t<IFieldMemSp> init_perturb_mode,
50 host_t<DFieldMemSp> init_perturb_amplitude);
63 DConstFieldSpVx allfequilibrium,
64 IdxRangeSp idx_range_kinsp,
65 PC_tree_t
const& yaml_input_file);
72 DFieldSpXVx
operator()(DFieldSpXVx allfdistribu)
const override;
An abstract class that allows for initializing a distribution function.
Definition iinitialization.hpp:11
A class that initializes the distribution function as a perturbed Maxwellian.
Definition singlemodeperturbinitialization.hpp:20
static SingleModePerturbInitialization init_from_input(DConstFieldSpVx allfequilibrium, IdxRangeSp idx_range_kinsp, PC_tree_t const &yaml_input_file)
Read init_perturb_mode and init_perturb amplitude in a YAML input file to initialize the perturbation...
SingleModePerturbInitialization(DConstFieldSpVx fequilibrium, host_t< IFieldMemSp > init_perturb_mode, host_t< DFieldMemSp > init_perturb_amplitude)
Creates an instance of the SingleModePerturbInitialization class.
void perturbation_initialization(DFieldX perturbation, int const perturb_mode, double const perturb_amplitude) const
Initialization of the perturbation.
DFieldSpXVx operator()(DFieldSpXVx allfdistribu) const override
Initializes the distribution function as as a perturbed Maxwellian.