Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
wmtk::components::simwild::Parameters Struct Reference

The fields shared with tetwild and triwild live in wmtk::OptimizerParameters. More...

#include <Parameters.h>

Inheritance diagram for wmtk::components::simwild::Parameters:
wmtk::OptimizerParameters

Public Member Functions

 Parameters ()
 
 Parameters (const nlohmann::json &json_params)
 
void init (const VectorXd &min_, const VectorXd &max_)
 
void init (const std::vector< Vector3d > &vertices, const std::vector< std::array< size_t, 3 > > &faces)
 
- Public Member Functions inherited from wmtk::OptimizerParameters
void init_lengths_from_diagonal (const double diag)
 Derive the edge-length and envelope quantities from the bounding-box diagonal.
 

Public Attributes

std::string output_path
 
bool allow_surface_swap = true
 
bool check_surface_topology = false
 
double epsr_simplify = 2e-4
 
double order2_envelope_ratio = 0.5
 
double eps_simplify = -1.
 
VectorXd box_min
 
VectorXd box_max
 
bool stop_at_float = false
 
bool check_envelope_at_init = false
 
std::string operation = "remeshing"
 
bool skip_simplify = false
 
bool use_sample_envelope = false
 
int NUM_THREADS = 0
 
bool write_vtu = false
 
bool write_envelope = true
 
- Public Attributes inherited from wmtk::OptimizerParameters
double epsr = 1e-3
 
double eps = -1.
 
double lr = 5e-2
 
double l = -1.
 
double l_min = -1
 
double diag_l = -1.
 
bool preserve_topology = false
 
bool optimize_envelope_around_simplified = false
 
int split_high_valence_threshold = 200
 
double stuck_refine_stall_eps = 0.1
 
int stuck_refine_cooldown = 0
 
int stuck_refine_num_worst = 0
 
int stuck_refine_rings = 0
 
double stuck_refine_factor = 0.5
 
double stuck_refine_min_scalar = 1e-3
 
double stuck_refine_gradation = 2.0
 
bool stuck_refine_force_split = true
 
bool skip_good_regions = false
 
double skip_good_regions_margin = 0.9
 
double splitting_l2 = -1.
 
double collapsing_l2
 
double stop_energy = 100
 
double w_amips = 1e-4
 
std::string smoothing_mode = "projected"
 "projected" or "exact"; see SmoothVertexOptions::SmoothingMode.
 
int project_line_search_steps = 12
 Bisections tried before the projected search gives up. See SmoothVertexOptions.
 
int project_line_search_nested_steps = 0
 Partial-projection bisections tried after it gives up; 0 disables that pass.
 
double w_envelope = 1. - 1e-4
 
int num_smoothing_passes = 2
 Number and placement of smoothing passes in the shared Wild optimization driver.
 
bool interleaved_smoothing = true
 
int interleaved_smoothing_passes = 1
 
bool coarsen_pass = false
 
bool coarsen_unbounded = true
 
int coarsen_local_smoothing_passes = 0
 
int coarsen_smooth_ring = 1
 
int coarsen_global_smoothing_passes = 1
 
int coarsen_max_rounds = 2
 
int coarsen_max_inner_passes = 1
 
bool debug_output = false
 
bool perform_sanity_checks = false
 

Detailed Description

The fields shared with tetwild and triwild live in wmtk::OptimizerParameters.

Constructor & Destructor Documentation

◆ Parameters()

wmtk::components::simwild::Parameters::Parameters ( )
inline

The four shared fields where simwild deliberately differs from tetwild/triwild. Set here rather than in the base so the divergence is visible in one place; each matches the default in simwild_spec.json.

Member Data Documentation

◆ check_envelope_at_init

bool wmtk::components::simwild::Parameters::check_envelope_at_init = false

Verify at init that every surface edge starts inside the envelope (2D remeshing only).

The same check triwild carries, and the same trade: the invariant is real, but it costs one sampled segment query per surface edge, serially, on every run. Measured in triwild's 2D sweep at 22s on a 3.5M-edge input and 5m07s on a 7.6M-edge one – 8.5% of that model's entire budget, spent before the first iteration. Off by default.

The 3D counterpart in VolumemesherInsertion is deliberately NOT gated by this: it is not a check but a decision, feeding the "rebuild the envelope from tet tags" branch.

◆ order2_envelope_ratio

double wmtk::components::simwild::Parameters::order2_envelope_ratio = 0.5

Order-2 (open boundary / non-manifold edge) envelope thickness, as a fraction of the surface envelope's. Deliberately below 1 where the surface envelope uses the full eps; see the doc on /order2_envelope_ratio in the spec for the measurement behind 0.5.


The documentation for this struct was generated from the following file: