MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / AddDualTrans

Method AddDualTrans

fem/tangentialfacetfe.cpp:1192–1209  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1190
1191 template <ELEMENT_TYPE ET>
1192 void TangentialFacetVolumeFE<ET> :: AddDualTrans (const SIMD_BaseMappedIntegrationRule & bmir, BareSliceMatrix<SIMD<double>> values, BareSliceVector<double> coefs) const
1193 {
1194 Switch<4-DIM>
1195 (bmir.DimSpace()-DIM,[this,&bmir,coefs,values](auto CODIM)
1196 {
1197 constexpr int DIMSPACE = DIM+CODIM.value;
1198 auto & mir = static_cast<const SIMD_MappedIntegrationRule<DIM,DIMSPACE>&> (bmir);
1199 for (size_t i = 0; i < mir.Size(); i++)
1200 {
1201 Vec<DIMSPACE,SIMD<double>> value = values.Col(i);
1202 this -> CalcDualShape2 (mir[i], mir[i].IP().FacetNr(),
1203 SBLambda([value, coefs] (size_t j, auto val)
1204 {
1205 coefs(j) += HSum(InnerProduct(value,val));
1206 }));
1207 }
1208 });
1209 }
1210
1211 template class TangentialFacetFacetFE<ET_SEGM>;
1212 template class TangentialFacetFacetFE<ET_TRIG>;

Callers

nothing calls this directly

Calls 7

InnerProductFunction · 0.70
HSumFunction · 0.50
DimSpaceMethod · 0.45
SizeMethod · 0.45
ColMethod · 0.45
CalcDualShape2Method · 0.45
FacetNrMethod · 0.45

Tested by

no test coverage detected