NuTo
Numerics Tool
CellInterface.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
6 #include <functional>
8 
9 namespace NuTo
10 {
11 class CellIpData;
12 
14 {
15 public:
16  virtual ~CellInterface() = default;
17 
18  using ScalarFunction = std::function<double(const CellIpData&)>;
19  using VectorFunction = std::function<DofVector<double>(const CellIpData&)>;
20  using MatrixFunction = std::function<DofMatrix<double>(const CellIpData&)>;
21 
22  using VoidFunction = std::function<void(const CellIpData&)>;
23  using EvalFunction = std::function<Eigen::VectorXd(const CellIpData&)>;
24 
25  virtual double Integrate(ScalarFunction) = 0;
28  virtual void Apply(VoidFunction) = 0;
29 
30  virtual std::vector<Eigen::VectorXd> Eval(EvalFunction f) const = 0;
31 
32  virtual Eigen::VectorXi DofNumbering(DofType dof) = 0;
33 
35  virtual Eigen::VectorXd Interpolate(Eigen::VectorXd naturalCoords) const = 0;
37  virtual Eigen::VectorXd Interpolate(Eigen::VectorXd naturalCoords, DofType dof) const = 0;
38 
39  virtual const Shape& GetShape() const = 0;
40 };
41 } /* NuTo */
virtual const Shape & GetShape() const =0
virtual Eigen::VectorXi DofNumbering(DofType dof)=0
std::function< DofMatrix< double >(const CellIpData &)> MatrixFunction
Definition: CellInterface.h:20
virtual double Integrate(ScalarFunction)=0
std::function< DofVector< double >(const CellIpData &)> VectorFunction
Definition: CellInterface.h:19
std::function< Eigen::VectorXd(const CellIpData &)> EvalFunction
Definition: CellInterface.h:23
std::function< double(const CellIpData &)> ScalarFunction
Definition: CellInterface.h:18
Similar to NuTo::CellData.
Definition: CellIpData.h:14
Definition: DofType.h:8
std::function< void(const CellIpData &)> VoidFunction
Definition: CellInterface.h:22
virtual std::vector< Eigen::VectorXd > Eval(EvalFunction f) const =0
virtual void Apply(VoidFunction)=0
dof container that is also capable of performing calculations.
Definition: DofMatrixContainer.h:13
Definition: Shape.h:20
virtual Eigen::VectorXd Interpolate(Eigen::VectorXd naturalCoords) const =0
Coordinate interpolation.
Definition: Exception.h:6
virtual ~CellInterface()=default
Definition: CellInterface.h:13