ADD_NEKTAR_EXECUTABLE(FoundationDemo
    COMPONENT demos DEPENDS LibUtilities SOURCES FoundationDemo.cpp)
ADD_NEKTAR_EXECUTABLE(NodalDemo
    COMPONENT demos DEPENDS LibUtilities SOURCES NodalDemo.cpp)
ADD_NEKTAR_EXECUTABLE(TimeIntegrationDemo
    COMPONENT demos DEPENDS LibUtilities SOURCES TimeIntegrationDemo.cpp)
ADD_NEKTAR_EXECUTABLE(ErrorStream
    COMPONENT demos DEPENDS LibUtilities SOURCES ErrorStream.cpp)
ADD_NEKTAR_EXECUTABLE(LinSysIterDemo
    COMPONENT demos DEPENDS LibUtilities SOURCES LinSysIterDemo.cpp)
ADD_NEKTAR_EXECUTABLE(NonlinSysIterDemo
    COMPONENT demos DEPENDS LibUtilities SOURCES NonlinSysIterDemo.cpp)

IF(NEKTAR_USE_MPI)
    ADD_NEKTAR_EXECUTABLE(FieldIOBenchmarker
        COMPONENT demos DEPENDS LibUtilities SOURCES FieldIOBenchmarker.cpp)
    ADD_NEKTAR_EXECUTABLE(MPIInit
        COMPONENT demos DEPENDS LibUtilities SOURCES MPIInit.cpp)
ENDIF()

ADD_NEKTAR_TEST(NodalDemo_Tri_Deriv_P8)
ADD_NEKTAR_TEST(NodalDemo_Tri_Integral_P6)
ADD_NEKTAR_TEST(NodalDemo_Tri_Interp_P7)
ADD_NEKTAR_TEST(NodalDemo_Prism_Deriv_P8)
ADD_NEKTAR_TEST(NodalDemo_Prism_Integral_P6)
ADD_NEKTAR_TEST(NodalDemo_Prism_Interp_P7)
ADD_NEKTAR_TEST(NodalDemo_Tet_Deriv_P8)
ADD_NEKTAR_TEST(NodalDemo_Tet_Integral_P6)
ADD_NEKTAR_TEST(NodalDemo_Tet_Interp_P7)

ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsBashforthOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsBashforthOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsBashforthOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsBashforthOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsMoultonOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsMoultonOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsMoultonOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoAdamsMoultonOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoBDFImplicitOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoBDFImplicitOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoBDFImplicitOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoBDFImplicitOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoBackwardEuler)
ADD_NEKTAR_TEST(TimeIntegrationDemoCNAB)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder3_ES5)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder4_ES6)
ADD_NEKTAR_TEST(TimeIntegrationDemoForwardEuler)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitOrder5)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitMidpointOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitMidpointOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMExplicitMidpointOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMIMEXOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMIMEXOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMIMEXOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMIMEXOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMIMEXOrder5)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitOrder5)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitMidpointOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitMidpointOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoGEMImplicitMidpointOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder1_1_1)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder1_2_1)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder1_2_2)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder2_2_2)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder2_3_2)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder2_3_3)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder3_4_3)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXdirkOrder4_4_3)
ADD_NEKTAR_TEST(TimeIntegrationDemoMCNAB)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitEquidistantOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitEquidistantOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitEquidistantOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitEquidistantOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitEquidistantOrder8)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussGaussLegendreOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussGaussLegendreOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussGaussLegendreOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussGaussLegendreOrder8)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussLobattoLegendreOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussLobattoLegendreOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussLobattoLegendreOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCExplicitGaussLobattoLegendreOrder8)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussRadauLegendreOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussRadauLegendreOrder5)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussRadauLegendreOrder7)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussGaussLegendreOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussGaussLegendreOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussGaussLegendreOrder6)
ADD_NEKTAR_TEST(TimeIntegrationDemoSDCImplicitGaussGaussLegendreOrder8)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaOrder4)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaOrder5)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaSSPOrder1)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaSSPOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoRungeKuttaSSPOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoLawsonEulerExponential)
ADD_NEKTAR_TEST(TimeIntegrationDemoNorsettEulerExponential)
ADD_NEKTAR_TEST(TimeIntegrationDemoFractionalInTime)
ADD_NEKTAR_TEST(ErrorStream)
ADD_NEKTAR_TEST(LinSysIterDemo_LinearSys_Jacobi)
ADD_NEKTAR_TEST(LinSysIterDemo_LinearSys_GMRES)
ADD_NEKTAR_TEST(NonlinSysIterDemo_LinearSys_Newton)

IF(NEKTAR_USE_MPI)
    ADD_NEKTAR_TEST(MPIInit)
ENDIF()
