Wildmeshing Toolkit
wmtk Namespace Reference

Namespaces

 attribute
 
 autogen
 
 components
 
 function
 
 image
 
 invariants
 
 io
 
 mesh_utils
 
 multimesh
 
 operations
 
 simplex
 
 tests
 
 utils
 

Classes

class  hash
 
class  hash< wmtk::attribute::AttributeHandle >
 
class  hash< wmtk::attribute::TypedAttributeHandle< T > >
 
class  hash< wmtk::attribute::MeshAttributeHandle >
 
class  Cell
 
class  EdgeMesh
 
class  EnergyFilterInvariant
 
class  MaxEdgeLengthInvariant
 
class  MultiMeshMapValidInvariant
 
class  MultiMeshEdgeTopologyInvariant
 
class  RoundedInvariant
 
class  SimplexInversionInvariant
 
class  Swap23EnergyBeforeInvariant
 
class  Swap2dEdgeLengthInvariant
 
class  Swap2dUnroundedVertexInvariant
 
class  Swap32EnergyBeforeInvariant
 
class  Swap32EnergyBeforeInvariantDouble
 
class  Swap44EnergyBeforeInvariant
 
class  Swap44EnergyBeforeInvariantDouble
 
class  Swap56EnergyBeforeInvariant
 
class  Swap56EnergyBeforeInvariantDouble
 
class  TodoInvariant
 
class  TodoLargerInvariant
 
class  TodoSmallerInvariant
 
class  HDF5Reader
 
class  HDF5Writer
 
class  MeshWriter
 
class  Mesh
 
class  MeshCRTP
 A Curiously Recurring Template Pattern shim to enable generic specialization of functions. More...
 
class  MultiMeshManager
 
class  PointMesh
 
class  Primitive
 
class  SchedulerStats
 
class  Scheduler
 
class  TetMesh
 
class  TriMesh
 
class  Tuple
 
class  Rational
 

Typedefs

using AttributeHandle = attribute::AttributeHandle
 
template<typename T >
using TypedAttributeHandle = attribute::TypedAttributeHandle< T >
 
using InteriorEdgeInvariant = invariants::InteriorEdgeInvariant
 
using InteriorVertexInvariant = invariants::InteriorVertexInvariant
 
using Invariant = invariants::Invariant
 
using MinEdgeLengthInvariant = invariants::MinEdgeLengthInvariant
 
using MultiMeshLinkConditionInvariant = invariants::MultiMeshLinkConditionInvariant
 
using MshReader = io::MshReader
 
using ParaviewWriter = io::ParaviewWriter
 
template<typename T , int C>
using RowVectors = Eigen::Matrix< T, Eigen::Dynamic, C >
 
template<typename T , int R>
using SquareMatrix = Eigen::Matrix< T, R, R >
 
template<typename T >
using MatrixX = Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >
 
template<typename T , int R>
using Vector = Eigen::Matrix< T, R, 1 >
 
template<typename T >
using VectorX = Vector< T, Eigen::Dynamic >
 
template<typename T >
using Vector2 = Vector< T, 2 >
 
template<typename T >
using Vector3 = Vector< T, 3 >
 
template<typename T >
using Vector4 = Vector< T, 4 >
 
template<typename T , int C>
using RowVector = Eigen::Matrix< T, 1, C >
 
template<typename T >
using RowVectorX = RowVector< T, Eigen::Dynamic >
 
using VectorXl = VectorX< int64_t >
 
using Vector2l = Vector< int64_t, 2 >
 
using Vector3l = Vector< int64_t, 3 >
 
using Vector4l = Vector< int64_t, 4 >
 
using Vector5l = Vector< int64_t, 5 >
 
using Vector3d = Vector< double, 3 >
 
using Vector3r = Vector< Rational, 3 >
 
using Vector2r = Vector< Rational, 2 >
 
using RowVector2d = RowVector< double, 2 >
 
using RowVector3d = RowVector< double, 3 >
 
using RowVectors2l = RowVectors< int64_t, 2 >
 
using RowVectors3l = RowVectors< int64_t, 3 >
 
using RowVectors4l = RowVectors< int64_t, 4 >
 
using RowVectors6l = RowVectors< int64_t, 6 >
 
using RowVectors2d = RowVectors< double, 2 >
 
using RowVectors3d = RowVectors< double, 3 >
 
using RowVectors3r = RowVectors< Rational, 3 >
 
using RowVectors2r = RowVectors< Rational, 2 >
 
using MatrixXl = MatrixX< int64_t >
 

Enumerations

enum class  AttributeAccessMode { Immediate , Buffered }
 
enum class  PrimitiveType : int8_t { Vertex = 0 , Edge = 1 , Triangle = 2 , Tetrahedron = 3 }
 

Functions

template<typename InvariantType >
bool find_invariant_in_collection_by_type (const InvariantCollection &invariants)
 
template<typename... InvariantTypes>
bool find_invariants_in_collection_by_type (const InvariantCollection &invariants)
 
std::shared_ptr< Meshread_mesh (const std::filesystem::path &filename, const bool ignore_z_if_zero, const std::vector< std::string > &tetrahedron_attributes)
 
