diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h index 0030c9d3cc7aea383fd5a3c628a8a07a795aba18..457acd7770bf972740ceec22623ac509f552f9d4 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM-impl.h @@ -158,6 +158,12 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, displacement_size, pressure_size>::Zero(displacement_size, pressure_size); + typename ShapeMatricesTypeDisplacement::template MatrixType< + pressure_size, displacement_size> + Kpu = ShapeMatricesTypeDisplacement::template MatrixType< + pressure_size, displacement_size>::Zero(pressure_size, + displacement_size); + double const& dt = _process_data.dt; ParameterLib::SpatialPosition x_position; @@ -230,17 +236,18 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, // // pressure equation, pressure part. // - laplace_p.noalias() += dNdx_p.transpose() * K_over_mu * dNdx_p * w; + laplace_p.noalias() += + rho_fr * dNdx_p.transpose() * K_over_mu * dNdx_p * w; - storage_p.noalias() += N_p.transpose() * S * N_p * w; + storage_p.noalias() += rho_fr * N_p.transpose() * S * N_p * w; local_rhs.template segment<pressure_size>(pressure_index).noalias() += - dNdx_p.transpose() * rho_fr * K_over_mu * b * w; + dNdx_p.transpose() * rho_fr * rho_fr * K_over_mu * b * w; // // pressure equation, displacement part. // - // Reusing Kup.transpose(). + Kpu.noalias() += rho_fr * alpha * N_p.transpose() * identity2.transpose() * B * w; } // displacement equation, pressure part local_Jac @@ -258,11 +265,11 @@ void HydroMechanicsLocalAssembler<ShapeFunctionDisplacement, local_Jac .template block<pressure_size, displacement_size>(pressure_index, displacement_index) - .noalias() = Kup.transpose() / dt; + .noalias() = Kpu / dt; // pressure equation local_rhs.template segment<pressure_size>(pressure_index).noalias() -= - laplace_p * p + storage_p * p_dot + Kup.transpose() * u_dot; + laplace_p * p + storage_p * p_dot + Kpu * u_dot; // displacement equation local_rhs.template segment<displacement_size>(displacement_index) diff --git a/ProcessLib/HydroMechanics/Tests.cmake b/ProcessLib/HydroMechanics/Tests.cmake index 97ef56b68ab12810365bc501dfca681e5a4a24df..605593d8baf616953343d9fc7e8ef956c4fa392d 100644 --- a/ProcessLib/HydroMechanics/Tests.cmake +++ b/ProcessLib/HydroMechanics/Tests.cmake @@ -249,7 +249,7 @@ AddTest( TESTER vtkdiff REQUIREMENTS NOT OGS_USE_MPI DIFF_DATA - hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu pressure pressure 1.0e-10 0.0 + hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu pressure pressure 5.0e-10 0.0 hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu displacement displacement 1.0e-10 0.0 hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu sigma_xx sigma_xx 1.0e-9 0.0 hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu hm2_1Dcolumn1_pcs_0_ts_120_t_6.000000.vtu sigma_yy sigma_yy 1.0e-9 0.0 @@ -351,7 +351,7 @@ AddTest( REQUIREMENTS NOT OGS_USE_MPI DIFF_DATA expected_square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu displacement displacement 1e-11 1e-16 - expected_square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu pressure pressure 1e-11 1e-16 + expected_square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu square_1e2_UC_early_pcs_0_ts_10_t_1.000000.vtu pressure pressure 1e-10 1e-16 ) # HydroMechanics; Small deformation, linear poroelastic (unconfined compression late) the drainage process is finished and the displacement of the porous media is only a result of solid properties. AddTest( diff --git a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2.prj b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2.prj index 7fc9e2aa0a65a4628a0d66d441912fd71fb837af..0e74896a34523ded0a654aaeb7b27790478edfb3 100644 --- a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2.prj +++ b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2.prj @@ -253,7 +253,7 @@ <linear_solvers> <linear_solver> <name>general_linear_solver</name> - <lis>-i bicg -p jacobi -tol 1e-16 -maxiter 10000</lis> + <lis>-i bicg -p ilu -tol 1e-16 -maxiter 10000</lis> <eigen> <solver_type>BiCGSTAB</solver_type> <precon_type>ILUT</precon_type> diff --git a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_120_t_1000.000000.vtu b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_120_t_1000.000000.vtu index 537e94192547ea6a17fb09f407d62fc7f7fa00b4..02eab81ba9aa2e53d386246b5123363e6f7b8ba5 100644 --- a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_120_t_1000.000000.vtu +++ b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_120_t_1000.000000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b3a1cc0ba1b4e1403c73abd1bbf4e59a5d02b8f910312c7ff1169497708763c -size 36381 +oid sha256:4060867638d917b545966c69e615c6f81d69ce7e5beb0169484f9563e5072f43 +size 36856 diff --git a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_1_t_5.000000.vtu b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_1_t_5.000000.vtu index 53198af58f6f6a229c259dbf9cd6f02d84516ade..df50282a9d332c582a312fc3f75475eda87b7d37 100644 --- a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_1_t_5.000000.vtu +++ b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_1_t_5.000000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e68238d8160c4b5bc280d49c3856fa139bc720c94538af6b5c74908ae57f7d4d -size 35972 +oid sha256:63370ea6b3f8dfb7d852bd132f1710420e06ec0c0ecb61fece8555e5f1f77ded +size 36752 diff --git a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_20_t_100.000000.vtu b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_20_t_100.000000.vtu index 31c46b8f0f13009bfaa6e77c0de7bc947a596c6a..364a483b2d93c358dfd077a63c4e0519f3f82792 100644 --- a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_20_t_100.000000.vtu +++ b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_20_t_100.000000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b2a55261b638241e2cedc923779fd8be9f09ce676e3713068139e21d5c0d696 -size 33155 +oid sha256:9721735b7f6dcd1429cd4759142f3a6e536743520a3d0563ab4fbb7d3b45ea7c +size 33872 diff --git a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_420_t_4000.000000.vtu b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_420_t_4000.000000.vtu index 6fceceb02bc9c300c1aca808af9b5736373e2cda..fc70e057618a11fe969b82115af925ea53ba1d43 100644 --- a/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_420_t_4000.000000.vtu +++ b/Tests/Data/HydroMechanics/Linear/Confined_Compression/square_1e2_pcs_0_ts_420_t_4000.000000.vtu @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:735cdbe865eeb4320bbd913fd0abb2c6f6c00b39cc5d786ddaffadadcde62423 -size 41019 +oid sha256:7a8d95ec8beb20aaec442614f088e7b6c22233f74a7eeccc282418b09079456a +size 41528 diff --git a/Tests/Data/HydroMechanics/Linear/Gravity/flow_gravity.prj b/Tests/Data/HydroMechanics/Linear/Gravity/flow_gravity.prj index fca464fc47a54f8990cbe11bb619830a32315588..ebb4682dc862ca31af7139b796278c3ef0d997a4 100644 --- a/Tests/Data/HydroMechanics/Linear/Gravity/flow_gravity.prj +++ b/Tests/Data/HydroMechanics/Linear/Gravity/flow_gravity.prj @@ -156,7 +156,7 @@ <parameter> <name>flux_in</name> <type>Constant</type> - <value>1e-5</value> + <value>1e-2</value> </parameter> </parameters> <process_variables> diff --git a/Tests/Data/HydroMechanics/Verification/hm1_1Dbeam.prj b/Tests/Data/HydroMechanics/Verification/hm1_1Dbeam.prj index 6635984dccc045741847a0db3d22d81bbb5eede8..f459664d1a92d5697627a094c099fdcb5293d3d2 100755 --- a/Tests/Data/HydroMechanics/Verification/hm1_1Dbeam.prj +++ b/Tests/Data/HydroMechanics/Verification/hm1_1Dbeam.prj @@ -40,7 +40,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force> 0 0 -9.81 </specific_body_force> + <specific_body_force> 0 0 0 </specific_body_force> </process> </processes> <time_loop> @@ -182,7 +182,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -207,7 +207,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value>0</value> + <value>1</value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm1_2Dsquare.prj b/Tests/Data/HydroMechanics/Verification/hm1_2Dsquare.prj index 7e8096f84e7e7e5cb79fdecee97c7518646d0868..f4c24762767bc3d08dd2d76b18ba41da7d503acc 100755 --- a/Tests/Data/HydroMechanics/Verification/hm1_2Dsquare.prj +++ b/Tests/Data/HydroMechanics/Verification/hm1_2Dsquare.prj @@ -40,7 +40,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force> 0 0 -9.81 </specific_body_force> + <specific_body_force> 0 0 0 </specific_body_force> </process> </processes> <time_loop> @@ -181,7 +181,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -206,7 +206,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value>0</value> + <value>1</value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm1_3Dcube.prj b/Tests/Data/HydroMechanics/Verification/hm1_3Dcube.prj index fb5efe559f6ca44a4dae76373a92cfa62ff7fbc3..8523394a9896cca04dec4cca2c8d4663fa1d8e9f 100755 --- a/Tests/Data/HydroMechanics/Verification/hm1_3Dcube.prj +++ b/Tests/Data/HydroMechanics/Verification/hm1_3Dcube.prj @@ -40,7 +40,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force> 0 0 -9.81 </specific_body_force> + <specific_body_force> 0 0 0 </specific_body_force> </process> </processes> <time_loop> @@ -181,7 +181,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -206,7 +206,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value>0</value> + <value>1</value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_1D1bt.prj b/Tests/Data/HydroMechanics/Verification/hm2_1D1bt.prj index df8fd1ab73e5183601b44ca6ff5bdf9730be5419..a79b55245f1bcd1ebfe0dafc16d1e0b4f9aac3fc 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_1D1bt.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_1D1bt.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -135,7 +135,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -160,7 +160,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_1D2bt.prj b/Tests/Data/HydroMechanics/Verification/hm2_1D2bt.prj index 2f53cb873a82d4b809e68156da4c2d608cc8e56f..996b4ac1791f2521d471a2f499ee9b2e4e8181c5 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_1D2bt.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_1D2bt.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -135,7 +135,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -160,7 +160,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_1Dbiot.prj b/Tests/Data/HydroMechanics/Verification/hm2_1Dbiot.prj index 6052c88e46f8defbf8a8bb158ec9bd9e0b38829d..70ae31c01cfdc56ed750e0f16a1add6427faddbf 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_1Dbiot.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_1Dbiot.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -135,7 +135,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -160,7 +160,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn1.prj b/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn1.prj index fc6b5873cfbc7c8701c9f2518bb5a147edbee5e0..1399cd7996f42d351c13b7dd377c1725bb3135fd 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn1.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn1.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -135,7 +135,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -160,7 +160,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn2.prj b/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn2.prj index 5a87230f66e66d2ae0efdda91c7efd590aed572c..8c1a5a4f5b8ba79b5c81329fe83382fdc01dd392 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn2.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_1Dcolumn2.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -139,7 +139,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -164,7 +164,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name> diff --git a/Tests/Data/HydroMechanics/Verification/hm2_2Dmandel.prj b/Tests/Data/HydroMechanics/Verification/hm2_2Dmandel.prj index d95141e171116b175e58a1c7625ddbadbbc34028..4861e69894065806fc7a593f4d91ea8b4459ca8b 100755 --- a/Tests/Data/HydroMechanics/Verification/hm2_2Dmandel.prj +++ b/Tests/Data/HydroMechanics/Verification/hm2_2Dmandel.prj @@ -39,7 +39,7 @@ <secondary_variable type="static" internal_name="epsilon_xz" output_name="epsilon_xz"/> <secondary_variable type="static" internal_name="epsilon_yz" output_name="epsilon_yz"/> </secondary_variables> - <specific_body_force>0 0 -9.81</specific_body_force> + <specific_body_force>0 0 0</specific_body_force> </process> </processes> <time_loop> @@ -139,7 +139,7 @@ <group_id_property>MaterialIDs</group_id_property> <index_values> <index>0</index> - <value>0</value> + <value>1</value> </index_values> </parameter> <parameter> @@ -164,7 +164,7 @@ <parameter> <name>rho_liquid</name> <type>Constant</type> - <value> 0 </value> + <value> 1 </value> </parameter> <parameter> <name>zero</name>