Unverified Commit b35e627a authored by Tom Fischer's avatar Tom Fischer Committed by GitHub
Browse files

Merge pull request #2921 from nagelt/secand_mb

RichardsMechanics; Update mass lumping procedure.
parents caab3e64 3ae089aa
Pipeline #1292 failed with stage
in 3 minutes and 50 seconds
......@@ -529,8 +529,14 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
typename ShapeMatricesTypePressure::NodalMatrixType storage_p_a_p =
ShapeMatricesTypePressure::NodalMatrixType::Zero(pressure_size,
pressure_size);
typename ShapeMatricesTypePressure::NodalVectorType storage_p_a_S =
ShapeMatricesTypePressure::NodalVectorType::Zero(pressure_size);
typename ShapeMatricesTypePressure::NodalMatrixType storage_p_a_S_Jpp =
ShapeMatricesTypePressure::NodalMatrixType::Zero(pressure_size,
pressure_size);
typename ShapeMatricesTypePressure::NodalMatrixType storage_p_a_S =
ShapeMatricesTypePressure::NodalMatrixType::Zero(pressure_size,
pressure_size);
typename ShapeMatricesTypeDisplacement::template MatrixType<
displacement_size, pressure_size>
......@@ -802,9 +808,12 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
storage_p_a_p.noalias() +=
N_p.transpose() * rho_LR * specific_storage_a_p * N_p * w;
storage_p_a_S.noalias() += N_p.transpose() * rho_LR *
specific_storage_a_S * (S_L - S_L_prev) /
dt * w;
if (p_cap_dot_ip != 0) // prevent division by zero.
{
storage_p_a_S.noalias() -= N_p.transpose() * rho_LR *
specific_storage_a_S * (S_L - S_L_prev) /
(dt * p_cap_dot_ip) * N_p * w;
}
local_Jac
.template block<pressure_size, pressure_size>(pressure_index,
......@@ -812,13 +821,11 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
.noalias() += N_p.transpose() * p_cap_dot_ip * rho_LR *
dspecific_storage_a_p_dp_cap * N_p * w;
local_Jac
.template block<pressure_size, pressure_size>(pressure_index,
pressure_index)
.noalias() -= N_p.transpose() * rho_LR *
((S_L - S_L_prev) * dspecific_storage_a_S_dp_cap +
specific_storage_a_S * dS_L_dp_cap) /
dt * N_p * w;
storage_p_a_S_Jpp.noalias() -=
N_p.transpose() * rho_LR *
((S_L - S_L_prev) * dspecific_storage_a_S_dp_cap +
specific_storage_a_S * dS_L_dp_cap) /
dt * N_p * w;
local_Jac
.template block<pressure_size, pressure_size>(pressure_index,
......@@ -852,13 +859,16 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
if (_process_data.apply_mass_lumping)
{
storage_p_a_p = storage_p_a_p.colwise().sum().eval().asDiagonal();
storage_p_a_S = storage_p_a_S.colwise().sum().eval().asDiagonal();
storage_p_a_S_Jpp =
storage_p_a_S_Jpp.colwise().sum().eval().asDiagonal();
}
// pressure equation, pressure part.
local_Jac
.template block<pressure_size, pressure_size>(pressure_index,
pressure_index)
.noalias() += laplace_p + storage_p_a_p / dt;
.noalias() += laplace_p + storage_p_a_p / dt + storage_p_a_S_Jpp;
// pressure equation, displacement part.
local_Jac
......@@ -868,7 +878,8 @@ void RichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
// pressure equation
local_rhs.template segment<pressure_size>(pressure_index).noalias() -=
laplace_p * p_L + storage_p_a_p * p_L_dot + storage_p_a_S + Kpu * u_dot;
laplace_p * p_L + (storage_p_a_p + storage_p_a_S) * p_L_dot +
Kpu * u_dot;
// displacement equation
local_rhs.template segment<displacement_size>(displacement_index)
......
......@@ -348,7 +348,7 @@ AddTest(
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu pressure pressure 1e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu saturation saturation 1e-14 1e-15
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu displacement displacement 1e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu sigma sigma 1e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu sigma sigma 2e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu epsilon epsilon 1e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu velocity velocity 1e-15 0
GLOB bishops_effective_stress_saturation_cutoff_pcs_0_ts_*.vtu porosity porosity 5e-15 1e-15
......@@ -363,7 +363,7 @@ AddTest(
TESTER vtkdiff
REQUIREMENTS NOT OGS_USE_MPI
DIFF_DATA
GLOB alternative_mass_balance_anzInterval_10_pcs_0_ts_*.vtu HydraulicFlow HydraulicFlow 1e-14 0
GLOB alternative_mass_balance_anzInterval_10_pcs_0_ts_*.vtu HydraulicFlow HydraulicFlow 2e-14 0
GLOB alternative_mass_balance_anzInterval_10_pcs_0_ts_*.vtu NodalForces NodalForces 5e-2 0
GLOB alternative_mass_balance_anzInterval_10_pcs_0_ts_*.vtu displacement displacement 1e-15 0
GLOB alternative_mass_balance_anzInterval_10_pcs_0_ts_*.vtu epsilon epsilon 1e-15 0
......
version https://git-lfs.github.com/spec/v1
oid sha256:a1cafe2a1c6d2576285969a4dbab0f42be567656d3a542a37126ba28fad06356
size 13536
oid sha256:11e19c4cacb5a10faae8ed3e55b96bdc9595002dc38760e26998d693fa589b14
size 16312
version https://git-lfs.github.com/spec/v1
oid sha256:5dd0f39e79db7a27eaba5a0a9a69c4d5e8add0367136a60ad0ed868f77873aa5
size 52692
oid sha256:1d5090596a3dcae59c1a9eaf13527d70f5d3ccf6690da6fc259eedc6cc5395e0
size 84120
version https://git-lfs.github.com/spec/v1
oid sha256:fbe60a1585f8a72679eacf43f5a6486540b2dcf5d6c2162d21766b11f0910a31
size 52584
oid sha256:5e789936a9bf30806b773db81a84cfdd3aa366318f24ba287e7f81e973ec6be7
size 83360
version https://git-lfs.github.com/spec/v1
oid sha256:b698113713591ea13c106f96536850adce70250a754d7ddaccaab9c6924d17e0
size 52048
oid sha256:c6a3e42fc6ee8a233d3d712e13efde6da5fcf22290cd6a4d2f1a7014e655018a
size 81752
version https://git-lfs.github.com/spec/v1
oid sha256:5bde0e64e1a2f4289d59d013a760935daebdbec904db00ccf09a2a7c2507ba0c
size 52408
oid sha256:4f3e5c87529c53ac157f8afae144da269ab7b381e33eaee3562a4726bf627de7
size 83552
version https://git-lfs.github.com/spec/v1
oid sha256:eebf9e3acd4a9c69e2f23f3a714079151e2b05d87d11335573999aaf02132d14
size 52276
oid sha256:e959069fe4b24266b115f4f7d1b99325685625ca9d2d480daf148d743d9d1675
size 82240
version https://git-lfs.github.com/spec/v1
oid sha256:321f962413a9a7d0969a65d8f8eb023510d9350c917a9ed460cff411d5220a44
size 52612
oid sha256:9cc18155830e27b06b4ed99094cf1718747d505a5a7a4bb587bce60d9e9b9f38
size 83740
version https://git-lfs.github.com/spec/v1
oid sha256:b6d829e3bb639dc41e83a34ebe6ae74ca8f407fb8cb71ec9f302a45ce7dea3de
size 52168
oid sha256:ce18971edc0ab209d727b3e7482b252a125e36394f00ab6d815677ad90729ea2
size 82444
version https://git-lfs.github.com/spec/v1
oid sha256:99674f5b910d719b26a2a56f7589a06dc13dbee3dabb32bfbeb9f9d1d1890e14
size 52472
oid sha256:11286e29c701684bffc8738e5b8113c1afda565f8f2b5a9cc1798b4b292982a8
size 84000
version https://git-lfs.github.com/spec/v1
oid sha256:79950980684a667175aa919fe45693a4c773be096d4b45c2c020674579c229ae
size 52284
oid sha256:a51ac00135f969eb5007dba35375dbe6a0b3c97492270a2bd1f3bfd259b26dbc
size 82512
version https://git-lfs.github.com/spec/v1
oid sha256:5dc3716c43e9a90c029ee79aa28f084a4e48afec1cace0bfdfe5d4bea415b843
size 52620
oid sha256:e4ffdb4fe2330732aaa4bfdcadce0a812dad80b3e6111dfc803b2bcc8be086d2
size 84004
version https://git-lfs.github.com/spec/v1
oid sha256:7d09a9fc6464e1b439948fe831208d7fd854754594b9f2480a2235c36a50b78c
size 52192
oid sha256:a53bb6c92c3d2a950eb7c2c9245c43781c64c6e136ef392e4ecae6b6f3b50723
size 82652
version https://git-lfs.github.com/spec/v1
oid sha256:aafec4c68364c68833f8db8244da75c3d5c337fc9b5388e29269e66d3406c6c2
size 52600
oid sha256:777951935026675b32139eb6404d9d59f4d8f66503f409ad3d0c1d2eba05eb5b
size 83912
version https://git-lfs.github.com/spec/v1
oid sha256:8e5209454f89f953531fd479be05f2fa8fbd0840ab342789733cdf45a0e14213
size 52164
oid sha256:9820b3d489e8e3fb604fa5e2aa79f4282c69d574b902509aa9bafefa49b8a484
size 82776
version https://git-lfs.github.com/spec/v1
oid sha256:0f14dc70f03ccb4a17f8258a39d67de0347bad3893404621c1908c5647e41e8c
size 52588
oid sha256:daacaaf894ddfc2da6bae7da39ac309ba2d6049bf954c3f442a5d98cc0f837fa
size 84004
version https://git-lfs.github.com/spec/v1
oid sha256:21ab843229b82e6080943343ecf53785aca8487699f0c416a17666ada3457b59
size 52212
oid sha256:3cfd7d1523c0e0bed7e95ebe0e80d2939d6b0a147fa6beee0243096b874c7cb6
size 82836
version https://git-lfs.github.com/spec/v1
oid sha256:456f332ceaf31f25117649cb98107791174488fe6c3bf03eb70c8374ee59b20b
size 52672
oid sha256:e5ed5e603086044f9d86e4dc9fa5742f4b073320301a8f1a5355a247da8ada2a
size 84252
version https://git-lfs.github.com/spec/v1
oid sha256:319970246fd3ced67377de4fecde119c1aff3c9ef38cb73bf1ec251edb99af1c
size 52368
oid sha256:33b28d347d3a54b395551e02dc2efbff21dafed51330e94780a4b2bb128fdd35
size 82904
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment