* </td></tr>
*
* <tr valign="top">
+ * <td>step-58</td>
+ * <td> The nonlinear Schrödinger equation.
+ * </td></tr>
+ *
+ * <tr valign="top">
* <td>step-59</td>
* <td> Solving a Poisson problem discretized with an interior penalty DG
* method and a multilevel preconditioner in a matrix-free fashion using
*
* </table>
*
+ *
* <a name="topic"></a>
* <h3>Tutorial programs grouped by topics</h3>
*
* </tr>
*
* <tr valign="top">
+ * <td> Operator splitting
+ * </td>
+ * <td>step-21, step-31, step-32, step-58</td>
+ * </tr>
+ *
+ * <tr valign="top">
* <td> Boundary element methods, curved manifolds
* </td>
* <td>
* step-44,
* step-47,
* step-46,
+ * step-58,
* step-62
* </td>
* </tr>
* </tr>
*
* </table>
+ *
+ *
* <h4><b>Other equations</b></h4>
* <table align="center" width="90%">
*
* step-23,
* step-24,
* step-25,
- * step-48
+ * step-48,
+ * step-58
* </td>
* </tr>
*
* </tr>
*
* <tr valign="top">
+ * <td> The nonlinear Schrödinger equation
+ * </td>
+ * <td>step-58</td>
+ * </tr>
+ *
+ * <tr valign="top">
* <td> Coupling different equations in different parts of the domain
* </td>
* <td>step-46</td>
* </tr>
*
* </table>
+ *
+ *
+ *
* <h4><b>%Vector problems</b></h4>
* <table align="center" width="90%">
*
* </table>
*
*
+ *
* <h4><b>Time dependent problems</b></h4>
* <table align="center" width="90%">
*
* <td>step-23,
* step-24,
* step-25,
- * step-48
+ * step-48,
+ * step-58
* </td>
* </tr>
*
* </tr>
*
* <tr valign="top">
+ * <td> The nonlinear Schrödinger equation
+ * </td>
+ * <td>step-58</td>
+ * </tr>
+ *
+ * <tr valign="top">
* <td> Time dependent neutron diffusion equation
* </td>
* <td>step-52</td>
--- /dev/null
+##
+# CMake script for the step-58 tutorial program:
+##
+
+# Set the name of the project and target:
+SET(TARGET "step-58")
+
+# Declare all source files the target consists of. Here, this is only
+# the one step-X.cc file, but as you expand your project you may wish
+# to add other source files as well. If your project becomes much larger,
+# you may want to either replace the following statement by something like
+# FILE(GLOB_RECURSE TARGET_SRC "source/*.cc")
+# FILE(GLOB_RECURSE TARGET_INC "include/*.h")
+# SET(TARGET_SRC ${TARGET_SRC} ${TARGET_INC})
+# or switch altogether to the large project CMakeLists.txt file discussed
+# in the "CMake in user projects" page accessible from the "User info"
+# page of the documentation.
+SET(TARGET_SRC
+ ${TARGET}.cc
+ )
+
+# Usually, you will not need to modify anything beyond this point...
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
+
+FIND_PACKAGE(deal.II 9.2.0 QUIET
+ HINTS ${deal.II_DIR} ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR}
+ )
+IF(NOT ${deal.II_FOUND})
+ MESSAGE(FATAL_ERROR "\n"
+ "*** Could not locate a (sufficiently recent) version of deal.II. ***\n\n"
+ "You may want to either pass a flag -DDEAL_II_DIR=/path/to/deal.II to cmake\n"
+ "or set an environment variable \"DEAL_II_DIR\" that contains this path."
+ )
+ENDIF()
+
+#
+# Are all dependencies fulfilled?
+#
+IF(NOT (DEAL_II_WITH_UMFPACK AND DEAL_II_WITH_COMPLEX_VALUES)) # keep in one line
+ MESSAGE(FATAL_ERROR "
+Error! This tutorial requires a deal.II library that was configured with the following options:
+ DEAL_II_WITH_UMFPACK = ON
+ DEAL_II_WITH_COMPLEX_VALUES = ON
+However, the deal.II library found at ${DEAL_II_PATH} was configured with these options
+ DEAL_II_WITH_UMFPACK = ${DEAL_II_WITH_UMFPACK}
+ DEAL_II_WITH_COMPLEX_VALUES = ${DEAL_II_WITH_COMPLEX_VALUES}
+which conflict with the requirements."
+ )
+ENDIF()
+
+
+DEAL_II_INITIALIZE_CACHED_VARIABLES()
+PROJECT(${TARGET})
+DEAL_II_INVOKE_AUTOPILOT()