19 #include "libmesh/function_base.h"
20 #include "libmesh/auto_ptr.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), z=p(2);
51 output(_u_var) = soln(0, x, y, z);
52 output(_u_var+1) = soln(1, x, y, z);
53 output(_u_var+2) = soln(2, x, y, z);
60 const Real x=p(0), y=p(1), z=p(2);
61 return soln(component_in, x, y, z);
64 virtual std::unique_ptr<FunctionBase<Number>>
clone()
const
65 {
return libmesh_make_unique<SolutionFunction>(_u_var); }
84 { libmesh_not_implemented(); }
86 virtual void operator() (
const Point & p,
91 const Real x=p(0), y=p(1), z=p(2);
92 output(_u_var) = soln(0, x, y, z);
93 output(_u_var+1) = soln(1, x, y, z);
94 output(_u_var+2) = soln(2, x, y, z);
101 const Real x=p(0), y=p(1), z=p(2);
102 return soln(component_in, x, y, z);
105 virtual std::unique_ptr<FunctionBase<Gradient>>
clone()
const
106 {
return libmesh_make_unique<SolutionGradient>(_u_var); }
114 #endif // SOLUTION_FUNCTION_H