MFEM v4.9.0
Finite element discretization library
Loading...
Searching...
No Matches
eval_by_nodes.cpp
Go to the documentation of this file.
1// Copyright (c) 2010-2025, Lawrence Livermore National Security, LLC. Produced
2// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
3// LICENSE and NOTICE for details. LLNL-CODE-806117.
4//
5// This file is part of the MFEM library. For more information and source code
6// availability visit https://mfem.org.
7//
8// MFEM is free software; you can redistribute it and/or modify it under the
9// terms of the BSD-3 license. We welcome feedback and contributions, see file
10// CONTRIBUTING.md for details.
11
13#include "eval.hpp"
14
15namespace mfem
16{
17namespace internal
18{
19namespace quadrature_interpolator
20{
21
22void InitEvalByNodesKernels()
23{
24 using k = QuadratureInterpolator::TensorEvalKernels;
25
26 // 2D
27 k::Specialization<2,QVectorLayout::byNODES,1,3,3>::Opt<1>::Add();
28 k::Specialization<2,QVectorLayout::byNODES,1,2,4>::Opt<1>::Add();
29 k::Specialization<2,QVectorLayout::byNODES,1,3,2>::Opt<1>::Add();
30 k::Specialization<2,QVectorLayout::byNODES,1,3,4>::Opt<1>::Add();
31 k::Specialization<2,QVectorLayout::byNODES,1,3,6>::Opt<1>::Add();
32 k::Specialization<2,QVectorLayout::byNODES,1,4,3>::Opt<1>::Add();
33 k::Specialization<2,QVectorLayout::byNODES,1,4,4>::Opt<1>::Add();
34
35 k::Specialization<2,QVectorLayout::byNODES,2,2,2>::Opt<1>::Add();
36 k::Specialization<2,QVectorLayout::byNODES,2,2,3>::Opt<1>::Add();
37 k::Specialization<2,QVectorLayout::byNODES,2,2,4>::Opt<1>::Add();
38 k::Specialization<2,QVectorLayout::byNODES,2,2,5>::Opt<1>::Add();
39 k::Specialization<2,QVectorLayout::byNODES,2,2,6>::Opt<1>::Add();
40
41 k::Specialization<2,QVectorLayout::byNODES,2,3,3>::Opt<1>::Add();
42 k::Specialization<2,QVectorLayout::byNODES,2,3,4>::Opt<1>::Add();
43 k::Specialization<2,QVectorLayout::byNODES,2,3,6>::Opt<1>::Add();
44
45 k::Specialization<2,QVectorLayout::byNODES,2,4,3>::Opt<1>::Add();
46 k::Specialization<2,QVectorLayout::byNODES,2,4,4>::Opt<1>::Add();
47 k::Specialization<2,QVectorLayout::byNODES,2,4,5>::Opt<1>::Add();
48 k::Specialization<2,QVectorLayout::byNODES,2,4,6>::Opt<1>::Add();
49 k::Specialization<2,QVectorLayout::byNODES,2,4,7>::Opt<1>::Add();
50
51 k::Specialization<2,QVectorLayout::byNODES,2,5,6>::Opt<1>::Add();
52
53 // 3D
54 k::Specialization<3,QVectorLayout::byNODES,1,2,4>::Opt<1>::Add();
55 k::Specialization<3,QVectorLayout::byNODES,1,3,3>::Opt<1>::Add();
56 k::Specialization<3,QVectorLayout::byNODES,1,3,4>::Opt<1>::Add();
57 k::Specialization<3,QVectorLayout::byNODES,1,3,6>::Opt<1>::Add();
58 k::Specialization<3,QVectorLayout::byNODES,1,4,3>::Opt<1>::Add();
59 k::Specialization<3,QVectorLayout::byNODES,1,4,4>::Opt<1>::Add();
60 k::Specialization<3,QVectorLayout::byNODES,1,4,8>::Opt<1>::Add();
61
62 k::Specialization<3,QVectorLayout::byNODES,2,2,2>::Opt<1>::Add();
63 k::Specialization<3,QVectorLayout::byNODES,2,2,3>::Opt<1>::Add();
64 k::Specialization<3,QVectorLayout::byNODES,2,3,4>::Opt<1>::Add();
65
66 k::Specialization<3,QVectorLayout::byNODES,3,2,3>::Opt<1>::Add();
67 k::Specialization<3,QVectorLayout::byNODES,3,2,4>::Opt<1>::Add();
68 k::Specialization<3,QVectorLayout::byNODES,3,2,5>::Opt<1>::Add();
69 k::Specialization<3,QVectorLayout::byNODES,3,2,6>::Opt<1>::Add();
70
71 k::Specialization<3,QVectorLayout::byNODES,3,3,3>::Opt<1>::Add();
72 k::Specialization<3,QVectorLayout::byNODES,3,3,4>::Opt<1>::Add();
73 k::Specialization<3,QVectorLayout::byNODES,3,3,5>::Opt<1>::Add();
74 k::Specialization<3,QVectorLayout::byNODES,3,3,6>::Opt<1>::Add();
75
76 k::Specialization<3,QVectorLayout::byNODES,3,4,3>::Opt<1>::Add();
77 k::Specialization<3,QVectorLayout::byNODES,3,4,4>::Opt<1>::Add();
78 k::Specialization<3,QVectorLayout::byNODES,3,4,6>::Opt<1>::Add();
79 k::Specialization<3,QVectorLayout::byNODES,3,4,7>::Opt<1>::Add();
80 k::Specialization<3,QVectorLayout::byNODES,3,4,8>::Opt<1>::Add();
81}
82
83} // namespace quadrature_interpolator
84} // namespace internal
85} // namespace mfem