18 #ifndef SOLUTION_FUNCTION_H 19 #define SOLUTION_FUNCTION_H 22 #include "libmesh/function_base.h" 43 { libmesh_not_implemented(); }
45 virtual void operator() (
const Point & p,
50 const Real x=p(0), y=p(1), z=p(2);
53 output(_u_var) = soln(0, x, y, z);
54 output(_u_var+1) = soln(1, x, y, z);
55 output(_u_var+2) = soln(2, x, y, z);
62 const Real x=p(0), y=p(1), z=p(2);
63 return soln(component_in, x, y, z);
66 virtual std::unique_ptr<FunctionBase<Number>>
clone()
const 67 {
return std::make_unique<SolutionFunction>(_u_var); }
86 { libmesh_not_implemented(); }
88 virtual void operator() (
const Point & p,
93 const Real x=p(0), y=p(1), z=p(2);
94 output(_u_var) = soln(0, x, y, z);
95 output(_u_var+1) = soln(1, x, y, z);
96 output(_u_var+2) = soln(2, x, y, z);
103 const Real x=p(0), y=p(1), z=p(2);
104 return soln(component_in, x, y, z);
107 virtual std::unique_ptr<FunctionBase<Gradient>>
clone()
const 108 {
return std::make_unique<SolutionGradient>(_u_var); }
116 #endif // SOLUTION_FUNCTION_H virtual Number component(unsigned int component_in, const Point &p, const Real)
virtual std::unique_ptr< FunctionBase< Gradient > > clone() const
virtual void zero() override final
Set every element in the vector to 0.
virtual std::unique_ptr< FunctionBase< Number > > clone() const
SolutionFunction(const unsigned int u_var)
virtual Gradient component(unsigned int component_in, const Point &p, const Real)
This class defines a vector in LIBMESH_DIM dimensional Real or Complex space.
The libMesh namespace provides an interface to certain functionality in the library.
const unsigned int _u_var
const unsigned int _u_var
SolutionGradient(const unsigned int u_var)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
LaplaceExactGradient soln
Base class for functors that can be evaluated at a point and (optionally) time.
A Point defines a location in LIBMESH_DIM dimensional Real space.
LaplaceExactSolution soln