# Agglomeration solver

class CAgglomerationSolver : public CBaseSolver

  Agglomeration solver.

  Public Types

  enum class EKernels : size_t

    Types of agglomeration kernels.

    Values:

    enumerator CONSTANT

      Constant kernel.

    enumerator SUM

      Sum kernel.

    enumerator PRODUCT

      Product kernel.

    enumerator BROWNIAN

      Brownian kernel.

    enumerator SHEAR

      Shear kernel.

    enumerator PEGLOW

      Peglow kernel.

    enumerator COAGULATION

      Coagulation kernel.

    enumerator GRAVITATIONAL

      Gravitational kernel.

    enumerator EKE

      Equipartition kinetic energy kernel.

    enumerator THOMPSON

      Thompson kernel.

    enumerator CUSTOM

      Custom kernel.

  Public Functions

  void Initialize(const d_vect_t &_grid, double _beta0, EKernels _kernel, const d_vect_t &_parameters = d_vect_t())

    Sets all required parameters and calls Initialize()

    Parameters:

      - _grid – Diameter-related PSD grid

      - _beta0 – Size independent agglomeration rate

      - _kernel – Type of the agglomeration kernel

      - _parameters – Additional parameters

  void Initialize(const d_vect_t &_grid, double _beta0, const std::function<kernel_t> &_kernel, const d_vect_t &_parameters = d_vect_t())

    Sets all required parameters and calls Initialize()

    Parameters:

      - _grid – Diameter-related PSD grid

      - _beta0 – Size independent agglomeration rate

      - _kernel – Function of the agglomeration kernel

      - _parameters – Additional parameters

  virtual void Initialize() override

    Actual initialization of the solver.

  virtual void Calculate(const d_vect_t &_n, d_vect_t &_rateB, d_vect_t &_rateD)

    Main calculation function.

    Parameters:

      - _n – Number distribution

      - _rateB – Output vector for birth rate

      - _rateD – Output vector for death rate

  std::pair<d_vect_t, d_vect_t> Calculate(const d_vect_t &_n)

    Main calculation function.

    Parameters:

      _n – Number distribution

    Returns:

      Birth and death rates