Wildmeshing Toolkit
wmtk::components::internal Namespace Reference

Classes

struct  bbox
 
class  Segment
 
struct  EdgeInsOptions
 
struct  ExportCacheOptions
 
struct  GetAllMeshesOptions
 
struct  ImportCacheOptions
 
struct  MeshInfoOptions
 
class  MultiMeshFromTag
 This class generates a multi-mesh from a mesh where the substructure is represented by a tag. More...
 
class  TagAttribute
 
class  RegularSpace
 
struct  RegularSpaceOptions
 
struct  TagIntersectionAttributes
 
struct  TagIntersectionValues
 
struct  TagIntersectionOptions
 
struct  WindingNumberOptions
 

Functions

std::shared_ptr< wmtk::TetMeshCDT_internal (const wmtk::TriMesh &m, std::vector< std::array< bool, 4 >> &local_f_on_input, bool inner_only, bool rational_output)
 
std::tuple< std::pair< std::vector< double >, uint32_t >, std::pair< std::vector< uint32_t >, uint32_t > > get_vf (const TriMesh &trimesh)
 
std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > delaunay_2d (Eigen::Ref< const RowVectors2d > points)
 
std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > delaunay_3d (Eigen::Ref< const RowVectors3d > points)
 
std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > delaunay_geogram (Eigen::Ref< const Eigen::MatrixXd > points)
 
wmtk::Rational det (const wmtk::Vector2r &a, const wmtk::Vector2r &b)
 
int is_point_inside_triangle (const wmtk::Vector2r &P, const wmtk::Vector2r &A, const wmtk::Vector2r &B, const wmtk::Vector2r &C)
 
bool segment_segment_inter (const Vector2r &s0, const Vector2r &e0, const Vector2r &s1, const Vector2r &e1, Vector2r &res, Rational &t0, Rational &t1)
 
bool is_point_in_bbox (const Vector2r &point, const Vector2r &bbox_min, const Vector2r &bbox_max)
 
bool is_bbox_intersect (const Vector2r &bbox_min_0, const Vector2r &bbox_max_0, const Vector2r &bbox_min_1, const Vector2r &bbox_max_1)
 
std::array< wmtk::Vector2r, 2 > compute_bbox (const wmtk::Vector2r &p0, const wmtk::Vector2r &p1, const wmtk::Vector2r &p2)
 
std::array< wmtk::Vector2r, 2 > compute_bbox (const wmtk::Vector2r &p0, const wmtk::Vector2r &p1)
 
bool is_colinear (const Vector2r &p0, const Vector2r &p1, const Vector2r &q0, const Vector2r &q1)
 
std::vector< int64_t > cyclic_order (const std::vector< Vector2r > &V)
 
void dfs_triangulate_aux (int64_t v, std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &VV, std::vector< Vector2r > &V_pos, std::vector< int64_t > &stack, std::vector< int > &in_stack, std::vector< int > &is_on_input, std::vector< int > &is_used, std::vector< std::vector< int64_t >> &in_stack_idx, const Vector2r &prev_vector, const int64_t v_prev, std::vector< std::array< int64_t, 3 >> &FV, std::vector< std::array< int, 3 >> &local_e_on_input)
 
void dfs_triangulate (std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &VV, std::vector< Vector2r > &V_pos, std::vector< std::array< int64_t, 3 >> &FV, std::vector< std::array< int, 3 >> &local_e_on_input)
 
void edge_insertion (TriMesh &_trimesh, EdgeMesh &edgemesh, std::vector< Vector2r > &v_final, std::vector< std::array< int64_t, 3 >> &FV_new, std::vector< std::array< int, 3 >> &local_e_on_input)
 
bool segment_segment_inter (const Vector2r &s0, const Vector2r &e0, const Vector2r &s1, const Vector2r &e1, Vector2r &res)
 include the intersection on edgepoints More...
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (EdgeInsOptions, edges, triangles, output)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (ExportCacheOptions, folder)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (GetAllMeshesOptions, input, name)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (ImportCacheOptions, folder)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (MeshInfoOptions, input)
 
void write (const Mesh &mesh, const std::string &out_dir, const std::string &name, const std::string &vname, const int64_t index, const bool intermediate_output)
 
