129 return [integration_order](
131 std::unordered_map<std::size_t, BHE::BHETypes*>
const&
135 auto const& integration_method = NumLib::IntegrationMethodRegistry::
136 template getIntegrationMethod<
137 typename ShapeFunction::MeshElement>(integration_order);
141 return LADataIntfPtr{
new LocalAssemblerDataSoil<ShapeFunction>{
142 e, integration_method,
143 std::forward<ConstructorArgs>(args)...}};
154 return [integration_order](
156 std::unordered_map<std::size_t, BHE::BHETypes*>
const&
160 auto const& integration_method = NumLib::IntegrationMethodRegistry::
161 template getIntegrationMethod<
162 typename ShapeFunction::MeshElement>(integration_order);
164 auto& bhe = *element_to_bhe_map.at(e.
getID());
166 if (std::holds_alternative<BHE::BHE_1U>(bhe))
169 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_1U>{
170 e, integration_method, std::get<BHE::BHE_1U>(bhe),
171 std::forward<ConstructorArgs>(args)...}};
174 if (std::holds_alternative<BHE::BHE_CXA>(bhe))
177 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_CXA>{
178 e, integration_method, std::get<BHE::BHE_CXA>(bhe),
179 std::forward<ConstructorArgs>(args)...}};
182 if (std::holds_alternative<BHE::BHE_CXC>(bhe))
185 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_CXC>{
186 e, integration_method, std::get<BHE::BHE_CXC>(bhe),
187 std::forward<ConstructorArgs>(args)...}};
190 if (std::holds_alternative<BHE::BHE_2U>(bhe))
193 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_2U>{
194 e, integration_method, std::get<BHE::BHE_2U>(bhe),
195 std::forward<ConstructorArgs>(args)...}};
198 if (std::holds_alternative<BHE::BHE_1P>(bhe))
201 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_1P>{
202 e, integration_method, std::get<BHE::BHE_1P>(bhe),
203 std::forward<ConstructorArgs>(args)...}};
206 "Trying to create local assembler for an unknown BHE type.");