#ifndef GKS_HPP
#define GKS_HPP

#include <scheme/DiscreteFunctionVariant.hpp>

#include <tuple>

std::tuple<std::shared_ptr<const DiscreteFunctionVariant>,   // rho
           std::shared_ptr<const DiscreteFunctionVariant>,   // rhoU
           std::shared_ptr<const DiscreteFunctionVariant>>   // rhoE
gks(std::shared_ptr<const DiscreteFunctionVariant> rho,
    std::shared_ptr<const DiscreteFunctionVariant> rhoU,
    std::shared_ptr<const DiscreteFunctionVariant> rhoE,
    std::shared_ptr<const DiscreteFunctionVariant> tau,
    const double delta,
    const double dt);

#endif   // GKS_HPP