From bfe55061d9ae85084b8711dbe8c840e20f67c234 Mon Sep 17 00:00:00 2001 From: Wenqing Wang <wenqing.wang@ufz.de> Date: Fri, 7 Aug 2020 12:34:23 +0200 Subject: [PATCH] [ProcessLib] removed the argument of coupled solutions from the global assembler member function. --- .../ComponentTransportProcess.cpp | 4 +-- ProcessLib/HT/HTProcess.cpp | 4 +-- .../HeatConduction/HeatConductionProcess.cpp | 4 +-- .../HeatTransportBHEProcess.cpp | 2 +- .../HydroMechanics/HydroMechanicsProcess.cpp | 4 +-- .../HydroMechanics/HydroMechanicsProcess.cpp | 4 +-- .../SmallDeformationProcess.cpp | 4 +-- ProcessLib/LiquidFlow/LiquidFlowProcess.cpp | 4 +-- ProcessLib/PhaseField/PhaseFieldProcess.cpp | 4 +-- .../RichardsComponentTransportProcess.cpp | 4 +-- .../RichardsFlow/RichardsFlowProcess.cpp | 4 +-- .../RichardsMechanicsProcess.cpp | 4 +-- .../SmallDeformationProcess.cpp | 4 +-- .../SmallDeformationNonlocalProcess.cpp | 4 +-- .../SteadyStateDiffusion.cpp | 4 +-- ProcessLib/TES/TESProcess.cpp | 4 +-- .../ThermalTwoPhaseFlowWithPPProcess.cpp | 4 +-- .../ThermoHydroMechanicsProcess.cpp | 4 +-- .../ThermoMechanicalPhaseFieldProcess.cpp | 4 +-- .../ThermoMechanicsProcess.cpp | 4 +-- ProcessLib/TimeLoop.cpp | 4 +++ .../TwoPhaseFlowWithPPProcess.cpp | 4 +-- .../TwoPhaseFlowWithPrhoProcess.cpp | 4 +-- ProcessLib/VectorMatrixAssembler.cpp | 30 ++----------------- ProcessLib/VectorMatrixAssembler.h | 6 ++-- 25 files changed, 51 insertions(+), 75 deletions(-) diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp index 39373dfa025..f8d562512ea 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp @@ -110,7 +110,7 @@ void ComponentTransportProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void ComponentTransportProcess::setCoupledSolutionsOfPreviousTimeStep() @@ -141,7 +141,7 @@ void ComponentTransportProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } Eigen::Vector3d ComponentTransportProcess::getFlux( diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp index a669c9c68d8..4701e5de261 100644 --- a/ProcessLib/HT/HTProcess.cpp +++ b/ProcessLib/HT/HTProcess.cpp @@ -115,7 +115,7 @@ void HTProcess::assembleConcreteProcess(const double t, double const dt, GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void HTProcess::assembleWithJacobianConcreteProcess( @@ -144,7 +144,7 @@ void HTProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } void HTProcess::preTimestepConcreteProcess(std::vector<GlobalVector*> const& x, diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp index 1c6cbfa30da..7124426f857 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp @@ -90,7 +90,7 @@ void HeatConductionProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); auto const residuum = computeResiduum(*x[0], *xdot[0], M, K, b); transformVariableFromGlobalVector(residuum, 0 /*variable id*/, @@ -114,7 +114,7 @@ void HeatConductionProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); transformVariableFromGlobalVector(b, 0 /*variable id*/, *_local_to_global_index_map, *_heat_flux, diff --git a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp index 7d57f19c365..a7f40e2c8bc 100644 --- a/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp +++ b/ProcessLib/HeatTransportBHE/HeatTransportBHEProcess.cpp @@ -172,7 +172,7 @@ void HeatTransportBHEProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void HeatTransportBHEProcess::assembleWithJacobianConcreteProcess( diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp index 625bb2f4aff..b994ada35a7 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp @@ -398,7 +398,7 @@ void HydroMechanicsProcess<DisplacementDim>::assembleConcreteProcess( // Call global assembler for each local assembly item. GlobalExecutor::executeMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, dt, x, xdot, process_id, M, K, b, _coupled_solutions); + dof_table, t, dt, x, xdot, process_id, M, K, b); } template <int DisplacementDim> @@ -443,7 +443,7 @@ void HydroMechanicsProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); auto copyRhs = [&](int const variable_id, auto& output_vector) { if (_use_monolithic_scheme) diff --git a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp index 49c2e6855f1..b28d2aeff66 100644 --- a/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/LIE/HydroMechanics/HydroMechanicsProcess.cpp @@ -579,7 +579,7 @@ void HydroMechanicsProcess<GlobalDim>::assembleConcreteProcess( // Call global assembler for each local assembly item. GlobalExecutor::executeMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, dt, x, xdot, process_id, M, K, b, _coupled_solutions); + dof_table, t, dt, x, xdot, process_id, M, K, b); } template <int GlobalDim> @@ -599,7 +599,7 @@ void HydroMechanicsProcess<GlobalDim>::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); auto copyRhs = [&](int const variable_id, auto& output_vector) { transformVariableFromGlobalVector(b, variable_id, diff --git a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp index e3de8775e30..26deeeb3669 100644 --- a/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp +++ b/ProcessLib/LIE/SmallDeformation/SmallDeformationProcess.cpp @@ -562,7 +562,7 @@ void SmallDeformationProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> void SmallDeformationProcess<DisplacementDim>:: @@ -582,7 +582,7 @@ void SmallDeformationProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } template <int DisplacementDim> void SmallDeformationProcess<DisplacementDim>::preTimestepConcreteProcess( diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp index 25c28c5996c..ae54d245ff1 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp +++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp @@ -83,7 +83,7 @@ void LiquidFlowProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); auto const residuum = computeResiduum(*x[0], *xdot[0], M, K, b); transformVariableFromGlobalVector(residuum, 0 /*variable id*/, @@ -107,7 +107,7 @@ void LiquidFlowProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } void LiquidFlowProcess::computeSecondaryVariableConcrete( diff --git a/ProcessLib/PhaseField/PhaseFieldProcess.cpp b/ProcessLib/PhaseField/PhaseFieldProcess.cpp index b8ac1967353..24914bb7338 100644 --- a/ProcessLib/PhaseField/PhaseFieldProcess.cpp +++ b/ProcessLib/PhaseField/PhaseFieldProcess.cpp @@ -191,7 +191,7 @@ void PhaseFieldProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -226,7 +226,7 @@ void PhaseFieldProcess<DisplacementDim>::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); if (process_id == 0) { diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp index 5bdc63315b0..e424e68e34b 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp @@ -78,7 +78,7 @@ void RichardsComponentTransportProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess( @@ -97,7 +97,7 @@ void RichardsComponentTransportProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } } // namespace RichardsComponentTransport diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp index b8ebdab6e0e..d6743efd437 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp @@ -75,7 +75,7 @@ void RichardsFlowProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void RichardsFlowProcess::assembleWithJacobianConcreteProcess( @@ -94,7 +94,7 @@ void RichardsFlowProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } } // namespace RichardsFlow diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp index a8c5b7cdb92..c7e64883de9 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp @@ -463,7 +463,7 @@ void RichardsMechanicsProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -508,7 +508,7 @@ void RichardsMechanicsProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); auto copyRhs = [&](int const variable_id, auto& output_vector) { if (_use_monolithic_scheme) diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp index d7ca5dce3b0..b2b04be822b 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.cpp @@ -212,7 +212,7 @@ void SmallDeformationProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -233,7 +233,7 @@ void SmallDeformationProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); transformVariableFromGlobalVector(b, 0, *_local_to_global_index_map, *_nodal_forces, std::negate<double>()); diff --git a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp index 90b13c58124..5b3db21887d 100644 --- a/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp +++ b/ProcessLib/SmallDeformationNonlocal/SmallDeformationNonlocalProcess.cpp @@ -247,7 +247,7 @@ void SmallDeformationNonlocalProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -287,7 +287,7 @@ void SmallDeformationNonlocalProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); b.copyValues(*_nodal_forces); std::transform(_nodal_forces->begin(), _nodal_forces->end(), diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp index d8668153291..c1ba6edd4b2 100644 --- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp +++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp @@ -71,7 +71,7 @@ void SteadyStateDiffusion::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void SteadyStateDiffusion::assembleWithJacobianConcreteProcess( @@ -89,7 +89,7 @@ void SteadyStateDiffusion::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } } // namespace SteadyStateDiffusion diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp index 67bbb6a9658..835d07eb3cf 100644 --- a/ProcessLib/TES/TESProcess.cpp +++ b/ProcessLib/TES/TESProcess.cpp @@ -223,7 +223,7 @@ void TESProcess::assembleConcreteProcess(const double t, double const dt, GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void TESProcess::assembleWithJacobianConcreteProcess( @@ -240,7 +240,7 @@ void TESProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } void TESProcess::preTimestepConcreteProcess(std::vector<GlobalVector*> const& x, diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp index 2b36ca9ed85..576355aa0bd 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp @@ -88,7 +88,7 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( @@ -107,7 +107,7 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } void ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess( std::vector<GlobalVector*> const& x, double const t, double const delta_t, diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp index 769e0cd06aa..33d4a079f9c 100644 --- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp +++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp @@ -254,7 +254,7 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::assembleConcreteProcess( // Call global assembler for each local assembly item. GlobalExecutor::executeMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, dt, x, xdot, process_id, M, K, b, _coupled_solutions); + dof_table, t, dt, x, xdot, process_id, M, K, b); } template <int DisplacementDim> @@ -304,7 +304,7 @@ void ThermoHydroMechanicsProcess<DisplacementDim>:: GlobalExecutor::executeMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, dof_tables, t, dt, x, xdot, dxdot_dx, dx_dx, - process_id, M, K, b, Jac, _coupled_solutions); + process_id, M, K, b, Jac); auto copyRhs = [&](int const variable_id, auto& output_vector) { if (_use_monolithic_scheme) diff --git a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp index 390f01e9672..99ab6af2b92 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp +++ b/ProcessLib/ThermoMechanicalPhaseField/ThermoMechanicalPhaseFieldProcess.cpp @@ -204,7 +204,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -254,7 +254,7 @@ void ThermoMechanicalPhaseFieldProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } template <int DisplacementDim> diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp index 91c2df8034f..b37b060e939 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsProcess.cpp @@ -300,7 +300,7 @@ void ThermoMechanicsProcess<DisplacementDim>::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } template <int DisplacementDim> @@ -362,7 +362,7 @@ void ThermoMechanicsProcess<DisplacementDim>:: GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_tables, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); // TODO (naumov): Refactor the copy rhs part. This is copy from HM. auto copyRhs = [&](int const variable_id, auto& output_vector) { diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp index 330cd43408e..486c490e069 100644 --- a/ProcessLib/TimeLoop.cpp +++ b/ProcessLib/TimeLoop.cpp @@ -770,6 +770,10 @@ TimeLoop::solveCoupledEquationSystemsByStaggeredScheme( BaseLib::RunTime time_timestep_process; time_timestep_process.start(); + // The following setting of coupled_solutions can be removed only if + // the CoupledSolutionsForStaggeredScheme and related functions are + // removed totally from the computation of the secondary variable + // and from post-time functions. CoupledSolutionsForStaggeredScheme coupled_solutions( _process_solutions); diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp index 878bd207406..b0cbbe940ec 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp @@ -78,7 +78,7 @@ void TwoPhaseFlowWithPPProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( @@ -97,7 +97,7 @@ void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } } // namespace TwoPhaseFlowWithPP diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp index 275df387324..a40a2acb8d9 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp @@ -79,7 +79,7 @@ void TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, process_id, M, K, - b, _coupled_solutions); + b); } void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess( @@ -98,7 +98,7 @@ void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess( GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, _local_assemblers, pv.getActiveElementIDs(), dof_table, t, dt, x, xdot, - dxdot_dx, dx_dx, process_id, M, K, b, Jac, _coupled_solutions); + dxdot_dx, dx_dx, process_id, M, K, b, Jac); } void TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess( std::vector<GlobalVector*> const& x, double const t, double const dt, diff --git a/ProcessLib/VectorMatrixAssembler.cpp b/ProcessLib/VectorMatrixAssembler.cpp index 256cfd7ad6b..6f5d6084869 100644 --- a/ProcessLib/VectorMatrixAssembler.cpp +++ b/ProcessLib/VectorMatrixAssembler.cpp @@ -45,8 +45,7 @@ void VectorMatrixAssembler::assemble( dof_tables, const double t, double const dt, std::vector<GlobalVector*> const& x, std::vector<GlobalVector*> const& xdot, int const process_id, - GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, - CoupledSolutionsForStaggeredScheme const* const /*cpl_xs*/) + GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b) { std::vector<std::vector<GlobalIndexType>> indices_of_processes; indices_of_processes.reserve(dof_tables.size()); @@ -79,18 +78,6 @@ void VectorMatrixAssembler::assemble( getCoupledLocalSolutions(xdot, indices_of_processes); auto const local_xdot = MathLib::toVector(local_coupled_xdots); - /* - auto local_coupled_xs0 = getCoupledLocalSolutions(cpl_xs->coupled_xs_t0, - indices_of_processes); - - auto local_coupled_xs = - getCoupledLocalSolutions(x, indices_of_processes); - - auto const local_x = MathLib::toVector(local_coupled_xs); - - ProcessLib::LocalCoupledSolutions local_coupled_solutions( - std::move(local_coupled_xs0)); - */ local_assembler.assembleForStaggeredScheme( t, dt, local_x, local_xdot, process_id, _local_M_data, @@ -125,8 +112,7 @@ void VectorMatrixAssembler::assembleWithJacobian( const double t, double const dt, std::vector<GlobalVector*> const& x, std::vector<GlobalVector*> const& xdot, const double dxdot_dx, const double dx_dx, int const process_id, GlobalMatrix& M, GlobalMatrix& K, - GlobalVector& b, GlobalMatrix& Jac, - CoupledSolutionsForStaggeredScheme const* const /*cpl_xs*/) + GlobalVector& b, GlobalMatrix& Jac) { std::vector<std::vector<GlobalIndexType>> indices_of_processes; indices_of_processes.reserve(dof_tables.size()); @@ -162,18 +148,6 @@ void VectorMatrixAssembler::assembleWithJacobian( getCoupledLocalSolutions(xdot, indices_of_processes); auto const local_xdot = MathLib::toVector(local_coupled_xdots); - /* - auto local_coupled_xs0 = getCoupledLocalSolutions(cpl_xs->coupled_xs_t0, - indices_of_processes); - - auto local_coupled_xs = - getCoupledLocalSolutions(x, indices_of_processes); - - auto const local_x = MathLib::toVector(local_coupled_xs); - - ProcessLib::LocalCoupledSolutions local_coupled_solutions( - std::move(local_coupled_xs0)); - */ _jacobian_assembler->assembleWithJacobianForStaggeredScheme( local_assembler, t, dt, local_x, local_xdot, dxdot_dx, dx_dx, diff --git a/ProcessLib/VectorMatrixAssembler.h b/ProcessLib/VectorMatrixAssembler.h index 1046d9f3363..f9a8ea9f99f 100644 --- a/ProcessLib/VectorMatrixAssembler.h +++ b/ProcessLib/VectorMatrixAssembler.h @@ -50,8 +50,7 @@ public: double const t, double const dt, std::vector<GlobalVector*> const& x, std::vector<GlobalVector*> const& xdot, int const process_id, - GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b, - CoupledSolutionsForStaggeredScheme const* const cpl_xs); + GlobalMatrix& M, GlobalMatrix& K, GlobalVector& b); //! Assembles \c M, \c K, \c b, and the Jacobian \c Jac of the residual. //! \note The Jacobian must be assembled. @@ -64,8 +63,7 @@ public: const double t, double const dt, std::vector<GlobalVector*> const& x, std::vector<GlobalVector*> const& xdot, const double dxdot_dx, const double dx_dx, int const process_id, GlobalMatrix& M, - GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac, - CoupledSolutionsForStaggeredScheme const* const cpl_xs); + GlobalMatrix& K, GlobalVector& b, GlobalMatrix& Jac); private: // temporary data only stored here in order to avoid frequent memory -- GitLab