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

A class that solves a Boltzmann equation using Strang's splitting. More...

Inheritance diagram for SplitRightHandSideSolver:
IBoltzmannSolver

Public Member Functions

 SplitRightHandSideSolver (IBoltzmannSolver const &vlasov_solver, std::vector< std::reference_wrapper< IRightHandSide const > > rhs)
 Creates an instance of the split boltzmann solver class.
 
DFieldSpXVx operator() (DFieldSpXVx allfdistribu, DConstFieldX electric_field, double dt) const override
 Solves a Boltzmann equation on a timestep dt.
 

Detailed Description

A class that solves a Boltzmann equation using Strang's splitting.

The solver splits the Boltzmann equation and separates the advective part from the source part. The sources refers to any operator that appears on the right-hand-side of Boltzmann's equation (typically, every operator except the advections). The splitting involves solving all the source terms on a dt/2 timestep, then solving the advections on a dt timestep using a Vlasov solver, then solving the sources again on dt/2 in reverse order.

Constructor & Destructor Documentation

◆ SplitRightHandSideSolver()

SplitRightHandSideSolver::SplitRightHandSideSolver ( IBoltzmannSolver const &  vlasov_solver,
std::vector< std::reference_wrapper< IRightHandSide const > >  rhs 
)

Creates an instance of the split boltzmann solver class.

Parameters
[in]vlasov_solverA solver for the associated Vlasov equation (the boltzmann equation with no sources).
[in]rhsA vector containing all of the source terms of the considered Boltzmann equation.

Member Function Documentation

◆ operator()()

DFieldSpXVx SplitRightHandSideSolver::operator() ( DFieldSpXVx  allfdistribu,
DConstFieldX  electric_field,
double  dt 
) const
overridevirtual

Solves a Boltzmann equation on a timestep dt.

Parameters
[in,out]allfdistribuOn input: the initial value of the distribution function. On output: the value of the distribution function after solving the Boltzmann equation.
[in]electric_fieldThe electric field computed at all spatial positions.
[in]dtThe timestep.
Returns
The distribution function after solving the Boltzmann equation.

Implements IBoltzmannSolver.


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