-- Gkyl ------------------------------------------------------------------------
--
-- Dispatch into the updater modules
--    _______     ___
-- + 6 @ |||| # P ||| +
--------------------------------------------------------------------------------

-- Gkyl modules
local ASheathPotential = require "Updater.ASheathPotential"
local BasicBc = require "Updater.BasicBc"
local Bc = require "Updater.Bc"
local BGKcollisions = require "Updater.BGKcollisions"
local BoundaryFluxCalc = require "Updater.BoundaryFluxCalc"
local CalcSRVars = require "Updater.CalcSRVars"
local CartFieldBinOp = require "Updater.CartFieldBinOp"
local CartFieldIntegrate = require "Updater.CartFieldIntegrate"
local CartFieldInterpolate = require "Updater.CartFieldInterpolate"
local ChargeExchange = require "Updater.ChargeExchange"
local ConfToPhase = require "Updater.ConfToPhase"
local CrossPrimMoments = require "Updater.CrossPrimMoments"
local VlasovDiffusion = require "Updater.VlasovDiffusion"
local GyrokineticDiffusion = require "Updater.GyrokineticDiffusion"
local DistFuncMomentDG = require "Updater.DistFuncMomentDG"
local DiscontGenPoisson = require "Updater.DiscontGenPoisson"
local DiscontPoisson = require "Updater.DiscontPoisson"
local DistFuncMomentCalc = require "Updater.DistFuncMomentCalc"
local EmissionSpectrumBc = require "Updater.EmissionSpectrumBc"
local EvalOnNodes = require "Updater.EvalOnNodes"
local EvaluateBronoldFehskeBC = require "Updater.EvaluateBronoldFehskeBC"
local FemGyroaverage = require "Updater.FemGyroaverage"
local FemParPoisson = require "Updater.FemParPoisson"
local FemParproj = require "Updater.FemParproj"
local FemPerpPoisson = require "Updater.FemPerpPoisson"
local FemPoisson = require "Updater.FemPoisson"
local FemPoissonPerp = require "Updater.FemPoissonPerp"
local FiveMomentSrc = require "Updater.FiveMomentSrc"
local FluidDG = require "Updater.FluidDG"
local GkFemPoisson = require "Updater.GkFemPoisson"
local GkLBO = require "Updater.GkLBO"
local GkSheathBc = require "Updater.GkSheathBc"
local GyrokineticDG = require "Updater.GyrokineticDG"
local HyperDisCont = require "Updater.HyperDisCont"
local HyperDisContCellBased = require "Updater.HyperDisContCellBased"
local Ionization = require "Updater.Ionization"
local IntegratedDGMoment = require "Updater.IntegratedDGMoment"
local Ionization = require "Updater.Ionization"
local LagrangeFix = require "Updater.LagrangeFix"
local MGpoisson = require "Updater.MGpoisson"
local MappedPoisson = require "Updater.MappedPoisson"
local MaxwellianOnBasis = require "Updater.MaxwellianOnBasis"
local PositivityCheck = require "Updater.PositivityCheck"
local PositivityRescale = require "Updater.PositivityRescale"
local ProjectFluxFunc = require "Updater.ProjectFluxFunc"
local ProjectOnBasis = require "Updater.ProjectOnBasis"
local SelfPrimMoments = require "Updater.SelfPrimMoments"
local SeparateVectorComponents = require "Updater.SeparateVectorComponents"
local SolidSurface = require "Updater.SolidSurface"
local SpitzerCollisionality = require "Updater.SpitzerCollisionality"
local SqrtOnBasis = require "Updater.SqrtOnBasis"
local StairSteppedBc = require "Updater.StairSteppedBc"
local TenMomentRelax = require "Updater.TenMomentRelax"
local TenMomentSrc = require "Updater.TenMomentSrc"
local TwistShiftBC = require "Updater.TwistShiftBC"
local WavePropagation = require "Updater.WavePropagation"
local VlasovDG = require "Updater.VlasovDG"
local VlasovLBO = require "Updater.VlasovLBO"
local AxisymmetricFiveMomentSrc = require "Updater.AxisymmetricFiveMomentSrc"
local AxisymmetricPhMaxwellSrc = require "Updater.AxisymmetricPhMaxwellSrc"
local FiveMomentFrictionSrc = require "Updater.FiveMomentFrictionSrc"
local BraginskiiHeatConduction = require "Updater.BraginskiiHeatConduction"
local BraginskiiViscosityDiffusion = require "Updater.BraginskiiViscosityDiffusion"
local AnisotropicDiffusion = require "Updater.AnisotropicDiffusion"

