Gyselalib++
 
Loading...
Searching...
No Matches
kinetic_source.hpp
1// SPDX-License-Identifier: MIT
2#pragma once
3
4#include <cmath>
5
6#include "geometry.hpp"
7#include "irighthandside.hpp"
8
32{
33private:
34 double m_amplitude;
35 double m_density;
36 double m_energy;
37 double m_temperature;
38 DFieldMemX m_spatial_extent;
39 DFieldMemVx m_velocity_shape;
40
41public:
54 IdxRangeX const& gridx,
55 IdxRangeVx const& gridv,
56 double extent,
57 double stiffness,
58 double amplitude,
59 double density,
60 double energy,
61 double temperature);
62
63 ~KineticSource() override = default;
64
76 DFieldSpXVx operator()(DFieldSpXVx allfdistribu, double dt) const override;
77};
An abstract class representing a source in Boltzmann equation.
Definition irighthandside.hpp:16
A class that describes a source of particles.
Definition kinetic_source.hpp:32
DFieldSpXVx operator()(DFieldSpXVx allfdistribu, double dt) const override
Update the distribution function following the KineticSource operator.
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.