Wildmeshing Toolkit
test_component_isotropic_remeshing.cpp File Reference
#include <catch2/catch_test_macros.hpp>
#include <nlohmann/json.hpp>
#include <tools/DEBUG_EdgeMesh.hpp>
#include <tools/DEBUG_TriMesh.hpp>
#include <tools/DEBUG_Tuple.hpp>
#include <tools/EdgeMesh_examples.hpp>
#include <tools/TriMesh_examples.hpp>
#include <wmtk/Scheduler.hpp>
#include <wmtk/Types.hpp>
#include <wmtk/components/input/input.hpp>
#include <wmtk/components/isotropic_remeshing/internal/IsotropicRemeshing.hpp>
#include <wmtk/components/isotropic_remeshing/internal/IsotropicRemeshingOptions.hpp>
#include <wmtk/components/isotropic_remeshing/isotropic_remeshing.hpp>
#include <wmtk/components/output/output.hpp>
#include <wmtk/components/utils/Paths.hpp>
#include <wmtk/invariants/InteriorSimplexInvariant.hpp>
#include <wmtk/invariants/MaxEdgeLengthInvariant.hpp>
#include <wmtk/invariants/MinEdgeLengthInvariant.hpp>
#include <wmtk/invariants/MultiMeshLinkConditionInvariant.hpp>
#include <wmtk/invariants/ValenceImprovementInvariant.hpp>
#include <wmtk/io/Cache.hpp>
#include <wmtk/io/ParaviewWriter.hpp>
#include <wmtk/multimesh/same_simplex_dimension_surjection.hpp>
#include <wmtk/multimesh/utils/extract_child_mesh_from_tag.hpp>
#include <wmtk/multimesh/utils/tuple_map_attribute_io.hpp>
#include <wmtk/operations/AttributesUpdate.hpp>
#include <wmtk/operations/EdgeCollapse.hpp>
#include <wmtk/operations/EdgeSplit.hpp>
#include <wmtk/operations/attribute_new/CollapseNewAttributeStrategy.hpp>
#include <wmtk/operations/attribute_new/SplitNewAttributeStrategy.hpp>
#include <wmtk/operations/composite/TriEdgeSwap.hpp>
#include <wmtk/operations/utils/VertexLaplacianSmooth.hpp>
#include <wmtk/operations/utils/VertexTangentialLaplacianSmooth.hpp>
#include <wmtk/simplex/link.hpp>
#include <wmtk/utils/merkle_tree_diff.hpp>
Include dependency graph for test_component_isotropic_remeshing.cpp:

Go to the source code of this file.

Typedefs

using json = nlohmann::json
 

Functions

