Class FunctionSpace

Inheritance Relationships

Base Types

Derived Types

Class Documentation

class FunctionSpace : public pcms::PointEvaluatorFactory, public std::enable_shared_from_this<FunctionSpace>

Subclassed by pcms::LagrangeFunctionSpace, pcms::PolynomialReconstructionFunctionSpace, pcms::SplineFunctionSpace

Public Functions

inline virtual std::shared_ptr<const Discretization> GetDiscretization() const noexcept
virtual std::shared_ptr<const FieldLayout> GetLayout() const noexcept = 0
inline virtual const std::shared_ptr<const CoordinateSystem> &GetCoordinateSystem() const override

Coordinate system that query points handed to CreatePointEvaluator must be expressed in.

virtual ~FunctionSpace() noexcept = default
template<typename T>
Function<T> CreateFunction(std::string name = "", VarianceSignature variance = values::Scalar, std::optional<ComponentScaling> scaling = std::nullopt) const
template<typename T>
Function<T> CreateFunction(std::string name, VarianceSignature variance, std::shared_ptr<const CoordinateSystem> system, std::optional<ComponentScaling> scaling = std::nullopt) const
template<typename T>
Function<T> CreateFunction(std::string name, std::unique_ptr<FieldData<T>> data) const

Protected Functions

virtual FieldVariant CreateFieldImpl(Type storage_type, ValueBasis basis) const = 0
virtual FieldVariant CreateFieldImpl(FieldDataVariant data) const = 0

Protected Static Functions

template<typename T>
static inline Field<T> WrapField(std::shared_ptr<const FieldLayout> layout, std::unique_ptr<FieldData<T>> data)
template<typename T>
static inline Function<T> WrapFunction(std::string name, std::shared_ptr<const FieldLayout> layout, std::unique_ptr<FieldData<T>> data, std::shared_ptr<const FunctionSpace> space)