10 template <
class WMTKMesh>
31 const Eigen::MatrixXd &obstacle_vals,
60 const std::string &op,
const std::vector<Tuple> &tris)
const override;
84 const double acceptance_tolerance);
126 const Eigen::MatrixXd &obstacle_vals,
151 const Eigen::MatrixXd &obstacle_vals,
main class that contains the polyfem solver and all its state
double local_mesh_energy(const VectorNd &local_mesh_center) const
Compute the energy of a local n-ring around a vertex.
void write_priority_queue_mesh(const std::string &path, const Tuple &e) const
Write a visualization mesh of the priority queue.
typename Super::Operations Operations
typename Super::VectorNd VectorNd
void split_edges() override
PhysicsRemesher< WMTKMesh > This
virtual ~PhysicsRemesher()
void collapse_edges() override
bool local_relaxation(const Tuple &t, const double acceptance_tolerance)
Relax a local n-ring around a vertex.
bool collapse_edge_after(const Tuple &t) override
wmtk::AttributeCollection< VertexAttributes > vertex_attrs
bool smooth_before(const Tuple &t) override
bool split_edge_after(const Tuple &t) override
bool smooth_after(const Tuple &t) override
double edge_elastic_energy(const Tuple &e) const
Compute the average elastic energy of the faces containing an edge.
bool collapse_edge_before(const Tuple &t) override
std::vector< Tuple > local_mesh_tuples(const Tuple &v) const
Get the local n-ring around a vertex.
double local_energy_before() const
Get the energy of the local n-ring around a vertex.
Operations renew_neighbor_tuples(const std::string &op, const std::vector< Tuple > &tris) const override
Renew the neighbor tuples of an operation.
typename Super::Tuple Tuple
bool local_relaxation(const VectorNd ¢er, const double acceptance_tolerance)
Relax a local n-ring around a vertex.
PhysicsRemesher(const State &state, const Eigen::MatrixXd &obstacle_displacements, const Eigen::MatrixXd &obstacle_vals, const double current_time, const double starting_energy)
bool split_edge_before(const Tuple &t) override
std::vector< Tuple > local_mesh_tuples(const VectorNd ¢er) const
Get the local n-ring around a vertex.
typename Super::Tuple Tuple
PhysicsTetRemesher(const State &state, const Eigen::MatrixXd &obstacle_displacements, const Eigen::MatrixXd &obstacle_vals, const double current_time, const double starting_energy)
typename Super::Tuple Tuple
void swap_edges() override
bool swap_edge_after(const Tuple &t) override
bool swap_edge_before(const Tuple &t) override
PhysicsTriRemesher(const State &state, const Eigen::MatrixXd &obstacle_displacements, const Eigen::MatrixXd &obstacle_vals, const double current_time, const double starting_energy)
const Eigen::MatrixXd & obstacle_displacements() const
Get a reference to the collision obstacles' displacements.
const double current_time
Current time.
const double starting_energy
Starting energy.
const State & state
Reference to the simulation state.
const json args
Copy of remesh args.
std::conditional< std::is_same< WMTKMesh, wmtk::TriMesh >::value, std::shared_ptr< TriOperationCache >, std::shared_ptr< TetOperationCache > >::type op_cache
std::vector< std::pair< std::string, Tuple > > Operations
wmtk::ExecutePass< WildRemesher, EXECUTION_POLICY > executor
typename WMTKMesh::Tuple Tuple
wmtk::AttributeCollection< VertexAttributes > vertex_attrs
Eigen::Matrix< double, DIM, 1 > VectorNd
WildTetRemesher::Tuple Tuple
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 3, 1 > VectorNd