aws-cqc / aws-cqc/DeviceLayout.jl
Convenience wrappers for global parameters and meshing
- Dominant language
- Julia
- Stars
- 67
- Forks
- 14
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 24
Description
Currently, users call `SolidModels.gmsh.model.mesh.generate(dim=3)` to generate a mesh on `dim`-dimensional entities, and use `SolidModels.gmsh.option.set_string` or `...set_number` to set various Gmsh options. Some options can also be set using `MeshingParameters` provided to `render!`, but some of these are global or mesh-only settings that one might want to change after rendering. We should define functions that wrap these and/or provide convenience functions like `generate_mesh(dim=3; mesh_order=1, surface_mesh_algorithm=6, ...)` for [re-]generating meshes with different settings without re-rendering.
(We could ideally also supply `MeshingParameters` to such a function, but we currently can't change mesh sizing information after rendering, so it might be a little confusing to supply `MeshingParameters` with different `mesh_scale` and `α_default` to no effect. An interesting idea would be to separate rendering and mesh size field creation by saving the `meshsize_dict` produced during rendering for later. This could even allow saving an unmeshed geometry `.xao` file alongside a mesh sizing `.json` to be loaded in another Julia session.)
Contributor guide
Research direction
Start by tracing SolidModels.gmsh.model.mesh.generate and the option.set_string/set_number calls, then inspect MeshingParameters and render! to understand which settings are available after rendering. Define the intended convenience API and verify that it can regenerate meshes without changing unsupported mesh sizing information; the issue does not name files or tests to run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100