return {
   ASheathPotential = ASheathPotential,
   BasicBc = BasicBc,
   Bc = Bc,
   BGKcollisions = BGKcollisions,
   BoundaryFluxCalc = BoundaryFluxCalc,
   CalcSRVars = CalcSRVars,
   CartFieldBinOp = CartFieldBinOp,
   CartFieldIntegrate = CartFieldIntegrate,
   CartFieldInterpolate = CartFieldInterpolate,
   ChargeExchange = ChargeExchange,
   ConfToPhase = ConfToPhase,
   CrossPrimMoments = CrossPrimMoments,
   VlasovDiffusion = VlasovDiffusion,
   GyrokineticDiffusion = GyrokineticDiffusion,
   DistFuncMomentDG = DistFuncMomentDG,
   DiscontGenPoisson = DiscontGenPoisson,
   DiscontPoisson = DiscontPoisson,
   DistFuncMomentCalc = DistFuncMomentCalc,
   EmissionSpectrumBc = EmissionSpectrumBc,
   EvalOnNodes = EvalOnNodes,
   EvaluateBronoldFehskeBC = EvaluateBronoldFehskeBC,
   FemGyroaverage = FemGyroaverage,
   FemParPoisson = FemParPoisson,
   FemParproj = FemParproj,
   FemPerpPoisson = FemPerpPoisson,
   FemPoisson = FemPoisson,
   FemPoissonPerp = FemPoissonPerp,
   FiveMomentSrc = FiveMomentSrc,
   FluidDG = FluidDG,
   GkFemPoisson = GkFemPoisson,
   GkLBO = GkLBO,
   GkSheathBc = GkSheathBc,
   GyrokineticDG = GyrokineticDG,
   HyperDisCont = HyperDisCont,
   HyperDisContCellBased = HyperDisContCellBased,
   Ionization = Ionization,
   IntegratedDGMoment = IntegratedDGMoment,
   Ionization = Ionization,
   LagrangeFix = LagrangeFix,
   MGpoisson = MGpoisson,
   MappedPoisson = MappedPoisson,
   MaxwellianOnBasis = MaxwellianOnBasis,
   PositivityCheck = PositivityCheck,
   PositivityRescale = PositivityRescale,
   ProjectFluxFunc = ProjectFluxFunc,
   ProjectOnBasis = ProjectOnBasis,
   SelfPrimMoments = SelfPrimMoments,
   SeparateVectorComponents = SeparateVectorComponents,
   SolidSurface = SolidSurface,
   SqrtOnBasis = SqrtOnBasis,
   SpitzerCollisionality = SpitzerCollisionality,
   StairSteppedBc = StairSteppedBc,
   TenMomentRelax = TenMomentRelax,
   TenMomentSrc = TenMomentSrc,
   TwistShiftBC = TwistShiftBC,
   WavePropagation = WavePropagation,
   VlasovDG = VlasovDG,
   VlasovLBO = VlasovLBO,
   AxisymmetricFiveMomentSrc = AxisymmetricFiveMomentSrc,
   AxisymmetricPhMaxwellSrc = AxisymmetricPhMaxwellSrc,
   FiveMomentFrictionSrc = FiveMomentFrictionSrc,
   BraginskiiHeatConduction = BraginskiiHeatConduction,
   BraginskiiViscosityDiffusion = BraginskiiViscosityDiffusion,
   AnisotropicDiffusion = AnisotropicDiffusion,
}