void print_tuple_map_iso (const DEBUG_TriMesh &parent, const DEBUG_MultiMeshManager &p_mul_manager)
 
 TEST_CASE ("smoothing_mesh", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("smoothing_simple_examples", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("tangential_smoothing", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("tangential_smoothing_boundary", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("split_long_edges", "[components][isotropic_remeshing][split][2D]")
 
 TEST_CASE ("collapse_short_edges", "[components][isotropic_remeshing][collapse][2D]")
 
 TEST_CASE ("swap_edge_for_valence", "[components][isotropic_remeshing][swap][2D]")
 
 TEST_CASE ("component_isotropic_remeshing", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("remeshing_tetrahedron", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("remeshing_with_boundary", "[components][isotropic_remeshing][2D]")
 
 TEST_CASE ("remeshing_preserve_topology", "[components][isotropic_remeshing][2D][.]")
 
 TEST_CASE ("remeshing_preserve_topology_realmesh", "[components][isotropic_remeshing][2D][.]")
 
 TEST_CASE ("remeshing_realmesh", "[components][isotropic_remeshing][2D][.]")
 

Variables

const std::filesystem::path data_dir = WMTK_DATA_DIR
 

Typedef Documentation

◆ json

using json = nlohmann::json

Definition at line 39 of file test_component_isotropic_remeshing.cpp.

Function Documentation

◆ print_tuple_map_iso()

void print_tuple_map_iso ( const DEBUG_TriMesh &  parent,
const DEBUG_MultiMeshManager &  p_mul_manager 
)

Definition at line 46 of file test_component_isotropic_remeshing.cpp.

References wmtk::multimesh::utils::vectors_to_tuples().

Here is the call graph for this function:

◆ TEST_CASE() [1/13]

TEST_CASE ( "collapse_short_edges"  ,
""  [components][isotropic_remeshing][collapse][2D] 
)

Definition at line 360 of file test_component_isotropic_remeshing.cpp.

References wmtk::Edge, wmtk::Scheduler::run_operation_on_all(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [2/13]

TEST_CASE ( "component_isotropic_remeshing"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 645 of file test_component_isotropic_remeshing.cpp.

References data_dir.

◆ TEST_CASE() [3/13]

TEST_CASE ( "remeshing_preserve_topology"  ,
""  [components][isotropic_remeshing][2D][.] 
)

Definition at line 821 of file test_component_isotropic_remeshing.cpp.

References wmtk::Edge, wmtk::multimesh::utils::extract_and_register_child_mesh_from_tag(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [4/13]

TEST_CASE ( "remeshing_preserve_topology_realmesh"  ,
""  [components][isotropic_remeshing][2D][.] 
)

Definition at line 884 of file test_component_isotropic_remeshing.cpp.

References data_dir, wmtk::Edge, wmtk::multimesh::utils::extract_and_register_child_mesh_from_tag(), wmtk::io::Cache::get_cache_path(), wmtk::components::input::input(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::io::Cache::read_mesh(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [5/13]

TEST_CASE ( "remeshing_realmesh"  ,
""  [components][isotropic_remeshing][2D][.] 
)

◆ TEST_CASE() [6/13]

TEST_CASE ( "remeshing_tetrahedron"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 698 of file test_component_isotropic_remeshing.cpp.

References wmtk::io::Cache::get_cache_path(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::Triangle, and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [7/13]

TEST_CASE ( "remeshing_with_boundary"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 742 of file test_component_isotropic_remeshing.cpp.

References wmtk::Edge, wmtk::Mesh::get_all(), wmtk::Mesh::get_attribute_handle(), wmtk::io::Cache::get_cache_path(), wmtk::TriMesh::is_boundary_edge(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::Mesh::serialize(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [8/13]

TEST_CASE ( "smoothing_mesh"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 62 of file test_component_isotropic_remeshing.cpp.

References data_dir, wmtk::Mesh::get_attribute_handle(), wmtk::io::Cache::get_cache_path(), wmtk::components::input::input(), wmtk::io::Cache::read_mesh(), wmtk::Scheduler::run_operation_on_all(), wmtk::Mesh::serialize(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [9/13]

TEST_CASE ( "smoothing_simple_examples"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 112 of file test_component_isotropic_remeshing.cpp.

References wmtk::Scheduler::run_operation_on_all(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [10/13]

TEST_CASE ( "split_long_edges"  ,
""  [components][isotropic_remeshing][split][2D] 
)

Definition at line 263 of file test_component_isotropic_remeshing.cpp.

References wmtk::attribute::MeshAttributeHandle::as(), wmtk::Edge, wmtk::Scheduler::run_operation_on_all(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [11/13]

TEST_CASE ( "swap_edge_for_valence"  ,
""  [components][isotropic_remeshing][swap][2D] 
)

Definition at line 560 of file test_component_isotropic_remeshing.cpp.

References wmtk::Edge, wmtk::simplex::Simplex::edge(), wmtk::simplex::link(), wmtk::Scheduler::run_operation_on_all(), wmtk::simplex::SimplexCollection::simplex_vector(), wmtk::Vertex, and wmtk::simplex::Simplex::vertex().

Here is the call graph for this function:

◆ TEST_CASE() [12/13]

TEST_CASE ( "tangential_smoothing"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 179 of file test_component_isotropic_remeshing.cpp.

References wmtk::Scheduler::run_operation_on_all(), and wmtk::Vertex.

Here is the call graph for this function:

◆ TEST_CASE() [13/13]

TEST_CASE ( "tangential_smoothing_boundary"  ,
""  [components][isotropic_remeshing][2D] 
)

Definition at line 222 of file test_component_isotropic_remeshing.cpp.

References wmtk::Vertex, and wmtk::simplex::Simplex::vertex().

Here is the call graph for this function:

Variable Documentation

◆ data_dir

const std::filesystem::path data_dir = WMTK_DATA_DIR

Definition at line 44 of file test_component_isotropic_remeshing.cpp.

Referenced by TEST_CASE().