Gyselalib++
 
Loading...
Searching...
No Matches
KineticSource Class Reference

A class that describes a source of particles. More...

Inheritance diagram for KineticSource:
IRightHandSide

Public Member Functions

 KineticSource (IdxRangeX const &gridx, IdxRangeVx const &gridv, double extent, double stiffness, double amplitude, double density, double energy, double temperature)
 Creates an instance of the KineticSource class.
 
DFieldSpXVx operator() (DFieldSpXVx allfdistribu, double dt) const override
 Update the distribution function following the KineticSource operator.
 

Detailed Description

A class that describes a source of particles.

The KineticSource class solves the following evolution equation: df/dt = S_kin Where S_kin = spatial_extent(x) * velocity_shape(v) Since S_kin does not depend on time, we have f(t+dt) = f(t) + S_kin*dt as a solution of this evolution equation.

spatial_extent defines the location where the source is active. spatial_extent is normalized, so that its integral along the spatial direction equals one. It has a hyperbolic tangent shape. It is equal to one in a central zone of the plasma of width defined by the extent parameter.

velocity_shape defines the velocity profile of the source in the parallel velocity direction. It is the sum of a source that injects only density, and a source that injects only energy. If the density and energy parameters are equal to one (usual case), the resulting velocity_shape is maxwellian.

The complete description of the operator can be found in rhs docs.

Constructor & Destructor Documentation

◆ KineticSource()

KineticSource::KineticSource ( IdxRangeX const &  gridx,
IdxRangeVx const &  gridv,
double  extent,
double  stiffness,
double  amplitude,
double  density,
double  energy,
double  temperature 
)

Creates an instance of the KineticSource class.

Parameters
[in]gridxThe mesh in the x direction.
[in]gridvThe mesh in the vx direction.
[in]extentA parameter that sets the spatial extent of the source.
[in]stiffnessA parameter that sets stiffness of the source extent.
[in]amplitudeA parameter that sets the amplitude of the source.
[in]densityA parameter that sets the density of the source.
[in]energyA parameter that sets the energy of the source.
[in]temperatureA parameter that sets the temperature of the source.

Member Function Documentation

◆ operator()()

DFieldSpXVx KineticSource::operator() ( DFieldSpXVx  allfdistribu,
double  dt 
) const
overridevirtual

Update the distribution function following the KineticSource operator.

Update the distribution function for both electrons and ions to show how it is modified following the effect of the KineticSource operator.

Parameters
[in,out]allfdistribuThe distribution function.
[in]dtThe time step over which the collisions occur.
Returns
A field referencing the distribution function passed as argument.

Implements IRightHandSide.


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