diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e8454b208571f52f712286a482c66bc1b4558182..7da8041f580388de467d5bf4b2657e87fa9b25a2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,6 +19,8 @@ set(SOURCE_FILES file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/sand-wedge-data") dune_symlink_to_source_files("sand-wedge-data/boundaryconditions.py") dune_symlink_to_source_files("sand-wedge-data/parset.cfg") +dune_symlink_to_source_files("sand-wedge-data/parset-2D.cfg") +dune_symlink_to_source_files("sand-wedge-data/parset-3D.cfg") find_package(Boost REQUIRED system filesystem serialization) diff --git a/src/sand-wedge-data/parset-2D.cfg b/src/sand-wedge-data/parset-2D.cfg new file mode 100644 index 0000000000000000000000000000000000000000..a61cfba2e7668aeba078d447f55ac2edf83f28a8 --- /dev/null +++ b/src/sand-wedge-data/parset-2D.cfg @@ -0,0 +1,21 @@ +# -*- mode:conf -*- +[boundary.friction] +smallestDiameter= 2e-3 # [m] + +[timeSteps] +refinementTolerance = 1e-5 + +[u0.solver] +tolerance = 1e-8 + +[a0.solver] +tolerance = 1e-8 + +[v.solver] +tolerance = 1e-8 + +[v.fpi] +tolerance = 1e-5 + +[solver.tnnmg.linear] +tolerance = 1e-10 diff --git a/src/sand-wedge-data/parset-3D.cfg b/src/sand-wedge-data/parset-3D.cfg new file mode 100644 index 0000000000000000000000000000000000000000..3495d53fd360b8167acea58f3632cdeefc124f83 --- /dev/null +++ b/src/sand-wedge-data/parset-3D.cfg @@ -0,0 +1,21 @@ +# -*- mode:conf -*- +[boundary.friction] +smallestDiameter= 2e-2 # [m] + +[timeSteps] +refinementTolerance = 1e-5 + +[u0.solver] +tolerance = 1e-6 + +[a0.solver] +tolerance = 1e-6 + +[v.solver] +tolerance = 1e-6 + +[v.fpi] +tolerance = 1e-5 + +[solver.tnnmg.linear] +tolerance = 1e-10 diff --git a/src/sand-wedge-data/parset.cfg b/src/sand-wedge-data/parset.cfg index a0841f421a3dcffab116f62bdafc88a1ad58b862..21c7d5fcfcc1763c93e1d33512183e0c61b6d9c4 100644 --- a/src/sand-wedge-data/parset.cfg +++ b/src/sand-wedge-data/parset.cfg @@ -21,7 +21,6 @@ shearViscosity = 1e4 # [Pas] bulkViscosity = 1e4 # [Pas] [boundary.friction] -smallestDiameter= 2e-3 # [m] C = 10 # [Pa] mu0 = 0.7 # [ ] V0 = 5e-5 # [m/s] @@ -42,32 +41,26 @@ first = 0 spacing = 20 [timeSteps] -refinementTolerance = 1e-5 scheme = newmark [u0.solver] -tolerance = 1e-8 maximumIterations = 100000 verbosity = quiet [a0.solver] -tolerance = 1e-8 maximumIterations = 100000 verbosity = quiet [v.solver] -tolerance = 1e-8 maximumIterations = 100000 verbosity = quiet [v.fpi] -tolerance = 1e-5 maximumIterations = 10000 lambda = 0.5 [solver.tnnmg.linear] maxiumumIterations = 100000 -tolerance = 1e-10 pre = 3 cycle = 1 # 1 = V, 2 = W, etc. post = 3 diff --git a/src/sand-wedge.cc b/src/sand-wedge.cc index 24c68e8686fe4abef194748abf36121fdf80e709..c717b88748bdf5b961677279d53b7e5b1eda762e 100644 --- a/src/sand-wedge.cc +++ b/src/sand-wedge.cc @@ -92,6 +92,10 @@ Dune::ParameterTree getParameters(int argc, char *argv[], fs::path sharedParsetPath(dataDirectory / fs::path(sharedParsetName)); Dune::ParameterTreeParser::readINITree(sharedParsetPath.string(), parset); + std::string individualParsetName(str(boost::format("parset-%dD.cfg") % dims)); + fs::path individualParsetPath(dataDirectory / fs::path(individualParsetName)); + Dune::ParameterTreeParser::readINITree(individualParsetPath.string(), parset); + Dune::ParameterTreeParser::readOptions(argc, argv, parset); return parset;