38 "doc": "Application name must be topological_offset."
39 },
40 {
41 "pointer": "/input",
42 "type": "string",
43 "doc": "Tetrahedral input mesh."
44 },
45 {
46 "pointer": "/output",
47 "type": "string",
48 "default": "out",
49 "doc": "Output file name (without extension)."
50 },
51 {
52 "pointer": "/offset_selection",
53 "type": "string",
54 "default": "!_",
55 "doc": "Boolean expression for input simplicial complex to offset. If a single tag (ie 'tag_0') is given, single body mode is used."
56 },
57 {
58 "pointer": "/offset_output_tags",
59 "type": "list",
60 "default": ["newtag"],
61 "doc": "Tags to add to elements in the resulting offset region."
62 },
63 {
64 "pointer": "/offset_output_tags/*",
65 "type": "string",
66 "doc": "A tag."
67 },
68 {
69 "pointer": "/protected_tags",
70 "type": "list",
71 "default": [],
72 "doc": "Only relevant if overwrite_tags=true. Set of tags that will not be overwritten by the offset."
73 },
74 {
75 "pointer": "/protected_tags/*",
76 "type": "string",
77 "doc": "A tag."
78 },
79 {
80 "pointer": "/overwrite_tags",
81 "type": "bool",
82 "default": false,
83 "doc": "If true, offset_output_tag overwrites existing tags in the offset."
84 },
85 {
86 "pointer": "/offset_in",
87 "type": "bool",
88 "default": false,
89 "doc": "Only relevant for single body mode. Whether to create offset inside body"
90 },
91 {
92 "pointer": "/offset_out",
93 "type": "bool",
94 "default": true,
95 "doc": "Only relevant for single body mode. Whether to create offset outside body"
96 },
97 {
98 "pointer": "/respect_all_topologies",
99 "type": "bool",
100 "default": false,
101 "doc": "If true, the topology (after offset initialization) of every tag is respected as if the offset was to replace all tags. If false, only the topology of the offset is respected."
102 },
103 {
104 "pointer": "/target_distance",
105 "type": "float",
106 "default": -1.0,
107 "doc": "Target distance for offset. If negative, the offset is created by splitting adjacent edges at their midpoints."
108 },
109 {
110 "pointer": "/relative_ball_threshold",
111 "type": "float",
112 "default": 0.1,
113 "doc": "Radius relative to target_distance to stop circle (2d) or sphere (3d) splitting in conservative distance approximation."
114 },
115 {
116 "pointer": "/edge_search_termination_len",
117 "type": "float",
118 "default": 1e-3,
119 "doc": "Length below which binary search will be terminated for function-guided edge splitting"
120 },
121 {
122 "pointer": "/sorted_marching",
123 "type": "bool",
124 "default": false,
125 "doc": "Execute marching tets in decreasing order of edge length. Increases run time, may increase output mesh quality."
126 },
127 {
128 "pointer": "/check_manifoldness",
129 "type": "bool",
130 "default": true,
131 "doc": "After performing offset, check if offset region is manifold"
132 },
133 {
134 "pointer": "/save_vtu",
135 "type": "bool",
136 "default": false,
137 "doc": "Save .vtu of output mesh"
138 },
139 {
140 "pointer": "/DEBUG_output",
141 "type": "bool",
142 "default": false,
143 "doc": "Write the tet mesh as out_{}.vtu after every operation."