From b8b0b82301ca11fa030eff751a0c9079c60d8fad Mon Sep 17 00:00:00 2001 From: Jan Thiedau <Jan.Thiedau@bgr.de> Date: Wed, 18 Jan 2023 10:55:05 +0100 Subject: [PATCH] [PL/CT] Residual outputs for Picard solver version --- .../ComponentTransportProcess.cpp | 43 +++++++++---------- .../1D_AdvectionDiffusionSorptionDecay.prj | 2 +- ...DiffusionSorptionDecay_ts_0_t_0.000000.vtu | 2 +- ...nDecay_ts_1000_t_31536000000000.000000.vtu | 2 +- ...ionDecay_ts_100_t_3153600000000.000000.vtu | 2 +- ...ptionDecay_ts_10_t_315360000000.000000.vtu | 2 +- ...orptionDecay_ts_1_t_31536000000.000000.vtu | 2 +- .../1D_DiffusionSorptionDecay.prj | 2 +- ...DiffusionSorptionDecay_ts_0_t_0.000000.vtu | 2 +- ...nDecay_ts_1000_t_31536000000000.000000.vtu | 2 +- ...ionDecay_ts_100_t_3153600000000.000000.vtu | 2 +- ...ptionDecay_ts_10_t_315360000000.000000.vtu | 2 +- ...orptionDecay_ts_1_t_31536000000.000000.vtu | 2 +- 13 files changed, 32 insertions(+), 35 deletions(-) diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp index 95af9b5969b..fcec0ad9110 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp @@ -199,36 +199,33 @@ void ComponentTransportProcess::assembleConcreteProcess( MathLib::finalizeMatrixAssembly(M); MathLib::finalizeMatrixAssembly(K); MathLib::finalizeVectorAssembly(b); - auto const residuum = computeResiduum(*x[0], *xdot[0], M, K, b); - auto copyRhs = [&](int const variable_id, auto& output_vector) - { - if (_use_monolithic_scheme) - { - transformVariableFromGlobalVector(residuum, variable_id, - dof_tables[0], output_vector, - std::negate<double>()); - } - else - { - transformVariableFromGlobalVector( - residuum, 0, dof_tables[process_id], output_vector, - std::negate<double>()); - } - }; + if (_use_monolithic_scheme || process_id == 0) { - copyRhs(0, *_hydraulic_flow); - } - if (_use_monolithic_scheme) - { - for (std::size_t c_idx = 0; c_idx < _molar_flow_rate.size(); ++c_idx) + auto const residuum = computeResiduum(*x[0], *xdot[0], M, K, b); + transformVariableFromGlobalVector(residuum, 0, dof_tables[0], + *_hydraulic_flow, + std::negate<double>()); + if (_use_monolithic_scheme) { - copyRhs(c_idx + 1, *_molar_flow_rate[c_idx]); + for (std::size_t c_idx = 0; c_idx < _molar_flow_rate.size(); + ++c_idx) + { + transformVariableFromGlobalVector( + residuum, c_idx + 1, dof_tables[0], + *_molar_flow_rate[c_idx], std::negate<double>()); + } } + return; } + if (process_id > 0) { - copyRhs(process_id, *_molar_flow_rate[process_id - 1]); + auto const residuum = + computeResiduum(*x[process_id], *xdot[process_id], M, K, b); + transformVariableFromGlobalVector(residuum, 0, dof_tables[process_id], + *_molar_flow_rate[process_id - 1], + std::negate<double>()); } } diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay.prj b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay.prj index 99dfd890fad..04476121362 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay.prj +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay.prj @@ -265,7 +265,7 @@ </vtkdiff> <vtkdiff> <regex>1D_AdvectionDiffusionSorptionDecay_ts_[0-9]*_t_[0-9]*.000000.vtu</regex> - <field>MolarFlowRate</field> + <field>CsFlowRate</field> <absolute_tolerance>1e-10</absolute_tolerance> <relative_tolerance>1e-16</relative_tolerance> </vtkdiff> diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_0_t_0.000000.vtu index f3ad438758c..da1aa31304b 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_0_t_0.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_0_t_0.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="2001" NumberOfCells="2000" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="0" RangeMax="0" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="180" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="180" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="276" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu index 2a9d7cf4008..47e8cca6bdb 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="2001" NumberOfCells="2000" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="1.2774319966e-137" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="21356" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="21356" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="499999.99999" offset="21452" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu index 226895a230b..eff4fda3ae5 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="2001" NumberOfCells="2000" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="-8.4963431577e-318" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="17948" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="17948" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="499999.99999" offset="18044" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu index 96b7e138157..cc375c66f5a 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="2001" NumberOfCells="2000" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="2.8191385752e-318" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="13680" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="13680" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="499999.99999" offset="13776" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu index 81421ad97fe..2df8dc3b16e 100644 --- a/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/AdvectionDiffusionSorptionDecay/1D_AdvectionDiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="2001" NumberOfCells="2000" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="8.6939545941e-318" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="12912" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="12912" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="499999.99999" offset="13008" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay.prj b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay.prj index cc9e20d4633..482e6778f7c 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay.prj +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay.prj @@ -264,7 +264,7 @@ </vtkdiff> <vtkdiff> <regex>1D_DiffusionSorptionDecay_ts_[0-9]*_t_[0-9]*.000000.vtu</regex> - <field>MolarFlowRate</field> + <field>CsFlowRate</field> <absolute_tolerance>1e-10</absolute_tolerance> <relative_tolerance>1e-16</relative_tolerance> </vtkdiff> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_0_t_0.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_0_t_0.000000.vtu index e894b1f2271..cadf3dcad7c 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_0_t_0.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_0_t_0.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="161" NumberOfCells="160" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="0" RangeMax="0" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="152" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="0" RangeMax="0" offset="152" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="220" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu index e41aa48d4f5..68781b1a84b 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1000_t_31536000000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="161" NumberOfCells="160" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="-1.3032412715e-19" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="-2.1175823681e-22" RangeMax="1.4152178956e-08" offset="1860" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="-2.1175823681e-22" RangeMax="1.4152178956e-08" offset="1860" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="2464" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu index 44a5fa6da6d..118ea21493f 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_100_t_3153600000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="161" NumberOfCells="160" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="-8.2816973106e-22" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="-2.0514079191e-22" RangeMax="3.5930953041e-08" offset="1860" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="-2.0514079191e-22" RangeMax="3.5930953041e-08" offset="1860" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="2416" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu index 0003c658848..629ec7a281a 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_10_t_315360000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="161" NumberOfCells="160" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="-2.3888639398e-34" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="-5.2939559203e-23" RangeMax="1.144954842e-07" offset="1860" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="-5.2939559203e-23" RangeMax="1.144954842e-07" offset="1860" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="2408" /> </PointData> <CellData> diff --git a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu index 403a82973d5..1adbf9a07ca 100644 --- a/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu +++ b/Tests/Data/Parabolic/ComponentTransport/DiffusionSorptionDecay/1D_DiffusionSorptionDecay_ts_1_t_31536000000.000000.vtu @@ -7,7 +7,7 @@ <Piece NumberOfPoints="161" NumberOfCells="160" > <PointData> <DataArray type="Float64" Name="Cs" format="appended" RangeMin="-1.3308255536e-45" RangeMax="1" offset="84" /> - <DataArray type="Float64" Name="MolarFlowRate" format="appended" RangeMin="-2.6469779602e-23" RangeMax="6.2627750966e-07" offset="1860" /> + <DataArray type="Float64" Name="CsFlowRate" format="appended" RangeMin="-2.6469779602e-23" RangeMax="6.2627750966e-07" offset="1860" /> <DataArray type="Float64" Name="pressure" format="appended" RangeMin="100000" RangeMax="100000" offset="2452" /> </PointData> <CellData> -- GitLab