19 #include "libmesh/function_base.h"
20 #include "libmesh/auto_ptr.h"
23 #include "curl_curl_exact_solution.h"
27 #ifndef SOLUTION_FUNCTION_H
28 #define SOLUTION_FUNCTION_H
41 { libmesh_not_implemented(); }
43 virtual void operator() (
const Point & p,
48 const Real x=p(0), y=p(1);
51 output(_u_var) = soln(x, y)(0);
52 output(_u_var+1) = soln(x, y)(1);
59 const Real x=p(0), y=p(1);
60 return soln(x, y)(component_in);
63 virtual std::unique_ptr<FunctionBase<Number>>
clone()
const
64 {
return libmesh_make_unique<SolutionFunction>(_u_var); }
68 const unsigned int _u_var;
82 { libmesh_not_implemented(); }
84 virtual void operator() (
const Point & p,
89 const Real x=p(0), y=p(1);
90 output(_u_var) = soln.grad(x, y).row(0);
91 output(_u_var+1) = soln.grad(x, y).row(1);
97 const Real x=p(0), y=p(1);
98 return soln.grad(x, y).row(component_in);
101 virtual std::unique_ptr<FunctionBase<Gradient>>
clone()
const
102 {
return libmesh_make_unique<SolutionGradient>(_u_var); }
106 const unsigned int _u_var;
110 #endif // SOLUTION_FUNCTION_H