diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp index 585c0d8bba8a3e1c84a5f52b6d1a1bfcd3b74e0f..eb8078e80c549244b5d6b04298676fffbdc82f56 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp @@ -297,11 +297,9 @@ void HydroMechanicsProcess<DisplacementDim>::assembleConcreteProcess( std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; - GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - pv.getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K, + getActiveElementIDs(), dof_table, t, dt, x, x_prev, process_id, M, K, b); } @@ -342,12 +340,10 @@ void HydroMechanicsProcess<DisplacementDim>:: dof_tables.emplace_back(*_local_to_global_index_map); } - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; - GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, - _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, - x_prev, process_id, M, K, b, Jac); + _local_assemblers, getActiveElementIDs(), dof_tables, t, dt, x, x_prev, + process_id, M, K, b, Jac); auto copyRhs = [&](int const variable_id, auto& output_vector) { @@ -383,12 +379,10 @@ void HydroMechanicsProcess<DisplacementDim>::preTimestepConcreteProcess( if (hasMechanicalProcess(process_id)) { - ProcessLib::ProcessVariable const& pv = - getProcessVariables(process_id)[0]; GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerIF::preTimestep, _local_assemblers, - pv.getActiveElementIDs(), *_local_to_global_index_map, - *x[process_id], t, dt); + getActiveElementIDs(), *_local_to_global_index_map, *x[process_id], + t, dt); } } @@ -412,11 +406,10 @@ void HydroMechanicsProcess<DisplacementDim>::postTimestepConcreteProcess( dof_tables.push_back(&getDOFTable(process_id)); } - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerIF::postTimestep, _local_assemblers, - pv.getActiveElementIDs(), dof_tables, x, x_prev, t, dt, - false /*unused*/, process_id); + getActiveElementIDs(), dof_tables, x, x_prev, t, dt, false /*unused*/, + process_id); } template <int DisplacementDim> @@ -428,10 +421,9 @@ void HydroMechanicsProcess<DisplacementDim>::postNonLinearSolverConcreteProcess( DBUG("PostNonLinearSolver HydroMechanicsProcess."); // Calculate strain, stress or other internal variables of mechanics. - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerIF::postNonLinearSolver, _local_assemblers, - pv.getActiveElementIDs(), getDOFTable(process_id), x, x_prev, t, dt, + getActiveElementIDs(), getDOFTable(process_id), x, x_prev, t, dt, false /*unused*/, process_id); } @@ -448,10 +440,9 @@ void HydroMechanicsProcess<DisplacementDim>:: DBUG("Set initial conditions of HydroMechanicsProcess."); - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerIF::setInitialConditions, _local_assemblers, - pv.getActiveElementIDs(), getDOFTable(process_id), *x[process_id], t, + getActiveElementIDs(), getDOFTable(process_id), *x[process_id], t, _process_data.isMonolithicSchemeUsed(), process_id); } @@ -474,10 +465,9 @@ void HydroMechanicsProcess<DisplacementDim>::computeSecondaryVariableConcrete( dof_tables.push_back(&getDOFTable(process_id)); } - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerIF::computeSecondaryVariable, _local_assemblers, - pv.getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id); + getActiveElementIDs(), dof_tables, t, dt, x, x_prev, process_id); } template <int DisplacementDim> diff --git a/ProcessLib/HydroMechanics/Tests.cmake b/ProcessLib/HydroMechanics/Tests.cmake index fdbefd469a6210bf279a403de778c356ce99a6e2..6d234d2be61b16ea9b664061e5e516bb8f38d505 100644 --- a/ProcessLib/HydroMechanics/Tests.cmake +++ b/ProcessLib/HydroMechanics/Tests.cmake @@ -320,6 +320,21 @@ AddTest( output_ts_1_t_1.000000.vtu output_ts_1_t_1.000000.vtu principal_stress_values principal_stress_values 0 1e-10 ) +AddTest( + NAME HydroMechanics_hydraulic_deactivation + PATH HydroMechanics/HydraulicDeactivation + EXECUTABLE ogs + EXECUTABLE_ARGS simHM_deactivate_H.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT OGS_USE_MPI + DIFF_DATA + hydraulic_deactivation_ts_1_t_1e+00.vtu hydraulic_deactivation_ts_1_t_1e+00.vtu pressure pressure 0 1e-12 + hydraulic_deactivation_ts_1_t_1e+00.vtu hydraulic_deactivation_ts_1_t_1e+00.vtu displacement displacement 1e-14 0 + hydraulic_deactivation_ts_1_t_1e+00.vtu hydraulic_deactivation_ts_1_t_1e+00.vtu sigma sigma 1e-10 0 + hydraulic_deactivation_ts_1_t_1e+00.vtu hydraulic_deactivation_ts_1_t_1e+00.vtu epsilon epsilon 1e-14 0 +) + ## Tests for Ideal gas # flow_no_strain AddTest( diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp index 9004b0840ccfb9fbbdafe48e516c014d1fbdf8e2..e0a8ee0c38c79cc74a62dbe3d806ccdd474695c9 100644 --- a/ProcessLib/Process.cpp +++ b/ProcessLib/Process.cpp @@ -10,6 +10,11 @@ #include "Process.h" +#include <range/v3/algorithm/any_of.hpp> +#include <range/v3/algorithm/set_algorithm.hpp> +#include <range/v3/view/drop.hpp> +#include <range/v3/view/transform.hpp> + #include "NumLib/DOF/ComputeSparsityPattern.h" #include "NumLib/Extrapolation/LocalLinearLeastSquaresExtrapolator.h" #include "NumLib/ODESolver/ConvergenceCriterionPerComponent.h" @@ -202,6 +207,37 @@ void Process::updateDeactivatedSubdomains(double const time, { variable.get().updateDeactivatedSubdomains(time); } + + _ids_of_active_elements.clear(); + + auto active_elements_ids = ranges::views::transform( + [](auto const& variable) + { return variable.get().getActiveElementIDs(); }); + + // Early return if there's any process variable with all elements active. + if (ranges::any_of(variables_per_process | active_elements_ids, + [](auto const& vector) { return vector.empty(); })) + { + return; + } + + // Some process variable has deactivated elements. Create union of active + // ids. + + _ids_of_active_elements = // there is at least one process variable. + variables_per_process[0].get().getActiveElementIDs(); + + for (auto const& pv_active_element_ids : + variables_per_process | ranges::views::drop(1) | active_elements_ids) + { + std::vector<std::size_t> new_active_elements; + new_active_elements.reserve(_ids_of_active_elements.size() + + pv_active_element_ids.size()); + ranges::set_union(_ids_of_active_elements, pv_active_element_ids, + std::back_inserter(new_active_elements)); + + _ids_of_active_elements = std::move(new_active_elements); + } } void Process::preAssemble(const double t, double const dt, diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h index ad90e756c2bee1902c78f059f325a44a6e6da35f..dcf6f2b0ad71f780707d4f9f7ce0c585c96e51fa 100644 --- a/ProcessLib/Process.h +++ b/ProcessLib/Process.h @@ -157,6 +157,11 @@ public: return _process_variables[process_id]; } + std::vector<std::size_t> const& getActiveElementIDs() const + { + return _ids_of_active_elements; + } + SecondaryVariableCollection const& getSecondaryVariables() const { return _secondary_variables; @@ -393,6 +398,9 @@ private: std::vector<SourceTermCollection> _source_term_collections; ExtrapolatorData _extrapolator_data; + + /// Union of active element ids per process variable + std::vector<std::size_t> _ids_of_active_elements; }; } // namespace ProcessLib diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/hydraulic_deactivation_ts_1_t_1e+00.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/hydraulic_deactivation_ts_1_t_1e+00.vtu new file mode 100644 index 0000000000000000000000000000000000000000..c5a0da9e8e9c4dccb869946239f0c8101ffcb294 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/hydraulic_deactivation_ts_1_t_1e+00.vtu @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64" compressor="vtkZLibDataCompressor"> + <UnstructuredGrid> + <FieldData> + <DataArray type="Int8" Name="IntegrationPointMetaData" NumberOfTuples="166" format="appended" RangeMin="34" RangeMax="125" offset="0" /> + <DataArray type="Int8" Name="OGS_VERSION" NumberOfTuples="24" format="appended" RangeMin="45" RangeMax="121" offset="176" /> + <DataArray type="Float64" Name="epsilon_ip" NumberOfComponents="4" NumberOfTuples="60" format="appended" RangeMin="1.8582926052e-08" RangeMax="0.00013530325714" offset="264" /> + <DataArray type="Float64" Name="sigma_ip" NumberOfComponents="4" NumberOfTuples="60" format="appended" RangeMin="2.9251501014" RangeMax="21298.170979" offset="1224" /> + </FieldData> + <Piece NumberOfPoints="32" NumberOfCells="15" > + <PointData> + <DataArray type="Float64" Name="MassFlowRate" format="appended" RangeMin="-0.00096157952648" RangeMax="3.7773603689e-15" offset="2344" /> + <DataArray type="Float64" Name="NodalForces" NumberOfComponents="2" format="appended" RangeMin="17.056813113" RangeMax="11845.680641" offset="2616" /> + <DataArray type="Float64" Name="displacement" NumberOfComponents="2" format="appended" RangeMin="0" RangeMax="3.9832379075e-05" offset="3072" /> + <DataArray type="Float64" Name="epsilon" NumberOfComponents="4" format="appended" RangeMin="1.8582926052e-08" RangeMax="0.0001292304" offset="3376" /> + <DataArray type="UInt64" Name="original_node_number" format="appended" RangeMin="0" RangeMax="31" offset="4072" /> + <DataArray type="Float64" Name="pressure" format="appended" RangeMin="0" RangeMax="23154.828264" offset="4204" /> + <DataArray type="Float64" Name="pressure_interpolated" format="appended" RangeMin="0" RangeMax="23154.828264" offset="4436" /> + <DataArray type="Float64" Name="sigma" NumberOfComponents="4" format="appended" RangeMin="2.9251501014" RangeMax="20342.238709" offset="4668" /> + </PointData> + <CellData> + <DataArray type="Int32" Name="MaterialIDs" format="appended" RangeMin="0" RangeMax="4" offset="5572" /> + <DataArray type="Float64" Name="permeability" NumberOfComponents="4" format="appended" RangeMin="1.7320508076e-14" RangeMax="1.7320508076e-14" offset="5648" /> + <DataArray type="UInt8" Name="pressure_active" format="appended" RangeMin="0" RangeMax="1" offset="5732" /> + <DataArray type="Float64" Name="principal_stress_values" NumberOfComponents="3" format="appended" RangeMin="2.9251501014" RangeMax="21298.170979" offset="5800" /> + <DataArray type="Float64" Name="principal_stress_vector_1" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="6188" /> + <DataArray type="Float64" Name="principal_stress_vector_2" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="6340" /> + <DataArray type="Float64" Name="principal_stress_vector_3" NumberOfComponents="3" format="appended" RangeMin="1" RangeMax="1" offset="6496" /> + </CellData> + <Points> + <DataArray type="Float64" Name="Points" NumberOfComponents="3" format="appended" RangeMin="0" RangeMax="1.4142135624" offset="6568" /> + </Points> + <Cells> + <DataArray type="Int64" Name="connectivity" format="appended" RangeMin="" RangeMax="" offset="6820" /> + <DataArray type="Int64" Name="offsets" format="appended" RangeMin="" RangeMax="" offset="6984" /> + <DataArray type="UInt8" Name="types" format="appended" RangeMin="" RangeMax="" offset="7092" /> + </Cells> + </Piece> + </UnstructuredGrid> + <AppendedData encoding="base64"> + _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eF4txbUBgwAAADDcrUVa/P8vGUiWBMErdOTYiVNnzl24dOXajVt37j34469HT569+Oe/V2/effj05dsPq4AB8Q==AQAAAAAAAAAAgAAAAAAAAAABAAAAAAAAiwAAAAAAAAA=eF5bFu/BtHXONYcFUHrW3mU727lOOkyD0pw/Nwk93nXAgRdKC3LzvuuX2uXABqXv9UZXnfmxyOEalGZAA6e/lm181nPVQdj3o2j86csOx6B8PigfXT06WBZeet+S74QDK+OWLlafow5LoXwmKJ+Q/ii1UINEo+UOBfuV86a9n+5QAeXvhvIBvTRUIQ==AQAAAAAAAAAAgAAAAAAAAAABAAAAAAAAiwAAAAAAAAA=eF5bFu/BtHXONYcFUHrW3mU727lOOkyD0pw/Nwk93nXAgRdKC3LzvuuX2uXABqXv9UZXnfmxyOEalGZAA6e/lm181nPVQdj3o2j86csOx6B8PigfXT06WBZeet+S74QDK+OWLlafow5LoXwmKJ+Q/ii1UINEo+UOBfuV86a9n+5QAeXvhvIBvTRUIQ==AQAAAAAAAAAAgAAAAAAAAAAEAAAAAAAAhQIAAAAAAAA=eF51zm9MzHEcB/CKYtxKxjh/Ck+Kq3WVKXWfSHFddLtOk+3uUt0iEdfV7zI2Hc6hB4Xa9YcstJquFkt/1flo2Kkt1U5kZ6zNtZKus6xEIvf9etDW98l3r73f7+1jXmsq9vWQok/LuTHrUQWaiUejyxxefUhsyyGeaLbn1Ht59rwiqkcon3qEq6vLtB6Tz5HaR7LeGmKLhXJid5JTd/PC88oKxNAfced3iaUWQWze6pfxDKmDw/TKuvR4eEPMIzl1w3SlqOlSHGxbGrqszfUuaq9Zl2st9UjNGtIkRD1JXTAPO+Al29R1HATOLt/fOeiQ43LFWKV/gNRQO8z2dFIBl9iV5NSXOw6Fjn3Ngs6m1j6Bl+3pyf4BhrNoMVLr8Op+/UtmwbyQ5IOiMEeLezwmJGQ6Bo2kIbXMNuJtMHJB8+P9rvIvWjx1Jif6enspUhcF9Eo+y4UQRPo6mX1PvQe3jzXe5oKC9A+TPfXM2zRroZsQSkv+Ps92nPvZMz1IzcQkZ/5KFUHHIMcwmNyKOwIDA+uN3UjdqptcKXaXgI70i8me2mCKsdgKhWAg/QCyp35RUxM6G3EE+E5Zr6ttGhTXSvn808VIXZdSZRq9lQhZP93YIZ0qdBHBxhJdLlKvy9wwMH4zCfbN21OP7t6czU2XgJL0ncme2hjJX8P+JoW2f/dUk/sMSD11wdwVKcsAFiNawgxXYPBcntKM1KIV90yaSeb/3n/evm/i/g1OknLBvfq83D8WzwI/errhIEuBs3phHKvlIlKPc06syitQA5PW26nN98ZPlYIiZRUPqcfVDt258mwYEtj7+WRPrTgmbfTLUYOK9D+SPfXj8Idbdvqq4A+fkRD6AQAAAAAAAAAAgAAAAAAAADwAAAAAAAAAFgAAAAAAAAA=eF5jYEAARiTMhISZkTALEgYAApQAHw==AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAHAAAAAAAAAA=eF6brb2wbXYLm+1sNJoBCtDFR+WHljwAjOSU5A==AQAAAAAAAAAAgAAAAAAAAA8AAAAAAAAAEAAAAAAAAAA=eF5jZGRkYGBghJEAAFcACg==AQAAAAAAAAAAgAAAAAAAAGgBAAAAAAAAAQEAAAAAAAA=eF7j31n97n1awYE1Eldm6MrFwOmrnu9V+9hSD+R1rMicxxoEp482K2So56488KnAIdLt9FQ4PRMIKk9ePMBWGsD+tXYfnJ4BFN9pcOGA1r5H2nYHd8NpC2Nj48/6Zw+EspcGtLPshNMcR0Wb1pxcdoD905IdXh2T4fSRlryQNZFZB0RZPuYwTguD0zn16ycle08/8P5W4evK781wGmSv5N8DB6aBHCa/Fk4bg8D03QceaQMdsmw5nLYHiZtsPWAG5O7TWQSna7z9Qy/dnXjAyULK89qCOjhdxfnmvn2694Hf+5bqCtWaw+ncazdLtZlZDpzevuuSp/rH/TAaAGvmu2Q=AQAAAAAAAAAAgAAAAAAAAGgBAAAAAAAATwAAAAAAAAA=eF5jYEAGH+xhrF1BP0Sm1d7cgy6OCugnPsk8v+zOg48Y7pldv1X/kOZxmrlTcN3LJJ+aJxjmu4X/Xftpt+5edHFxfYedfzzzMMQBY1ctBA==AQAAAAAAAAAAgAAAAAAAAGgBAAAAAAAAUwAAAAAAAAA=eF5jYACBD/YMWMEH+11BP0Sm1d60QRfHpZ7W4pPM88vuPPiI4Z7Z9Vv1D2kep5k7Bde9TPKpeYJhvlv437WfduvaoouL6zvs/OOZBxcHAKAxKgQ=AQAAAAAAAAAAgAAAAAAAAGgBAAAAAAAAFAAAAAAAAAA=eF5jYMAGPthjFR4VJ1scAMiGEcI=AQAAAAAAAAAAgAAAAAAAAAADAAAAAAAAmgAAAAAAAAA=eF59j7EJQkEQRKcE/a1ovlX4LUVb0S6Mv4mhoYGBgYKIiIhwJcguHB9uZp3s3j7mGOBfimWX7cZzbO7FNK/+JfFbDsxnngf5mtf+d9Lf8vGu37x7GtkRnwQ/UI/2i2kf6IKfiC8XnjP1aL+Y9oHbNZLsulOP9uuu1gf6+PdJfL3yvKhH+8W0D+wHzyfZ9aUe7dddo/8D05J6OQ==AQAAAAAAAAAAgAAAAAAAAOABAAAAAAAAWQAAAAAAAAA=eF5dyDUSxAAAw8Aw00GY/v/LFJEbq9kZBcFbiB02pn6PrakfY2Tqf3Ew9X/4MfVTTEz9Cf+m/oyjqZ9jZupvuJj6O66mfomFqX/hYerfeJr6NVb4AAQ1A8s=AQAAAAAAAAAAgAAAAAAAAHgAAAAAAAAAMAAAAAAAAAA=eF5jYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQGgBVeAHhAQAAAAAAAAAAgAAAAAAAAA8AAAAAAAAACwAAAAAAAAA=eF7j5EQBAARHAIg= + </AppendedData> +</VTKFile> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/simHM_deactivate_H.prj b/Tests/Data/HydroMechanics/HydraulicDeactivation/simHM_deactivate_H.prj new file mode 100644 index 0000000000000000000000000000000000000000..768cac48a0f98b2162eb5b72855cec0b8d1d5a06 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/simHM_deactivate_H.prj @@ -0,0 +1,273 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<OpenGeoSysProject> + <meshes> + <mesh>unit_square_domain.vtu</mesh> + <mesh>unit_square_left.vtu</mesh> + <mesh>unit_square_right.vtu</mesh> + <mesh>unit_square_bottom.vtu</mesh> + <mesh>unit_square_top.vtu</mesh> + </meshes> + <processes> + <process> + <name>HM</name> + <type>HYDRO_MECHANICS</type> + <integration_order>2</integration_order> + <process_variables> + <pressure>pressure</pressure> + <displacement>displacement</displacement> + </process_variables> + <secondary_variables> + <secondary_variable internal_name="sigma" output_name="sigma"/> + <secondary_variable internal_name="epsilon" output_name="epsilon"/> + </secondary_variables> + <specific_body_force>0 -9.81</specific_body_force> + <constitutive_relation id="0"> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + </process> + </processes> + <media> + <medium id="0,2,4"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>viscosity</name> + <type>Constant</type> + <value> 1.e-3 </value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value> 1.e3 </value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>2500.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>biot_coefficient</name> + <type>Constant</type> + <value>1</value> + </property> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1e-14</value> + </property> + <property> + <name>reference_temperature</name> + <type>Constant</type> + <value>293.15</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.1</value> + </property> + </properties> + </medium> + <medium id="1,3"> + <phases> + <phase> + <type>AqueousLiquid</type> + <properties> + <property> + <name>viscosity</name> + <type>Constant</type> + <value> 1.e-3 </value> + </property> + <property> + <name>density</name> + <type>Constant</type> + <value> 1.e3 </value> + </property> + </properties> + </phase> + <phase> + <type>Solid</type> + <properties> + <property> + <name>density</name> + <type>Constant</type> + <value>2500.0</value> + </property> + </properties> + </phase> + </phases> + <properties> + <property> + <name>biot_coefficient</name> + <type>Constant</type> + <value>0.0</value> + </property> + <property> + <name>permeability</name> + <type>Constant</type> + <value>1e-14</value> + </property> + <property> + <name>reference_temperature</name> + <type>Constant</type> + <value>293.15</value> + </property> + <property> + <name>porosity</name> + <type>Constant</type> + <value>0.0</value> + </property> + </properties> + </medium> + </media> + <parameters> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1e8</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.3</value> + </parameter> + <parameter> + <name>InitialDisplacement</name> + <type>Constant</type> + <values>0 0</values> + </parameter> + <parameter> + <name>InitialPressure</name> + <type>Constant</type> + <values>0</values> + </parameter> + <parameter> + <name>zero</name> + <type>Constant</type> + <values>0</values> + </parameter> + <parameter> + <name>influx</name> + <type>Constant</type> + <values>0</values> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>pressure</name> + <components>1</components> + <order>1</order> + <initial_condition>InitialPressure</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>unit_square_top</mesh> + <type>Dirichlet</type> + <parameter>zero</parameter> + </boundary_condition> + </boundary_conditions> + <deactivated_subdomains> + <deactivated_subdomain> + <time_interval> + <start>0</start> + <end>1</end> + </time_interval> + <material_ids>1 3</material_ids> + </deactivated_subdomain> + </deactivated_subdomains> + </process_variable> + <process_variable> + <name>displacement</name> + <components>2</components> + <order>1</order> + <initial_condition>InitialDisplacement</initial_condition> + <boundary_conditions> + <boundary_condition> + <mesh>unit_square_left</mesh> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero</parameter> + </boundary_condition> + <boundary_condition> + <mesh>unit_square_right</mesh> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero</parameter> + </boundary_condition> + <boundary_condition> + <mesh>unit_square_bottom</mesh> + <type>Dirichlet</type> + <component>1</component> + <parameter>zero</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <time_loop> + <processes> + <process ref="HM"> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0.0</t_initial> + <t_end>1</t_end> + <timesteps> + <pair> + <repeat>1</repeat> + <delta_t>1</delta_t> + </pair> + </timesteps> + </time_stepping> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>PerComponentDeltaX</type> + <norm_type>NORM2</norm_type> + <abstols>1e-2 1e-6 1e-6</abstols> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>hydraulic_deactivation</prefix> + <suffix>_ts_{:timestep}_t_{:0.0etime}</suffix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>1</each_steps> + </pair> + </timesteps> + <variables> + </variables> + </output> + </time_loop> + <linear_solvers> + <linear_solver> + <name>direct_linear_solver</name> + <eigen> + <solver_type>SparseLU</solver_type> + <scaling>false</scaling> + </eigen> + </linear_solver> + </linear_solvers> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>30</max_iter> + <linear_solver>direct_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_bottom.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_bottom.vtu new file mode 100644 index 0000000000000000000000000000000000000000..098f3409ea60f05e1e60dca60d9327c9750511fe --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_bottom.vtu @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor"> +<!--This file was created by meshio v5.3.4--> +<UnstructuredGrid> +<Piece NumberOfPoints="2" NumberOfCells="1"> +<Points> +<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary"> +AQAAAACAAAAwAAAAEAAAAA==eJxjYMAHPtijiwAAFT8BMA== +</DataArray> +</Points> +<Cells> +<DataArray type="Int64" Name="connectivity" format="binary"> +AQAAAACAAAAQAAAADgAAAA==eJxjYIAARigNAAAYAAI= +</DataArray> +<DataArray type="Int64" Name="offsets" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJxjYoAAAAAYAAM= +</DataArray> +<DataArray type="Int64" Name="types" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJxjZoAAAAAgAAQ= +</DataArray> +</Cells> +<PointData> +<DataArray type="UInt64" Name="bulk_node_ids" format="binary"> +AQAAAACAAAAQAAAADgAAAA==eJxjYIAARigNAAAYAAI= +</DataArray> +</PointData> +<CellData> +<DataArray type="UInt64" Name="bulk_elem_ids" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJxjYIAAAAAIAAE= +</DataArray> +</CellData> +</Piece> +</UnstructuredGrid> +</VTKFile> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_domain.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_domain.vtu new file mode 100644 index 0000000000000000000000000000000000000000..d978054fbd40fdf1b436caf5d8807a3d39ae05e1 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_domain.vtu @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor"> +<!--This file was created by meshio v5.3.4--> +<UnstructuredGrid> +<Piece NumberOfPoints="32" NumberOfCells="15"> +<Points> +<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary"> +AQAAAACAAAAAAwAAmgAAAA==eJx9j7EJQkEQRKcE/a1ovlX4LUVb0S6Mv4mhoYGBgYKIiIhwJcguHB9uZp3s3j7mGOBfimWX7cZzbO7FNK/+JfFbDsxnngf5mtf+d9Lf8vGu37x7GtkRnwQ/UI/2i2kf6IKfiC8XnjP1aL+Y9oHbNZLsulOP9uuu1gf6+PdJfL3yvKhH+8W0D+wHzyfZ9aUe7dddo/8D05J6OQ== +</DataArray> +</Points> +<Cells> +<DataArray type="Int64" Name="connectivity" format="binary"> +AQAAAACAAADgAQAAWQAAAA==eJxdyDUSxAAAw8Aw00GY/v/LFJEbq9kZBcFbiB02pn6PrakfY2Tqf3Ew9X/4MfVTTEz9Cf+m/oyjqZ9jZupvuJj6O66mfomFqX/hYerfeJr6NVb4AAQ1A8s= +</DataArray> +<DataArray type="Int64" Name="offsets" format="binary"> +AQAAAACAAAB4AAAAMAAAAA==eJxjYYAADijNA6UFoLQIlJaA0jJQWgFKq0BpDSitA6UNoLQJlLaA0jZQGgBVeAHh +</DataArray> +<DataArray type="Int64" Name="types" format="binary"> +AQAAAACAAAB4AAAADgAAAA==eJzjZIAATjrTACI4AIg= +</DataArray> +</Cells> +<PointData> +<DataArray type="UInt64" Name="original_node_number" format="binary"> +AQAAAACAAAAAAQAAQAAAAA==eJwtxbUBgwAAADDcrUVa/P8vGUiWBMErdOTYiVNnzl24dOXajVt37j34469HT569+Oe/V2/effj05dsPq4AB8Q== +</DataArray> +</PointData> +<CellData> +<DataArray type="Int32" Name="MaterialIDs" format="binary"> +AQAAAACAAAA8AAAAFgAAAA==eJxjYEAARiTMhISZkTALEgYAApQAHw== +</DataArray> +</CellData> +</Piece> +</UnstructuredGrid> +</VTKFile> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_left.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_left.vtu new file mode 100644 index 0000000000000000000000000000000000000000..c9c7ff225aded4574bcf594e17b385e9679bd880 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_left.vtu @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor"> +<!--This file was created by meshio v5.3.4--> +<UnstructuredGrid> +<Piece NumberOfPoints="16" NumberOfCells="15"> +<Points> +<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary"> +AQAAAACAAACAAQAAXgAAAA==eJxjYMAPZs0EgZP22MVvYoibGIPAYxzqX2KIQ8AHDHFBMNiIIS4AFj+IIS4EFr+IIR4eCgJXMcTv3QUDHPY+xBAPA5vzFEO8ohwEnmOI79kNAq9x2PsWLg4AbRAzpQ== +</DataArray> +</Points> +<Cells> +<DataArray type="Int64" Name="connectivity" format="binary"> +AQAAAACAAADwAAAALgAAAA==eJxdxTkCwBAAADBaejj//1sDU7IkhO3hlyN//PPFhSvf3Lhz4sGT83kBX1AA7A== +</DataArray> +<DataArray type="Int64" Name="offsets" format="binary"> +AQAAAACAAAB4AAAALgAAAA==eJwtxUEGACEAAMAkycpaSVbS/5/ZoZnLxHAlZxc/rn79ubl7+Pf08vYBKvgA8Q== +</DataArray> +<DataArray type="Int64" Name="types" format="binary"> +AQAAAACAAAB4AAAADgAAAA==eJxjZoAAZjrTAAu4AC4= +</DataArray> +</Cells> +<PointData> +<DataArray type="UInt64" Name="bulk_node_ids" format="binary"> +AQAAAACAAACAAAAALwAAAA==eJwtxUEKABEAAEBt0iaKomzx/2/uwcxlQrgeRye/zi6ubu4enl7+vH38Ayo4AOw= +</DataArray> +</PointData> +<CellData> +<DataArray type="UInt64" Name="bulk_elem_ids" format="binary"> +AQAAAACAAAB4AAAAKAAAAA==eJwtxbcBwCAAACB7Yv3/XAdhIYQnOjm7uLr58+/u4enl7eMLEfgAag== +</DataArray> +</CellData> +</Piece> +</UnstructuredGrid> +</VTKFile> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_right.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_right.vtu new file mode 100644 index 0000000000000000000000000000000000000000..beea029d294b71c4f8539b91b8aea35204cbe523 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_right.vtu @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor"> +<!--This file was created by meshio v5.3.4--> +<UnstructuredGrid> +<Piece NumberOfPoints="16" NumberOfCells="15"> +<Points> +<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary"> +AQAAAACAAACAAQAAZAAAAA==eJxjYACBD/YMWMEH+1kzQeCkPXbxmxjiJsYg8BiH+pcY4qg0QlwQDDZiiAuAxQ9iiAuBxS9iiIeHgsBVDPF7d8EAh70PMcTDwOY8xRCvKAeB5xjie3aDwGsc9r6FiwMAD6FGlQ== +</DataArray> +</Points> +<Cells> +<DataArray type="Int64" Name="connectivity" format="binary"> +AQAAAACAAADwAAAALgAAAA==eJxdxTkCwBAAADBaejj//1sDU7IkhO3hlyN//PPFhSvf3Lhz4sGT83kBX1AA7A== +</DataArray> +<DataArray type="Int64" Name="offsets" format="binary"> +AQAAAACAAAB4AAAALgAAAA==eJwtxUEGACEAAMAkycpaSVbS/5/ZoZnLxHAlZxc/rn79ubl7+Pf08vYBKvgA8Q== +</DataArray> +<DataArray type="Int64" Name="types" format="binary"> +AQAAAACAAAB4AAAADgAAAA==eJxjZoAAZjrTAAu4AC4= +</DataArray> +</Cells> +<PointData> +<DataArray type="UInt64" Name="bulk_node_ids" format="binary"> +AQAAAACAAACAAAAAMAAAAA==eJwtxdEGwCAAAMAmmURRbCza//9lD9293BWO6OTb2cXVzd3Dj19/nl7+vQEwMAEG +</DataArray> +</PointData> +<CellData> +<DataArray type="UInt64" Name="bulk_elem_ids" format="binary"> +AQAAAACAAAB4AAAAKAAAAA==eJwtxbcBwCAAACB7Yv3/XAdhIYQnOjm7uLr58+/u4enl7eMLEfgAag== +</DataArray> +</CellData> +</Piece> +</UnstructuredGrid> +</VTKFile> diff --git a/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_top.vtu b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_top.vtu new file mode 100644 index 0000000000000000000000000000000000000000..88a862baa02757135ac05a5e2650630a16d32e65 --- /dev/null +++ b/Tests/Data/HydroMechanics/HydraulicDeactivation/unit_square_top.vtu @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<VTKFile type="UnstructuredGrid" version="0.1" byte_order="LittleEndian" compressor="vtkZLibDataCompressor"> +<!--This file was created by meshio v5.3.4--> +<UnstructuredGrid> +<Piece NumberOfPoints="2" NumberOfCells="1"> +<Points> +<DataArray type="Float64" Name="Points" NumberOfComponents="3" format="binary"> +AQAAAACAAAAwAAAAEgAAAA==eJxjYEAGH+wZsPIR4gBI1QOO +</DataArray> +</Points> +<Cells> +<DataArray type="Int64" Name="connectivity" format="binary"> +AQAAAACAAAAQAAAADgAAAA==eJxjYIAARigNAAAYAAI= +</DataArray> +<DataArray type="Int64" Name="offsets" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJxjYoAAAAAYAAM= +</DataArray> +<DataArray type="Int64" Name="types" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJxjZoAAAAAgAAQ= +</DataArray> +</Cells> +<PointData> +<DataArray type="UInt64" Name="bulk_node_ids" format="binary"> +AQAAAACAAAAQAAAADgAAAA==eJzjYoAAbigNAAEIABY= +</DataArray> +</PointData> +<CellData> +<DataArray type="UInt64" Name="bulk_elem_ids" format="binary"> +AQAAAACAAAAIAAAACwAAAA==eJzjY4AAAAB4AA8= +</DataArray> +</CellData> +</Piece> +</UnstructuredGrid> +</VTKFile>