From 030e4cf7dce0dc8f5011b8025a799985dac9e323 Mon Sep 17 00:00:00 2001 From: Christoph Lehmann <christoph.lehmann@ufz.de> Date: Wed, 13 Oct 2021 17:40:43 +0200 Subject: [PATCH] Don't pass shp fct order to local data initializers --- .../ComponentTransportProcess.cpp | 3 +-- ProcessLib/HT/HTProcess.cpp | 15 ++++----------- .../HeatConduction/HeatConductionProcess.cpp | 5 +---- ProcessLib/LiquidFlow/LiquidFlowProcess.cpp | 6 +----- .../RichardsComponentTransportProcess.cpp | 3 +-- ProcessLib/RichardsFlow/RichardsFlowProcess.cpp | 5 +---- .../SteadyStateDiffusion/SteadyStateDiffusion.cpp | 5 +---- ProcessLib/SurfaceFlux/SurfaceFlux.cpp | 2 +- ProcessLib/TES/TESProcess.cpp | 6 +----- .../ThermalTwoPhaseFlowWithPPProcess.cpp | 6 +----- .../ThermoRichardsFlowProcess.cpp | 12 ++---------- .../TwoPhaseFlowWithPPProcess.cpp | 5 +---- .../TwoPhaseFlowWithPrhoProcess.cpp | 5 +---- ProcessLib/Utils/CreateLocalAssemblers.h | 10 ++++------ Tests/MathLib/TestGaussLegendreIntegration.cpp | 2 +- Tests/NumLib/TestExtrapolation.cpp | 2 +- 16 files changed, 23 insertions(+), 69 deletions(-) diff --git a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp index b334ce2edce..92da0c64557 100644 --- a/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp +++ b/ProcessLib/ComponentTransport/ComponentTransportProcess.cpp @@ -84,8 +84,7 @@ void ComponentTransportProcess::initializeConcreteProcess( } ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data, transport_process_variables); diff --git a/ProcessLib/HT/HTProcess.cpp b/ProcessLib/HT/HTProcess.cpp index d4b80bef82c..291dd4191e1 100644 --- a/ProcessLib/HT/HTProcess.cpp +++ b/ProcessLib/HT/HTProcess.cpp @@ -48,26 +48,19 @@ void HTProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - // For the staggered scheme, both processes are assumed to use the same - // element order. Therefore the order of shape function can be fetched from - // any set of the sets of process variables of the coupled processes. Here, - // we take the one from the first process by setting process_id = 0. - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; - if (_use_monolithic_scheme) { ProcessLib::createLocalAssemblers<MonolithicHTFEM>( mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, - mesh.isAxiallySymmetric(), integration_order, _process_data); + _local_assemblers, mesh.isAxiallySymmetric(), integration_order, + _process_data); } else { ProcessLib::createLocalAssemblers<StaggeredHTFEM>( mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, - mesh.isAxiallySymmetric(), integration_order, _process_data); + _local_assemblers, mesh.isAxiallySymmetric(), integration_order, + _process_data); } _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp index 435f49e42bc..f5dc36e0def 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp @@ -46,11 +46,8 @@ void HeatConductionProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp index eee3dee8b55..3dccd5deccc 100644 --- a/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp +++ b/ProcessLib/LiquidFlow/LiquidFlowProcess.cpp @@ -53,13 +53,9 @@ void LiquidFlowProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; - int const mesh_space_dimension = _process_data.mesh_space_dimension; ProcessLib::createLocalAssemblers<LiquidFlowLocalAssembler>( - mesh_space_dimension, mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh_space_dimension, mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp index ecbb8ac3ac1..435518ae596 100644 --- a/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp +++ b/ProcessLib/RichardsComponentTransport/RichardsComponentTransportProcess.cpp @@ -46,8 +46,7 @@ void RichardsComponentTransportProcess::initializeConcreteProcess( getProcessVariables(monolithic_process_id)[0]; ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data, pv); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp index 50ec9b46e4b..cb134bc87be 100644 --- a/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp +++ b/ProcessLib/RichardsFlow/RichardsFlowProcess.cpp @@ -40,11 +40,8 @@ void RichardsFlowProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp index 208a10404b0..5f68a0e269b 100644 --- a/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp +++ b/ProcessLib/SteadyStateDiffusion/SteadyStateDiffusion.cpp @@ -42,11 +42,8 @@ void SteadyStateDiffusion::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/SurfaceFlux/SurfaceFlux.cpp b/ProcessLib/SurfaceFlux/SurfaceFlux.cpp index 88fed1e28f6..704317e223c 100644 --- a/ProcessLib/SurfaceFlux/SurfaceFlux.cpp +++ b/ProcessLib/SurfaceFlux/SurfaceFlux.cpp @@ -47,7 +47,7 @@ SurfaceFlux::SurfaceFlux(MeshLib::Mesh& boundary_mesh, ProcessLib::createLocalAssemblers<SurfaceFluxLocalAssembler>( boundary_mesh.getDimension() + 1, // or bulk_mesh.getDimension()? - boundary_mesh.getElements(), *dof_table, 1, _local_assemblers, + boundary_mesh.getElements(), *dof_table, _local_assemblers, boundary_mesh.isAxiallySymmetric(), integration_order, *bulk_element_ids, *bulk_face_ids); } diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp index b6bfb20ff78..87248b27d2b 100644 --- a/ProcessLib/TES/TESProcess.cpp +++ b/ProcessLib/TES/TESProcess.cpp @@ -141,12 +141,8 @@ void TESProcess::initializeConcreteProcess( NumLib::LocalToGlobalIndexMap const& dof_table, MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int monolithic_process_id = 0; - ProcessLib::ProcessVariable const& pv = - getProcessVariables(monolithic_process_id)[0]; ProcessLib::createLocalAssemblers<TESLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _assembly_params); initializeSecondaryVariables(); diff --git a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp index 373de1c4cdf..950bf5d8b64 100644 --- a/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/ThermalTwoPhaseFlowWithPP/ThermalTwoPhaseFlowWithPPProcess.cpp @@ -50,12 +50,8 @@ void ThermalTwoPhaseFlowWithPPProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int monolithic_process_id = 0; - ProcessLib::ProcessVariable const& pv = - getProcessVariables(monolithic_process_id)[0]; ProcessLib::createLocalAssemblers<ThermalTwoPhaseFlowWithPPLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp index dd5d84523ad..45b75b324cb 100644 --- a/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp +++ b/ProcessLib/ThermoRichardsFlow/ThermoRichardsFlowProcess.cpp @@ -64,17 +64,9 @@ void ThermoRichardsFlowProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - using nlohmann::json; - - const int process_id = 0; - const int variable_id = 0; ProcessLib::createLocalAssemblers<ThermoRichardsFlowLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - getProcessVariables(process_id)[variable_id] - .get() - .getShapeFunctionOrder(), - _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); auto add_secondary_variable = [&](std::string const& name, int const num_components, diff --git a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp index 9c9567f6ad8..3833b73345b 100644 --- a/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPP/TwoPhaseFlowWithPPProcess.cpp @@ -43,11 +43,8 @@ void TwoPhaseFlowWithPPProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; ProcessLib::createLocalAssemblers<TwoPhaseFlowWithPPLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp index bf2c192884a..53f5ae9e4b4 100644 --- a/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp +++ b/ProcessLib/TwoPhaseFlowWithPrho/TwoPhaseFlowWithPrhoProcess.cpp @@ -44,11 +44,8 @@ void TwoPhaseFlowWithPrhoProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int process_id = 0; - ProcessLib::ProcessVariable const& pv = getProcessVariables(process_id)[0]; ProcessLib::createLocalAssemblers<TwoPhaseFlowWithPrhoLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - pv.getShapeFunctionOrder(), _local_assemblers, + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( diff --git a/ProcessLib/Utils/CreateLocalAssemblers.h b/ProcessLib/Utils/CreateLocalAssemblers.h index 51d70c7885e..87288a33994 100644 --- a/ProcessLib/Utils/CreateLocalAssemblers.h +++ b/ProcessLib/Utils/CreateLocalAssemblers.h @@ -22,7 +22,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -40,7 +39,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -65,7 +64,6 @@ void createLocalAssemblers( const unsigned dimension, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { @@ -75,17 +73,17 @@ void createLocalAssemblers( { case 1: createLocalAssemblers<1, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); break; case 2: createLocalAssemblers<2, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); break; case 3: createLocalAssemblers<3, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); break; default: diff --git a/Tests/MathLib/TestGaussLegendreIntegration.cpp b/Tests/MathLib/TestGaussLegendreIntegration.cpp index 7cb7bfb99fd..5e6ff1b0e8c 100644 --- a/Tests/MathLib/TestGaussLegendreIntegration.cpp +++ b/Tests/MathLib/TestGaussLegendreIntegration.cpp @@ -128,7 +128,7 @@ public: // createAssemblers(mesh); ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), *_dof_table, 1, + mesh.getDimension(), mesh.getElements(), *_dof_table, _local_assemblers, mesh.isAxiallySymmetric(), _integration_order); } diff --git a/Tests/NumLib/TestExtrapolation.cpp b/Tests/NumLib/TestExtrapolation.cpp index 2041c88ae2e..9a9b2dae8ec 100644 --- a/Tests/NumLib/TestExtrapolation.cpp +++ b/Tests/NumLib/TestExtrapolation.cpp @@ -161,7 +161,7 @@ public: // createAssemblers(mesh); ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), *_dof_table, 1, + mesh.getDimension(), mesh.getElements(), *_dof_table, _local_assemblers, mesh.isAxiallySymmetric(), _integration_order); } -- GitLab