diff --git a/Applications/ApplicationsLib/TestDefinition.cpp b/Applications/ApplicationsLib/TestDefinition.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e51560b38b7313c585dfc13ef35c884e745cb96c --- /dev/null +++ b/Applications/ApplicationsLib/TestDefinition.cpp @@ -0,0 +1,252 @@ +/** + * \file + * + * \copyright + * Copyright (c) 2012-2018, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#include "TestDefinition.h" + +#include <cstdlib> + +#include "BaseLib/ConfigTree.h" +#include "BaseLib/Error.h" +#include "BaseLib/FileTools.h" +#ifdef USE_PETSC +#include "MeshLib/IO/VtkIO/VtuInterface.h" // For petsc file name conversion. +#include <petsc.h> +#endif + +namespace +{ +/// Test if the given string is convertible to a valid double value, not a NaN. +bool isConvertibleToDouble(std::string const& s) +{ + std::size_t pos = 0; + double value; + try + { + value = std::stod(s, &pos); + } + catch (...) + { + OGS_FATAL("The given string '%s' is not convertible to double.", + s.c_str()); + } + if (pos != s.size()) + { + OGS_FATAL( + "Only %d characters were used for double conversion of string '%s'", + pos, s.c_str()); + } + + if (std::isnan(value)) + { + OGS_FATAL("The given string '%s' results in a NaN value.", s.c_str()); + } + return true; +} + +/// Wraps a string into double ticks. +std::string safeString(std::string s) +{ + return "\"" + s + "\""; +} + +/// Tries to find a vtkdiff executable by testing 'path/vtkdiff --version' calls +/// for various paths. +std::string findVtkdiff() +{ + // Try to read the VTKDIFF_EXE environment variable. + if (const char* vtkdiff_exe_environment_variable = + std::getenv("VTKDIFF_EXE")) + { + std::string const vtkdiff_exe{vtkdiff_exe_environment_variable}; + DBUG("VTKDIFF_EXE set to %s.", vtkdiff_exe.c_str()); + + // + // Sanity checks. + // + { // The base name is 'vtkdiff' + auto const& base_name = + BaseLib::extractBaseNameWithoutExtension(vtkdiff_exe); + if (base_name != "vtkdiff") + { + OGS_FATAL( + "The VTKDIFF_EXE environment variable does not point to " + "'vtkdiff'. VTKDIFF_EXE='%s'", + vtkdiff_exe.c_str()); + } + } + { // vtkdiff must exist. + if (!BaseLib::IsFileExisting(vtkdiff_exe)) + { + OGS_FATAL( + "The VTKDIFF_EXE points to a non-existing file. " + "VTKDIFF_EXE='%s'", + vtkdiff_exe.c_str()); + } + } + + // + // Test the actual call. + // + int const return_value = + // TODO (naumov) replace system call with output consuming call + // (fork + execl seems to be more safe), and extract the vtkdiff + // call to common function. Also properly escape all strings in + // command lines. + // Reference for POSIX and Windows: + // https://wiki.sei.cmu.edu/confluence/pages/viewpage.action?pageId=87152177 + // Take care when using fork, which might copy resources. + std::system((vtkdiff_exe + " --version").c_str()); + if (return_value == 0) + { + return vtkdiff_exe; + } + WARN( + "Calling %s from the VTKDIFF_EXE environment variable didn't work " + "as expected. Return value was %d.", + vtkdiff_exe.c_str(), return_value); + } + + std::string const vtkdiff_exe{"vtkdiff"}; + std::vector<std::string> const paths = {"", "bin"}; + auto const path = find_if( + begin(paths), end(paths), [&vtkdiff_exe](std::string const& path) { + int const return_value = + // TODO (naumov) replace system call with output consuming call + // as in an above todo comment. + std::system( + (BaseLib::joinPaths(path, vtkdiff_exe) + " --version") + .c_str()); + return return_value == 0; + }); + if (path == end(paths)) + { + OGS_FATAL("vtkdiff not found."); + } + return BaseLib::joinPaths(*path, vtkdiff_exe); +} + +} // namespace + +namespace ApplicationsLib +{ +TestDefinition::TestDefinition(BaseLib::ConfigTree const& config_tree, + std::string const& reference_path, + std::string const& output_directory) +{ + if (reference_path.empty()) + { + OGS_FATAL( + "Reference path containing expected result files can not be " + "empty."); + } + + std::string const vtkdiff = findVtkdiff(); + + // Construct command lines for each entry. + //! \ogs_file_param{prj__test_definition__vtkdiff} + auto const& vtkdiff_configs = config_tree.getConfigSubtreeList("vtkdiff"); + _command_lines.reserve(vtkdiff_configs.size()); + for (auto const& vtkdiff_config : vtkdiff_configs) + { + std::string const& field_name = + //! \ogs_file_param{prj__test_definition__vtkdiff__field} + vtkdiff_config.getConfigParameter<std::string>("field"); + DBUG("vtkdiff will compare field '%s'.", field_name.c_str()); + +#ifdef USE_PETSC + int rank; + MPI_Comm_rank(PETSC_COMM_WORLD, &rank); + int mpi_size; + MPI_Comm_size(PETSC_COMM_WORLD, &mpi_size); + std::string const& filename = + MeshLib::IO::getVtuFileNameForPetscOutputWithoutExtension( + //! \ogs_file_param{prj__test_definition__vtkdiff__file} + vtkdiff_config.getConfigParameter<std::string>("file")) + + "_" + std::to_string(rank) + ".vtu"; +#else + std::string const& filename = + //! \ogs_file_param{prj__test_definition__vtkdiff__file} + vtkdiff_config.getConfigParameter<std::string>("file"); +#endif // OGS_USE_PETSC + std::string const& output_filename = + BaseLib::joinPaths(output_directory, filename); + _output_files.push_back(output_filename); + // TODO (naumov) expand filename relative to ref path for globbing. + std::string const& reference_filename = + BaseLib::joinPaths(reference_path, filename); + + auto const absolute_tolerance = + //! \ogs_file_param{prj__test_definition__vtkdiff__absolute_tolerance} + vtkdiff_config.getConfigParameter<std::string>("absolute_tolerance", + ""); + if (!absolute_tolerance.empty() && + !isConvertibleToDouble(absolute_tolerance)) + { + OGS_FATAL( + "The absolute tolerance value '%s' is not convertible to " + "double.", + absolute_tolerance.c_str()); + } + std::string const absolute_tolerance_parameter = + "--abs " + absolute_tolerance; + + auto const relative_tolerance = + //! \ogs_file_param{prj__test_definition__vtkdiff__relative_tolerance} + vtkdiff_config.getConfigParameter<std::string>("relative_tolerance", + ""); + if (!relative_tolerance.empty() && + !isConvertibleToDouble(relative_tolerance)) + { + OGS_FATAL( + "The relative tolerance value '%s' is not convertible to " + "double.", + relative_tolerance.c_str()); + } + std::string const relative_tolerance_parameter = + "--rel " + relative_tolerance; + + // + // Construct command line. + // + std::string command_line = + vtkdiff + " -a " + safeString(field_name) + " -b " + + safeString(field_name) + " " + safeString(reference_filename) + + " " + safeString(output_filename) + " " + + absolute_tolerance_parameter + " " + relative_tolerance_parameter; + INFO("Will run '%s'", command_line.c_str()); + _command_lines.emplace_back(std::move(command_line)); + } +} + +bool TestDefinition::runTests() const +{ + std::vector<int> return_values; + transform(begin(_command_lines), end(_command_lines), + back_inserter(return_values), + [](std::string const& command_line) { + int const return_value = std::system(command_line.c_str()); + if (return_value != 0) + { + WARN("Return value %d was returned by '%s'.", + return_value, command_line.c_str()); + } + return return_value; + }); + return !return_values.empty() && + all_of(begin(return_values), end(return_values), + [](int const& return_value) { return return_value == 0; }); +} + +std::vector<std::string> const& TestDefinition::getOutputFiles() const +{ + return _output_files; +} +} // namespace ApplicationsLib diff --git a/Applications/ApplicationsLib/TestDefinition.h b/Applications/ApplicationsLib/TestDefinition.h new file mode 100644 index 0000000000000000000000000000000000000000..4696280be50f1abeda3710067dbdfca322ddc178 --- /dev/null +++ b/Applications/ApplicationsLib/TestDefinition.h @@ -0,0 +1,42 @@ +/** + * \file + * + * \copyright + * Copyright (c) 2012-2018, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <memory> +#include <string> +#include <vector> + +namespace BaseLib +{ +class ConfigTree; +} + +namespace ApplicationsLib +{ +class TestDefinition final +{ +public: + /// Constructs test definition from the config and reference path + /// essentially constructing the command lines to be run on run() function + /// call. + TestDefinition(BaseLib::ConfigTree const& config_tree, + std::string const& reference_path, + std::string const& output_directory); + + bool runTests() const; + std::vector<std::string> const& getOutputFiles() const; + +private: + std::vector<std::string> _command_lines; + std::vector<std::string> _output_files; +}; +} // namespace ApplicationsLib diff --git a/Applications/CLI/ogs.cpp b/Applications/CLI/ogs.cpp index 777b455e0282c8c66b09da8c0e0265c5c4e88c3a..0d3650f5e59aae9a62b6ff46b3d1af0538d88723 100644 --- a/Applications/CLI/ogs.cpp +++ b/Applications/CLI/ogs.cpp @@ -37,6 +37,7 @@ #include "Applications/ApplicationsLib/LinearSolverLibrarySetup.h" #include "Applications/ApplicationsLib/LogogSetup.h" #include "Applications/ApplicationsLib/ProjectData.h" +#include "Applications/ApplicationsLib/TestDefinition.h" #include "Applications/InSituLib/Adaptor.h" #include "ProcessLib/UncoupledProcessesTimeLoop.h" @@ -63,6 +64,13 @@ int main(int argc, char* argv[]) ' ', BaseLib::BuildInfo::git_describe); + TCLAP::ValueArg<std::string> reference_path_arg( + "r", "reference", + "Run output result comparison after successful simulation comparing to " + "all files in the given path.", + false, "", "PATH"); + cmd.add(reference_path_arg); + TCLAP::UnlabeledValueArg<std::string> project_arg( "project-file", "Path to the ogs6 project file.", @@ -141,6 +149,7 @@ int main(int argc, char* argv[]) INFO("OGS started on %s.", time_str.c_str()); } + std::unique_ptr<ApplicationsLib::TestDefinition> test_definition; auto ogs_status = EXIT_SUCCESS; try @@ -173,6 +182,22 @@ int main(int argc, char* argv[]) BaseLib::getProjectDirectory(), outdir_arg.getValue()); + if (!reference_path_arg.isSet()) + { // Ignore the test_definition section. + project_config->ignoreConfigParameter("test_definition"); + } + else + { + test_definition = + std::make_unique<ApplicationsLib::TestDefinition>( + //! \ogs_file_param{prj__test_definition} + project_config->getConfigSubtree("test_definition"), + reference_path_arg.getValue(), + outdir_arg.getValue()); + + INFO("Cleanup possible output files before running ogs."); + BaseLib::removeFiles(test_definition->getOutputFiles()); + } #ifdef USE_INSITU auto isInsituConfigured = false; //! \ogs_file_param{prj__insitu} @@ -236,5 +261,27 @@ int main(int argc, char* argv[]) INFO("OGS terminated on %s.", time_str.c_str()); } - return ogs_status; + if (ogs_status == EXIT_FAILURE) + { + ERR("OGS terminated with error."); + return EXIT_FAILURE; + } + + if (test_definition == nullptr) + { + // There are no tests, so just exit; + return ogs_status; + } + + INFO(""); + INFO("##########################################"); + INFO("# Running tests #"); + INFO("##########################################"); + INFO(""); + if (!test_definition->runTests()) + { + ERR("One of the tests failed."); + return EXIT_FAILURE; + } + return EXIT_SUCCESS; } diff --git a/BaseLib/ConfigTree-impl.h b/BaseLib/ConfigTree-impl.h index ed4cc075f75175de0e86feea8fdaa5f153bb89d7..0d233614521ad0884073a44ce1f4394b60256b60 100644 --- a/BaseLib/ConfigTree-impl.h +++ b/BaseLib/ConfigTree-impl.h @@ -26,6 +26,8 @@ public: Iterator begin() const { return _begin; } Iterator end() const { return _end; } + std::size_t size() const { return std::distance(_begin, _end); } + private: Iterator _begin; Iterator _end; diff --git a/BaseLib/FileTools.cpp b/BaseLib/FileTools.cpp index b1c1a9c3e0e8d5a8ffc7070b7599e0a76e80aa70..7ad69f6b5d884882f198f0f09b9e0f9448743af4 100644 --- a/BaseLib/FileTools.cpp +++ b/BaseLib/FileTools.cpp @@ -204,4 +204,26 @@ void setProjectDirectory(std::string const& dir) project_directory_is_set = true; } +void removeFiles(std::vector<std::string> const& files) +{ + for (auto const& file : files) + { + int const success = std::remove(file.c_str()); + if (success == 0) + { + DBUG("Removed '%s'", file.c_str()); + } + else + { + if (errno == ENOENT) // File does not exists + { + continue; + } + ERR("Removing file '%s' failed with error %d.", file.c_str(), + errno); + std::perror("Error: "); + OGS_FATAL("Unrecoverable error happened while removing a file."); + } + } +} } // end namespace BaseLib diff --git a/BaseLib/FileTools.h b/BaseLib/FileTools.h index 7ba0820d6fbaf21b2ef25e49f84063c5e8f6751e..6fa60a54e6d283c4e8852d25ca1dfeb4161c0652 100644 --- a/BaseLib/FileTools.h +++ b/BaseLib/FileTools.h @@ -167,4 +167,7 @@ std::string const& getProjectDirectory(); /// Sets the project directory. void setProjectDirectory(std::string const& dir); -} // end namespace BaseLib +/// Remove files. If a file does not exist nothing will happen, other errors +/// lead to OGS_FATAL call. +void removeFiles(std::vector<std::string> const& files); +} // end namespace BaseLib diff --git a/Documentation/ProjectFile/prj/test_definition/i_test_definition.md b/Documentation/ProjectFile/prj/test_definition/i_test_definition.md new file mode 100644 index 0000000000000000000000000000000000000000..17e7af123872120e4b1e4e84c8fff218bb383385 --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/i_test_definition.md @@ -0,0 +1 @@ +Test definitions for post-simulation comparisons. diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md new file mode 100644 index 0000000000000000000000000000000000000000..c61e662d54e152bba95e40187be90ba5cdf39c68 --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/i_vtkdiff.md @@ -0,0 +1,3 @@ +Test definition for vtkdiff comparison tool. + +See https://github.com/ufz/vtkdiff diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md new file mode 100644 index 0000000000000000000000000000000000000000..576f7d14590b6e5b41590689ab4e8047ae5eba14 --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_absolute_tolerance.md @@ -0,0 +1 @@ +Absolute tolerance \f$\epsilon\f$ for comparison \f$|a - b| < \epsilon\f$. diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md new file mode 100644 index 0000000000000000000000000000000000000000..ef446458e2b1022675010c1d034a5d4c4f6b325e --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_field.md @@ -0,0 +1 @@ +Name of the point data or the cell data field to be compared. diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md new file mode 100644 index 0000000000000000000000000000000000000000..266d913ccbe334941c4c8059026c3fc2399a3dc5 --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_file.md @@ -0,0 +1,3 @@ +Full name of the output file including the `.vtu` ending. For parallel +simulations specify the same name as for the serial case; conversion of the file +names according to the number of ranks happens automatically. diff --git a/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md new file mode 100644 index 0000000000000000000000000000000000000000..c59e7d5948226fcf1b552926da3527b494748b20 --- /dev/null +++ b/Documentation/ProjectFile/prj/test_definition/vtkdiff/t_relative_tolerance.md @@ -0,0 +1,4 @@ +Relative tolerance \f$\delta\f$ for comparison \f${|a - b| \over {\textrm +min}(|a|, |b|)} < \delta\f$. +If the absolute difference \f$|a - b|\f$ is zero, zero is returned. +If \f$a\f$ or \f$b\f$ are zero, \f$+\infty\f$ is returned. diff --git a/ProcessLib/SmallDeformation/Tests.cmake b/ProcessLib/SmallDeformation/Tests.cmake index 2e3ab2a5ed76ba1970208313aeac60f61e7aabf5..e6a44203ea5b67a169899eb930ee66f780f21ed1 100644 --- a/ProcessLib/SmallDeformation/Tests.cmake +++ b/ProcessLib/SmallDeformation/Tests.cmake @@ -1,350 +1,37 @@ -# Mechanics; Small deformations, linear (SDL) -AddTest( - NAME Mechanics_SDL_square_1e0_displacementBC - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS square_1e0.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - square_1e0_expected_pcs_0_ts_4_t_1.000000.vtu square_1e0_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-16 1e-16 - square_1e0_expected_pcs_0_ts_4_t_1.000000.vtu square_1e0_pcs_0_ts_4_t_1.000000.vtu sigma sigma 1e-16 1e-16 -) -AddTest( - NAME Mechanics_SDL_square_1e2_tractionBC - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS square_1e2.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - square_1e2_expected_pcs_0_ts_4_t_1.000000.vtu square_1e2_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-15 0 - square_1e2_expected_pcs_0_ts_4_t_1.000000.vtu square_1e2_pcs_0_ts_4_t_1.000000.vtu sigma sigma 1e-15 0 -) -AddTest( - NAME Mechanics_SDL_disc_with_hole - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS disc_with_hole.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - disc_with_hole_expected_pcs_0_ts_4_t_1.000000.vtu disc_with_hole_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-16 1e-16 - VIS disc_with_hole_pcs_0_ts_4_t_1.000000.vtu -) -AddTest( - NAME LARGE_Mechanics_SDL_square_1e5_tractionBC - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS square_1e5.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - square_1e5_expected_pcs_0_ts_4_t_1.000000.vtu square_1e5_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-15 0 - square_1e5_expected_pcs_0_ts_4_t_1.000000.vtu square_1e5_pcs_0_ts_4_t_1.000000.vtu sigma sigma 1e-13 0 -) -AddTest( - NAME Mechanics_SDL_square_1e2_quad8_traction_topBC - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS square_1e2_quad8_traction_top.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu displacement displacement 2e-14 1e-15 - expected_square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu sigma sigma 2e-14 1e-15 -) -# Mechanics; Small deformations, linear (SDL); Nodal forces -AddTest( - NAME Mechanics_SDL_cube_1e0_nodal_forces - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e0.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu cube_1e0_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-14 1e-15 - expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu cube_1e0_pcs_0_ts_4_t_1.000000.vtu NodalForces NodalForces 1e-14 1e-15 - expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu cube_1e0_pcs_0_ts_4_t_1.000000.vtu sigma sigma 1e-14 1e-15 - expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu cube_1e0_pcs_0_ts_4_t_1.000000.vtu epsilon epsilon 1e-14 1e-15 -) -AddTest( - NAME Mechanics_SDL_cube_1e0_simple_shear_nodal_forces - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e0_simple_shear.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu displacement displacement 1e-14 1e-15 - expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu NodalForces NodalForces 1e-14 1e-15 - expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu sigma sigma 1e-14 1e-15 - expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu epsilon epsilon 1e-14 1e-15 -) - -# Mechanics; Small deformations, linear (SDL); Material forces -AddTest( - NAME Mechanics_SDL_material_forces_bar - PATH Mechanics/Linear/MaterialForces - EXECUTABLE ogs - EXECUTABLE_ARGS bar.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_bar_out_pcs_0_ts_2_t_1.000000.vtu bar_out_pcs_0_ts_2_t_1.000000.vtu displacement displacement 1e-14 1e-15 - expected_bar_out_pcs_0_ts_2_t_1.000000.vtu bar_out_pcs_0_ts_2_t_1.000000.vtu MaterialForces MaterialForces 1e-14 1e-15 - expected_bar_out_pcs_0_ts_2_t_1.000000.vtu bar_out_pcs_0_ts_2_t_1.000000.vtu free_energy_density free_energy_density 1e-14 1e-15 -) - -# Mechanics; Small deformations, linear (SDL); Material forces -AddTest( - NAME Mechanics_SDL_material_forces_bar_3D - PATH Mechanics/Linear/MaterialForces - EXECUTABLE ogs - EXECUTABLE_ARGS bar_3D.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_bar_3D_out_pcs_0_ts_2_t_1.000000.vtu bar_3D_out_pcs_0_ts_2_t_1.000000.vtu displacement displacement 1e-14 1e-15 - expected_bar_3D_out_pcs_0_ts_2_t_1.000000.vtu bar_3D_out_pcs_0_ts_2_t_1.000000.vtu MaterialForces MaterialForces 1e-14 1e-15 - expected_bar_3D_out_pcs_0_ts_2_t_1.000000.vtu bar_3D_out_pcs_0_ts_2_t_1.000000.vtu free_energy_density free_energy_density 1e-14 1e-15 -) - -# Mechanics; Small deformations, Burgers (SDB) -AddTest( - NAME Mechanics_SDB_cube_1e0_tractionBC - PATH Mechanics/Burgers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e0.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - cube_1e0_expected_pcs_0_ts_1_t_0.000100.vtu cube_1e0_pcs_0_ts_1_t_0.000100.vtu displacement displacement 1e-16 1e-16 - cube_1e0_expected_pcs_0_ts_101_t_1.000000.vtu cube_1e0_pcs_0_ts_101_t_1.000000.vtu displacement displacement 1e-16 1e-16 -) -AddTest( - NAME LARGE_Mechanics_SDB_cube_1e3_tractionBC - PATH Mechanics/Burgers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e3.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - cube_1e3_expected_pcs_0_ts_1_t_0.000100.vtu cube_1e3_pcs_0_ts_1_t_0.000100.vtu displacement displacement 1e-16 1e-16 - cube_1e3_expected_pcs_0_ts_101_t_1.000000.vtu cube_1e3_pcs_0_ts_101_t_1.000000.vtu displacement displacement 1e-16 1e-16 -) - -# Mechanics; Small deformations, Ehlers (SDE) -AddTest( - NAME Mechanics_SDE_cube_1e0 - PATH Mechanics/Ehlers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e0.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e0_pcs_0_ts_101_t_2.550000.vtu cube_1e0_pcs_0_ts_101_t_2.550000.vtu displacement displacement 1e-17 0 - expected_cube_1e0_pcs_0_ts_101_t_2.550000.vtu cube_1e0_pcs_0_ts_101_t_2.550000.vtu sigma sigma 1e-15 0 - expected_cube_1e0_pcs_0_ts_203_t_5.100000.vtu cube_1e0_pcs_0_ts_203_t_5.100000.vtu displacement displacement 1e-17 0 - expected_cube_1e0_pcs_0_ts_203_t_5.100000.vtu cube_1e0_pcs_0_ts_203_t_5.100000.vtu sigma sigma 2e-15 0 -) -AddTest( - NAME Mechanics_SDE_cube_1e1 - PATH Mechanics/Ehlers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e1.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e1_pcs_0_ts_101_t_2.550000.vtu cube_1e1_pcs_0_ts_101_t_2.550000.vtu displacement displacement 1e-11 0 - expected_cube_1e1_pcs_0_ts_101_t_2.550000.vtu cube_1e1_pcs_0_ts_101_t_2.550000.vtu sigma sigma 1e-11 0 - expected_cube_1e1_pcs_0_ts_203_t_5.100000.vtu cube_1e1_pcs_0_ts_203_t_5.100000.vtu displacement displacement 1e-11 0 - expected_cube_1e1_pcs_0_ts_203_t_5.100000.vtu cube_1e1_pcs_0_ts_203_t_5.100000.vtu sigma sigma 1e-11 0 -) -AddTest( - NAME LARGE_Mechanics_SDE_cube_1e3 - PATH Mechanics/Ehlers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e3.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e3_pcs_0_ts_101_t_2.550000.vtu cube_1e3_pcs_0_ts_101_t_2.550000.vtu displacement displacement 3e-13 1e-16 - expected_cube_1e3_pcs_0_ts_101_t_2.550000.vtu cube_1e3_pcs_0_ts_101_t_2.550000.vtu sigma sigma 3e-13 1e-16 - expected_cube_1e3_pcs_0_ts_203_t_5.100000.vtu cube_1e3_pcs_0_ts_203_t_5.100000.vtu displacement displacement 3e-13 1e-16 - expected_cube_1e3_pcs_0_ts_203_t_5.100000.vtu cube_1e3_pcs_0_ts_203_t_5.100000.vtu sigma sigma 3e-13 1e-16 -) - -# Mechanics; Small deformations, Drucker-Prager (SDE-DP) -AddTest( - NAME Mechanics_PlasticModel_SDE-DP_Ehlers_SpecialCase_DruckerPrager - PATH Mechanics/Ehlers - EXECUTABLE ogs - EXECUTABLE_ARGS cube_1e0_dp.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu displacement displacement 1e-14 0 - expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu sigma sigma 1e-14 0 - expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu epsilon epsilon 1e-14 0 -) - - -# SMALL DEFORMATION TEST -- AXIALLY SYMMETRIC -AddTest( - NAME SmallDeformation_ring_plane_strain_axi - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS ring_plane_strain.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - ring_plane_strain_1e4_solution.vtu ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu displacement displacement 1e-16 0 - ring_plane_strain_1e4_solution.vtu ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu sigma sigma 1e-15 0 -) - -#With PETSc -AddTest( - NAME Parallel_Mechanics_SDL_disc_with_hole - PATH Mechanics/Linear - EXECUTABLE_ARGS disc_with_hole.prj - WRAPPER mpirun - WRAPPER_ARGS -np 4 - TESTER vtkdiff - REQUIREMENTS OGS_USE_MPI - DIFF_DATA - disc_with_hole_pcs_0_ts_4_t_1_000000_0.vtu disc_with_hole_pcs_0_ts_4_t_1_000000_0.vtu displacement displacement 1e-16 1e-16 - VIS disc_with_hole_pcs_0_ts_0_t_0_000000.pvtu -) - -# Pressure boundary condition -AddTest( - NAME LARGE_SmallDeformation_PressureBC_hollow_sphere - PATH Mechanics/Linear/PressureBC - EXECUTABLE ogs - EXECUTABLE_ARGS hollow_sphere.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_hollow_sphere_pcs_0_ts_1_t_1.000000.vtu hollow_sphere_pcs_0_ts_1_t_1.000000.vtu displacement displacement 1e-15 0 - expected_hollow_sphere_pcs_0_ts_1_t_1.000000.vtu hollow_sphere_pcs_0_ts_1_t_1.000000.vtu sigma sigma 1e-11 0 -) - -# Pressure boundary condition: elastic pipe plain strain -AddTest( - NAME SmallDeformation_PressureBC_elastic_pipe_plain_strain - PATH Mechanics/Linear - EXECUTABLE ogs - EXECUTABLE_ARGS plain_strain_pipe.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - ref_plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu displacement displacement 2e-11 0 - ref_plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu sigma sigma 2e-11 0 -) - -# Pressure boundary condition: elastic pipe axisymmetric -AddTest( - NAME SmallDeformation_PressureBC_elastic_pipe_axisymmetric - PATH Mechanics/Linear/PressureBC - EXECUTABLE ogs - EXECUTABLE_ARGS axisymmetric_pipe.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu displacement displacement 1e-11 0 - axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu sigma sigma 1e-11 0 -) - -# Pressure boundary condition: elastic sphere axisymmetric -AddTest( - NAME SmallDeformation_PressureBC_elastic_sphere_axisymmetric - PATH Mechanics/Linear/PressureBC - EXECUTABLE ogs - EXECUTABLE_ARGS axisymmetric_sphere.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu displacement displacement 1e-15 0 - axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu sigma sigma 2e-8 0 -) - -# Pressure boundary condition: plastic sphere axisymmetric -AddTest( - NAME SmallDeformation_PressureBC_plastic_sphere_axisymmetric - PATH Mechanics/Ehlers - EXECUTABLE ogs - EXECUTABLE_ARGS axisymmetric_sphere_pl.prj - TESTER vtkdiff - REQUIREMENTS OGS_USE_LIS - DIFF_DATA - ref_axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu displacement displacement 1e-15 0 - ref_axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu sigma sigma 1e-15 0 -) - -# Two materials in gravity field variation of density -AddTest( - NAME SmallDeformation_SDL_two_material_gravity_density - PATH Mechanics/Linear - EXECUTABLE_ARGS two_material_gravity.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_two_material_gravity.vtu two_material_gravity_pcs_0_ts_1_t_1.000000.vtu displacement displacement 5e-14 0 - expected_two_material_gravity.vtu two_material_gravity_pcs_0_ts_1_t_1.000000.vtu sigma sigma 5e-14 0 - expected_two_material_gravity.vtu two_material_gravity_pcs_0_ts_1_t_1.000000.vtu epsilon epsilon 5e-14 0 -) - -# Two materials in gravity field variation of modulus of elasticity -AddTest( - NAME SmallDeformation_SDL_two_material_gravity_Emodulus - PATH Mechanics/Linear - EXECUTABLE_ARGS two_material_gravity_Emodulus.prj - TESTER vtkdiff - REQUIREMENTS NOT OGS_USE_MPI - DIFF_DATA - expected_two_material_gravity_Emodulus.vtu two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu displacement displacement 5e-14 0 - expected_two_material_gravity_Emodulus.vtu two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu sigma sigma 1e-13 0 - expected_two_material_gravity_Emodulus.vtu two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu epsilon epsilon 5e-14 0 -) -AddTest( - NAME PythonBCSmallDeformationPiston - PATH Mechanics/Linear/PythonPiston - EXECUTABLE ogs - EXECUTABLE_ARGS piston.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS OGS_USE_PYTHON AND NOT OGS_USE_MPI - DIFF_DATA - ref_piston_pcs_0_ts_5_t_5.000000.vtu piston_pcs_0_ts_5_t_5.000000.vtu displacement displacement 1e-16 0 - ref_piston_pcs_0_ts_5_t_5.000000.vtu piston_pcs_0_ts_5_t_5.000000.vtu epsilon epsilon 1e-14 0 - ref_piston_pcs_0_ts_5_t_5.000000.vtu piston_pcs_0_ts_5_t_5.000000.vtu sigma sigma 1e-8 0 - ref_piston_pcs_0_ts_10_t_10.000000.vtu piston_pcs_0_ts_10_t_10.000000.vtu displacement displacement 1e-16 0 - ref_piston_pcs_0_ts_10_t_10.000000.vtu piston_pcs_0_ts_10_t_10.000000.vtu epsilon epsilon 1e-13 0 - ref_piston_pcs_0_ts_10_t_10.000000.vtu piston_pcs_0_ts_10_t_10.000000.vtu sigma sigma 1e-7 0 -) - -AddTest( - NAME LARGE_PythonBCSmallDeformationHertzContact - PATH Mechanics/Linear/PythonHertzContact - EXECUTABLE ogs - EXECUTABLE_ARGS hertz_contact.prj - WRAPPER time - TESTER vtkdiff - REQUIREMENTS OGS_USE_PYTHON AND NOT OGS_USE_MPI - DIFF_DATA - ref_hertz_contact_ts_5.vtu hertz_pcs_0_ts_5_t_5.000000.vtu displacement displacement 1e-16 0 - ref_hertz_contact_ts_5.vtu hertz_pcs_0_ts_5_t_5.000000.vtu epsilon epsilon 1e-16 0 - ref_hertz_contact_ts_5.vtu hertz_pcs_0_ts_5_t_5.000000.vtu sigma sigma 1e-16 0 - ref_hertz_contact_ts_10.vtu hertz_pcs_0_ts_10_t_10.000000.vtu displacement displacement 1e-16 0 - ref_hertz_contact_ts_10.vtu hertz_pcs_0_ts_10_t_10.000000.vtu epsilon epsilon 1e-16 0 - ref_hertz_contact_ts_10.vtu hertz_pcs_0_ts_10_t_10.000000.vtu sigma sigma 1e-16 0 -) +if (NOT OGS_USE_MPI) + OgsTest(PROJECTFILE "Mechanics/Linear/square_1e0.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/square_1e2.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/disc_with_hole.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/square_1e5.prj" LARGE) + OgsTest(PROJECTFILE "Mechanics/Linear/square_1e2_quad8_traction_top.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/cube_1e0.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/cube_1e0_simple_shear.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/MaterialForces/bar.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/MaterialForces/bar_3D.prj" LARGE) + OgsTest(PROJECTFILE "Mechanics/Burgers/cube_1e0.prj") + OgsTest(PROJECTFILE "Mechanics/Burgers/cube_1e3.prj" LARGE) + OgsTest(PROJECTFILE "Mechanics/Ehlers/cube_1e0.prj") + OgsTest(PROJECTFILE "Mechanics/Ehlers/cube_1e1.prj") + OgsTest(PROJECTFILE "Mechanics/Ehlers/cube_1e3.prj" LARGE) + OgsTest(PROJECTFILE "Mechanics/Ehlers/cube_1e0_dp.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/ring_plane_strain.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/plain_strain_pipe.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/two_material_gravity.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/two_material_gravity_Emodulus.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/PressureBC/axisymmetric_pipe.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/PressureBC/hollow_sphere.prj" LARGE) + OgsTest(PROJECTFILE "Mechanics/Linear/PressureBC/axisymmetric_sphere.prj") + OgsTest(PROJECTFILE "Mechanics/Ehlers/axisymmetric_sphere_pl.prj" LARGE) +endif() + +if (OGS_USE_PYTHON) + OgsTest(PROJECTFILE "Mechanics/Linear/PythonPiston/piston.prj") + OgsTest(PROJECTFILE "Mechanics/Linear/PythonHertzContact/hertz_contact.prj") +endif() + +if (OGS_USE_MPI) + OgsTest(WRAPPER "mpirun -np 4" PROJECTFILE "Mechanics/Linear/disc_with_hole.prj") +endif() # Basic test that MFront works at all. # Linear elastic, no internal state variables, no external state variables. diff --git a/Tests/Data/Mechanics/Burgers/cube_1e0.prj b/Tests/Data/Mechanics/Burgers/cube_1e0.prj index 9904cc7c2b939b7d02f38d5bec0fae0b03d51ac1..85ea17e6ea1ac9c06ab77b7abb25b882bf46dcbf 100644 --- a/Tests/Data/Mechanics/Burgers/cube_1e0.prj +++ b/Tests/Data/Mechanics/Burgers/cube_1e0.prj @@ -237,4 +237,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_1_t_0.000100.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_101_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Burgers/cube_1e0_expected_pcs_0_ts_101_t_1.000000.vtu b/Tests/Data/Mechanics/Burgers/cube_1e0_pcs_0_ts_101_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Burgers/cube_1e0_expected_pcs_0_ts_101_t_1.000000.vtu rename to Tests/Data/Mechanics/Burgers/cube_1e0_pcs_0_ts_101_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Burgers/cube_1e0_expected_pcs_0_ts_1_t_0.000100.vtu b/Tests/Data/Mechanics/Burgers/cube_1e0_pcs_0_ts_1_t_0.000100.vtu similarity index 100% rename from Tests/Data/Mechanics/Burgers/cube_1e0_expected_pcs_0_ts_1_t_0.000100.vtu rename to Tests/Data/Mechanics/Burgers/cube_1e0_pcs_0_ts_1_t_0.000100.vtu diff --git a/Tests/Data/Mechanics/Burgers/cube_1e3.prj b/Tests/Data/Mechanics/Burgers/cube_1e3.prj index 57476da133347f2933a4cfcc8d4956d776bc288c..89050bd85d0c93806eea7ab84ed9346005d0d4f3 100644 --- a/Tests/Data/Mechanics/Burgers/cube_1e3.prj +++ b/Tests/Data/Mechanics/Burgers/cube_1e3.prj @@ -237,4 +237,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_1_t_0.000100.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_101_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Burgers/cube_1e3_expected_pcs_0_ts_101_t_1.000000.vtu b/Tests/Data/Mechanics/Burgers/cube_1e3_pcs_0_ts_101_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Burgers/cube_1e3_expected_pcs_0_ts_101_t_1.000000.vtu rename to Tests/Data/Mechanics/Burgers/cube_1e3_pcs_0_ts_101_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Burgers/cube_1e3_expected_pcs_0_ts_1_t_0.000100.vtu b/Tests/Data/Mechanics/Burgers/cube_1e3_pcs_0_ts_1_t_0.000100.vtu similarity index 100% rename from Tests/Data/Mechanics/Burgers/cube_1e3_expected_pcs_0_ts_1_t_0.000100.vtu rename to Tests/Data/Mechanics/Burgers/cube_1e3_pcs_0_ts_1_t_0.000100.vtu diff --git a/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl.prj b/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl.prj index b2d6b7240784d38015556d272115d61ab4c88437..a07a6c2569e45e8a92805c9239fe35fb77b98ee5 100644 --- a/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl.prj +++ b/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl.prj @@ -1,7 +1,11 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <OpenGeoSysProject> - <mesh axially_symmetric="true">axisymmetric_sphere_pl.vtu</mesh> + <mesh axially_symmetric="true">axisymmetric_sphere_pl.vtu</mesh> <geometry>axisymmetric_sphere_pl.gml</geometry> + <search_length_algorithm> + <type>fixed</type> + <value>1e-3</value> + </search_length_algorithm> <processes> <process> <name>SD</name> @@ -73,7 +77,7 @@ </processes> <output> <type>VTK</type> - <prefix>axisymmetric_sphere</prefix> + <prefix>axisymmetric_sphere_pl</prefix> <timesteps> <pair> <repeat>1000000</repeat> @@ -208,21 +212,13 @@ <boundary_condition> <geometrical_set>geometry</geometrical_set> <geometry>inner</geometry> - <search_length_algorithm> - <type>fixed</type> - <value>1e-3</value> - </search_length_algorithm> - <type>Pressure</type> + <type>NormalTraction</type> <parameter>pressure_inside</parameter> </boundary_condition> <!-- Fix axis --> <boundary_condition> <geometrical_set>geometry</geometrical_set> <geometry>axis</geometry> - <search_length_algorithm> - <type>fixed</type> - <value>1e-3</value> - </search_length_algorithm> <type>Dirichlet</type> <component>0</component> <parameter>dirichlet0</parameter> @@ -231,10 +227,6 @@ <boundary_condition> <geometrical_set>geometry</geometrical_set> <geometry>central_outer</geometry> - <search_length_algorithm> - <type>fixed</type> - <value>1e-3</value> - </search_length_algorithm> <type>Dirichlet</type> <component>1</component> <parameter>dirichlet0</parameter> @@ -242,7 +234,7 @@ </boundary_conditions> </process_variable> </process_variables> - <nonlinear_solvers> + <nonlinear_solvers> <nonlinear_solver> <name>basic_newton</name> <type>Newton</type> @@ -266,4 +258,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>axisymmetric_sphere_pl_pcs_0_ts_100_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>axisymmetric_sphere_pl_pcs_0_ts_100_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>2e-5</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl_pcs_0_ts_100_t_1.000000.vtu b/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl_pcs_0_ts_100_t_1.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..a62abc183dde11164d6992ebd3226eecad63ae57 --- /dev/null +++ b/Tests/Data/Mechanics/Ehlers/axisymmetric_sphere_pl_pcs_0_ts_100_t_1.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6d021a7fbd59ee77b67bc4e0a60ac3c74627824141ef484017d66c9197f2d79 +size 459383 diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e0.prj b/Tests/Data/Mechanics/Ehlers/cube_1e0.prj index 53ed09eb4aadce72c495b6e28f745209b8d9ad76..804ca0a644a93c90aedb614c94e8aa9400a2fc27 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e0.prj +++ b/Tests/Data/Mechanics/Ehlers/cube_1e0.prj @@ -318,4 +318,30 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_101_t_2.550000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-17</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_101_t_2.550000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_203_t_5.100000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-17</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_203_t_5.100000.vtu</file> + <field>sigma</field> + <absolute_tolerance>2e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e0_dp.prj b/Tests/Data/Mechanics/Ehlers/cube_1e0_dp.prj index afa966314b50a77b1821e7a73b5b7d8a9283e912..cce8792cd2e8f8e19a7d1da2e771cc620b535359 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e0_dp.prj +++ b/Tests/Data/Mechanics/Ehlers/cube_1e0_dp.prj @@ -318,4 +318,24 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu index c04c4a883ca95de51a05ace307ddfdc2a7d34ce9..e64ade91dbd8bfd79ff7c5e04a3b9d047d4f594d 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu +++ b/Tests/Data/Mechanics/Ehlers/cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38e966cf91169df50566f14c5faeece2799026d2dba3b7d59f091bcc9314845f -size 3579 +oid sha256:6ebdbb6ec9fdc37f701dbf6019dc2869145d8164fbc81cee54078b552efef7aa +size 2932 diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_pcs_0_ts_101_t_2.550000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_101_t_2.550000.vtu similarity index 100% rename from Tests/Data/Mechanics/Ehlers/expected_cube_1e0_pcs_0_ts_101_t_2.550000.vtu rename to Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_101_t_2.550000.vtu diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_203_t_5.100000.vtu index 8d6344069cda50ca331139b41dad3b805735a633..3a4751f46402c1ba97d6e24e71a60e70864a599a 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_203_t_5.100000.vtu +++ b/Tests/Data/Mechanics/Ehlers/cube_1e0_pcs_0_ts_203_t_5.100000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc2056a4a946e28f2010bd2a769049aaa76a509b877ae6b5c6aea7a8684b70da -size 3622 +oid sha256:a47744820bdae82c358b308f5fc3ee2a9dabf0f8e90df7ab163f4e835cea5076 +size 2916 diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e1.prj b/Tests/Data/Mechanics/Ehlers/cube_1e1.prj index 12ee66583a7a9f662889edda4d89f8f1e7d4259c..3ba3ab8decc479e1526a4414a54b7285a217d996 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e1.prj +++ b/Tests/Data/Mechanics/Ehlers/cube_1e1.prj @@ -322,4 +322,30 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e1_pcs_0_ts_101_t_2.550000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e1_pcs_0_ts_101_t_2.550000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e1_pcs_0_ts_203_t_5.100000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e1_pcs_0_ts_203_t_5.100000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e1_pcs_0_ts_101_t_2.550000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_101_t_2.550000.vtu similarity index 100% rename from Tests/Data/Mechanics/Ehlers/expected_cube_1e1_pcs_0_ts_101_t_2.550000.vtu rename to Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_101_t_2.550000.vtu diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_203_t_5.100000.vtu index 805fb66219291dd10b6e257aae8f81a11a9dc076..ba33c76881d2f4f621a9a3b1053b928ec1e43b2a 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_203_t_5.100000.vtu +++ b/Tests/Data/Mechanics/Ehlers/cube_1e1_pcs_0_ts_203_t_5.100000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2106bb8f79aa06306ae20b5d8fd51a8cf4761fb366ec3762a4cc7755ac7d4f8b -size 4997 +oid sha256:f63652662f4575bb4f5374a2b84b81a24405654c9081e3d6101dc275a6d2f1de +size 4424 diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e3.prj b/Tests/Data/Mechanics/Ehlers/cube_1e3.prj index 9006acf73bb0f5a732abd19d8f44d954020ea63d..ee46d7934616e4a2b2f13fa08fffcba37bbbc7de 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e3.prj +++ b/Tests/Data/Mechanics/Ehlers/cube_1e3.prj @@ -322,4 +322,30 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_101_t_2.550000.vtu</file> + <field>displacement</field> + <absolute_tolerance>3e-13</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_101_t_2.550000.vtu</file> + <field>sigma</field> + <absolute_tolerance>3e-13</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_203_t_5.100000.vtu</file> + <field>displacement</field> + <absolute_tolerance>3e-13</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e3_pcs_0_ts_203_t_5.100000.vtu</file> + <field>sigma</field> + <absolute_tolerance>3e-13</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e3_pcs_0_ts_101_t_2.550000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_101_t_2.550000.vtu similarity index 100% rename from Tests/Data/Mechanics/Ehlers/expected_cube_1e3_pcs_0_ts_101_t_2.550000.vtu rename to Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_101_t_2.550000.vtu diff --git a/Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_203_t_5.100000.vtu index 6f67e77e8973b99a029843a8930055b6f480aee1..fb15add8d9b13465d3e56fa3e1a3474f53b6784f 100644 --- a/Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_203_t_5.100000.vtu +++ b/Tests/Data/Mechanics/Ehlers/cube_1e3_pcs_0_ts_203_t_5.100000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1aa6d19b680059789c39fde042363c9dda3b3ba9556a30273c25c2a2a88d3e12 -size 132078 +oid sha256:19945e9a8ad51a71d25a155de8bbb160b4bed75feaafccc94ff32e4d131f89c3 +size 95652 diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu deleted file mode 100644 index e64ade91dbd8bfd79ff7c5e04a3b9d047d4f594d..0000000000000000000000000000000000000000 --- a/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_dp_pcs_0_ts_203_t_5.100000.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ebdbb6ec9fdc37f701dbf6019dc2869145d8164fbc81cee54078b552efef7aa -size 2932 diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_pcs_0_ts_203_t_5.100000.vtu deleted file mode 100644 index 3a4751f46402c1ba97d6e24e71a60e70864a599a..0000000000000000000000000000000000000000 --- a/Tests/Data/Mechanics/Ehlers/expected_cube_1e0_pcs_0_ts_203_t_5.100000.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a47744820bdae82c358b308f5fc3ee2a9dabf0f8e90df7ab163f4e835cea5076 -size 2916 diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e1_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/expected_cube_1e1_pcs_0_ts_203_t_5.100000.vtu deleted file mode 100644 index ba33c76881d2f4f621a9a3b1053b928ec1e43b2a..0000000000000000000000000000000000000000 --- a/Tests/Data/Mechanics/Ehlers/expected_cube_1e1_pcs_0_ts_203_t_5.100000.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f63652662f4575bb4f5374a2b84b81a24405654c9081e3d6101dc275a6d2f1de -size 4424 diff --git a/Tests/Data/Mechanics/Ehlers/expected_cube_1e3_pcs_0_ts_203_t_5.100000.vtu b/Tests/Data/Mechanics/Ehlers/expected_cube_1e3_pcs_0_ts_203_t_5.100000.vtu deleted file mode 100644 index fb15add8d9b13465d3e56fa3e1a3474f53b6784f..0000000000000000000000000000000000000000 --- a/Tests/Data/Mechanics/Ehlers/expected_cube_1e3_pcs_0_ts_203_t_5.100000.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19945e9a8ad51a71d25a155de8bbb160b4bed75feaafccc94ff32e4d131f89c3 -size 95652 diff --git a/Tests/Data/Mechanics/Ehlers/ref_axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu b/Tests/Data/Mechanics/Ehlers/ref_axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu deleted file mode 100644 index bb044b55e8bb3fffa22ae699ef45d87b15003efe..0000000000000000000000000000000000000000 --- a/Tests/Data/Mechanics/Ehlers/ref_axisymmetric_sphere_pcs_0_ts_100_t_1.000000.vtu +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12ec20948f416feb2674b6171323f3343e7c2d162a00eefd4b19d7a6995099c3 -size 432006 diff --git a/Tests/Data/Mechanics/Linear/MaterialForces/bar.prj b/Tests/Data/Mechanics/Linear/MaterialForces/bar.prj index 949e626ffe41e4afce251448537640447167ef96..6bde6fc8564a74883c3ff443c9d4e513cbc730cf 100644 --- a/Tests/Data/Mechanics/Linear/MaterialForces/bar.prj +++ b/Tests/Data/Mechanics/Linear/MaterialForces/bar.prj @@ -177,4 +177,24 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>bar_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>bar_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>MaterialForces</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>bar_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>free_energy_density</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/MaterialForces/bar_3D.prj b/Tests/Data/Mechanics/Linear/MaterialForces/bar_3D.prj index 4607028e5c64fc6db2cecde15d9faac17852a360..6c7490be05dae3f8077ddd9326e9fb7d9685183f 100644 --- a/Tests/Data/Mechanics/Linear/MaterialForces/bar_3D.prj +++ b/Tests/Data/Mechanics/Linear/MaterialForces/bar_3D.prj @@ -142,7 +142,6 @@ <component>1</component> <parameter>Dirichlet_0</parameter> </boundary_condition> - <boundary_condition> <geometrical_set>bar_geom</geometrical_set> <geometry>left_vertical</geometry> @@ -192,4 +191,24 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>bar_3D_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>bar_3D_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>MaterialForces</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>bar_3D_out_pcs_0_ts_2_t_1.000000.vtu</file> + <field>free_energy_density</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/MaterialForces/expected_bar_3D_out_pcs_0_ts_2_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/MaterialForces/bar_3D_out_pcs_0_ts_2_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/MaterialForces/expected_bar_3D_out_pcs_0_ts_2_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/MaterialForces/bar_3D_out_pcs_0_ts_2_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/MaterialForces/expected_bar_out_pcs_0_ts_2_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/MaterialForces/bar_out_pcs_0_ts_2_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/MaterialForces/expected_bar_out_pcs_0_ts_2_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/MaterialForces/bar_out_pcs_0_ts_2_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_pipe.prj b/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_pipe.prj index 4168165648c86071a110f68573b8f91b230c88b4..da1a80ec8c209079afaf916ae890167f698bab80 100644 --- a/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_pipe.prj +++ b/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_pipe.prj @@ -161,4 +161,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>axisymmetric_pipe_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_sphere.prj b/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_sphere.prj index fa02cd5b593dae739eac56fe04da150c92ded488..b44f12fb233b1bb9d07737f3b141cb486ab32ad5 100644 --- a/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_sphere.prj +++ b/Tests/Data/Mechanics/Linear/PressureBC/axisymmetric_sphere.prj @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="ISO-8859-1"?> <OpenGeoSysProject> - <mesh axially_symmetric="true">axisymmetric_sphere.vtu</mesh> + <mesh axially_symmetric="true">axisymmetric_sphere.vtu</mesh> <geometry>axisymmetric_sphere.gml</geometry> <processes> <process> @@ -164,4 +164,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>axisymmetric_sphere_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>2e-8</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere.prj b/Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere.prj index 4cd7a395fa424e976ca61480fe935d13c606be1e..740a31d22be34ea8758bde9583a005affa425e74 100644 --- a/Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere.prj +++ b/Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere.prj @@ -19,7 +19,7 @@ </process_variables> <secondary_variables> <secondary_variable type="static" internal_name="sigma" output_name="sigma"/> - </secondary_variables> + </secondary_variables> </process> </processes> <time_loop> @@ -188,4 +188,18 @@ </eigen> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>hollow_sphere_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hollow_sphere_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/PressureBC/expected_hollow_sphere_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere_pcs_0_ts_1_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/PressureBC/expected_hollow_sphere_pcs_0_ts_1_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/PressureBC/hollow_sphere_pcs_0_ts_1_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_contact.prj b/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_contact.prj index 8cbeeb41991bf27ac1c70922025bff33b701ec23..9d554c3f150f61c357de6bda32316e01d8a090d1 100644 --- a/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_contact.prj +++ b/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_contact.prj @@ -151,4 +151,42 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>hertz_pcs_0_ts_5_t_5.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hertz_pcs_0_ts_5_t_5.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>5e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hertz_pcs_0_ts_5_t_5.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>5e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hertz_pcs_0_ts_10_t_10.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hertz_pcs_0_ts_10_t_10.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>5e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>hertz_pcs_0_ts_10_t_10.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>5e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/PythonHertzContact/ref_hertz_contact_ts_10.vtu b/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_pcs_0_ts_10_t_10.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/PythonHertzContact/ref_hertz_contact_ts_10.vtu rename to Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_pcs_0_ts_10_t_10.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/PythonHertzContact/ref_hertz_contact_ts_5.vtu b/Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_pcs_0_ts_5_t_5.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/PythonHertzContact/ref_hertz_contact_ts_5.vtu rename to Tests/Data/Mechanics/Linear/PythonHertzContact/hertz_pcs_0_ts_5_t_5.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/PythonPiston/piston.prj b/Tests/Data/Mechanics/Linear/PythonPiston/piston.prj index 474c0517076216aab1880c8a57abbe07653dd7a7..3f8e4239a2e52b4a79bd28cb56f87a4af35dabd6 100644 --- a/Tests/Data/Mechanics/Linear/PythonPiston/piston.prj +++ b/Tests/Data/Mechanics/Linear/PythonPiston/piston.prj @@ -149,4 +149,42 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>piston_pcs_0_ts_5_t_5.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>piston_pcs_0_ts_5_t_5.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>piston_pcs_0_ts_5_t_5.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-8</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>piston_pcs_0_ts_10_t_10.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>piston_pcs_0_ts_10_t_10.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>1e-13</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>piston_pcs_0_ts_10_t_10.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-7</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/PythonPiston/ref_piston_pcs_0_ts_10_t_10.000000.vtu b/Tests/Data/Mechanics/Linear/PythonPiston/piston_pcs_0_ts_10_t_10.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/PythonPiston/ref_piston_pcs_0_ts_10_t_10.000000.vtu rename to Tests/Data/Mechanics/Linear/PythonPiston/piston_pcs_0_ts_10_t_10.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/PythonPiston/ref_piston_pcs_0_ts_5_t_5.000000.vtu b/Tests/Data/Mechanics/Linear/PythonPiston/piston_pcs_0_ts_5_t_5.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/PythonPiston/ref_piston_pcs_0_ts_5_t_5.000000.vtu rename to Tests/Data/Mechanics/Linear/PythonPiston/piston_pcs_0_ts_5_t_5.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/cube_1e0.prj b/Tests/Data/Mechanics/Linear/cube_1e0.prj index 63aed532dd4813197db017a4483630773dc28402..f8839a2f594f73f319487f8ebc75d54e6c2f1ae1 100644 --- a/Tests/Data/Mechanics/Linear/cube_1e0.prj +++ b/Tests/Data/Mechanics/Linear/cube_1e0.prj @@ -171,4 +171,30 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>NodalForces</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/cube_1e0_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/expected_cube_1e0_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/cube_1e0_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/cube_1e0_simple_shear.prj b/Tests/Data/Mechanics/Linear/cube_1e0_simple_shear.prj index fa5fea5e04279183e64d5d48ee525c0d32fb67d6..33615bd1c045b9c5c72101de67d892c26cd6a990 100644 --- a/Tests/Data/Mechanics/Linear/cube_1e0_simple_shear.prj +++ b/Tests/Data/Mechanics/Linear/cube_1e0_simple_shear.prj @@ -189,4 +189,30 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu</file> + <field>NodalForces</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>1e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/expected_cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/cube_1e0_simple_shear_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/disc_with_hole.prj b/Tests/Data/Mechanics/Linear/disc_with_hole.prj index ceafeaf61d3f6f0a3f4739713b59b7a5cb424924..c77cc2f20f2ee45bdb5e03706fc5d5e66fd1d3a3 100644 --- a/Tests/Data/Mechanics/Linear/disc_with_hole.prj +++ b/Tests/Data/Mechanics/Linear/disc_with_hole.prj @@ -156,4 +156,12 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>disc_with_hole_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/disc_with_hole_expected_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/disc_with_hole_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/disc_with_hole_expected_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/disc_with_hole_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/plain_strain_pipe.prj b/Tests/Data/Mechanics/Linear/plain_strain_pipe.prj index d2bb53057ffba7e2826da31ac85599b7a77dd0fb..6338bf386c726fb734f84e0d9dd53371fd2bb5a3 100644 --- a/Tests/Data/Mechanics/Linear/plain_strain_pipe.prj +++ b/Tests/Data/Mechanics/Linear/plain_strain_pipe.prj @@ -164,4 +164,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>2e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>2e-11</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/ref_plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/ref_plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/plain_strain_pipe_pcs_0_ts_1_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/ring_plane_strain.prj b/Tests/Data/Mechanics/Linear/ring_plane_strain.prj index 3b4ddba03b0895984d36e7f0555cf9232d179a16..c54ce8905626e389d6517ce4fb985fa70ac0f9bd 100644 --- a/Tests/Data/Mechanics/Linear/ring_plane_strain.prj +++ b/Tests/Data/Mechanics/Linear/ring_plane_strain.prj @@ -155,4 +155,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>6e-4</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>6e-4</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/ring_plane_strain_1e4_solution.vtu b/Tests/Data/Mechanics/Linear/ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/ring_plane_strain_1e4_solution.vtu rename to Tests/Data/Mechanics/Linear/ring_plane_strain_pcs_0_ts_1_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/square_1e0.prj b/Tests/Data/Mechanics/Linear/square_1e0.prj index 5cac4e035d50d08fc25c1d463f8ce5f3d028a606..60ecbe3e901733ec2408e5ea5576263d5d02e398 100644 --- a/Tests/Data/Mechanics/Linear/square_1e0.prj +++ b/Tests/Data/Mechanics/Linear/square_1e0.prj @@ -151,4 +151,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>square_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>square_1e0_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-16</absolute_tolerance> + <relative_tolerance>1e-16</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/square_1e0_expected_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/square_1e0_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/square_1e0_expected_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/square_1e0_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/square_1e2.prj b/Tests/Data/Mechanics/Linear/square_1e2.prj index 690eef254ce4cebb501bd62b475e675d6622428e..c850559bd17af3dfbe266530d2f9e04897a2c073 100644 --- a/Tests/Data/Mechanics/Linear/square_1e2.prj +++ b/Tests/Data/Mechanics/Linear/square_1e2.prj @@ -151,4 +151,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>square_1e2_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>square_1e2_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/square_1e2_expected_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/square_1e2_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/square_1e2_expected_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/square_1e2_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_top.prj b/Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_top.prj index f10c39ed42cb472a5319d86e70a17611e5cac16c..6c78fd6cb75bd9ad31a77780194df70c5430cbce 100644 --- a/Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_top.prj +++ b/Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_top.prj @@ -151,4 +151,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>2e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>2e-14</absolute_tolerance> + <relative_tolerance>1e-15</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/expected_square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/expected_square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/square_1e2_quad8_traction_topBC_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/square_1e5.prj b/Tests/Data/Mechanics/Linear/square_1e5.prj index c11f632edcf85bfa642c7ab5e5de3668b2a9eee2..d625e042bc10eb1f1ac134aa133430348312cc92 100644 --- a/Tests/Data/Mechanics/Linear/square_1e5.prj +++ b/Tests/Data/Mechanics/Linear/square_1e5.prj @@ -151,4 +151,18 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>square_1e5_pcs_0_ts_4_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>1e-15</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>square_1e5_pcs_0_ts_4_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-13</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/square_1e5_expected_pcs_0_ts_4_t_1.000000.vtu b/Tests/Data/Mechanics/Linear/square_1e5_pcs_0_ts_4_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/square_1e5_expected_pcs_0_ts_4_t_1.000000.vtu rename to Tests/Data/Mechanics/Linear/square_1e5_pcs_0_ts_4_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/two_material_gravity.prj b/Tests/Data/Mechanics/Linear/two_material_gravity.prj index 1b5fe24b48c662eacf8b7106e1585502947e4b00..ffd79b199969fe70224b33bb849a093eae0de169 100644 --- a/Tests/Data/Mechanics/Linear/two_material_gravity.prj +++ b/Tests/Data/Mechanics/Linear/two_material_gravity.prj @@ -148,4 +148,24 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>two_material_gravity_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>5e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>two_material_gravity_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>5e-13</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>two_material_gravity_pcs_0_ts_1_t_1.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>5e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus.prj b/Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus.prj index 0a41d8b26cc7f4a4ba2ffd30d6464e1ec5b2bc40..4b785f9acca670469e0c254efc5908c902685539 100644 --- a/Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus.prj +++ b/Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus.prj @@ -158,4 +158,24 @@ </petsc> </linear_solver> </linear_solvers> + <test_definition> + <vtkdiff> + <file>two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu</file> + <field>displacement</field> + <absolute_tolerance>5e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu</file> + <field>sigma</field> + <absolute_tolerance>1e-13</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + <vtkdiff> + <file>two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu</file> + <field>epsilon</field> + <absolute_tolerance>5e-14</absolute_tolerance> + <relative_tolerance>0</relative_tolerance> + </vtkdiff> + </test_definition> </OpenGeoSysProject> diff --git a/Tests/Data/Mechanics/Linear/expected_two_material_gravity_Emodulus.vtu b/Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/expected_two_material_gravity_Emodulus.vtu rename to Tests/Data/Mechanics/Linear/two_material_gravity_Emodulus_pcs_0_ts_1_t_1.000000.vtu diff --git a/Tests/Data/Mechanics/Linear/expected_two_material_gravity.vtu b/Tests/Data/Mechanics/Linear/two_material_gravity_pcs_0_ts_1_t_1.000000.vtu similarity index 100% rename from Tests/Data/Mechanics/Linear/expected_two_material_gravity.vtu rename to Tests/Data/Mechanics/Linear/two_material_gravity_pcs_0_ts_1_t_1.000000.vtu diff --git a/scripts/cmake/test/OgsTest.cmake b/scripts/cmake/test/OgsTest.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cd9d435b6a5ed9efff08b07f628bbddc15b4d9db --- /dev/null +++ b/scripts/cmake/test/OgsTest.cmake @@ -0,0 +1,54 @@ +function (OgsTest) + if(NOT OGS_BUILD_TESTS) + return() + endif() + set(options LARGE) + set(oneValueArgs PROJECTFILE WRAPPER) + set(multiValueArgs XXX) + cmake_parse_arguments(OgsTest "${options}" "${oneValueArgs}" + "${multiValueArgs}" ${ARGN}) + + get_filename_component(OgsTest_DIR "${OgsTest_PROJECTFILE}" DIRECTORY) + get_filename_component(OgsTest_NAME "${OgsTest_PROJECTFILE}" NAME) + get_filename_component(OgsTest_NAME_WE "${OgsTest_PROJECTFILE}" NAME_WE) + + if (OgsTest_UNPARSED_ARGUMENTS) + message(FATAL_ERROR "Unparsed argument(s) '${OgsTest_UNPARSED_ARGUMENTS}' to OgsTest call.") + endif() + + set(OgsTest_SOURCE_DIR "${Data_SOURCE_DIR}/${OgsTest_DIR}") + set(OgsTest_BINARY_DIR "${Data_BINARY_DIR}/${OgsTest_DIR}") + file(MAKE_DIRECTORY ${OgsTest_BINARY_DIR}) + file(TO_NATIVE_PATH "${OgsTest_BINARY_DIR}" OgsTest_BINARY_DIR_NATIVE) + + set(TEST_NAME "ogs-${OgsTest_DIR}/${OgsTest_NAME_WE}") + # Add wrapper postfix (-mpi for mpirun). + if (OgsTest_WRAPPER) + string(REGEX MATCH "^[^ ]+" WRAPPER ${OgsTest_WRAPPER}) + if (WRAPPER STREQUAL "mpirun") + set(TEST_NAME "${TEST_NAME}-mpi") + endif() + endif() + # Add -LARGE tag. + if (${OgsTest_LARGE}) + set(TEST_NAME "${TEST_NAME}-LARGE") + endif() + + add_test( + NAME ${TEST_NAME} + WORKING_DIRECTORY "${OgsTest_BINARY_DIR}" + COMMAND ogs -r "${OgsTest_SOURCE_DIR}" "${OgsTest_SOURCE_DIR}/${OgsTest_NAME}") + # For debugging: + #message("Adding test with + # NAME ${TEST_NAME} + # WORKING_DIRECTORY ${OgsTest_BINARY_DIR} + # COMMAND ogs -r ${OgsTest_SOURCE_DIR} ${OgsTest_SOURCE_DIR}/${OgsTest_NAME}") + + set_tests_properties(${TEST_NAME} PROPERTIES ENVIRONMENT + VTKDIFF_EXE=$<TARGET_FILE:vtkdiff>) + + if(TARGET ${OgsTest_EXECUTABLE}) + add_dependencies(ctest ${OgsTest_EXECUTABLE}) + add_dependencies(ctest-large ${OgsTest_EXECUTABLE}) + endif() +endfunction() diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake index 81185a61d2ed9333ce2f1193ab189974c4db0f2f..c2c82e9f3a976adb376a15eec17031db157e8d9e 100644 --- a/scripts/cmake/test/Test.cmake +++ b/scripts/cmake/test/Test.cmake @@ -35,6 +35,7 @@ configure_file( ) include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/test/AddTest.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/scripts/cmake/test/OgsTest.cmake) set(NUM_CTEST_PROCESSORS 3)