17 virtual void rhs(
const assembler::Assembler &assembler,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
18 virtual void dirichlet_bc(
const mesh::Mesh &mesh,
const Eigen::MatrixXi &global_ids,
const Eigen::MatrixXd &uv,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
20 virtual void exact(
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
21 virtual void exact_grad(
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
33 virtual int size_for(
const Eigen::MatrixXd &pts)
const {
return is_scalar() ? 1 : pts.cols(); }
41 void rhs(
const assembler::Assembler &assembler,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
42 void dirichlet_bc(
const mesh::Mesh &mesh,
const Eigen::MatrixXi &global_ids,
const Eigen::MatrixXd &uv,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
44 void exact(
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
45 void exact_grad(
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
const std::string & name() const
virtual bool is_scalar() const =0
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
void exact_grad(const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
void exact(const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
bool is_scalar() const override
bool has_exact_sol() const override
void dirichlet_bc(const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
virtual ~BilaplacianProblemWithSolution()
void rhs(const assembler::Assembler &assembler, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
bool is_rhs_zero() const override
virtual void rhs(const assembler::Assembler &assembler, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
virtual bool is_rhs_zero() const override
virtual ~ProblemWithSolution()
virtual bool has_exact_sol() const override
virtual int size_for(const Eigen::MatrixXd &pts) const
virtual void exact(const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
virtual void dirichlet_bc(const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
virtual AutodiffGradPt eval_fun(const AutodiffGradPt &pt, double t) const =0
virtual AutodiffHessianPt eval_fun(const AutodiffHessianPt &pt, double t) const =0
virtual VectorNd eval_fun(const VectorNd &pt, double t) const =0
virtual void exact_grad(const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
Eigen::Matrix< AutodiffScalarHessian, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffHessianPt
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > VectorNd
Eigen::Matrix< AutodiffScalarGrad, Eigen::Dynamic, 1, 0, 3, 1 > AutodiffGradPt