40 #ifndef BUILD_GRAPH_HPP 41 #define BUILD_GRAPH_HPP 43 #include <lifev/core/LifeV.hpp> 45 #include <lifev/core/util/OpenMPParameters.hpp> 47 #include <lifev/eta/expression/RequestLoopElement.hpp> 49 #include <lifev/core/fem/QuadratureRule.hpp> 51 #include <lifev/eta/expression/GraphElement.hpp> 53 #include <boost/shared_ptr.hpp> 74 template <
typename MeshType,
75 typename TestSpaceType,
76 typename SolutionSpaceType,
77 typename ExpressionType >
82 buildGraph (
const RequestLoopElement<MeshType>& request,
84 const std::shared_ptr<TestSpaceType>& testSpace,
85 const std::shared_ptr<SolutionSpaceType>& solutionSpace,
86 const ExpressionType& expression,
87 const UInt offsetUp = 0,
88 const UInt offsetLeft = 0);
89 template <
typename MeshType,
90 typename TestSpaceType,
91 typename SolutionSpaceType,
92 typename ExpressionType >
97 buildGraph (
const RequestLoopElement<MeshType>& request,
99 const std::shared_ptr<TestSpaceType>& testSpace,
100 const std::shared_ptr<SolutionSpaceType>& solutionSpace,
101 const ExpressionType& expression,
103 const UInt offsetLeft)
105 return GraphElement < MeshType,
109 (request.mesh(), quadrature, testSpace, solutionSpace, expression,
110 OpenMPParameters(), offsetUp, offsetLeft );
113 template <
typename MeshType,
114 typename TestSpaceType,
115 typename SolutionSpaceType,
116 typename ExpressionType >
121 buildGraph (
const RequestLoopElement<MeshType>& request,
123 const std::shared_ptr<TestSpaceType>& testSpace,
124 const std::shared_ptr<SolutionSpaceType>& solutionSpace,
125 const ExpressionType& expression,
126 const OpenMPParameters& ompParams,
127 const UInt offsetUp = 0,
128 const UInt offsetLeft = 0);
129 template <
typename MeshType,
130 typename TestSpaceType,
131 typename SolutionSpaceType,
132 typename ExpressionType >
139 const std::shared_ptr<TestSpaceType>& testSpace,
140 const std::shared_ptr<SolutionSpaceType>& solutionSpace,
141 const ExpressionType& expression,
142 const OpenMPParameters& ompParams,
144 const UInt offsetLeft)
146 return GraphElement < MeshType,
150 (request.mesh(), quadrature, testSpace, solutionSpace, expression,
151 ompParams, offsetUp, offsetLeft);
The class to actually perform the loop over the elements to precompute a graph.
GraphElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType > buildGraph(const RequestLoopElement< MeshType > &request, const QuadratureRule &quadrature, const std::shared_ptr< TestSpaceType > &testSpace, const std::shared_ptr< SolutionSpaceType > &solutionSpace, const ExpressionType &expression, const OpenMPParameters &ompParams, const UInt offsetUp=0, const UInt offsetLeft=0)
GraphElement< MeshType, TestSpaceType, SolutionSpaceType, ExpressionType > buildGraph(const RequestLoopElement< MeshType > &request, const QuadratureRule &quadrature, const std::shared_ptr< TestSpaceType > &testSpace, const std::shared_ptr< SolutionSpaceType > &solutionSpace, const ExpressionType &expression, const UInt offsetUp=0, const UInt offsetLeft=0)
Function to precompute the matrix graph.
QuadratureRule - The basis class for storing and accessing quadrature rules.
uint32_type UInt
generic unsigned integer (used mainly for addressing)