diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp index 41fa863e1182a74d7db03cfdc515e8e0f1fadec2..88ace5986d4c00a4cc1dfc1ddf038dbb726df557 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp @@ -83,10 +83,14 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleConcreteProcess( std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, x, M, K, b, _coupled_solutions); + pv.getElementDeactivationFlags(), dof_table, t, x, M, K, b, + _coupled_solutions); } void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( @@ -98,21 +102,26 @@ void ThermalTwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, - _local_assemblers, dof_table, t, x, xdot, dxdot_dx, - dx_dx, M, K, b, Jac, _coupled_solutions); + _local_assemblers, pv.getElementDeactivationFlags(), dof_table, t, x, + xdot, dxdot_dx, dx_dx, M, K, b, Jac, _coupled_solutions); } void ThermalTwoPhaseFlowWithPPProcess::preTimestepConcreteProcess( GlobalVector const& x, double const t, double const delta_t, - const int /*process_id*/) + const int process_id) { DBUG("PreTimestep ThermalTwoPhaseFlowWithPPProcess."); - GlobalExecutor::executeMemberOnDereferenced( + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerInterface::preTimestep, _local_assemblers, - *_local_to_global_index_map, x, t, delta_t); + pv.getElementDeactivationFlags(), *_local_to_global_index_map, x, t, + delta_t); } } // end of namespace diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp index c6e4be37e09488e68ee913ed06cc411bbf40b361..3a75bf8f365f4da60c50c0dc109099d5cdc09d4f 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp @@ -80,10 +80,14 @@ void TwoPhaseFlowWithPPProcess::assembleConcreteProcess(const double t, std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, x, M, K, b, _coupled_solutions); + pv.getElementDeactivationFlags(), dof_table, t, x, M, K, b, + _coupled_solutions); } void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( @@ -95,11 +99,14 @@ void TwoPhaseFlowWithPPProcess::assembleWithJacobianConcreteProcess( std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, - _local_assemblers, dof_table, t, x, xdot, dxdot_dx, - dx_dx, M, K, b, Jac, _coupled_solutions); + _local_assemblers, pv.getElementDeactivationFlags(), dof_table, t, x, + xdot, dxdot_dx, dx_dx, M, K, b, Jac, _coupled_solutions); } } // end of namespace diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp index 9e7309706bc7ae738e6795deeaf0072cf0f42c8e..ae7ebc467330024a07c04b63a06e9cec7e60b0c4 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp @@ -80,10 +80,14 @@ void TwoPhaseFlowWithPrhoProcess::assembleConcreteProcess(const double t, std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assemble, _local_assemblers, - dof_table, t, x, M, K, b, _coupled_solutions); + pv.getElementDeactivationFlags(), dof_table, t, x, M, K, b, + _coupled_solutions); } void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess( @@ -95,21 +99,27 @@ void TwoPhaseFlowWithPrhoProcess::assembleWithJacobianConcreteProcess( std::vector<std::reference_wrapper<NumLib::LocalToGlobalIndexMap>> dof_table = {std::ref(*_local_to_global_index_map)}; + const int process_id = 0; + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + // Call global assembler for each local assembly item. - GlobalExecutor::executeMemberDereferenced( + GlobalExecutor::executeSelectedMemberDereferenced( _global_assembler, &VectorMatrixAssembler::assembleWithJacobian, - _local_assemblers, dof_table, t, x, xdot, dxdot_dx, - dx_dx, M, K, b, Jac, _coupled_solutions); + _local_assemblers, pv.getElementDeactivationFlags(), dof_table, t, x, + xdot, dxdot_dx, dx_dx, M, K, b, Jac, _coupled_solutions); } void TwoPhaseFlowWithPrhoProcess::preTimestepConcreteProcess( GlobalVector const& x, double const t, double const dt, - const int /*process_id*/) + const int process_id) { DBUG("PreTimestep TwoPhaseFlowWithPrhoProcess."); - GlobalExecutor::executeMemberOnDereferenced( + ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; + + GlobalExecutor::executeSelectedMemberOnDereferenced( &LocalAssemblerInterface::preTimestep, _local_assemblers, - *_local_to_global_index_map, x, t, dt); + pv.getElementDeactivationFlags(), *_local_to_global_index_map, x, t, + dt); } } // end of namespace