24 Eigen::Matrix<bool, 3, 1> dd;
29 Eigen::RowVector3d
operator()(
const Eigen::RowVector3d &pt)
const;
33 void init(
const double x,
const double y,
const double z,
const Eigen::Matrix<bool, 3, 1> &dd)
40 void init(
const Eigen::Vector3d &v,
const Eigen::Matrix<bool, 3, 1> &dd)
47 void init(
const Eigen::MatrixXd &pts,
const Eigen::MatrixXi &tri,
const Eigen::MatrixXd &fun,
const int coord,
const Eigen::Matrix<bool, 3, 1> &dd)
60 void init(
const Eigen::MatrixXd &pts,
const Eigen::MatrixXd &fun,
const std::string &rbf,
const double eps,
const int coord,
const Eigen::Matrix<bool, 3, 1> &dd)
97 void rhs(
const assembler::Assembler &assembler,
const Eigen::MatrixXd &pts,
const double t, Eigen::MatrixXd &
val)
const override;
100 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;
101 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 override;
110 Eigen::Matrix<bool, 3, 1> dd;
111 dd.setConstant(
true);
115 void add_function(
const int bc_tag,
const Eigen::MatrixXd &func,
const Eigen::MatrixXd &pts,
const Eigen::MatrixXi &tri,
const int coord)
117 Eigen::Matrix<bool, 3, 1> dd;
118 dd.setConstant(
true);
122 void add_function(
const int bc_tag,
const Eigen::MatrixXd &func,
const Eigen::MatrixXd &pts,
const std::string &rbf,
const double eps,
const int coord)
124 Eigen::Matrix<bool, 3, 1> dd;
125 dd.setConstant(
true);
129 void add_constant(
const int bc_tag,
const Eigen::Vector3d &value,
const Eigen::Matrix<bool, 3, 1> &dd,
const bool is_neumann =
false);
130 void add_function(
const int bc_tag,
const Eigen::MatrixXd &func,
const Eigen::MatrixXd &pts,
const Eigen::MatrixXi &tri,
const int coord,
const Eigen::Matrix<bool, 3, 1> &dd,
const bool is_neumann =
false);
131 void add_function(
const int bc_tag,
const Eigen::MatrixXd &func,
const Eigen::MatrixXd &pts,
const std::string &rbf,
const double eps,
const int coord,
const Eigen::Matrix<bool, 3, 1> &dd,
const bool is_neumann =
false);
const std::string & name() const
Abstract mesh class to capture 2d/3d conforming and non-conforming meshes.
void init(const double x, const double y, const double z, const Eigen::Matrix< bool, 3, 1 > &dd)
void init(const Eigen::Vector3d &v, const Eigen::Matrix< bool, 3, 1 > &dd)
void init(const Eigen::MatrixXd &pts, const Eigen::MatrixXd &fun, const std::string &rbf, const double eps, const int coord, const Eigen::Matrix< bool, 3, 1 > &dd)
utils::RBFInterpolation rbf_func
Eigen::RowVector3d operator()(const Eigen::RowVector3d &pt) const
Eigen::Matrix< bool, 3, 1 > dirichlet_dims
bool init(const json &data)
void init(const Eigen::MatrixXd &pts, const Eigen::MatrixXi &tri, const Eigen::MatrixXd &fun, const int coord, const Eigen::Matrix< bool, 3, 1 > &dd)
utils::InterpolatedFunction2d tri_func
bool is_dirichet_dim(const int d) const
void add_function(const int bc_tag, const Eigen::MatrixXd &func, const Eigen::MatrixXd &pts, const std::string &rbf, const double eps, const int coord)
bool all_dimensions_dirichlet_
void set_parameters(const json ¶ms) override
void add_constant(const int bc_tag, const Eigen::Vector3d &value)
bool all_dimensions_dirichlet() const override
Eigen::Vector3d translation_
std::vector< BCValue > neumann_bc_
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
void add_function(const int bc_tag, const Eigen::MatrixXd &func, const Eigen::MatrixXd &pts, const Eigen::MatrixXi &tri, const int coord)
bool is_dimension_dirichet(const int tag, const int dim) const override
bool is_rhs_zero() const override
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 override
bool is_scalar() const override
std::vector< BCValue > bc_
void rhs(const assembler::Assembler &assembler, const Eigen::MatrixXd &pts, const double t, Eigen::MatrixXd &val) const override
bool has_exact_sol() const override
void init(const Eigen::MatrixXd &fun, const Eigen::MatrixXd &pts, const Eigen::MatrixXi &tris)
void init(const Eigen::MatrixXd &fun, const Eigen::MatrixXd &pts, const std::function< double(double)> &rbf)