From 80f9bc2c610be9dab80cbbe91f9160114ce1a0e1 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Fri, 16 Apr 2021 16:23:45 +0200 Subject: [PATCH 1/8] [BL] Very simple dynamic span class. Should be replaced with std::span when the compiler version gcc >= 10, msvc >= 19.26 are available for development. --- BaseLib/DynamicSpan.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 BaseLib/DynamicSpan.h diff --git a/BaseLib/DynamicSpan.h b/BaseLib/DynamicSpan.h new file mode 100644 index 0000000000..d0e86d7ec9 --- /dev/null +++ b/BaseLib/DynamicSpan.h @@ -0,0 +1,18 @@ +/** + * \file + * \copyright + * Copyright (c) 2012-2021, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + */ + +namespace BaseLib +{ +template +struct DynamicSpan +{ + T* data; + std::size_t size; +}; +} // namespace BaseLib -- GitLab From 9ed70d7453e968f8f3156804a7cc44f2c65aca22 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Wed, 14 Apr 2021 11:18:05 +0200 Subject: [PATCH 2/8] [MPL] Access and reset to internal state variables For storage as ip-data in the output and simulation restart. --- MaterialLib/SolidModels/Ehlers.cpp | 47 +++++++++++++++++++++++ MaterialLib/SolidModels/Ehlers.h | 2 + MaterialLib/SolidModels/MFront/MFront.cpp | 11 ++++++ MaterialLib/SolidModels/MechanicsBase.h | 10 ++++- 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/MaterialLib/SolidModels/Ehlers.cpp b/MaterialLib/SolidModels/Ehlers.cpp index efbc6a5d9f..ee7c261af6 100644 --- a/MaterialLib/SolidModels/Ehlers.cpp +++ b/MaterialLib/SolidModels/Ehlers.cpp @@ -720,6 +720,15 @@ SolidEhlers::getInternalVariables() const cache.resize(1); cache.front() = ehlers_state.damage.kappa_d(); return cache; + }, + [](typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast const*>( + &state) != nullptr); + auto& ehlers_state = + static_cast&>(state); + + return {&ehlers_state.damage.kappa_d(), 1}; }}, {"damage.value", 1, [](typename MechanicsBase< @@ -733,6 +742,15 @@ SolidEhlers::getInternalVariables() const cache.resize(1); cache.front() = ehlers_state.damage.value(); return cache; + }, + [](typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast const*>( + &state) != nullptr); + auto& ehlers_state = + static_cast&>(state); + + return {&ehlers_state.damage.value(), 1}; }}, {"eps_p.D", KelvinVector::RowsAtCompileTime, [](typename MechanicsBase< @@ -750,6 +768,17 @@ SolidEhlers::getInternalVariables() const ehlers_state.eps_p.D); return cache; + }, + [](typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast const*>( + &state) != nullptr); + auto& ehlers_state = + static_cast&>(state); + + return { + ehlers_state.eps_p.D.data(), + static_cast(KelvinVector::RowsAtCompileTime)}; }}, {"eps_p.V", 1, [](typename MechanicsBase< @@ -763,6 +792,15 @@ SolidEhlers::getInternalVariables() const cache.resize(1); cache.front() = ehlers_state.eps_p.V; return cache; + }, + [](typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast const*>( + &state) != nullptr); + auto& ehlers_state = + static_cast&>(state); + + return {&ehlers_state.eps_p.V, 1}; }}, {"eps_p.eff", 1, [](typename MechanicsBase< @@ -776,6 +814,15 @@ SolidEhlers::getInternalVariables() const cache.resize(1); cache.front() = ehlers_state.eps_p.eff; return cache; + }, + [](typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast const*>( + &state) != nullptr); + auto& ehlers_state = + static_cast&>(state); + + return {&ehlers_state.eps_p.eff, 1}; }}}; } diff --git a/MaterialLib/SolidModels/Ehlers.h b/MaterialLib/SolidModels/Ehlers.h index cddd1c104f..1ff8c3ed1b 100644 --- a/MaterialLib/SolidModels/Ehlers.h +++ b/MaterialLib/SolidModels/Ehlers.h @@ -209,7 +209,9 @@ public: } double kappa_d() const { return _kappa_d; } + double& kappa_d() { return _kappa_d; } double value() const { return _value; } + double& value() { return _value; } private: double _kappa_d = 0; ///< damage driving variable diff --git a/MaterialLib/SolidModels/MFront/MFront.cpp b/MaterialLib/SolidModels/MFront/MFront.cpp index 08a6d03445..e6cb2b3f01 100644 --- a/MaterialLib/SolidModels/MFront/MFront.cpp +++ b/MaterialLib/SolidModels/MFront/MFront.cpp @@ -431,6 +431,17 @@ MFront::getInternalVariables() const size, begin(cache)); return cache; + }, + [offset, size]( + typename MechanicsBase::MaterialStateVariables& + state) -> BaseLib::DynamicSpan { + assert(dynamic_cast(&state) != + nullptr); + auto& internal_state_variables = + static_cast(state) + ._behaviour_data.s1.internal_state_variables; + + return {internal_state_variables.data() + offset, size}; }}; internal_variables.push_back(new_variable); } diff --git a/MaterialLib/SolidModels/MechanicsBase.h b/MaterialLib/SolidModels/MechanicsBase.h index 936a372be4..684509c0da 100644 --- a/MaterialLib/SolidModels/MechanicsBase.h +++ b/MaterialLib/SolidModels/MechanicsBase.h @@ -9,15 +9,16 @@ #pragma once -#include #include #include +#include #include #include +#include "BaseLib/DynamicSpan.h" #include "BaseLib/Error.h" -#include "MathLib/KelvinVector.h" #include "MaterialLib/MPL/VariableType.h" +#include "MathLib/KelvinVector.h" namespace ParameterLib { @@ -96,6 +97,8 @@ struct MechanicsBase { using Getter = std::function const&( MaterialStateVariables const&, std::vector& /*cache*/)>; + using WriteAccess = std::function( + MaterialStateVariables&)>; /// name of the internal variable std::string const name; @@ -105,6 +108,9 @@ struct MechanicsBase /// function accessing the internal variable Getter const getter; + + /// function accessing the internal variable + WriteAccess const reference; }; /// Returns internal variables defined by the specific material model, if -- GitLab From 4d41ae9fda0b692887b6d1cc0acd581fd59d5972 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Wed, 14 Apr 2021 12:12:18 +0200 Subject: [PATCH 3/8] [PL] IPWriter creation for internal state vars. Similar to the secondary variables function but now for the integration point writers. --- ...olidMaterialInternalToSecondaryVariables.h | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/ProcessLib/Deformation/SolidMaterialInternalToSecondaryVariables.h b/ProcessLib/Deformation/SolidMaterialInternalToSecondaryVariables.h index 40854124ce..759e09cd07 100644 --- a/ProcessLib/Deformation/SolidMaterialInternalToSecondaryVariables.h +++ b/ProcessLib/Deformation/SolidMaterialInternalToSecondaryVariables.h @@ -78,7 +78,56 @@ void solidMaterialInternalToSecondaryVariables( add_secondary_variable(name, num_components, std::move(getIntPtValues)); } - } +template +void solidMaterialInternalVariablesToIntegrationPointWriter( + std::map>> const& solid_materials, + std::vector> const& + local_assemblers, + AddIntegrationPointWriter const& add_integration_point_writer) +{ + // Collect the internal variables for all solid materials. + std::vector::InternalVariable> + internal_variables; + for (auto const& solid_material : solid_materials) + { + auto const ivs = solid_material.second->getInternalVariables(); + copy(begin(ivs), end(ivs), back_inserter(internal_variables)); + } + + // Create integration point writers for each of the internal variables. + for (auto const& internal_variable : internal_variables) + { + auto const& name = internal_variable.name; + auto const& fct = internal_variable.reference; + auto const n_components = internal_variable.num_components; + DBUG("Creating integration point writer for internal variable {:s}.", + name); + + auto get_integration_point_data = [fct, n_components, + &local_assemblers]() { + // Result containing integration point data for each local + // assembler. + std::vector> result; + result.reserve(local_assemblers.size()); + + std::transform(begin(local_assemblers), end(local_assemblers), + back_inserter(result), + [fct, n_components](auto const& local_assembler) { + return local_assembler + ->getMaterialStateVariableInternalState( + fct, n_components); + }); + + return result; + }; + + add_integration_point_writer(name, n_components, + get_integration_point_data); + } +} } // namespace ProcessLib::Deformation -- GitLab From 85e8bea99a1cf2cc58978947843778db83a85d1c Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Mon, 19 Apr 2021 15:45:07 +0200 Subject: [PATCH 4/8] [PL/RM] FEM; Read access to internal state vars. --- .../LocalAssemblerInterface.h | 7 ++++++ .../RichardsMechanicsFEM-impl.h | 17 +++++++++++++ .../RichardsMechanics/RichardsMechanicsFEM.h | 7 ++++++ .../Utils/SetOrGetIntegrationPointData.h | 25 +++++++++++++++++++ 4 files changed, 56 insertions(+) diff --git a/ProcessLib/RichardsMechanics/LocalAssemblerInterface.h b/ProcessLib/RichardsMechanics/LocalAssemblerInterface.h index 37acf893ff..22a37878ba 100644 --- a/ProcessLib/RichardsMechanics/LocalAssemblerInterface.h +++ b/ProcessLib/RichardsMechanics/LocalAssemblerInterface.h @@ -102,6 +102,13 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface, std::vector const& dof_table, std::vector& cache) const = 0; + virtual std::vector getMaterialStateVariableInternalState( + std::function( + typename MaterialLib::Solids::MechanicsBase< + DisplacementDim>::MaterialStateVariables&)> + get_values_span, + int n_components) const = 0; + // TODO move to NumLib::ExtrapolatableElement virtual unsigned getNumberOfIntegrationPoints() const = 0; diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h index 9298114bcd..9efefc8734 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h @@ -1286,6 +1286,23 @@ std::vector const& RichardsMechanicsLocalAssembler< _ip_data, &IpData::eps, cache); } +template +std::vector RichardsMechanicsLocalAssembler< + ShapeFunctionDisplacement, ShapeFunctionPressure, IntegrationMethod, + DisplacementDim>:: + getMaterialStateVariableInternalState( + std::function( + typename MaterialLib::Solids::MechanicsBase< + DisplacementDim>::MaterialStateVariables&)> + get_values_span, + int const n_components) const +{ + return ProcessLib::getIntegrationPointDataMaterialStateVariables( + _ip_data, &IpData::material_state_variables, get_values_span, + n_components); +} + template std::vector const& RichardsMechanicsLocalAssembler< diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h index 447532c28f..fc4c7b9d85 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h @@ -237,6 +237,13 @@ public: std::vector const& dof_table, std::vector& cache) const override; + std::vector getMaterialStateVariableInternalState( + std::function( + typename MaterialLib::Solids::MechanicsBase< + DisplacementDim>::MaterialStateVariables&)> + get_values_span, + int n_components) const override; + std::vector const& getIntPtDryDensitySolid( const double t, std::vector const& x, diff --git a/ProcessLib/Utils/SetOrGetIntegrationPointData.h b/ProcessLib/Utils/SetOrGetIntegrationPointData.h index cb7ef02192..7cf2de3108 100644 --- a/ProcessLib/Utils/SetOrGetIntegrationPointData.h +++ b/ProcessLib/Utils/SetOrGetIntegrationPointData.h @@ -136,4 +136,29 @@ std::size_t setIntegrationPointScalarData( return n_integration_points; } +template +std::vector getIntegrationPointDataMaterialStateVariables( + std::vector> const& + ip_data_vector, + MemberType member, + std::function(MaterialStateVariables&)> + get_values_span, + int const n_components) +{ + std::vector result; + result.reserve(ip_data_vector.size() * n_components); + + for (auto& ip_data : ip_data_vector) + { + auto const values_span = get_values_span(*(ip_data.*member)); + assert(values_span.size == static_cast(n_components)); + + result.insert(end(result), values_span.data, + values_span.data + values_span.size); + } + + return result; +} } // namespace ProcessLib -- GitLab From f47f34ddf58afd46974601a3199e9b45f42e2f2b Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Mon, 19 Apr 2021 15:46:56 +0200 Subject: [PATCH 5/8] [PL] Common function for resetting internal vars. Takes values and copies them to the memory location of the internal variable. --- .../Utils/SetOrGetIntegrationPointData.h | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ProcessLib/Utils/SetOrGetIntegrationPointData.h b/ProcessLib/Utils/SetOrGetIntegrationPointData.h index 7cf2de3108..51aa8691d9 100644 --- a/ProcessLib/Utils/SetOrGetIntegrationPointData.h +++ b/ProcessLib/Utils/SetOrGetIntegrationPointData.h @@ -161,4 +161,26 @@ std::vector getIntegrationPointDataMaterialStateVariables( return result; } + +template +std::size_t setIntegrationPointDataMaterialStateVariables( + double const* values, + std::vector>& ip_data_vector, + MemberType member, + std::function(MaterialStateVariables&)> + get_values_span) +{ + auto const n_integration_points = ip_data_vector.size(); + + std::size_t position = 0; + for (auto& ip_data : ip_data_vector) + { + auto const values_span = get_values_span(*(ip_data.*member)); + std::copy_n(values + position, values_span.size, values_span.data); + position += values_span.size; + } + return n_integration_points; +} } // namespace ProcessLib -- GitLab From 64cb4cf429dcd92f0e12137ebcfec33d6fa13985 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Mon, 19 Apr 2021 15:47:26 +0200 Subject: [PATCH 6/8] [PL/RM] Add IP writers for internal state vars. --- .../RichardsMechanicsProcess.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp index 8a46bc59e8..2ab3465605 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp @@ -334,6 +334,20 @@ void RichardsMechanicsProcess::initializeConcreteProcess( LocalAssemblerIF>(_process_data.solid_materials, add_secondary_variable); + auto add_integration_point_writer = + [&](std::string const& name, int const n_components, auto function) { + _integration_point_writer.emplace_back( + std::make_unique( + "material_state_variable_" + name + "_ip", n_components, + integration_order, function)); + }; + + // Assume all materials have same internal variables. + ProcessLib::Deformation:: + solidMaterialInternalVariablesToIntegrationPointWriter( + _process_data.solid_materials, _local_assemblers, + add_integration_point_writer); + _process_data.element_saturation = MeshLib::getOrCreateMeshProperty( const_cast(mesh), "saturation_avg", MeshLib::MeshItemType::Cell, 1); @@ -398,7 +412,8 @@ void RichardsMechanicsProcess::initializeConcreteProcess( { OGS_FATAL( "No integration points read in the integration point " - "initial conditions set function."); + "initial conditions set function for {:s} variable.", + name); } position += integration_points_read * ip_meta_data.n_components; } -- GitLab From 6a2fbcfc0feec3d65876ed64df66ddcdc8aba9a9 Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Mon, 19 Apr 2021 15:48:08 +0200 Subject: [PATCH 7/8] [PL/RM] FEM; Set IPData for internal state vars. --- .../RichardsMechanicsFEM-impl.h | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h index 9efefc8734..56e0805ec0 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM-impl.h @@ -176,6 +176,31 @@ std::size_t RichardsMechanicsLocalAssembler< return ProcessLib::setIntegrationPointKelvinVectorData( values, _ip_data, &IpData::eps); } + if (name.starts_with("material_state_variable_") && name.ends_with("_ip")) + { + std::string const variable_name = name.substr(24, name.size() - 24 - 3); + DBUG("Setting material state variable '{:s}'", variable_name); + + // Using first ip data for solid material. TODO (naumov) move solid + // material into element, store only material state in IPs. + auto const& internal_variables = + _ip_data[0].solid_material.getInternalVariables(); + if (auto const iv = + std::find_if(begin(internal_variables), end(internal_variables), + [&variable_name](auto const& iv) { + return iv.name == variable_name; + }); + iv != end(internal_variables)) + { + return ProcessLib::setIntegrationPointDataMaterialStateVariables( + values, _ip_data, &IpData::material_state_variables, + iv->reference); + } + + ERR("Could not find variable {:s} in solid material model's internal " + "variables.", + variable_name); + } return 0; } -- GitLab From 1a064ecb19f5fd9cdd3b09347c03f9a9efaa471a Mon Sep 17 00:00:00 2001 From: Dmitri Naumov Date: Mon, 19 Apr 2021 23:55:52 +0200 Subject: [PATCH 8/8] [T/RM] Restart for MFront internal variables. --- ProcessLib/RichardsMechanics/Tests.cmake | 5 + .../mfront_restart_part1.prj | 365 +++++++++++++++++ ...front_restart_part1_ts_1_t_1000.000000.vtu | 58 +++ .../mfront_restart_part2.prj | 374 ++++++++++++++++++ ...front_restart_part2_ts_0_t_1000.000000.vtu | 58 +++ ...front_restart_part2_ts_1_t_2000.000000.vtu | 58 +++ .../square_1x1_quad_1e0_bottom.vtu | 24 ++ .../square_1x1_quad_1e0_left.vtu | 24 ++ .../square_1x1_quad_1e0_right.vtu | 24 ++ .../square_1x1_quad_1e0_top.vtu | 24 ++ 10 files changed, 1014 insertions(+) create mode 100644 Tests/Data/RichardsMechanics/mfront_restart_part1.prj create mode 100644 Tests/Data/RichardsMechanics/mfront_restart_part1_ts_1_t_1000.000000.vtu create mode 100644 Tests/Data/RichardsMechanics/mfront_restart_part2.prj create mode 100644 Tests/Data/RichardsMechanics/mfront_restart_part2_ts_0_t_1000.000000.vtu create mode 100644 Tests/Data/RichardsMechanics/mfront_restart_part2_ts_1_t_2000.000000.vtu create mode 100644 Tests/Data/RichardsMechanics/square_1x1_quad_1e0_bottom.vtu create mode 100644 Tests/Data/RichardsMechanics/square_1x1_quad_1e0_left.vtu create mode 100644 Tests/Data/RichardsMechanics/square_1x1_quad_1e0_right.vtu create mode 100644 Tests/Data/RichardsMechanics/square_1x1_quad_1e0_top.vtu diff --git a/ProcessLib/RichardsMechanics/Tests.cmake b/ProcessLib/RichardsMechanics/Tests.cmake index 9d9e36b35a..7824202808 100644 --- a/ProcessLib/RichardsMechanics/Tests.cmake +++ b/ProcessLib/RichardsMechanics/Tests.cmake @@ -23,6 +23,11 @@ if (NOT OGS_USE_MPI) OgsTest(PROJECTFILE RichardsMechanics/LiakopoulosHM/liakopoulos_QN.prj RUNTIME 50) endif() +if (NOT OGS_USE_MPI AND OGS_USE_MFRONT) + OgsTest(PROJECTFILE RichardsMechanics/mfront_restart_part1.prj RUNTIME 1) + OgsTest(PROJECTFILE RichardsMechanics/mfront_restart_part2.prj RUNTIME 1) +endif() + AddTest( NAME RichardsMechanics_square_1e2_confined_compression_restart PATH RichardsMechanics diff --git a/Tests/Data/RichardsMechanics/mfront_restart_part1.prj b/Tests/Data/RichardsMechanics/mfront_restart_part1.prj new file mode 100644 index 0000000000..dab3c4ca04 --- /dev/null +++ b/Tests/Data/RichardsMechanics/mfront_restart_part1.prj @@ -0,0 +1,365 @@ + + + + square_1x1_quad_1e0.vtu + square_1x1_quad_1e0_left.vtu + square_1x1_quad_1e0_right.vtu + square_1x1_quad_1e0_top.vtu + square_1x1_quad_1e0_bottom.vtu + + + + RM + RICHARDS_MECHANICS + 2 + 2 + + Analytical + + + MFront + ModCamClay_semiExplParaInit + + + + + + + + + + + + pressure + displacement + + + + + + + + + + + + + + 0 0 + sigma0 + false + true + + + + + + + AqueousLiquid + + + viscosity + Constant + 1e-3 + + + density + Constant + 1e3 + + + + + Solid + + + density + Constant + 2780.0 + + + + + + + permeability + Constant + 1e-12 + + + porosity + PorosityFromMassBalance + phi0 + 0 + 1 + + + reference_temperature + Constant + 293.15 + + + relative_permeability + RelativePermeabilityVanGenuchten + 0.0 + 0 + 0.01 + 1e-2 + + + saturation + SaturationVanGenuchten + 0.0 + 0 + 0.4 + 1e4 + + + bishops_effective_stress + BishopsPowerLaw + 1 + + + biot_coefficient + Constant + 1.0 + + + + + + + + basic_newton + + PerComponentDeltaX + NORM2 + 1e-10 1e0 1e-9 + + false + + BackwardEuler + + + IterationNumberBasedTimeStepping + 0 + 1000 + 1000 + 100 + 1e5 + 1 5 10 15 + 1.2 1.0 0.8 0.6 + + + + + VTK + mfront_restart_part1 + _ts_{:timestep}_t_{:time} + + + 1 + 1 + + + + displacement + pressure + sigma + epsilon + velocity + saturation + porosity + + + + + + + sigma0 + Function + -5e3 + -5e3 + -5e3 + 0 + + + YoungModulus + Constant + 52e6 + + + PoissonRatio + Constant + 0.3 + + + CriticalStateLineSlope + Constant + 1.2 + + + SwellingLineSlope + Constant + 6.6e-3 + + + VirginConsolidationLineSlope + Constant + 7.7e-2 + + + InitialPreConsolidationPressure + Constant + 2e5 + + + InitialPorosity + Constant + 0.44 + + + + rho_sr + Constant + 0 + + + displacement0 + Constant + 0 0 + + + zero + Constant + 0.0 + + + phi0 + Constant + 0.432 + + + top_pressure + Constant + -1e5 + + + pressure_ic + Constant + -5e3 + + + + + displacement + 2 + 1 + displacement0 + + + + square_1x1_quad_1e0_left + Dirichlet + 0 + zero + + + + square_1x1_quad_1e0_bottom + Dirichlet + 1 + zero + + + + square_1x1_quad_1e0_top + Neumann + 1 + top_pressure + + + + square_1x1_quad_1e0_right + Dirichlet + 0 + zero + + + + + pressure + 1 + 1 + pressure_ic + + + square_1x1_quad_1e0_top + Dirichlet + pressure_ic + + + + + + + basic_newton + Newton + 60 + general_linear_solver + + + + + general_linear_solver + + SparseLU + true + + + + + + mfront_restart_part1_ts_.*_t_.*.vtu + displacement + 2e-14 + 0 + + + mfront_restart_part1_ts_.*_t_.*.vtu + sigma + 1e-9 + 0 + + + mfront_restart_part1_ts_.*_t_.*.vtu + epsilon + 1e-15 + 0 + + + mfront_restart_part1_ts_.*_t_.*.vtu + pressure + 1e-15 + 1e-15 + + + mfront_restart_part1_ts_.*_t_.*.vtu + velocity + 1e-15 + 1e-15 + + + mfront_restart_part1_ts_.*_t_.*.vtu + HydraulicFlow + 1e-15 + 0 + + + mfront_restart_part1_ts_.*_t_.*.vtu + NodalForces + 1e-10 + 0 + + + diff --git a/Tests/Data/RichardsMechanics/mfront_restart_part1_ts_1_t_1000.000000.vtu b/Tests/Data/RichardsMechanics/mfront_restart_part1_ts_1_t_1000.000000.vtu new file mode 100644 index 0000000000..36efeec1ce --- /dev/null +++ b/Tests/Data/RichardsMechanics/mfront_restart_part1_ts_1_t_1000.000000.vtu @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _AQAAAAAAAAAAgAAAAAAAAJUEAAAAAAAA5gAAAAAAAAA=eF61kjFPAzEMhf9L5i4gpltR9xMgFoQstzUnS0kcbKeoqvrfSSkLQxuk9rY4lr/n95J94Ow0KTpLhiKtAlTFnYXhbf+nKbohDcP9ImRMFIZgPCUELqHd1LQiBfmAtaQimbI3wMNh0UOg19/eBc5dl1NExdh311FcMVtDOdyGZ18UI+cJzJXMrouKinG8nFMfktBJGWPbqJ1gi61YRYJlRHNeP7cEeC6Jz8pbjA0z/lesn/A5sVHpUbJJ5M3P5HjMvyrNpHYy9CqxJnKd2dpNvuY5+snD03FqHoEXTp1XeD98AzuXtOw=AQAAAAAAAAAAgAAAAAAAABQAAAAAAAAAHAAAAAAAAAA=eF4z0zPRM9C1MNVNT0sxMje1sDSwMAUAL1kEmw==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAANAAAAAAAAAA=eF5jYICAlSyhjwrdwvdDuQz7ueQZjnn82Q3jo8ufsa5Pm7dAbA+Mv5qAfnR5mH4ABuUeGw==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAALgAAAAAAAAA=eF5r3SuaZqHFsn/qptalh5+H72+B8hnAgGVPK155Bbj8dAL6scsr7AEAXCAvDQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF7L1Hqw4pX0HftMHDQAFtcQ7Q==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYACCLA5HBhw0ACfsAs0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYAACh34HBhw0ADtoBD0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF57JPCC6Xn7H/tHOGgAKqcSFQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF4rY7wpu2zGbfsyHDQA89wPFQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAHAAAAAAAAAA=eF5bcvYZq8XBN/Zf9k1Xctj8xn4JGh8AMA8SEw==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAPgAAAAAAAAA=eF5bwNd4xtnh+QH+idPyltT/PLAAyl/YUBlx7faEvQtwyM+Z9fVz2M9VexdB+UJQ+UVo+nHJw/QDAOGFSL8=AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF67ee578OOlt+1v4qABeMsWTQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAASwAAAAAAAAA=eF5r2iuaZqHFsn/iptalh5+H72+E8hdsMWHZoXF/dwOUPwkqXw/lF0Dl66D8Pqg8jB8Rdc9+F5vKnlYofwZUvgXKj4LKAwDZXjplAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAIAAAAAAAAAA=eF5jYAAChV4bBjA9w6bhQU7chOeu+1vBdOh+AHeiCz0=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAOAAAAAAAAAA=eF5jYACBhbYmUT9E/kz46SBhGV3FN4HhoCmYz+kIlmYosDWGyB/4yenH2dDLcNAMIn8QAK1AF9g=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAGQAAAAAAAAA=eF5jYCAOrGAJfVToFr4fxl8D5QMAWu4HZQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAFQAAAAAAAAA=eF6z/W7rqLp1hoMVGu0EpQHgjA2QAQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAOgAAAAAAAAA=eF5jYICApSyhjwrdwvdDuQwP2i6Hp3Bc2w3jL0OTP4AmvwBNnvsY50LPIJk9MP4aNHkeqDwAXIcdjw==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF4rYLwpu2zGbfs8KJ0LpUuhNADxxA79AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF7z3PXDYIvC5gOeUJoBBDoQNADwLAzbAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF7z3PXDYIvC5gOeUJoBBDoQNADwLAzbAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAHgAAAAAAAAA=eF5b4dX7OOTYG/slUPqR40cX5XVv7F9DaQAvQxH8AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAASQAAAAAAAAA=eF6bzdd4xtnh+QH2idPyltT/PDAbyr9U7MZ23zlr71wonwcqD+NvgMrPgPLZoPIw/tWfz8SbHm7YuwjKF4LKw/jXoPIA7UZFxQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGQAAAAAAAAA=eF67eu578OOlt+0vQekLUPoWlAYAdxsWOg==AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAGgAAAAAAAAA=eF5jYICAO4WTGJn3C9oxEMl/COUDAFsbC8o=AQAAAAAAAAAAgAAAAAAAAAQAAAAAAAAADAAAAAAAAAA=eF5jYGBgAAAABAABAQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF4rY7wpu2zGbXsAD7sDxg==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF7zcbMXsdn1xh4AC2UDBw==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAJAAAAAAAAAA=eF5bwNd4xtnh+QGBidPyltT/PLAAyi/TlRRYuHnhXgALqBBKAQAAAAAAAAAAgAAAAAAAAGAAAAAAAAAAFQAAAAAAAAA=eF5jYMAHPtjjlcaQh/ER4gCW5AS9AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF5jYIAARijNDKWZoDQAAHgABw==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACwAAAAAAAAA=eF5jYYAAAAAoAAU=AQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACQAAAAAAAAA=eF7jBAAACgAK + + diff --git a/Tests/Data/RichardsMechanics/mfront_restart_part2.prj b/Tests/Data/RichardsMechanics/mfront_restart_part2.prj new file mode 100644 index 0000000000..eba24f51e2 --- /dev/null +++ b/Tests/Data/RichardsMechanics/mfront_restart_part2.prj @@ -0,0 +1,374 @@ + + + + mfront_restart_part1_ts_1_t_1000.000000.vtu + square_1x1_quad_1e0_left.vtu + square_1x1_quad_1e0_right.vtu + square_1x1_quad_1e0_top.vtu + square_1x1_quad_1e0_bottom.vtu + + + + RM + RICHARDS_MECHANICS + 2 + 2 + + Analytical + + + MFront + ModCamClay_semiExplParaInit + + + + + + + + + + + + pressure + displacement + + + + + + + + + + + + + + 0 0 + false + true + + + + + + + AqueousLiquid + + + viscosity + Constant + 1e-3 + + + density + Constant + 1e3 + + + + + Solid + + + density + Constant + 2780.0 + + + + + + + permeability + Constant + 1e-12 + + + porosity + PorosityFromMassBalance + phi0 + 0 + 1 + + + reference_temperature + Constant + 293.15 + + + relative_permeability + RelativePermeabilityVanGenuchten + 0.0 + 0 + 0.01 + 1e-2 + + + saturation + SaturationVanGenuchten + 0.0 + 0 + 0.4 + 1e4 + + + bishops_effective_stress + BishopsPowerLaw + 1 + + + biot_coefficient + Constant + 1.0 + + + + + + + + basic_newton + + PerComponentDeltaX + NORM2 + 1e-10 1e0 1e-9 + + false + + BackwardEuler + + + IterationNumberBasedTimeStepping + 1000 + 2000 + 1000 + 100 + 1e5 + 1 5 10 15 + 1.2 1.0 0.8 0.6 + + + + + VTK + mfront_restart_part2 + _ts_{:timestep}_t_{:time} + + + 1 + 1 + + + + displacement + pressure + sigma + epsilon + velocity + saturation + porosity + + + + + + + sigma0 + Function + -5e3 + -5e3 + -5e3 + 0 + + + YoungModulus + Constant + 52e6 + + + PoissonRatio + Constant + 0.3 + + + CriticalStateLineSlope + Constant + 1.2 + + + SwellingLineSlope + Constant + 6.6e-3 + + + VirginConsolidationLineSlope + Constant + 7.7e-2 + + + InitialPreConsolidationPressure + Constant + 2e5 + + + InitialPorosity + Constant + 0.44 + + + + rho_sr + Constant + 0 + + + displacement0 + MeshNode + displacement + + + zero + Constant + 0.0 + + + phi0 + Constant + 0.432 + + + top_pressure + Constant + -1e5 + + + pressure_ic + MeshNode + pressure + + + pressure_bc + Constant + -5e3 + + + + + displacement + 2 + 1 + displacement0 + + + + square_1x1_quad_1e0_left + Dirichlet + 0 + zero + + + + square_1x1_quad_1e0_bottom + Dirichlet + 1 + zero + + + + square_1x1_quad_1e0_top + Neumann + 1 + top_pressure + + + + square_1x1_quad_1e0_right + Dirichlet + 0 + zero + + + + + pressure + 1 + 1 + pressure_ic + + + square_1x1_quad_1e0_top + Dirichlet + pressure_bc + + + square_1x1_quad_1e0_bottom + Dirichlet + pressure_bc + + + + + + + basic_newton + Newton + 60 + general_linear_solver + + + + + general_linear_solver + + SparseLU + true + + + + + + mfront_restart_part2_ts_.*_t_.*.vtu + displacement + 2e-14 + 0 + + + mfront_restart_part2_ts_.*_t_.*.vtu + sigma + 1e-9 + 0 + + + mfront_restart_part2_ts_.*_t_.*.vtu + epsilon + 1e-15 + 0 + + + mfront_restart_part2_ts_.*_t_.*.vtu + pressure + 1e-15 + 1e-15 + + + mfront_restart_part2_ts_.*_t_.*.vtu + velocity + 1e-15 + 1e-15 + + + mfront_restart_part2_ts_.*_t_.*.vtu + HydraulicFlow + 1e-15 + 0 + + + mfront_restart_part2_ts_.*_t_.*.vtu + NodalForces + 1e-10 + 0 + + + diff --git a/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_0_t_1000.000000.vtu b/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_0_t_1000.000000.vtu new file mode 100644 index 0000000000..b1db4a24e6 --- /dev/null +++ b/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_0_t_1000.000000.vtu @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _AQAAAAAAAAAAgAAAAAAAAJUEAAAAAAAA5gAAAAAAAAA=eF61kjFPAzEMhf9L5i4gpltR9xMgFoQstzUnS0kcbKeoqvrfSSkLQxuk9rY4lr/n95J94Ow0KTpLhiKtAlTFnYXhbf+nKbohDcP9ImRMFIZgPCUELqHd1LQiBfmAtaQimbI3wMNh0UOg19/eBc5dl1NExdh311FcMVtDOdyGZ18UI+cJzJXMrouKinG8nFMfktBJGWPbqJ1gi61YRYJlRHNeP7cEeC6Jz8pbjA0z/lesn/A5sVHpUbJJ5M3P5HjMvyrNpHYy9CqxJnKd2dpNvuY5+snD03FqHoEXTp1XeD98AzuXtOw=AQAAAAAAAAAAgAAAAAAAABoAAAAAAAAAIgAAAAAAAAA=eF4z0zPRM9A1t9BNTzU3N0lJSUlKs9BLySwqqQQAWPwHtA==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAANAAAAAAAAAA=eF5jYICAlSyhjwrdwvdDuQz7ueQZjnn82Q3jo8ufsa5Pm7dAbA+Mv5qAfnR5mH4ABuUeGw==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAALgAAAAAAAAA=eF5r3SuaZqHFsn/qptalh5+H72+B8hnAgGVPK155Bbj8dAL6scsr7AEAXCAvDQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF7L1Hqw4pX0HftMHDQAFtcQ7Q==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYACCLA5HBhw0ACfsAs0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYAACj34HBhw0AD1IBF0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF57JPCC6Xn7H/tHOGgAKqcSFQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF4rY7wpu2zGbfsyHDQA89wPFQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAHAAAAAAAAAA=eF5bcvYZq8XBN/Zf9k1Xctj8xn4JGh8AMA8SEw==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAPgAAAAAAAAA=eF5bwNd4xtnh+QH+idPyltT/PLAAyl/YUBlx7faEvQtwyM+Z9fVz2M9VexdB+UJQ+UVo+nHJw/QDAOGFSL8=AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF67ee578OOlt+1v4qABeMsWTQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAASwAAAAAAAAA=eF5r2iuaZqHFsn/iptalh5+H72+E8hdsMWHZoXF/dwOUPwkqXw/lF0Dl66D8Pqg8jB8Rdc9+F5vKnlYofwZUvgXKj4LKAwDZXjplAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAIAAAAAAAAAA=eF5jYAAChV4bBjA9w6bhQU7chOeu+1vBdOh+AHeiCz0=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAOAAAAAAAAAA=eF5jYACBhbYmUT9E/kz46SBhGV3FN4HhoCmYz+kIlmYosDWGyB/4yenH2dDLcNAMIn8QAK1AF9g=AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAGQAAAAAAAAA=eF5jYCAOrGAJfVToFr4fxl8D5QMAWu4HZQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAFQAAAAAAAAA=eF6z/W7rqLp1hoMVGu0EpQHgjA2QAQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAOgAAAAAAAAA=eF5jYICApSyhjwrdwvdDuQwP2i6Hp3Bc2w3jL0OTP4AmvwBNnvsY50LPIJk9MP4aNHkeqDwAXIcdjw==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF4rYLwpu2zGbfs8KJ0LpUuhNADxxA79AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF7z3PXDYIvC5gOeUJoBBDoQNADwLAzbAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF7z3PXDYIvC5gOeUJoBBDoQNADwLAzbAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAHgAAAAAAAAA=eF5b4dX7OOTYG/slUPqR40cX5XVv7F9DaQAvQxH8AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAASQAAAAAAAAA=eF6bzdd4xtnh+QH2idPyltT/PDAbyr9U7MZ23zlr71wonwcqD+NvgMrPgPLZoPIw/tWfz8SbHm7YuwjKF4LKw/jXoPIA7UZFxQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGQAAAAAAAAA=eF67eu578OOlt+0vQekLUPoWlAYAdxsWOg==AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAHgAAAAAAAAA=eF5jYICAR4WTGJn3C9pBuQzH0Pjo8qehfABY2wuqAQAAAAAAAAAAgAAAAAAAAAQAAAAAAAAADAAAAAAAAAA=eF5jYGBgAAAABAABAQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF4rY7wpu2zGbXsAD7sDxg==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF7zcbMXsdn1xh4AC2UDBw==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAJAAAAAAAAAA=eF5bwNd4xtnh+QGBidPyltT/PLAAyi/TlRRYuHnhXgALqBBKAQAAAAAAAAAAgAAAAAAAAGAAAAAAAAAAFQAAAAAAAAA=eF5jYMAHPtjjlcaQh/ER4gCW5AS9AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF5jYIAARijNDKWZoDQAAHgABw==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACwAAAAAAAAA=eF5jYYAAAAAoAAU=AQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACQAAAAAAAAA=eF7jBAAACgAK + + diff --git a/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_1_t_2000.000000.vtu b/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_1_t_2000.000000.vtu new file mode 100644 index 0000000000..8644acfc46 --- /dev/null +++ b/Tests/Data/RichardsMechanics/mfront_restart_part2_ts_1_t_2000.000000.vtu @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _AQAAAAAAAAAAgAAAAAAAAJUEAAAAAAAA5gAAAAAAAAA=eF61kjFPAzEMhf9L5i4gpltR9xMgFoQstzUnS0kcbKeoqvrfSSkLQxuk9rY4lr/n95J94Ow0KTpLhiKtAlTFnYXhbf+nKbohDcP9ImRMFIZgPCUELqHd1LQiBfmAtaQimbI3wMNh0UOg19/eBc5dl1NExdh311FcMVtDOdyGZ18UI+cJzJXMrouKinG8nFMfktBJGWPbqJ1gi61YRYJlRHNeP7cEeC6Jz8pbjA0z/lesn/A5sVHpUbJJ5M3P5HjMvyrNpHYy9CqxJnKd2dpNvuY5+snD03FqHoEXTp1XeD98AzuXtOw=AQAAAAAAAAAAgAAAAAAAABoAAAAAAAAAIgAAAAAAAAA=eF4z0zPRM9A1t9BNTzU3N0lJSUlKs9BLySwqqQQAWPwHtA==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAGQAAAAAAAAA=eF5jYICAFpWthic8wvcz4AC0kgcA830O0Q==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAIQAAAAAAAAA=eF5r3SuaZqHFsr/g0tMvkq/C97dA+QxQ0EpjeQDHgSvdAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF4rrIyIfCl9x74QBw0A9UAO6Q==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYACCLA5HBhw0ACfsAs0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYAACh/kODDhoAD7oBH0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF5bfEfvx9P2P/aLcdAAYA8VMQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF57L9d2csmM2/bvcdAAOC8SyQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF5rkzPkV1r3xr4NBw0AtmALfQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAIQAAAAAAAAA=eF5j1jq/K8rp+YF10XNaRJp+HmCG8hmggJnG8gAptzGpAQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF67ee578OOlt+1v4qABeMsWTQ==AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAANQAAAAAAAAA=eF5r2iuaZqHFsj/n0tMvkq/C9zdC+QxQ0ADlZ0Hl69Hk69D016HJt0L5BVD5FjR5ALmRK7I=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAACwAAAAAAAAA=eF5jYMAPAAAgAAE=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAJAAAAAAAAAA=eF7bb1pbvP+u6/4DYDp0/+3X682Teybu+/sMRC/cBwA0UBMbAQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAMAAAAAAAAAA=eF5jYACCB7ttDaN+iPyZ8NOhSkZfZHoPw0EzMJ/TESTNcGA7TP5AJar8QQAEsxmiAQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAFgAAAAAAAAA=eF5jYCAOtKhsNTzhEb4fnQ8AWugHaQ==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF6rs7DUUNs6w6EKSldC6SYoDQC0ZAskAQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAAHQAAAAAAAAA=eF5jYICARpWthic8wvcz4AB1FMq34JAHAO61DsI=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGQAAAAAAAAA=eF57Kdd2csmM2/bPofQLKP0OSgMANjcSsw==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYACCjs0HGHDQAG4oB+0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEQAAAAAAAAA=eF5jYACCjs0HGHDQAG4oB+0=AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGAAAAAAAAAA=eF5rlDPkV1r3xr4OStdC6TYoDQC0cAtnAQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAANQAAAAAAAAA=eF5j0Dq/K8rp+YGV0XNaRJp+HmCA8hmg4I8mhL8CKg/jo8svwyHPDDVvLVSeGc18ADe6NW8=AQAAAAAAAAAAgAAAAAAAAIAAAAAAAAAADAAAAAAAAAA=eF5jYBhYAAAAgAABAQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAGQAAAAAAAAA=eF67eu578OOlt+0vQekLUPoWlAYAdxsWOg==AQAAAAAAAAAAgAAAAAAAAEAAAAAAAAAAJQAAAAAAAAA=eF5jYIAADWGxXfPeKu2Gchm8Ny8Xb/VkgfNV0eTjoPIAfWkNiQ==AQAAAAAAAAAAgAAAAAAAAAQAAAAAAAAADAAAAAAAAAA=eF5jYGBgAAAABAABAQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF57L9d2csmM2/YAFbAEsw==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAAEAAAAAAAAAA=eF5rkzPkV1r3xh4ACyQC4A==AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAHgAAAAAAAAA=eF5j1jq/K8rp+YF10XNaRJp+HmCG8hmgAAD2XQxrAQAAAAAAAAAAgAAAAAAAAGAAAAAAAAAAFQAAAAAAAAA=eF5jYMAHPtjjlcaQh/ER4gCW5AS9AQAAAAAAAAAAgAAAAAAAACAAAAAAAAAAEwAAAAAAAAA=eF5jYIAARijNDKWZoDQAAHgABw==AQAAAAAAAAAAgAAAAAAAAAgAAAAAAAAACwAAAAAAAAA=eF5jYYAAAAAoAAU=AQAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACQAAAAAAAAA=eF7jBAAACgAK + + diff --git a/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_bottom.vtu b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_bottom.vtu new file mode 100644 index 0000000000..dc1f89b1c6 --- /dev/null +++ b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_bottom.vtu @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + _EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAA==MAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAA==AQAAAAAAAAAD + + diff --git a/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_left.vtu b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_left.vtu new file mode 100644 index 0000000000..d64348a284 --- /dev/null +++ b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_left.vtu @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + _EAAAAAAAAAACAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAA==MAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAA==AQAAAAAAAAAD + + diff --git a/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_right.vtu b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_right.vtu new file mode 100644 index 0000000000..6efe396c27 --- /dev/null +++ b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_right.vtu @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + _EAAAAAAAAAADAAAAAAAAAAEAAAAAAAAACAAAAAAAAAAAAAAAAAAAAA==MAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAADwPwAAAAAAAAAAAAAAAAAAAAA=EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAA==AQAAAAAAAAAD + + diff --git a/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_top.vtu b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_top.vtu new file mode 100644 index 0000000000..7f7fd2d145 --- /dev/null +++ b/Tests/Data/RichardsMechanics/square_1x1_quad_1e0_top.vtu @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + _EAAAAAAAAAADAAAAAAAAAAIAAAAAAAAACAAAAAAAAAAAAAAAAAAAAA==MAAAAAAAAAAAAAAAAADwPwAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAA=EAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACAAAAAAAAAACAAAAAAAAAA==AQAAAAAAAAAD + + -- GitLab