int8_t get_max_primitive_type_id (const std::vector< PrimitiveType > &primitive_types)
 Get the maximum id for a list of primitive types. More...
 
std::string_view primitive_type_name (PrimitiveType t)
 
constexpr int8_t get_primitive_type_id (PrimitiveType t)
 Get a unique integer id corresponding to each primitive type. More...
 
constexpr PrimitiveType operator- (PrimitiveType pt, int8_t n)
 
constexpr PrimitiveType operator+ (PrimitiveType pt, int8_t n)
 
constexpr bool operator== (PrimitiveType a, PrimitiveType b)
 
constexpr bool operator!= (PrimitiveType a, PrimitiveType b)
 
constexpr bool operator< (PrimitiveType a, PrimitiveType b)
 
constexpr bool operator> (PrimitiveType a, PrimitiveType b)
 
constexpr bool operator<= (PrimitiveType a, PrimitiveType b)
 
constexpr bool operator>= (PrimitiveType a, PrimitiveType b)
 
constexpr PrimitiveType get_primitive_type_from_id (int8_t id)
 Get the primitive type corresponding to its unique integer id. More...
 
int64_t first_available_color (std::vector< int64_t > &used_neighbor_coloring)
 
std::tuple< RowVectors2l, VectorXledgemesh_topology_initialization (Eigen::Ref< const RowVectors2l > E)
 
size_t getPeakRSS ()
 Returns the peak (maximum so far) resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS. More...
 
size_t getCurrentRSS ()
 Returns the current resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS. More...
 
bool has_user_overloaded_logger_level ()
 
spdlog::logger & logger ()
 Retrieves the current logger. More...
 
spdlog::logger & opt_logger ()
 Retrieves the logger for the optimization. More...
 
void set_logger (std::shared_ptr< spdlog::logger > logger)
 Setup a logger object to be used by WildmeshToolkit. More...
 
void set_opt_logger (std::shared_ptr< spdlog::logger > logger)
 Setup a logger object to be used by WildmeshToolkit optimization. More...
 
void log_and_throw_error (const std::string &msg)
 
template<typename... Args>
void log_and_throw_error (const std::string &msg, const Args &... args)
 
std::tuple< MatrixXl, VectorXlmake_free_sv_mesh (Eigen::Ref< const MatrixXl > S)
 
std::tuple< MatrixXl, Eigen::MatrixXd > make_free_sv_mesh_with_positions (Eigen::Ref< const MatrixXl > S, Eigen::Ref< const Eigen::MatrixXd > V)
 
Rational operator+ (const Rational &x, const Rational &y)
 
Rational operator- (const Rational &x, const Rational &y)
 
Rational operator- (const Rational &x)
 
Rational pow (const Rational &x, int p)
 
Rational operator* (const Rational &x, const Rational &y)
 
Rational operator/ (const Rational &x, const Rational &y)
 
int cmp (const Rational &r, const Rational &r1)
 
bool operator== (const Rational &r, const Rational &r1)
 
bool operator!= (const Rational &r, const Rational &r1)
 
Rational abs (const Rational &r0)
 
std::ostream & operator<< (std::ostream &os, const Rational &r)
 
std::tuple< RowVectors6l, RowVectors4l, RowVectors4l, VectorXl, VectorXl, VectorXltetmesh_topology_initialization (Eigen::Ref< const RowVectors4l > T)
 Given the mesh connectivity in matrix format, finds unique edges and faces and their relations. More...
 
std::tuple< RowVectors3l, RowVectors3l, VectorXl, VectorXltrimesh_topology_initialization (Eigen::Ref< const RowVectors3l > F)
 

Variables

constexpr PrimitiveType PV = PrimitiveType::Vertex
 
constexpr PrimitiveType PE = PrimitiveType::Edge
 

Typedef Documentation

◆ AttributeHandle

Definition at line 55 of file AttributeHandle.hpp.

◆ InteriorEdgeInvariant

◆ InteriorVertexInvariant

◆ Invariant

Definition at line 54 of file Invariant.hpp.

◆ MatrixX

template<typename T >
using wmtk::MatrixX = typedef Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>

Definition at line 14 of file Types.hpp.

◆ MatrixXl

using wmtk::MatrixXl = typedef MatrixX<int64_t>

Definition at line 56 of file Types.hpp.

◆ MinEdgeLengthInvariant

◆ MshReader

using wmtk::MshReader = typedef io::MshReader

Definition at line 99 of file MshReader.hpp.

◆ MultiMeshLinkConditionInvariant

◆ ParaviewWriter

Definition at line 118 of file ParaviewWriter.hpp.

◆ RowVector

template<typename T , int C>
using wmtk::RowVector = typedef Eigen::Matrix<T, 1, C>

Definition at line 29 of file Types.hpp.

◆ RowVector2d

using wmtk::RowVector2d = typedef RowVector<double, 2>

Definition at line 44 of file Types.hpp.

◆ RowVector3d

using wmtk::RowVector3d = typedef RowVector<double, 3>

