128 return [integration_order](
130 std::unordered_map<std::size_t, BHE::BHETypes*>
const&
134 auto const& integration_method = NumLib::IntegrationMethodRegistry::
135 template getIntegrationMethod<
136 typename ShapeFunction::MeshElement>(integration_order);
140 return LADataIntfPtr{
new LocalAssemblerDataSoil<ShapeFunction>{
141 e, integration_method,
142 std::forward<ConstructorArgs>(args)...}};
153 return [integration_order](
155 std::unordered_map<std::size_t, BHE::BHETypes*>
const&
159 auto const& integration_method = NumLib::IntegrationMethodRegistry::
160 template getIntegrationMethod<
161 typename ShapeFunction::MeshElement>(integration_order);
163 auto& bhe = *element_to_bhe_map.at(e.
getID());
165 if (std::holds_alternative<BHE::BHE_1U>(bhe))
168 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_1U>{
169 e, integration_method, std::get<BHE::BHE_1U>(bhe),
170 std::forward<ConstructorArgs>(args)...}};
173 if (std::holds_alternative<BHE::BHE_CXA>(bhe))
176 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_CXA>{
177 e, integration_method, std::get<BHE::BHE_CXA>(bhe),
178 std::forward<ConstructorArgs>(args)...}};
181 if (std::holds_alternative<BHE::BHE_CXC>(bhe))
184 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_CXC>{
185 e, integration_method, std::get<BHE::BHE_CXC>(bhe),
186 std::forward<ConstructorArgs>(args)...}};
189 if (std::holds_alternative<BHE::BHE_2U>(bhe))
192 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_2U>{
193 e, integration_method, std::get<BHE::BHE_2U>(bhe),
194 std::forward<ConstructorArgs>(args)...}};
197 if (std::holds_alternative<BHE::BHE_1P>(bhe))
200 new LocalAssemblerDataBHE<ShapeFunction, BHE::BHE_1P>{
201 e, integration_method, std::get<BHE::BHE_1P>(bhe),
202 std::forward<ConstructorArgs>(args)...}};
205 "Trying to create local assembler for an unknown BHE type.");