19 void load(
const std::string &path);
32 double interpolate(
const int p_id,
const Eigen::MatrixXd &uv,
bool is_dirichlet)
const;
38 std::vector<Eigen::VectorXd>
data_;
48 void rhs(
const assembler::Assembler &assembler,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val,
const int fe_space_id = -1)
const override;
49 bool is_rhs_zero(
const int fe_space_id = -1)
const override {
return abs(
rhs_) < 1e-10; }
51 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 int fe_space_id = -1)
const override;
52 void neumann_bc(
const mesh::Mesh &mesh,
const Eigen::MatrixXi &global_ids,
const Eigen::MatrixXd &uv,
const Eigen::MatrixXd &pts,
const Eigen::MatrixXd &normals,
const double t, Eigen::MatrixXd &
val,
const int fe_space_id = -1)
const override;
const std::string & name() const
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
bool has_exact_sol() const override
void init(const mesh::Mesh &mesh) override
bool is_scalar() const override
void set_parameters(const json ¶ms, const std::string &root_path) override
void rhs(const assembler::Assembler &assembler, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val, const int fe_space_id=-1) 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 int fe_space_id=-1) const override
bool all_dimensions_dirichlet(const int fe_space_id) const override
std::vector< Eigen::Matrix< bool, 1, 3, Eigen::RowMajor > > dirichlet_dimensions_
void neumann_bc(const mesh::Mesh &mesh, const Eigen::MatrixXi &global_ids, const Eigen::MatrixXd &uv, const Eigen::MatrixXd &pts, const Eigen::MatrixXd &normals, const double t, Eigen::MatrixXd &val, const int fe_space_id=-1) const override
bool all_dimensions_dirichlet_
bool is_dimension_dirichet(const int tag, const int dim, const int fe_space_id=-1) const override
bool is_rhs_zero(const int fe_space_id=-1) const override
std::vector< bool > dirichlet_
void load(const std::string &path)
double neumann_interpolate(const int p_id, const Eigen::MatrixXd &uv) const
std::vector< int > raw_ids_
std::vector< bool > raw_dirichlet_
double interpolate(const int p_id, const Eigen::MatrixXd &uv, bool is_dirichlet) const
void init(const mesh::Mesh &mesh)
std::vector< std::vector< double > > raw_data_
double dirichlet_interpolate(const int p_id, const Eigen::MatrixXd &uv) const
std::vector< Eigen::VectorXd > data_