Definition at line 45 of file Types.hpp.

◆ RowVectors

template<typename T , int C>
using wmtk::RowVectors = typedef Eigen::Matrix<T, Eigen::Dynamic, C>

Definition at line 8 of file Types.hpp.

◆ RowVectors2d

using wmtk::RowVectors2d = typedef RowVectors<double, 2>

Definition at line 50 of file Types.hpp.

◆ RowVectors2l

using wmtk::RowVectors2l = typedef RowVectors<int64_t, 2>

Definition at line 46 of file Types.hpp.

◆ RowVectors2r

using wmtk::RowVectors2r = typedef RowVectors<Rational, 2>

Definition at line 54 of file Types.hpp.

◆ RowVectors3d

using wmtk::RowVectors3d = typedef RowVectors<double, 3>

Definition at line 51 of file Types.hpp.

◆ RowVectors3l

using wmtk::RowVectors3l = typedef RowVectors<int64_t, 3>

Definition at line 47 of file Types.hpp.

◆ RowVectors3r

using wmtk::RowVectors3r = typedef RowVectors<Rational, 3>

Definition at line 53 of file Types.hpp.

◆ RowVectors4l

using wmtk::RowVectors4l = typedef RowVectors<int64_t, 4>

Definition at line 48 of file Types.hpp.

◆ RowVectors6l

using wmtk::RowVectors6l = typedef RowVectors<int64_t, 6>

Definition at line 49 of file Types.hpp.

◆ RowVectorX

template<typename T >
using wmtk::RowVectorX = typedef RowVector<T, Eigen::Dynamic>

Definition at line 31 of file Types.hpp.

◆ SquareMatrix

template<typename T , int R>
using wmtk::SquareMatrix = typedef Eigen::Matrix<T, R, R>

Definition at line 11 of file Types.hpp.

◆ TypedAttributeHandle

template<typename T >
using wmtk::TypedAttributeHandle = typedef attribute::TypedAttributeHandle<T>

Definition at line 76 of file TypedAttributeHandle.hpp.

◆ Vector

template<typename T , int R>
using wmtk::Vector = typedef Eigen::Matrix<T, R, 1>

Definition at line 17 of file Types.hpp.

◆ Vector2

template<typename T >
using wmtk::Vector2 = typedef Vector<T, 2>

Definition at line 22 of file Types.hpp.

◆ Vector2l

using wmtk::Vector2l = typedef Vector<int64_t, 2>

Definition at line 34 of file Types.hpp.

◆ Vector2r

using wmtk::Vector2r = typedef Vector<Rational, 2>

Definition at line 42 of file Types.hpp.

◆ Vector3

template<typename T >
using wmtk::Vector3 = typedef Vector<T, 3>

Definition at line 24 of file Types.hpp.

◆ Vector3d

using wmtk::Vector3d = typedef Vector<double, 3>

Definition at line 39 of file Types.hpp.

◆ Vector3l

using wmtk::Vector3l = typedef Vector<int64_t, 3>

Definition at line 35 of file Types.hpp.

◆ Vector3r

using wmtk::Vector3r = typedef Vector<Rational, 3>

Definition at line 41 of file Types.hpp.

◆ Vector4

template<typename T >
using wmtk::Vector4 = typedef Vector<T, 4>

Definition at line 26 of file Types.hpp.

◆ Vector4l

using wmtk::Vector4l = typedef Vector<int64_t, 4>

Definition at line 36 of file Types.hpp.

◆ Vector5l

using wmtk::Vector5l = typedef Vector<int64_t, 5>

Definition at line 37 of file Types.hpp.

◆ VectorX

template<typename T >
using wmtk::VectorX = typedef Vector<T, Eigen::Dynamic>

Definition at line 19 of file Types.hpp.

◆ VectorXl

using wmtk::VectorXl = typedef VectorX<int64_t>

Definition at line 33 of file Types.hpp.

Enumeration Type Documentation

◆ AttributeAccessMode

Enumerator
Immediate 
Buffered 

Definition at line 4 of file AttributeAccessMode.hpp.

◆ PrimitiveType

enum wmtk::PrimitiveType : int8_t
strong
Enumerator
Vertex 
Edge 
Triangle 
Tetrahedron 

Definition at line 9 of file PrimitiveType.hpp.

Function Documentation

◆ abs()

◆ cmp()

int wmtk::cmp ( const Rational r,
const Rational r1 
)

Definition at line 259 of file Rational.cpp.

Referenced by wmtk::components::multimesh::axis_aligned_fusion().

Here is the caller graph for this function:

◆ edgemesh_topology_initialization()

std::tuple< RowVectors2l, VectorXl > wmtk::edgemesh_topology_initialization ( Eigen::Ref< const RowVectors2l E)

Definition at line 8 of file edgemesh_topology_initialization.cpp.

Referenced by wmtk::EdgeMesh::initialize().

Here is the caller graph for this function:

◆ find_invariant_in_collection_by_type()

template<typename InvariantType >
bool wmtk::find_invariant_in_collection_by_type ( const InvariantCollection &  invariants)

