From 747b6c0233bd87de455a631560248d4d0d102bde Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Thu, 13 Jun 2019 10:44:59 +0200 Subject: [PATCH] step-67: an explicit time integrator with matrix-free implementation --- examples/step-67/CMakeLists.txt | 39 ++++++++++++++++++++++++++++++++ examples/step-67/doc/builds-on | 1 + examples/step-67/doc/intro.dox | 14 ++++++++++++ examples/step-67/doc/kind | 1 + examples/step-67/doc/results.dox | 4 ++++ examples/step-67/doc/tooltip | 1 + examples/step-67/step-67.cc | 35 ++++++++++++++++++++++++++++ 7 files changed, 95 insertions(+) create mode 100644 examples/step-67/CMakeLists.txt create mode 100644 examples/step-67/doc/builds-on create mode 100644 examples/step-67/doc/intro.dox create mode 100644 examples/step-67/doc/kind create mode 100644 examples/step-67/doc/results.dox create mode 100644 examples/step-67/doc/tooltip create mode 100644 examples/step-67/step-67.cc diff --git a/examples/step-67/CMakeLists.txt b/examples/step-67/CMakeLists.txt new file mode 100644 index 0000000000..f332297796 --- /dev/null +++ b/examples/step-67/CMakeLists.txt @@ -0,0 +1,39 @@ +## +# CMake script for the step-67 tutorial program: +## + +# Set the name of the project and target: +SET(TARGET "step-67") + +# 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() + +DEAL_II_INITIALIZE_CACHED_VARIABLES() +PROJECT(${TARGET}) +DEAL_II_INVOKE_AUTOPILOT() diff --git a/examples/step-67/doc/builds-on b/examples/step-67/doc/builds-on new file mode 100644 index 0000000000..8943c29acb --- /dev/null +++ b/examples/step-67/doc/builds-on @@ -0,0 +1 @@ +step-48, step-59 diff --git a/examples/step-67/doc/intro.dox b/examples/step-67/doc/intro.dox new file mode 100644 index 0000000000..42a4b57a1a --- /dev/null +++ b/examples/step-67/doc/intro.dox @@ -0,0 +1,14 @@ + +
+ + +This program was contributed by Martin Kronbichler. + + + +

Introduction

+ +This tutorial program implements an explicit time integrator with the +matrix-free framework using high-order discontinuous Galerkin methods +for the Euler equations. + diff --git a/examples/step-67/doc/kind b/examples/step-67/doc/kind new file mode 100644 index 0000000000..e62f4e7222 --- /dev/null +++ b/examples/step-67/doc/kind @@ -0,0 +1 @@ +fluids diff --git a/examples/step-67/doc/results.dox b/examples/step-67/doc/results.dox new file mode 100644 index 0000000000..207317d6ce --- /dev/null +++ b/examples/step-67/doc/results.dox @@ -0,0 +1,4 @@ +

Results

+ +Running the program ... + diff --git a/examples/step-67/doc/tooltip b/examples/step-67/doc/tooltip new file mode 100644 index 0000000000..e146ceff03 --- /dev/null +++ b/examples/step-67/doc/tooltip @@ -0,0 +1 @@ +An explicit time integrator for the Euler equations with matrix-free implementation. diff --git a/examples/step-67/step-67.cc b/examples/step-67/step-67.cc new file mode 100644 index 0000000000..d3e5722851 --- /dev/null +++ b/examples/step-67/step-67.cc @@ -0,0 +1,35 @@ +/* --------------------------------------------------------------------- + * + * Copyright (C) 2019 by the deal.II authors + * + * This file is part of the deal.II library. + * + * The deal.II library is free software; you can use it, redistribute + * it, and/or modify it under the terms of the GNU Lesser General + * Public License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * The full text of the license can be found in the file LICENSE.md at + * the top level directory of deal.II. + * + * --------------------------------------------------------------------- + + */ + +// @sect3{Include files} + +#include + + +namespace step67 +{ + using namespace dealii; +} + +// @sect3{The main function} + +// Finally, the main function. There isn't much to do here, only to call the +// two subfunctions, which produce the two grids. +int main(int argc, char **argv) +{ + dealii::Utilities::MPI::MPI_InitFinalize mpi_init_finalize(argc, argv, 1); +} -- 2.39.5