23 const Eigen::MatrixXd &vertices,
24 const Eigen::VectorXi &codim_vertices,
25 const Eigen::MatrixXi &codim_edges,
26 const Eigen::MatrixXi &
faces,
27 const json &displacement);
29 const std::vector<Eigen::MatrixXd> &vertices,
30 const Eigen::VectorXi &codim_vertices,
31 const Eigen::MatrixXi &codim_edges,
32 const Eigen::MatrixXi &
faces,
41 inline const Eigen::MatrixXd &
v()
const {
return v_; }
43 inline const Eigen::MatrixXi &
f()
const {
return f_; }
44 inline const Eigen::MatrixXi &
e()
const {
return e_; }
50 void change_displacement(
const int oid,
const Eigen::RowVector3d &
val,
const std::shared_ptr<utils::Interpolation> &interp = std::make_shared<utils::NoInterpolation>());
51 void change_displacement(
const int oid,
const std::function<Eigen::MatrixXd(
double x,
double y,
double z,
double t)> &func,
const std::shared_ptr<utils::Interpolation> &interp = std::make_shared<utils::NoInterpolation>());
52 void change_displacement(
const int oid,
const json &
val,
const std::shared_ptr<utils::Interpolation> &interp = std::make_shared<utils::NoInterpolation>());
55 void change_displacement(
const int oid,
const std::function<Eigen::MatrixXd(
double x,
double y,
double z,
double t)> &func,
const std::string &interp =
"");
59 void set_zero(Eigen::MatrixXd &sol)
const;
70 const Eigen::MatrixXd &vertices,
71 const Eigen::VectorXi &codim_vertices,
72 const Eigen::MatrixXi &codim_edges,
73 const Eigen::MatrixXi &
faces);
std::vector< Eigen::VectorXi > faces
const VectorNd & point() const
Plane(const VectorNd &point, const VectorNd &normal)
void construct_vis_mesh()
const Eigen::MatrixXd & vis_v() const
const VectorNd & normal() const
const Eigen::MatrixXi & vis_e() const
const Eigen::MatrixXi & vis_f() const
std::vector< Plane > planes_
void change_displacement(const int oid, const Eigen::RowVector3d &val, const std::shared_ptr< utils::Interpolation > &interp=std::make_shared< utils::NoInterpolation >())
const Eigen::MatrixXi & get_edge_connectivity() const
const std::vector< Plane > & planes() const
void change_displacement(const int oid, const std::function< Eigen::MatrixXd(double x, double y, double z, double t)> &func, const std::shared_ptr< utils::Interpolation > &interp=std::make_shared< utils::NoInterpolation >())
const Eigen::MatrixXi & e() const
void append_plane(const VectorNd &point, const VectorNd &normal)
void set_zero(Eigen::MatrixXd &sol) const
void append_mesh_sequence(const std::vector< Eigen::MatrixXd > &vertices, const Eigen::VectorXi &codim_vertices, const Eigen::MatrixXi &codim_edges, const Eigen::MatrixXi &faces, const int fps)
const Eigen::MatrixXi & f() const
const Eigen::MatrixXi & get_face_connectivity() const
void update_displacement(const double t, Eigen::MatrixXd &sol) const
void append_mesh(const Eigen::MatrixXd &vertices, const Eigen::VectorXi &codim_vertices, const Eigen::MatrixXi &codim_edges, const Eigen::MatrixXi &faces, const json &displacement)
void set_units(const Units &units)
void change_displacement(const int oid, const json &val, const std::shared_ptr< utils::Interpolation > &interp=std::make_shared< utils::NoInterpolation >())
std::vector< assembler::TensorBCValue > displacements_
const Eigen::MatrixXd & v() const
std::vector< int > endings_
virtual ~Obstacle()=default
const Eigen::VectorXi & codim_v() const
const Eigen::VectorXi & get_vertex_connectivity() const
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > VectorNd