void adjust_sizing_field (Mesh &m, const TypedAttributeHandle< double > &coordinate_handle, const TypedAttributeHandle< double > &edge_length_handle, const TypedAttributeHandle< double > &sizing_field_scalar_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< double > &target_edge_length_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length, const double min_target_edge_length)
 
void set_operation_energy_filter (Mesh &m, const TypedAttributeHandle< double > &coordinate_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< char > &energy_filter_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length)
 
void periodic_optimization (Mesh &periodic_mesh, Mesh &position_mesh, Mesh &surface_mesh, const double target_edge_length, const double max_amips_energy, const int64_t passes, const double envelope_size, const bool intermediate_output, std::vector< attribute::MeshAttributeHandle > &pass_through_attributes, std::string output_dir, std::string output)
 
void to_json (nlohmann::json &j, RegularSpaceOptions &o)
 
void from_json (const nlohmann::json &j, RegularSpaceOptions &o)
 
void to_json (nlohmann::json &j, TagIntersectionOptions &o)
 
void from_json (const nlohmann::json &j, TagIntersectionOptions &o)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (TagIntersectionAttributes, vertex_labels, edge_labels, face_labels, tetrahedron_labels)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (TagIntersectionValues, vertex_values, edge_values, face_values, tetrahedron_values)
 
std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wildmeshing2d (const WildMeshingOptions &options)
 
std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wildmeshing3d (const WildMeshingOptions &options)
 
void adjust_sizing_field (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &edge_length_handle, const TypedAttributeHandle< double > &sizing_field_scalar_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< double > &target_edge_length_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length, const double min_target_edge_length)
 
void set_operation_energy_filter (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< char > &energy_filter_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length)
 
void set_operation_energy_filter_after_sizing_field (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< char > &energy_filter_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length)
 
void write (const std::shared_ptr< Mesh > &mesh, const std::string &out_dir, const std::string &name, const std::string &vname, const int64_t index, const bool intermediate_output)
 
Eigen::VectorXd winding_number (const Mesh &m, const TriMesh &surface)
 
Eigen::VectorXd winding_number_internal (const Eigen::MatrixXd &query_points, const Eigen::MatrixXd &surface_V, const MatrixX< int64_t > &surface_F)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (WindingNumberOptions, input, filtering_base, output, threshold)
 

Function Documentation

◆ adjust_sizing_field() [1/2]

void wmtk::components::internal::adjust_sizing_field ( Mesh m,
const TypedAttributeHandle< double > &  coordinate_handle,
const TypedAttributeHandle< double > &  edge_length_handle,
const TypedAttributeHandle< double > &  sizing_field_scalar_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< double > &  target_edge_length_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length,
const double  min_target_edge_length 
)

Definition at line 1185 of file periodic_optimization.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Edge, wmtk::Mesh::get_all(), wmtk::simplex::link(), wmtk::logger(), wmtk::Mesh::orient_vertices(), wmtk::Mesh::switch_tuple(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Referenced by periodic_optimization(), and wildmeshing3d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjust_sizing_field() [2/2]

void wmtk::components::internal::adjust_sizing_field ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  edge_length_handle,
const TypedAttributeHandle< double > &  sizing_field_scalar_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< double > &  target_edge_length_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length,
const double  min_target_edge_length 
)

◆ CDT_internal()

std::shared_ptr< wmtk::TetMesh > wmtk::components::internal::CDT_internal ( const wmtk::TriMesh m,
std::vector< std::array< bool, 4 >> &  local_f_on_input,
bool  inner_only,
bool  rational_output 
)

Definition at line 18 of file CDT.cpp.

References cdt_lib::cdt_to_string(), get_vf(), wmtk::logger(), wmtk::Scheduler::run_operation_on_all(), wmtk::mesh_utils::set_matrix_attribute(), wmtk::Vertex, and wmtk::utils::wmtk_orient3d().

Referenced by wmtk::components::CDT().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compute_bbox() [1/2]

std::array<wmtk::Vector2r, 2> wmtk::components::internal::compute_bbox ( const wmtk::Vector2r p0,
const wmtk::Vector2r p1 
)

Definition at line 190 of file edge_insertion.cpp.

◆ compute_bbox() [2/2]

std::array<wmtk::Vector2r, 2> wmtk::components::internal::compute_bbox ( const wmtk::Vector2r p0,
const wmtk::Vector2r p1,
const wmtk::Vector2r p2 
)

