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

Function T_TransformMat

comp/hcurlhdivfes.cpp:1017–1040  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1015
1016 template <class T>
1017 NGS_DLL_HEADER void T_TransformMat (ElementId ei,
1018 SliceMatrix<T> mat, TRANSFORM_TYPE tt) const
1019 {
1020 Ngs_Element ngel = ma->GetElement(ei);
1021 ELEMENT_TYPE eltype = ngel.GetType();
1022
1023 int ned = ElementTopology::GetNEdges (eltype);
1024 auto edges = ElementTopology::GetEdges (eltype);
1025 ArrayMem<int,12> eorient(ned);
1026 for (int i = 0; i < ned; i++)
1027 eorient[i] =
1028 ngel.vertices[edges[i][0]] < ngel.vertices[edges[i][1]]
1029 ? 1 : -1;
1030
1031 if (tt & TRANSFORM_MAT_LEFT)
1032 for (int i = 0; i < ned; i++)
1033 for (int k = 0; k < dimension; k++)
1034 mat.Row(k+i*dimension) *= eorient[i];
1035
1036 if (tt & TRANSFORM_MAT_RIGHT)
1037 for (int j = 0; j < ned; j++)
1038 for (int l = 0; l < dimension; l++)
1039 mat.Col(l+j*dimension) *= eorient[j];
1040 }
1041
1042 template <class T>
1043 NGS_DLL_HEADER void T_TransformVec (ElementId ei,

Callers 6

VTransformMRMethod · 0.85
VTransformMCMethod · 0.85
VTransformMRFunction · 0.85
VTransformMCFunction · 0.85
VTransformMRFunction · 0.85
VTransformMCFunction · 0.85

Calls 5

GetEdgesFunction · 0.85
GetNEdgesFunction · 0.70
GetTypeMethod · 0.45
RowMethod · 0.45
ColMethod · 0.45

Tested by

no test coverage detected