MFEM  v4.5.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
dispatch.hpp
Go to the documentation of this file.
1 // Copyright (c) 2010-2022, 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 
12 // Internal header, included only by .cpp files
13 
14 #include "../quadinterpolator.hpp"
15 
16 namespace mfem
17 {
18 
19 namespace internal
20 {
21 
22 namespace quadrature_interpolator
23 {
24 
25 // Tensor-product evaluation of quadrature point values: dispatch function.
26 template<QVectorLayout VL>
27 void TensorValues(const int NE,
28  const int vdim,
29  const DofToQuad &maps,
30  const Vector &e_vec,
31  Vector &q_val);
32 
33 // Tensor-product evaluation of quadrature point derivatives: dispatch function.
34 template<QVectorLayout VL>
35 void TensorDerivatives(const int NE,
36  const int vdim,
37  const DofToQuad &maps,
38  const Vector &e_vec,
39  Vector &q_der);
40 
41 // Tensor-product evaluation of quadrature point physical derivatives: dispatch
42 // function.
43 template<QVectorLayout VL>
44 void TensorPhysDerivatives(const int NE,
45  const int vdim,
46  const DofToQuad &maps,
47  const GeometricFactors &geom,
48  const Vector &e_vec,
49  Vector &q_der);
50 
51 // Tensor-product evaluation of quadrature point determinants: dispatch
52 // function.
53 void TensorDeterminants(const int NE,
54  const int vdim,
55  const DofToQuad &maps,
56  const Vector &e_vec,
57  Vector &q_det,
58  Vector &d_buff);
59 
60 } // namespace quadrature_interpolator
61 
62 } // namespace internal
63 
64 } // namespace mfem