Definition at line 163 of file edge_insertion.cpp.

Referenced by edge_insertion().

Here is the caller graph for this function:

◆ cyclic_order()

std::vector<int64_t> wmtk::components::internal::cyclic_order ( const std::vector< Vector2r > &  V)

Definition at line 221 of file edge_insertion.cpp.

Referenced by dfs_triangulate_aux().

Here is the caller graph for this function:

◆ delaunay_2d()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > wmtk::components::internal::delaunay_2d ( Eigen::Ref< const RowVectors2d points)

Definition at line 8 of file delaunay_2d.cpp.

References delaunay_geogram().

Referenced by wmtk::components::delaunay_exec(), and TEST_CASE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ delaunay_3d()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > wmtk::components::internal::delaunay_3d ( Eigen::Ref< const RowVectors3d points)

Definition at line 7 of file delaunay_3d.cpp.

References delaunay_geogram().

Referenced by wmtk::components::delaunay_exec(), and TEST_CASE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ delaunay_geogram()

std::tuple< Eigen::MatrixXd, Eigen::MatrixXi > wmtk::components::internal::delaunay_geogram ( Eigen::Ref< const Eigen::MatrixXd >  points)

Definition at line 11 of file delaunay_geogram.cpp.

References wmtk::logger(), and wmtk::simplex::vertices().

Referenced by delaunay_2d(), delaunay_3d(), and TEST_CASE().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ det()

wmtk::Rational wmtk::components::internal::det ( const wmtk::Vector2r a,
const wmtk::Vector2r b 
)

Definition at line 27 of file edge_insertion.cpp.

Referenced by is_point_inside_triangle(), wmtk::utils::wmtk_orient2d(), and wmtk::utils::wmtk_orient3d().

Here is the caller graph for this function:

◆ dfs_triangulate()

void wmtk::components::internal::dfs_triangulate ( std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &  VV,
std::vector< Vector2r > &  V_pos,
std::vector< std::array< int64_t, 3 >> &  FV,
std::vector< std::array< int, 3 >> &  local_e_on_input 
)

Definition at line 431 of file edge_insertion.cpp.

References dfs_triangulate_aux().

Referenced by edge_insertion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dfs_triangulate_aux()

void wmtk::components::internal::dfs_triangulate_aux ( int64_t  v,
std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &  VV,
std::vector< Vector2r > &  V_pos,
std::vector< int64_t > &  stack,
std::vector< int > &  in_stack,
std::vector< int > &  is_on_input,
std::vector< int > &  is_used,
std::vector< std::vector< int64_t >> &  in_stack_idx,
const Vector2r prev_vector,
const int64_t  v_prev,
std::vector< std::array< int64_t, 3 >> &  FV,
std::vector< std::array< int, 3 >> &  local_e_on_input 
)

Definition at line 259 of file edge_insertion.cpp.

References cyclic_order().

Referenced by dfs_triangulate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ edge_insertion()

void wmtk::components::internal::edge_insertion ( TriMesh _trimesh,
EdgeMesh edgemesh,
std::vector< Vector2r > &  v_final,
std::vector< std::array< int64_t, 3 >> &  FV_new,
std::vector< std::array< int, 3 >> &  local_e_on_input 
)

Definition at line 483 of file edge_insertion.cpp.

References wmtk::components::internal::Segment::bbox_max, wmtk::components::internal::Segment::bbox_min, wmtk::operations::composite::TriFaceSplit::collapse(), compute_bbox(), wmtk::Mesh::consolidate(), wmtk::operations::CopyOther, wmtk::MeshCRTP< Derived >::create_accessor(), dfs_triangulate(), wmtk::Edge, wmtk::simplex::Simplex::edge(), wmtk::simplex::edges(), wmtk::simplex::Simplex::face(), wmtk::Mesh::get_all(), wmtk::Mesh::get_attribute_handle(), wmtk::utils::EigenMatrixWriter::get_EV_matrix(), wmtk::utils::EigenMatrixWriter::get_FV_matrix(), wmtk::utils::EigenMatrixWriter::get_position_matrix(), is_bbox_intersect(), wmtk::TriMesh::is_boundary(), is_colinear(), wmtk::components::internal::Segment::is_on_input, is_point_in_bbox(), is_point_inside_triangle(), wmtk::operations::None, wmtk::components::internal::Segment::p0, wmtk::components::internal::Segment::p1, wmtk::components::internal::Segment::points_on_segment, wmtk::Mesh::register_attribute(), segment_segment_inter(), wmtk::Mesh::serialize(), wmtk::operations::EdgeCollapse::set_new_attribute_strategy(), wmtk::operations::EdgeSplit::set_new_attribute_strategy(), wmtk::operations::composite::TriFaceSplit::split(), wmtk::TriMesh::switch_tuple(), wmtk::MeshCRTP< Derived >::switch_tuples(), wmtk::Triangle, and wmtk::Vertex.

