18 #ifndef SOLUTION_FUNCTION_H 19 #define SOLUTION_FUNCTION_H 22 #include "libmesh/function_base.h" 32 template <
unsigned int dim>
43 virtual std::unique_ptr<FunctionBase<Number>>
clone()
const override 45 return std::make_unique<SolutionFunction>();
50 const auto size =
dim == 2 ? 4 : 5;
52 (*this)(p, time, outvec);
67 const Real x = p(0), y = p(1);
70 const auto vector = soln(x, y);
71 output(0) = vector(0);
72 output(1) = vector(1);
73 const auto scalar = soln.scalar(x, y);
85 const Real x = p(0), y = p(1), z = p(2);
88 const auto vector = soln(x, y, z);
89 output(0) = vector(0);
90 output(1) = vector(1);
91 output(2) = vector(2);
92 const auto scalar = soln.scalar(x, y, z);
97 template <
unsigned int dim>
108 virtual std::unique_ptr<FunctionBase<Gradient>>
clone()
const override 110 return std::make_unique<SolutionGradient>();
115 const auto size =
dim == 2 ? 4 : 5;
117 (*this)(p, time, outvec);
130 const Real x = p(0), y = p(1);
131 output(0) = soln.grad(x, y).row(0);
132 output(1) = soln.grad(x, y).row(1);
140 const Real x = p(0), y = p(1), z = p(2);
141 output(0) = soln.grad(x, y, z).row(0);
142 output(1) = soln.grad(x, y, z).row(1);
143 output(2) = soln.grad(x, y, z).row(2);
146 #endif // SOLUTION_FUNCTION_H virtual Number operator()(const Point &, const Real=0)
virtual void zero() override final
Set every element in the vector to 0.
virtual Gradient operator()(const Point &, const Real=0)
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.
virtual std::unique_ptr< FunctionBase< Number > > clone() const override
virtual std::unique_ptr< FunctionBase< Gradient > > clone() const override
virtual Gradient component(unsigned int i, const Point &p, Real time=0.) override
virtual Gradient operator()(const Point &, const Real=0) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Number operator()(const Point &, const Real=0) override
virtual unsigned int size() const override final
virtual Number component(unsigned int i, const Point &p, Real time=0.) override
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.