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 Eigen::MatrixXi &
tets = Eigen::MatrixXi());
31 const std::vector<Eigen::MatrixXd> &vertices,
32 const Eigen::VectorXi &codim_vertices,
33 const Eigen::MatrixXi &codim_edges,
34 const Eigen::MatrixXi &
faces,
36 const Eigen::MatrixXi &
tets = Eigen::MatrixXi());
45 inline const Eigen::MatrixXd &
v()
const {
return v_; }
47 inline const Eigen::MatrixXi &
f()
const {
return f_; }
48 inline const Eigen::MatrixXi &
e()
const {
return e_; }
49 inline const Eigen::MatrixXi &
tets()
const {
return tets_; }
56 void change_displacement(
const int oid,
const Eigen::RowVector3d &
val,
const std::shared_ptr<utils::Interpolation> &interp = std::make_shared<utils::NoInterpolation>());
57 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>());
61 void change_displacement(
const int oid,
const std::function<Eigen::MatrixXd(
double x,
double y,
double z,
double t)> &func,
const std::string &interp =
"");
65 void set_zero(Eigen::MatrixXd &sol)
const;
76 const Eigen::MatrixXd &vertices,
77 const Eigen::VectorXi &codim_vertices,
78 const Eigen::MatrixXi &codim_edges,
79 const Eigen::MatrixXi &
faces,
80 const Eigen::MatrixXi &
tets = Eigen::MatrixXi());
84 const std::shared_ptr<utils::Interpolation> &interp,
std::vector< Eigen::VectorXi > faces
Read-only interface to a hierarchical collection of simulation resources.
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 >())
void append_mesh(const Eigen::MatrixXd &vertices, const Eigen::VectorXi &codim_vertices, const Eigen::MatrixXi &codim_edges, const Eigen::MatrixXi &faces, const json &displacement, const io::ResourceIO &resources, const Eigen::MatrixXi &tets=Eigen::MatrixXi())
const Eigen::MatrixXi & get_edge_connectivity() const
const std::vector< Plane > & planes() 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 &tets=Eigen::MatrixXi())
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 & tets() const
const Eigen::MatrixXi & e() const
void append_plane(const VectorNd &point, const VectorNd &normal)
void set_zero(Eigen::MatrixXd &sol) const
const Eigen::MatrixXi & f() const
const Eigen::MatrixXi & get_face_connectivity() const
void update_displacement(const double t, Eigen::MatrixXd &sol) const
void set_units(const Units &units)
const Eigen::MatrixXi & get_tet_connectivity() const
void change_displacement(const int oid, const json &val, const io::ResourceIO &resources, 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
void change_displacement(const int oid, const json &val, const std::shared_ptr< utils::Interpolation > &interp, const io::ResourceIO &resources)
const Eigen::VectorXi & get_vertex_connectivity() const
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > VectorNd