TRIBITS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING 
                            ${CMAKE_CURRENT_SOURCE_DIR})
  
INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING 
                    ${CMAKE_CURRENT_SOURCE_DIR}/evaluators)

SET(example_fem_nonlinear_SOURCES
    Traits.hpp
    FactoryTraits.hpp
    Element_Linear2D.hpp
    Element_Linear2D.cpp
    ExplicitTemplateInstantiation.hpp
    Dimension.hpp
    Dimension.cpp
    Workset.hpp
    MeshBuilder.hpp
    MeshBuilder.cpp
    LinearObjectFactory.hpp
    LinearObjectFactory.cpp
    evaluators/Evaluator_Constant.hpp
    evaluators/Evaluator_Constant_Def.hpp
    evaluators/Evaluator_Constant.cpp
    evaluators/Evaluator_Equations.hpp
    evaluators/Evaluator_Equations_Def.hpp
    evaluators/Evaluator_Equations.cpp
    evaluators/Evaluator_FEInterpolation.hpp
    evaluators/Evaluator_FEInterpolation_Def.hpp
    evaluators/Evaluator_FEInterpolation.cpp
    evaluators/Evaluator_GatherSolution.hpp
    evaluators/Evaluator_GatherSolution_Def.hpp
    evaluators/Evaluator_GatherSolution.cpp
    evaluators/Evaluator_ScatterResidual.hpp
    evaluators/Evaluator_ScatterResidual_Def.hpp
    evaluators/Evaluator_ScatterResidual.cpp
    )
  
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  example_fem_nonlinear
  SOURCES Example_FEM_Nonlinear.cpp ${example_fem_nonlinear_SOURCES}
  COMM serial mpi
  PASS_REGULAR_EXPRESSION "Run has completed successfully!"
  )

TRIBITS_ADD_EXECUTABLE_AND_TEST(
  example_fem_nonlinear_Jv_timings
  SOURCES Example_FEM_Nonlinear_Jv_Timings.cpp 
          ${example_fem_nonlinear_SOURCES}
  COMM serial mpi
  PASS_REGULAR_EXPRESSION "Run has completed successfully!"
  )

TRIBITS_INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING 
                            ${CMAKE_CURRENT_SOURCE_DIR}/auxiliary_tests)
  
SET(example_element_linear_2D_SOURCES
    auxiliary_tests/Example_Element_Linear_2D.cpp
    Dimension.hpp
    Dimension.cpp
    Element_Linear2D.hpp
    Element_Linear2D.cpp
#    MeshBuilder.hpp
#    MeshBuilder.cpp
    )
  
TRIBITS_ADD_EXECUTABLE_AND_TEST(
  example_element_linear_2D
  SOURCES ${example_element_linear_2D_SOURCES}
  COMM serial mpi
  NUM_MPI_PROCS 1
  PASS_REGULAR_EXPRESSION "Run has completed successfully!"
  )