Referenced by wmtk::components::edge_insertion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ from_json() [1/2]

void wmtk::components::internal::from_json ( const nlohmann::json j,
RegularSpaceOptions o 
)

Definition at line 17 of file RegularSpaceOptions.cpp.

References wmtk::components::internal::RegularSpaceOptions::attributes, wmtk::components::internal::RegularSpaceOptions::input, wmtk::log_and_throw_error(), wmtk::components::internal::RegularSpaceOptions::output, wmtk::components::internal::RegularSpaceOptions::pass_through, and wmtk::components::internal::RegularSpaceOptions::values.

Referenced by wmtk::components::isotropic_remeshing::IsotropicRemeshingOptions::load_json().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ from_json() [2/2]

◆ get_vf()

std::tuple< std::pair< std::vector< double >, uint32_t >, std::pair< std::vector< uint32_t >, uint32_t > > wmtk::components::internal::get_vf ( const TriMesh trimesh)

Definition at line 9 of file get_vf.cpp.

References wmtk::utils::EigenMatrixWriter::get_FV_matrix(), wmtk::utils::EigenMatrixWriter::get_position_matrix(), wmtk::logger(), and wmtk::Mesh::serialize().

Referenced by CDT_internal().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_bbox_intersect()

bool wmtk::components::internal::is_bbox_intersect ( const Vector2r bbox_min_0,
const Vector2r bbox_max_0,
const Vector2r bbox_min_1,
const Vector2r bbox_max_1 
)

Definition at line 147 of file edge_insertion.cpp.

Referenced by edge_insertion().

Here is the caller graph for this function:

◆ is_colinear()

bool wmtk::components::internal::is_colinear ( const Vector2r p0,
const Vector2r p1,
const Vector2r q0,
const Vector2r q1 
)

Definition at line 212 of file edge_insertion.cpp.

References wmtk::utils::wmtk_orient2d().

Referenced by edge_insertion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_point_in_bbox()

bool wmtk::components::internal::is_point_in_bbox ( const Vector2r point,
const Vector2r bbox_min,
const Vector2r bbox_max 
)

Definition at line 138 of file edge_insertion.cpp.

Referenced by edge_insertion().

Here is the caller graph for this function:

◆ is_point_inside_triangle()

int wmtk::components::internal::is_point_inside_triangle ( const wmtk::Vector2r P,
const wmtk::Vector2r A,
const wmtk::Vector2r B,
const wmtk::Vector2r C 
)
Parameters
point
t1
t2
t3
Returns
int -1: outside 0: inside 1: on AB 2: on BC 3: on AC 4:on A 5: on B 6:on C

Definition at line 32 of file edge_insertion.cpp.

References wmtk::abs(), and det().