Definition at line 6 of file find_invariant_in_collection_by_type.hpp.

◆ find_invariants_in_collection_by_type()

template<typename... InvariantTypes>
bool wmtk::find_invariants_in_collection_by_type ( const InvariantCollection &  invariants)

Definition at line 22 of file find_invariant_in_collection_by_type.hpp.

◆ first_available_color()

int64_t wmtk::first_available_color ( std::vector< int64_t > &  used_neighbor_coloring)

Definition at line 225 of file Scheduler.cpp.

Referenced by wmtk::Scheduler::run_operation_on_all_coloring().

Here is the caller graph for this function:

◆ get_max_primitive_type_id()

int8_t wmtk::get_max_primitive_type_id ( const std::vector< PrimitiveType > &  primitive_types)

Get the maximum id for a list of primitive types.

Parameters
primitive_typeslist of primitive types
Returns
maximum primitive type id among the list

Definition at line 17 of file PrimitiveType.cpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ get_primitive_type_from_id()

constexpr PrimitiveType wmtk::get_primitive_type_from_id ( int8_t  id)
inlineconstexpr

Get the primitive type corresponding to its unique integer id.

Definition at line 59 of file PrimitiveType.hpp.

Referenced by wmtk::simplex::boundary(), wmtk::simplex::internal::boundary_with_preserved_face_simplices(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::attribute::AttributeManager::clear_attributes(), wmtk::Mesh::consolidate(), wmtk::io::MshReader::generate(), wmtk::attribute::AttributeManager::get_all_attributes(), wmtk::components::internal::MultiMeshFromTag::get_connected_region(), wmtk::simplex::LinkIterable::Iterator::init(), wmtk::Mesh::Mesh(), wmtk::components::multimesh::multimesh(), wmtk::simplex::ClosedStarIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::navigate_to_link(), wmtk::simplex::ClosedStarIterable::Iterator::operator*(), wmtk::simplex::HalfClosedStarIterable::Iterator::operator*(), wmtk::simplex::LinkIterable::Iterator::operator*(), wmtk::simplex::OpenStarIterable::Iterator::operator*(), wmtk::utils::primitive_range(), wmtk::components::multimesh::utils::AttributeDescription::primitive_type(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::pt(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::simplex::ClosedStarIterable::Iterator::step_depth_3(), wmtk::simplex::LinkIterable::Iterator::step_depth_3(), and wmtk::simplex::OpenStarIterable::Iterator::step_depth_3().

Here is the caller graph for this function:

◆ get_primitive_type_id()

constexpr int8_t wmtk::get_primitive_type_id ( PrimitiveType  t)
inlineconstexpr

Get a unique integer id corresponding to each primitive type.

Ordering of primitive types by dimension allows to exploit the fact that all m<n dimensional primitives exist in an n dimensional manifold

Definition at line 18 of file PrimitiveType.hpp.

Referenced by wmtk::components::multimesh::utils::AttributeDescription::AttributeDescription(), wmtk::simplex::boundary(), wmtk::simplex::internal::boundary_with_preserved_face_simplices(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::Mesh::capacity(), wmtk::attribute::AttributeManager::clear_attributes(), wmtk::TriMesh::TriMeshOperationExecutor::collapse_edge_precompute(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::components::internal::MultiMeshFromTag::create_substructure_soup(), wmtk::simplex::ClosedStarIterable::Iterator::depth(), wmtk::simplex::CofacesSingleDimensionIterable::Iterator::depth(), wmtk::simplex::LinkIterable::Iterator::depth(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::depth(), wmtk::simplex::OpenStarIterable::Iterator::depth(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::depth(), wmtk::simplex::IdSimplex::dimension(), wmtk::simplex::Simplex::dimension(), wmtk::operations::composite::TetEdgeSwap::execute(), wmtk::io::MshReader::extract_element_attribute(), wmtk::attribute::AttributeManager::get(), wmtk::components::multimesh::utils::detail::get_attribute(), wmtk::TetMesh::TetMeshOperationExecutor::get_collapse_simplices_to_delete(), wmtk::TriMesh::TriMeshOperationExecutor::get_collapse_simplices_to_delete(), wmtk::components::internal::MultiMeshFromTag::get_connected_region(), wmtk::Mesh::get_const_flag_accessor(), wmtk::Mesh::get_flag_accessor(), get_max_primitive_type_id(), wmtk::autogen::SimplexDart::get_singleton(), wmtk::TetMesh::TetMeshOperationExecutor::get_split_simplices_to_delete(), wmtk::TriMesh::TriMeshOperationExecutor::get_split_simplices_to_delete(), wmtk::Mesh::guarantee_at_least_attributes(), wmtk::Mesh::guarantee_more_attributes(), wmtk::autogen::edge_mesh::SimplexDart::identity(), wmtk::autogen::tet_mesh::SimplexDart::identity(), wmtk::autogen::tri_mesh::SimplexDart::identity(), wmtk::operations::edge_mesh::SplitNewAttributeTopoInfo::input_ear_simplices(), wmtk::operations::tet_mesh::SplitNewAttributeTopoInfo::input_ear_simplices(), wmtk::operations::tri_mesh::SplitNewAttributeTopoInfo::input_ear_simplices(), wmtk::operations::edge_mesh::SplitNewAttributeTopoInfo::input_split_simplices(), wmtk::operations::tet_mesh::SplitNewAttributeTopoInfo::input_split_simplices(), wmtk::operations::tri_mesh::SplitNewAttributeTopoInfo::input_split_simplices(), wmtk::simplex::CofacesSingleDimensionIterable::Iterator::is_coface_d0(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::is_link_d1(), wmtk::simplex::ClosedStarIterable::Iterator::Iterator(), wmtk::simplex::LinkIterable::Iterator::Iterator(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::Iterator(), wmtk::autogen::utils::largest_shared_subdart_size(), wmtk::operations::internal::left_ear_action(), wmtk::operations::edge_mesh::CollapseNewAttributeTopoInfo::merged_simplices(), wmtk::operations::tet_mesh::CollapseNewAttributeTopoInfo::merged_simplices(), wmtk::operations::tri_mesh::CollapseNewAttributeTopoInfo::merged_simplices(), wmtk::simplex::ClosedStarIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::navigate_to_link(), wmtk::operations::edge_mesh::CollapseNewAttributeTopoInfo::new_simplices(), wmtk::operations::tet_mesh::CollapseNewAttributeTopoInfo::new_simplices(), wmtk::operations::tri_mesh::CollapseNewAttributeTopoInfo::new_simplices(), operator!=(), wmtk::simplex::ClosedStarIterable::Iterator::operator++(), wmtk::simplex::CofacesInSimplexIterable::Iterator::operator++(), wmtk::simplex::LinkIterable::Iterator::operator++(), wmtk::simplex::OpenStarIterable::Iterator::operator++(), operator<(), operator<=(), operator==(), operator>(), operator>=(), wmtk::autogen::edge_mesh::SimplexDart::opposite(), wmtk::autogen::tet_mesh::SimplexDart::opposite(), wmtk::autogen::tri_mesh::SimplexDart::opposite(), wmtk::operations::edge_mesh::SplitNewAttributeTopoInfo::output_duplicated_free_simplices(), wmtk::operations::tri_mesh::SplitNewAttributeTopoInfo::output_duplicated_free_simplices(), wmtk::operations::edge_mesh::SplitNewAttributeTopoInfo::output_rib_simplices(), wmtk::operations::tet_mesh::SplitNewAttributeTopoInfo::output_rib_simplices(), wmtk::operations::tri_mesh::SplitNewAttributeTopoInfo::output_rib_simplices(), wmtk::operations::edge_mesh::SplitNewAttributeTopoInfo::output_split_simplices(), wmtk::operations::tet_mesh::SplitNewAttributeTopoInfo::output_split_simplices(), wmtk::operations::tri_mesh::SplitNewAttributeTopoInfo::output_split_simplices(), wmtk::hash< wmtk::attribute::TypedAttributeHandle< T > >::primitive_hash(), wmtk::utils::primitive_range(), wmtk::autogen::edge_mesh::SimplexDart::primitive_to_index(), wmtk::autogen::tet_mesh::SimplexDart::primitive_to_index(), wmtk::autogen::tri_mesh::SimplexDart::primitive_to_index(), primitive_type_name(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::Mesh::request_simplex_indices(), wmtk::Mesh::reserve_attributes(), wmtk::Mesh::reserve_more_attributes(), wmtk::operations::internal::right_ear_action(), wmtk::autogen::edge_mesh::SimplexDart::simplex_index(), wmtk::autogen::tet_mesh::SimplexDart::simplex_index(), wmtk::autogen::tri_mesh::SimplexDart::simplex_index(), wmtk::autogen::edge_mesh::simplex_index_from_valid_index(), wmtk::autogen::tet_mesh::simplex_index_from_valid_index(), wmtk::autogen::tri_mesh::simplex_index_from_valid_index(), wmtk::Mesh::simplices_to_gids(), wmtk::autogen::utils::subdart_maximal_action_to_face(), wmtk::autogen::utils::subdart_maximal_action_to_face_action(), wmtk::autogen::utils::subdart_maximal_action_to_face_size(), wmtk::autogen::edge_mesh::internal::switch_primitive_to_valid_tuple_index(), wmtk::autogen::tet_mesh::internal::switch_primitive_to_valid_tuple_index(), and wmtk::autogen::tri_mesh::internal::switch_primitive_to_valid_tuple_index().

◆ getCurrentRSS()

size_t wmtk::getCurrentRSS ( )

Returns the current resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.

Definition at line 87 of file getRSS.cpp.

◆ getPeakRSS()

size_t wmtk::getPeakRSS ( )

Returns the peak (maximum so far) resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.

Definition at line 44 of file getRSS.cpp.

◆ has_user_overloaded_logger_level()

bool wmtk::has_user_overloaded_logger_level ( )

Definition at line 9 of file Logger.cpp.

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

Here is the caller graph for this function:

◆ log_and_throw_error() [1/2]

void wmtk::log_and_throw_error ( const std::string &  msg)

Definition at line 101 of file Logger.cpp.

References logger().

Referenced by wmtk::simplex::closed_star(), wmtk::simplex::cofaces_single_dimension_tuples(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::components::internal::MultiMeshFromTag::create_substructure_soup(), wmtk::components::export_cache(), wmtk::multimesh::utils::extract_and_register_child_mesh_from_tag(), wmtk::components::internal::from_json(), wmtk::components::gather_attributes(), wmtk::io::MshReader::generate(), wmtk::components::utils::get_attribute(), wmtk::io::utils::guess_file_type(), wmtk::components::import_cache(), wmtk::components::input::input(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::simplex::link(), wmtk::simplex::link_single_dimension(), log_and_throw_error(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::simplex::open_star(), wmtk::components::Marching::process(), wmtk::attribute::MeshAttributes< T >::register_attribute(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::components::run_components(), wmtk::HDF5Reader::set_attribute(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), wmtk::operations::SplitNewAttributeStrategy< T >::SplitNewAttributeStrategy(), wmtk::operations::SplitNewAttributeStrategy< T >::standard_split_rib_strategy(), wmtk::operations::SplitNewAttributeStrategy< T >::standard_split_strategy(), wmtk::components::tag_intersection(), wmtk::simplex::top_dimension_cofaces_tuples(), and wmtk::io::MshReader::validate().

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

◆ log_and_throw_error() [2/2]

template<typename... Args>
void wmtk::log_and_throw_error ( const std::string &  msg,
const Args &...  args 
)

Definition at line 44 of file Logger.hpp.

References log_and_throw_error().

Here is the call graph for this function:

◆ logger()

spdlog::logger & wmtk::logger ( )

Retrieves the current logger.

Returns
A const reference to WildmeshToolkit's logger object.

Definition at line 58 of file Logger.cpp.

References set_logger().

Referenced by wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::SimplexInversionInvariant< T >::after(), wmtk::invariants::EnvelopeInvariant::after(), wmtk::operations::EdgeCollapse::attribute_new_all_configured(), wmtk::operations::EdgeSplit::attribute_new_all_configured(), wmtk::components::multimesh::axis_aligned_fusion(), wmtk::components::CDT(), wmtk::components::internal::CDT_internal(), wmtk::multimesh::utils::MapValidator::check_child_map_attributes_valid(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::components::adaptive_tessellation::image::combine_position_normal_texture(), wmtk::TriMesh::TriMeshOperationExecutor::create_spine_simplices(), wmtk::components::internal::delaunay_geogram(), wmtk::TriMesh::TriMeshOperationExecutor::delete_simplices(), wmtk::components::edge_insertion(), wmtk::invariants::EnvelopeInvariant::EnvelopeInvariant(), wmtk::io::Cache::equals(), nlohmann::adl_serializer< wmtk::components::input::InputOptions >::from_json(), wmtk::utils::generate_raw_tetmesh_from_input_surface(), wmtk::io::CachedMultiMesh::get(), wmtk::components::get_all_meshes(), wmtk::components::multimesh::MeshCollection::get_named_multimesh(), wmtk::components::internal::get_vf(), wmtk::TetMesh::is_connectivity_valid(), wmtk::TriMesh::is_connectivity_valid(), wmtk::EdgeMesh::is_connectivity_valid(), wmtk::EdgeMesh::is_valid(), wmtk::TetMesh::is_valid(), wmtk::TriMesh::is_valid(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::simplex::LinkIterable::Iterator::Iterator(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::Iterator(), wmtk::components::adaptive_tessellation::image::Image::load(), load_image_exr_red_channel(), load_image_exr_split_3channels(), wmtk::components::adaptive_tessellation::image::load_rgb_image(), log_and_throw_error(), wmtk::utils::StopWatch::log_msg(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::components::adaptive_tessellation::image::make_samples_to_bicubic_coeffs_operator(), wmtk::components::mesh_info(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), wmtk::operations::utils::MultiMeshEdgeSplitFunctor::operator()(), wmtk::components::output::output(), wmtk::components::periodic_optimization(), wmtk::components::internal::periodic_optimization(), wmtk::SchedulerStats::print_update_log(), wmtk::components::Marching::process(), wmtk::HDF5Reader::read_mesh(), wmtk::components::remove_duplicates(), wmtk::TriMesh::TriMeshOperationExecutor::replace_incident_face(), wmtk::Mesh::request_simplex_indices(), wmtk::components::run_components(), wmtk::Scheduler::run_operation_on_all(), wmtk::Scheduler::run_operation_on_all_coloring(), wmtk::components::adaptive_tessellation::image::Image::save(), wmtk::components::adaptive_tessellation::image::save_image_exr_3channels(), wmtk::components::adaptive_tessellation::image::save_image_exr_red_channel(), wmtk::operations::EdgeCollapse::set_new_attribute_strategy(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), wmtk::components::simplify(), wmtk::components::adaptive_tessellation::image::split_and_save_3channels(), wmtk::TetMesh::TetMeshOperationExecutor::split_edge(), wmtk::components::swapping(), wmtk::utils::DynamicArray< T, ArraySize >::switch_to_vector(), TEST_CASE(), wmtk::components::to_points(), wmtk::components::triangle_insertion::triangle_insertion(), wmtk::multimesh::MultiMeshManager::update_maps_from_edge_operation(), wmtk::io::MshReader::validate(), wmtk::components::wildmeshing(), wmtk::components::internal::wildmeshing2d(), wmtk::components::internal::wildmeshing3d(), wmtk::components::winding_number(), wmtk::components::output::WMTK_NLOHMANN_JSON_FRIEND_FROM_JSON_PROTOTYPE(), and wmtk::io::Cache::~Cache().

Here is the call graph for this function:

◆ make_free_sv_mesh()

std::tuple< MatrixXl, VectorXl > wmtk::make_free_sv_mesh ( Eigen::Ref< const MatrixXl S)

Definition at line 7 of file make_free_sv_mesh.cpp.

Referenced by make_free_sv_mesh_with_positions().

Here is the caller graph for this function:

◆ make_free_sv_mesh_with_positions()

std::tuple< MatrixXl, Eigen::MatrixXd > wmtk::make_free_sv_mesh_with_positions ( Eigen::Ref< const MatrixXl S,
Eigen::Ref< const Eigen::MatrixXd >  V 
)

Definition at line 24 of file make_free_sv_mesh.cpp.

References make_free_sv_mesh().

Here is the call graph for this function:

◆ operator!=() [1/2]

bool wmtk::operator!= ( const Rational r,
const Rational r1 
)

Definition at line 311 of file Rational.cpp.

◆ operator!=() [2/2]

constexpr bool wmtk::operator!= ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 34 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ operator*()

Rational wmtk::operator* ( const Rational x,
const Rational y 
)

Definition at line 178 of file Rational.cpp.

◆ operator+() [1/2]

Rational wmtk::operator+ ( const Rational x,
const Rational y 
)

Definition at line 104 of file Rational.cpp.

◆ operator+() [2/2]

constexpr PrimitiveType wmtk::operator+ ( PrimitiveType  pt,
int8_t  n 
)
inlineconstexpr

Definition at line 26 of file PrimitiveType.hpp.

◆ operator-() [1/3]

Rational wmtk::operator- ( const Rational x)

Definition at line 157 of file Rational.cpp.

◆ operator-() [2/3]

Rational wmtk::operator- ( const Rational x,
const Rational y 
)

Definition at line 130 of file Rational.cpp.

◆ operator-() [3/3]

constexpr PrimitiveType wmtk::operator- ( PrimitiveType  pt,
int8_t  n 
)
inlineconstexpr

Definition at line 23 of file PrimitiveType.hpp.

◆ operator/()

Rational wmtk::operator/ ( const Rational x,
const Rational y 
)

Definition at line 204 of file Rational.cpp.

◆ operator<()

constexpr bool wmtk::operator< ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 38 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ operator<<()

std::ostream& wmtk::operator<< ( std::ostream &  os,
const Rational r 
)

Definition at line 340 of file Rational.cpp.

◆ operator<=()

constexpr bool wmtk::operator<= ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 46 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ operator==() [1/2]

bool wmtk::operator== ( const Rational r,
const Rational r1 
)

Definition at line 286 of file Rational.cpp.

◆ operator==() [2/2]

constexpr bool wmtk::operator== ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 30 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ operator>()

constexpr bool wmtk::operator> ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 42 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ operator>=()

constexpr bool wmtk::operator>= ( PrimitiveType  a,
PrimitiveType  b 
)
inlineconstexpr

Definition at line 50 of file PrimitiveType.hpp.

References get_primitive_type_id().

Here is the call graph for this function:

◆ opt_logger()

spdlog::logger & wmtk::opt_logger ( )

Retrieves the logger for the optimization.

Returns
A const reference to WildmeshToolkit's optimization logger object.

Definition at line 75 of file Logger.cpp.

Referenced by wmtk::operations::AMIPSOptimizationSmoothing::create_solver(), wmtk::operations::AMIPSOptimizationSmoothingPeriodic::create_solver(), wmtk::operations::OptimizationSmoothing::create_solver(), and wmtk::components::run_components().

Here is the caller graph for this function:

◆ pow()

◆ primitive_type_name()

std::string_view wmtk::primitive_type_name ( PrimitiveType  t)

Definition at line 41 of file PrimitiveType.cpp.

References get_primitive_type_id().

Referenced by wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::attribute::TypedAttributeHandle< T >::operator std::string(), wmtk::Mesh::request_simplex_indices(), and wmtk::components::shortest_edge_collapse::shortest_edge_collapse().

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

◆ read_mesh()

std::shared_ptr< Mesh > wmtk::read_mesh ( const std::filesystem::path &  filename,
const bool  ignore_z_if_zero,
const std::vector< std::string > &  tetrahedron_attributes 
)

Definition at line 11 of file MeshReader.cpp.

References wmtk::io::read_mesh().

Referenced by wmtk::io::Cache::equals(), and wmtk::io::CachedMultiMesh::load().

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

◆ set_logger()

void wmtk::set_logger ( std::shared_ptr< spdlog::logger >  logger)

Setup a logger object to be used by WildmeshToolkit.

Calling this function with other WildmeshToolkit function is not thread-safe.

Parameters
[in]loggerNew logger object to be used by WildmeshToolkit. Ownership is shared with WildmeshToolkit.

Definition at line 90 of file Logger.cpp.

Referenced by logger().

Here is the caller graph for this function:

◆ set_opt_logger()

void wmtk::set_opt_logger ( std::shared_ptr< spdlog::logger >  logger)

Setup a logger object to be used by WildmeshToolkit optimization.

Calling this function with other WildmeshToolkit function is not thread-safe.

Parameters
[in]loggerNew logger object to be used by WildmeshToolkit logger. Ownership is shared with WildmeshToolkit.

Definition at line 96 of file Logger.cpp.

◆ tetmesh_topology_initialization()

std::tuple< RowVectors6l, RowVectors4l, RowVectors4l, VectorXl, VectorXl, VectorXl > wmtk::tetmesh_topology_initialization ( Eigen::Ref< const RowVectors4l T)

Given the mesh connectivity in matrix format, finds unique edges and faces and their relations.

Definition at line 11 of file tetmesh_topology_initialization.cpp.

References wmtk::autogen::tet_mesh::auto_3d_edges, and wmtk::autogen::tet_mesh::auto_3d_faces.

Referenced by wmtk::TetMesh::initialize().

Here is the caller graph for this function:

◆ trimesh_topology_initialization()

std::tuple< RowVectors3l, RowVectors3l, VectorXl, VectorXl > wmtk::trimesh_topology_initialization ( Eigen::Ref< const RowVectors3l F)

Definition at line 10 of file trimesh_topology_initialization.cpp.

References wmtk::autogen::tri_mesh::auto_2d_edges.

Referenced by wmtk::TriMesh::initialize().

Here is the caller graph for this function:

Variable Documentation

◆ PE

constexpr static PrimitiveType wmtk::PE = PrimitiveType::Edge
constexpr

Definition at line 25 of file EnvelopeInvariant.cpp.

Referenced by wmtk::invariants::CollapseEnergyBeforeInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariantDouble::before(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::simplex::boundary_tuples(), wmtk::simplex::internal::boundary_with_preserved_face_tuples(), wmtk::components::CDT(), wmtk::simplex::coface_preserving_boundary_tuples(), wmtk::simplex::edges(), wmtk::operations::composite::TetFaceSwap::execute(), wmtk::simplex::faces(), wmtk::function::PositionMapAMIPS2D::get_value_autodiff(), wmtk::simplex::link(), wmtk::simplex::link_single_dimension(), wmtk::operations::EdgeSplit::new_spine_edges(), wmtk::TriMesh::TriMeshOperationExecutor::next_edge(), wmtk::simplex::open_star(), wmtk::components::internal::periodic_optimization(), wmtk::TriMesh::TriMeshOperationExecutor::prev_edge(), wmtk::simplex::ClosedStarIterable::Iterator::step_faces_tetrahedron(), wmtk::simplex::ClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::ClosedStarIterable::Iterator::step_tri_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tri_mesh(), wmtk::components::triangle_insertion::triangle_insertion(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_all_hashes(), wmtk::simplex::vertices(), wmtk::components::wildmeshing(), and wmtk::components::internal::wildmeshing3d().

◆ PV

constexpr static PrimitiveType wmtk::PV = PrimitiveType::Vertex
constexpr

Definition at line 24 of file EnvelopeInvariant.cpp.

Referenced by wmtk::invariants::EnvelopeInvariant::after(), wmtk::invariants::CollapseEnergyBeforeInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariantDouble::before(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::simplex::boundary_tuples(), wmtk::simplex::internal::boundary_with_preserved_face_tuples(), wmtk::components::CDT(), wmtk::simplex::coface_preserving_boundary_tuples(), wmtk::simplex::edges(), wmtk::invariants::EnvelopeInvariant::EnvelopeInvariant(), wmtk::operations::composite::TetFaceSwap::execute(), wmtk::simplex::faces(), wmtk::function::PositionMapAMIPS2D::get_value_autodiff(), wmtk::simplex::link(), wmtk::simplex::link_single_dimension(), wmtk::TriMesh::TriMeshOperationExecutor::next_edge(), wmtk::simplex::open_star(), wmtk::components::internal::periodic_optimization(), wmtk::TriMesh::TriMeshOperationExecutor::prev_edge(), wmtk::simplex::ClosedStarIterable::Iterator::step_faces_tetrahedron(), wmtk::simplex::ClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::ClosedStarIterable::Iterator::step_tri_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tri_mesh(), wmtk::components::triangle_insertion::triangle_insertion(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_all_hashes(), wmtk::simplex::vertices(), wmtk::components::wildmeshing(), and wmtk::components::internal::wildmeshing3d().