18#ifndef MESHFREE_INTERPOLATION_FUNCTION_H
19#define MESHFREE_INTERPOLATION_FUNCTION_H
22#include "libmesh/function_base.h"
23#include "libmesh/meshfree_interpolation.h"
24#include "libmesh/threads.h"
35template <
typename T>
class DenseVector;
78 virtual std::unique_ptr<FunctionBase<Number>>
clone()
const;
94 mutable std::vector<Point>
_pts;
95 mutable std::vector<Number>
_vals;
Defines a dense vector for use in Finite Element-type computations.
Base class for functors that can be evaluated at a point and (optionally) time.
const MeshfreeInterpolation & _mfi
std::vector< Point > _pts
void init()
The actual initialization process.
virtual ~MeshfreeInterpolationFunction()=default
Destructor.
void clear()
Clears the function.
MeshfreeInterpolationFunction & operator=(const MeshfreeInterpolationFunction &)=delete
Delete assignment operators.
MeshfreeInterpolationFunction(MeshfreeInterpolationFunction &&)=default
Move and copy constructors.
Number operator()(const Point &p, const Real time=0.)
MeshfreeInterpolationFunction & operator=(MeshfreeInterpolationFunction &&)=delete
std::vector< Number > _vals
Threads::spin_mutex & _mutex
MeshfreeInterpolationFunction(const MeshfreeInterpolationFunction &)=default
virtual std::unique_ptr< FunctionBase< Number > > clone() const
Returns a new deep copy of the function.
Base class to support various mesh-free interpolation methods.
A Point defines a location in LIBMESH_DIM dimensional Real space.
The libMesh namespace provides an interface to certain functionality in the library.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real