Referenced by edge_insertion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [1/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( EdgeInsOptions  ,
edges  ,
triangles  ,
output   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [2/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( ExportCacheOptions  ,
folder   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [3/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( GetAllMeshesOptions  ,
input  ,
name   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [4/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( ImportCacheOptions  ,
folder   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [5/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( MeshInfoOptions  ,
input   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [6/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( TagIntersectionAttributes  ,
vertex_labels  ,
edge_labels  ,
face_labels  ,
tetrahedron_labels   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [7/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( TagIntersectionValues  ,
vertex_values  ,
edge_values  ,
face_values  ,
tetrahedron_values   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [8/8]

wmtk::components::internal::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( WindingNumberOptions  ,
input  ,
filtering_base  ,
output  ,
threshold   
)

◆ periodic_optimization()

void wmtk::components::internal::periodic_optimization ( Mesh periodic_mesh,
Mesh position_mesh,
Mesh surface_mesh,
const double  target_edge_length,
const double  max_amips_energy,
const int64_t  passes,
const double  envelope_size,
const bool  intermediate_output,
std::vector< attribute::MeshAttributeHandle > &  pass_through_attributes,
std::string  output_dir,
std::string  output 
)

◆ segment_segment_inter() [1/2]

bool wmtk::components::internal::segment_segment_inter ( const Vector2r s0,
const Vector2r e0,
const Vector2r s1,
const Vector2r e1,
Vector2r res 
)

include the intersection on edgepoints

◆ segment_segment_inter() [2/2]

bool wmtk::components::internal::segment_segment_inter ( const Vector2r s0,
const Vector2r e0,
const Vector2r s1,
const Vector2r e1,
Vector2r res,
Rational t0,
Rational t1 
)

Definition at line 102 of file edge_insertion.cpp.

References wmtk::Rational::get_sign().

Referenced by edge_insertion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_operation_energy_filter() [1/2]

void wmtk::components::internal::set_operation_energy_filter ( Mesh m,
const TypedAttributeHandle< double > &  coordinate_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< char > &  energy_filter_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length 
)

Definition at line 1323 of file periodic_optimization.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::simplex::k_ring(), wmtk::Mesh::orient_vertices(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Referenced by wildmeshing3d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_operation_energy_filter() [2/2]

void wmtk::components::internal::set_operation_energy_filter ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< char > &  energy_filter_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length 
)

Definition at line 1645 of file wildmeshing3d.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::simplex::k_ring(), wmtk::Mesh::orient_vertices(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ set_operation_energy_filter_after_sizing_field()

void wmtk::components::internal::set_operation_energy_filter_after_sizing_field ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< char > &  energy_filter_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length 
)

Definition at line 1692 of file wildmeshing3d.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::simplex::link(), wmtk::Mesh::orient_vertices(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ to_json() [1/2]

◆ to_json() [2/2]

◆ wildmeshing2d()

std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wmtk::components::internal::wildmeshing2d ( const WildMeshingOptions options)

Definition at line 85 of file wildmeshing2d.cpp.

References wmtk::operations::Operation::add_invariant(), wmtk::operations::Operation::add_transfer_strategy(), wmtk::function::utils::amips(), wmtk::SchedulerStats::collecting_time, wmtk::multimesh::consolidate(), wmtk::operations::Copy, wmtk::Edge, wmtk::components::WildMeshingOptions::envelopes, wmtk::SchedulerStats::executing_time, wmtk::components::WildMeshingOptions::input_mesh, wmtk::components::WildMeshingOptions::input_mesh_position, wmtk::components::WildMeshingOptions::intermediate_output, wmtk::components::WildMeshingOptions::intermediate_output_name, wmtk::components::WildMeshingOptions::intermediate_output_path, wmtk::simplex::link_condition(), wmtk::logger(), wmtk::operations::attribute_update::make_cast_attribute_transfer_strategy(), wmtk::components::WildMeshingOptions::max_passes, wmtk::operations::Mean, wmtk::operations::None, wmtk::SchedulerStats::number_of_failed_operations(), wmtk::SchedulerStats::number_of_performed_operations(), wmtk::SchedulerStats::number_of_successful_operations(), wmtk::components::WildMeshingOptions::pass_through, wmtk::operations::Operation::primitive_type(), wmtk::components::WildMeshingOptions::replace_double_coordinate, wmtk::Scheduler::run_operation_on_all(), wmtk::components::WildMeshingOptions::scheduler_update_frequency, wmtk::operations::Operation::set_priority(), wmtk::Scheduler::set_update_frequency(), wmtk::components::WildMeshingOptions::skip_collapse, wmtk::components::WildMeshingOptions::skip_smooth, wmtk::components::WildMeshingOptions::skip_split, wmtk::components::WildMeshingOptions::skip_swap, wmtk::SchedulerStats::sorting_time, wmtk::components::WildMeshingOptions::target_edge_length, wmtk::components::WildMeshingOptions::target_max_amips, wmtk::function::Tet_AMIPS_energy(), wmtk::function::Tri_AMIPS_energy(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), wmtk::simplex::vertices(), wmtk::utils::wmtk_orient2d(), and write().

Referenced by wmtk::components::wildmeshing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wildmeshing3d()

std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wmtk::components::internal::wildmeshing3d ( const WildMeshingOptions options)

Definition at line 88 of file wildmeshing3d.cpp.

References adjust_sizing_field(), wmtk::function::utils::amips(), wmtk::SchedulerStats::collecting_time, wmtk::multimesh::consolidate(), wmtk::operations::Copy, wmtk::Edge, wmtk::components::WildMeshingOptions::envelopes, wmtk::SchedulerStats::executing_time, wmtk::components::WildMeshingOptions::input_mesh, wmtk::components::WildMeshingOptions::input_mesh_position, wmtk::components::WildMeshingOptions::intermediate_output, wmtk::components::WildMeshingOptions::intermediate_output_name, wmtk::components::WildMeshingOptions::intermediate_output_path, wmtk::simplex::link_condition(), wmtk::logger(), wmtk::operations::attribute_update::make_cast_attribute_transfer_strategy(), wmtk::components::WildMeshingOptions::max_passes, wmtk::operations::Mean, wmtk::operations::None, wmtk::SchedulerStats::number_of_failed_operations(), wmtk::SchedulerStats::number_of_performed_operations(), wmtk::SchedulerStats::number_of_successful_operations(), wmtk::components::WildMeshingOptions::pass_through, wmtk::PE, PF, PT, wmtk::PV, wmtk::components::WildMeshingOptions::replace_double_coordinate, wmtk::Scheduler::run_operation_on_all(), wmtk::components::WildMeshingOptions::scheduler_update_frequency, set_operation_energy_filter(), wmtk::Scheduler::set_update_frequency(), wmtk::components::WildMeshingOptions::skip_collapse, wmtk::components::WildMeshingOptions::skip_smooth, wmtk::components::WildMeshingOptions::skip_split, wmtk::components::WildMeshingOptions::skip_swap, wmtk::SchedulerStats::sorting_time, wmtk::components::WildMeshingOptions::target_edge_length, wmtk::components::WildMeshingOptions::target_max_amips, wmtk::function::Tet_AMIPS_energy(), wmtk::function::utils::Tet_AMIPS_energy(), wmtk::Tetrahedron, wmtk::function::Tri_AMIPS_energy(), wmtk::Triangle, wmtk::Vertex, wmtk::simplex::vertices(), wmtk::utils::wmtk_orient3d(), and write().

Referenced by wmtk::components::wildmeshing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ winding_number()

Eigen::VectorXd wmtk::components::internal::winding_number ( const Mesh m,
const TriMesh surface 
)

Definition at line 21 of file winding_number.cpp.

References wmtk::Edge, wmtk::utils::EigenMatrixWriter::get_EV_matrix(), wmtk::utils::EigenMatrixWriter::get_FV_matrix(), wmtk::utils::EigenMatrixWriter::get_position_matrix(), wmtk::utils::EigenMatrixWriter::get_TV_matrix(), wmtk::Mesh::serialize(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Triangle, and winding_number_internal().

Referenced by wmtk::components::winding_number().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ winding_number_internal()

Eigen::VectorXd wmtk::components::internal::winding_number_internal ( const Eigen::MatrixXd &  query_points,
const Eigen::MatrixXd &  surface_V,
const MatrixX< int64_t > &  surface_F 
)

Definition at line 78 of file winding_number.cpp.

Referenced by winding_number().

Here is the caller graph for this function:

◆ write() [1/2]

void wmtk::components::internal::write ( const Mesh mesh,
const std::string &  out_dir,
const std::string &  name,
const std::string &  vname,
const int64_t  index,
const bool  intermediate_output 
)

Definition at line 1161 of file periodic_optimization.cpp.

References data_dir, and wmtk::Mesh::serialize().

Referenced by periodic_optimization(), wmtk::components::wildmeshing(), wildmeshing2d(), and wildmeshing3d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write() [2/2]

void wmtk::components::internal::write ( const std::shared_ptr< Mesh > &  mesh,
const std::string &  out_dir,
const std::string &  name,
const std::string &  vname,
const int64_t  index,
const bool  intermediate_output 
)

Definition at line 6 of file wildmeshing_utils.cpp.

References data_dir, wmtk::Edge, wmtk::Tetrahedron, and wmtk::Triangle.