diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h index 8c0db0201b83c563b2eca8cd537889a8532d09e0..cc81024ed1fe729d59bd6e7b3e08d48a63b474fb 100644 --- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h +++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryCondition-impl.h @@ -54,8 +54,8 @@ GenericNaturalBoundaryCondition<BoundaryConditionData, variable_id, component_id, std::move(all_mesh_subsets), _elements)); createLocalAssemblers<LocalAssemblerImplementation>( - global_dim, _elements, *_dof_table_boundary, _integration_order, - _local_assemblers, _data); + global_dim, _elements, *_dof_table_boundary, _local_assemblers, + false /* TODO */, _integration_order, _data); } template <typename BoundaryConditionData, diff --git a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryConditionLocalAssembler.h index bac5f8e35a495dfcfe98319dbfa54f10bac69d96..523e55abed423607a6d7539239b3b8529f87d924 100644 --- a/ProcessLib/BoundaryCondition/GenericNaturalBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/GenericNaturalBoundaryConditionLocalAssembler.h @@ -38,11 +38,12 @@ protected: public: GenericNaturalBoundaryConditionLocalAssembler( - MeshLib::Element const& e, unsigned const integration_order) + MeshLib::Element const& e, bool is_axially_symmetric, + unsigned const integration_order) : _integration_method(integration_order), _shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType, IntegrationMethod, GlobalDim>( - e, _integration_method)) + e, is_axially_symmetric, _integration_method)) { } diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h index fd9a5d43e9beff7eff9f6e0d5623d366a7e894b1..94d28e6c3c26bae89a93bd8594c035ed6b1aac1f 100644 --- a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h @@ -31,9 +31,10 @@ public: NeumannBoundaryConditionLocalAssembler( MeshLib::Element const& e, std::size_t const local_matrix_size, + bool is_axially_symmetric, unsigned const integration_order, Parameter<double> const& neumann_bc_parameter) - : Base(e, integration_order), + : Base(e, is_axially_symmetric, integration_order), _neumann_bc_parameter(neumann_bc_parameter), _local_rhs(local_matrix_size) { diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h index a6322168e37758d3a058cdf6684af416ff7f6497..e5878a606ad853e3ed3f5c24c275ec697c5ed00c 100644 --- a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h @@ -31,11 +31,12 @@ class RobinBoundaryConditionLocalAssembler final ShapeFunction, IntegrationMethod, GlobalDim>; public: - RobinBoundaryConditionLocalAssembler( - MeshLib::Element const& e, std::size_t const local_matrix_size, - unsigned const integration_order, - RobinBoundaryConditionData const& data) - : Base(e, integration_order), + RobinBoundaryConditionLocalAssembler(MeshLib::Element const& e, + std::size_t const local_matrix_size, + bool is_axially_symmetric, + unsigned const integration_order, + RobinBoundaryConditionData const& data) + : Base(e, is_axially_symmetric, integration_order), _data(data), _local_K(local_matrix_size, local_matrix_size), _local_rhs(local_matrix_size) diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h b/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h index 48f747953956a37374a3930d80707e64b40454fe..cc166a4114878ff24ed8d7df9c0fbae99751937d 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowFEM.h @@ -66,6 +66,7 @@ public: /// element matrix. LocalAssemblerData(MeshLib::Element const& element, std::size_t const /*local_matrix_size*/, + bool is_axially_symmetric, unsigned const integration_order, GroundwaterFlowProcessData const& process_data) : _element(element), @@ -73,7 +74,7 @@ public: _integration_method(integration_order), _shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType, IntegrationMethod, GlobalDim>( - element, _integration_method)) + element, is_axially_symmetric, _integration_method)) { } diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp index 7fd6d066dff01e211e6d1ec92d6063dd0a011e20..38c6120716ecdf8cec033bf93f1273a6fb357cf9 100644 --- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp +++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp @@ -44,8 +44,8 @@ void GroundwaterFlowProcess::initializeConcreteProcess( unsigned const integration_order) { ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, integration_order, - _local_assemblers, _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( "darcy_velocity_x", 1, diff --git a/ProcessLib/HeatConduction/HeatConductionFEM.h b/ProcessLib/HeatConduction/HeatConductionFEM.h index f4cdd26d1861710a63e1b12ac953ad1258623797..1bf18ee125423100075bad874be47a6c999ac065 100644 --- a/ProcessLib/HeatConduction/HeatConductionFEM.h +++ b/ProcessLib/HeatConduction/HeatConductionFEM.h @@ -62,6 +62,7 @@ public: /// element matrix. LocalAssemblerData(MeshLib::Element const& element, std::size_t const local_matrix_size, + bool is_axially_symmetric, unsigned const integration_order, HeatConductionProcessData const& process_data) : _element(element), @@ -69,11 +70,12 @@ public: _integration_method(integration_order), _shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType, IntegrationMethod, GlobalDim>( - element, _integration_method)) + element, is_axially_symmetric, _integration_method)) { // This assertion is valid only if all nodal d.o.f. use the same shape // matrices. assert(local_matrix_size == ShapeFunction::NPOINTS * NUM_NODAL_DOF); + (void) local_matrix_size; } void assemble(double const t, std::vector<double> const& local_x, diff --git a/ProcessLib/HeatConduction/HeatConductionProcess.cpp b/ProcessLib/HeatConduction/HeatConductionProcess.cpp index 8523f8648701fe0ccf280066e2295343c6dd902e..4b556ed908e7185d5a2461c512ee1747bec6c12f 100644 --- a/ProcessLib/HeatConduction/HeatConductionProcess.cpp +++ b/ProcessLib/HeatConduction/HeatConductionProcess.cpp @@ -38,8 +38,8 @@ void HeatConductionProcess::initializeConcreteProcess( unsigned const integration_order) { ProcessLib::createLocalAssemblers<LocalAssemblerData>( - mesh.getDimension(), mesh.getElements(), dof_table, integration_order, - _local_assemblers, _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( "heat_flux_x", 1, diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index 01cb3ab818c3fc424ab74420f152ad1622342bed..e2a898836b1de17dc947e3945ed4bba6f728bf81 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -151,7 +151,7 @@ public: auto const shape_matrices = initShapeMatrices<ShapeFunction, ShapeMatricesType, IntegrationMethod, DisplacementDim>( - e, _integration_method); + e, false /* TODO */, _integration_method); for (unsigned ip = 0; ip < n_integration_points; ip++) { diff --git a/ProcessLib/TES/TESLocalAssembler-impl.h b/ProcessLib/TES/TESLocalAssembler-impl.h index 86bc01e390b78a29a14b073e0afdebe749d0ce6d..4e7f78fadccaff1e088b2e5521de657adadbeb10 100644 --- a/ProcessLib/TES/TESLocalAssembler-impl.h +++ b/ProcessLib/TES/TESLocalAssembler-impl.h @@ -110,12 +110,13 @@ template <typename ShapeFunction_, typename IntegrationMethod_, TESLocalAssembler<ShapeFunction_, IntegrationMethod_, GlobalDim>:: TESLocalAssembler(MeshLib::Element const& e, std::size_t const /*local_matrix_size*/, + bool is_axially_symmetric, unsigned const integration_order, AssemblyParams const& asm_params) : _integration_method(integration_order), _shape_matrices(initShapeMatrices<ShapeFunction, ShapeMatricesType, IntegrationMethod_, GlobalDim>( - e, _integration_method)), + e, is_axially_symmetric, _integration_method)), _d(asm_params, // TODO narrowing conversion static_cast<const unsigned>( diff --git a/ProcessLib/TES/TESLocalAssembler.h b/ProcessLib/TES/TESLocalAssembler.h index 86adf8f649e0607fff1f71011761070c4236ab24..5b9b4cd232d7230dff36f46680f4a8c824437ab5 100644 --- a/ProcessLib/TES/TESLocalAssembler.h +++ b/ProcessLib/TES/TESLocalAssembler.h @@ -66,6 +66,7 @@ public: TESLocalAssembler(MeshLib::Element const& e, std::size_t const local_matrix_size, + bool is_axially_symmetric, unsigned const integration_order, AssemblyParams const& asm_params); diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp index b8532baeb5049ff2243809077597c25753e7e749..ed754c9485b3686f126aba286001c968338dd23a 100644 --- a/ProcessLib/TES/TESProcess.cpp +++ b/ProcessLib/TES/TESProcess.cpp @@ -140,8 +140,8 @@ void TESProcess::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { ProcessLib::createLocalAssemblers<TESLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, integration_order, - _local_assemblers, _assembly_params); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _assembly_params); initializeSecondaryVariables(); }