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(TimeIntegrationDemoDIRKOrder2)
ADD_NEKTAR_TEST(TimeIntegrationDemoDIRKOrder3)
ADD_NEKTAR_TEST(TimeIntegrationDemoForwardEuler)
ADD_NEKTAR_TEST(TimeIntegrationDemoIMEXGear)
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(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()
