diff --git a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h index 9296b1db422cc6ec61926127cc29a5d50856d309..ab58fca24cbd498ff9698d0ca3bf534c0184e56b 100644 --- a/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/NeumannBoundaryConditionLocalAssembler.h @@ -57,7 +57,8 @@ public: // Get element nodes for the interpolation from nodes to integration // point. NodalVectorType parameter_node_values = - _neumann_bc_parameter.getNodalValuesOnElement(Base::_element, t); + _neumann_bc_parameter.getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); for (unsigned ip = 0; ip < n_integration_points; ip++) { diff --git a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h index 762f6470493cf6fbae3b85ef63bb9526640b0c36..4a196ee2cb322f2e572174f68554141ae40698bc 100644 --- a/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/RobinBoundaryConditionLocalAssembler.h @@ -55,9 +55,11 @@ public: Base::_integration_method.getNumberOfPoints(); typename Base::NodalVectorType const alpha = - _data.alpha.getNodalValuesOnElement(Base::_element, t); + _data.alpha.getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); typename Base::NodalVectorType const u_0 = - _data.u_0.getNodalValuesOnElement(Base::_element, t); + _data.u_0.getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); for (unsigned ip = 0; ip < n_integration_points; ++ip) { diff --git a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h index 471c2974b50eeb9ec9e1cfff5bce43318163394c..4da73be23f997f9924bbfd341688639e2caeb8da 100644 --- a/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h +++ b/ProcessLib/BoundaryCondition/VariableDependentNeumannBoundaryConditionLocalAssembler.h @@ -64,16 +64,20 @@ public: // Get element nodes for the interpolation from nodes to // integration point. NodalVectorType const constant_node_values = - _data.constant.getNodalValuesOnElement(Base::_element, t); + _data.constant.getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); NodalVectorType const coefficient_current_variable_node_values = - _data.coefficient_current_variable.getNodalValuesOnElement( - Base::_element, t); + _data.coefficient_current_variable + .getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); NodalVectorType const coefficient_other_variable_node_values = - _data.coefficient_other_variable.getNodalValuesOnElement( - Base::_element, t); + _data.coefficient_other_variable + .getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); NodalVectorType const coefficient_mixed_variables_node_values = - _data.coefficient_mixed_variables.getNodalValuesOnElement( - Base::_element, t); + _data.coefficient_mixed_variables + .getNodalValuesOnElement(Base::_element, t) + .template topRows<ShapeFunction::MeshElement::n_all_nodes>(); unsigned const n_integration_points = Base::_integration_method.getNumberOfPoints();