VoroCrust Meshing on Mortandad Mesa shell (no internal boundaries) Mortandad Project Page https://meshing.lanl.gov/proj/SEISMIC_Mortandad/index.html Using VoroCrust Parameters as described in paper: Figure 16 (https://arxiv.org/pdf/1902.08767.pdf) shows the impact of varying the main parameters in VoroCrust. GitHub fork: https://github.com/lanl/vorocrust (Private) For this input surface: VoroCrust::Reading obj file: * Number of Input mesh points = 79202 * Number of Input mesh faces = 158400 * Number of Sharp Corners = 8 * Number of Sharp Edges = 1392 VC_ANGLE values gt 60 increases number of spheres and run does not finish LIP_CONST gt .6 to get fewer points and greater variation, does not finish For these runs use same parameters: INPUT_MESH_FILE = ../../mesa_shell.obj NUM_LOOP_REF = 0 REF_ANGLE = 60.0 VC_ANGLE = 60.0 --------------------------------- params01 (reference) 15212 interior and exterior seeds from repo at https://github.com/msebeida/vorocrust/tree/master/examples/seven_layers some deviation from input topo with spacing larger than input near 15m. R_MAX = 50. LIP_CONST = .25 --------------------------------- params03 (coarse) 4787 interior and exterior seeds some deviation from input topo with spacing larger than input near 15m. REF_ANGLE = 60.0 R_MAX = 100.0 LIP_CONST = 0.40 LIP_CONST = .6 4447 seeds but looks similar --------------------------------- params05 (very coarse and sparse) 707 interior and exterior seeds sparse but bad coverage, overprotects corners so only middle of surface is captured corner elements are halfway across entire domain R_MAX = 1000 LIP_CONST = .5 --------------------------------- params06 increase resolution 52944 interior and exterior seeds R_MAX = 25.0 LIP_CONST = 0.2 params07 find limit on L L = .7 works ok with slightly fewer seeds L = .8 takes 1.5 hours a noticable slow down and not much different seeds = 4415 --------------------------------- params04 Version 04 Fail Actually, I can now see the issue for this model, you can specify 80 degrees as your smoothness threshold because you have non-smooth neighbor triangles with dihedral angle that is close to 100. As a rule of thumb every time you have these two neighbors add up to 180, VC will take forever. * VC Smooth Angle Threshold = 80 Min. dihedral angle between smooth neighbors = 100 degrees VC wants this to be as close to 180 as possible. I will try to automate feature detection (to avoid this issues) yet this is definitely not in this year's scope. ==> params04/vc.in <== INPUT_MESH_FILE = ../../mesa_shell.obj NUM_LOOP_REF = 0 REF_ANGLE = 60.0 R_MAX = 1000.0 LIP_CONST = 0.40 VC_ANGLE = 80.0 --------------------------------- params02 Version 02 Fail Setting the Lipschitz Constant to be 0.9 is too high as it will allow a high gradient in the sizing function which would result in fewer points at the end yet it significantly expands the neighborhood around each point (for L = 1, all points could be neighbors!!). This would slow down the process of collecting local neighbors significantly. ==> params02/vc.in <== INPUT_MESH_FILE = ../mesa_shell.obj NUM_LOOP_REF = 0 REF_ANGLE = 180.0 R_MAX = 500.0 LIP_CONST = 0.9 VC_ANGLE = 80.0 --------------------------------- Reference from vorocrust repo. Version 1 vorocrust report: VoroCrust::Input Data: * Input Mesh = ../mesa_shell.obj * Number of Loop Refinements = 0 * Refinement Smooth Angle Threshold = 60 * Maximum Sphere Radius = 50 * Lipschitz Const = 0.25 * VC Smooth Angle Threshold = 60 * Input model is a watertight manifold. VoroCrust::Reading obj file: * Min. dihedral angle between smooth neighbors = 132 degrees * Number of Input mesh points = 79202 * Number of Input mesh faces = 158400 * Number of Sharp Corners = 8 * Number of Sharp Edges = 1392 VoroCrust::Generating Surface Seeds: * Number of Spheres = (8, 322, 1000) * Number of Spheres = (8, 322, 2000) * Number of Spheres = (8, 322, 3000) * Number of Spheres = (8, 322, 3073) * 10 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 4000) * Number of Spheres = (8, 322, 5000) * Number of Spheres = (8, 322, 6000) * Number of Spheres = (8, 322, 6911) * 77 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7000) * Number of Spheres = (8, 322, 7166) * 60 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7228) * 24 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7255) * 19 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7268) * 12 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7274) * 9 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7276) * 3 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7278) * 1 sliver spheres were detected and shrunk! * Number of Spheres = (8, 322, 7278) * No sliver spheres were detected! * Correctness of VoroCrust surface has been verified! * Surface Mesh is saved in surface_mesh.obj! * executed in 139.879 seconds! VoroCrust::Generating Volume Seeds: * Number of interior Volume seeds = 446 * Number of exterior Volume seeds = 3534 * Number of interior Volume seeds = 1446 * Number of exterior Volume seeds = 3534 * Number of interior Volume seeds = 2446 * Number of exterior Volume seeds = 3534 * Number of interior Volume seeds = 3446 * Number of exterior Volume seeds = 3534 * Number of interior Volume seeds = 4446 * Number of exterior Volume seeds = 3534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 4534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 5534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 6534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 7534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 8534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 9534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 10534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 11534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 12534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 13534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 14534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 15534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 16534 * Number of interior Volume seeds = 4573 * Number of exterior Volume seeds = 16795 * Number of ghost Volume seeds = 100770 * executed in 162.941 seconds! * Saving Output in Interior_seeds.csv, Exterior_seeds.csv and Volume_seeds.csv *** VoroCrust::Mission Accomplished! ***.