I was modifying a geometry with a corridor that I wanted to increase in size, and I wondered if it would be possible to create external variables that you could then use in vertex coordinates rather than changing every vertex one by one. For example, let’s say I have a box (6 facets, 8 vertices) centered on (5,5,5) with every vertex being 2cm from the next (all eight vertices have coordinates (x,y,z) \in {4;6}), and I want to test various sizes of boxes. Instead of 4 and 6, I would create a variable named “size”, and enter “4+1size" and "4-1size” in the coordinates of the vertices. Then I could change the variable and it would affect every instance of this parameter in the vertex coordinates. I know in this example the Scale function would work as well, but I have other geometries where external parameters would be nice.
I admit it might be a bit weird for the various functions like Move or Rotate, and it would require having a way to separate a formula like “2.5*size+10” into a variable and a constant value. Move only modifies the constant value, rotate applies the same way to both the variable and constant part, scale applies to both but only the constant value is modified by the origin point…
Maybe you could even use such a variable in the radius for a test pipe.
Even if it isn’t possible for coordinates, it could be interesting to have a variable parameter for temperature, opacity, sticking factor and outgassing outside of the Time-dependent mode.
Do you think it would bring something to the software?
Jérémy
Molflow originally had no geometry editing, our philosophy was to leave to CAD editors what they are for, and concentrate on ray tracing and physics.
Later, through almost 2 years of postdoc development, I’ve added geometry editing features, which take huge amounts of GUI work and testing.
While your idea is good, it’s esentially an upgrade of Molflow to a parametric CAD editor, fundamentally rewriting the interface (all numeric fields evaluate a formula instead). This would take a year at least, and we won’t have the resources (Molflow doesn’t generate any revenue).
Instead, you can achieve all that you want by the new Python interface, which isn’t yet public as it’s not ready, but it already has the geometry editing working and tested:
It allows you to change coordinates (globally or on a facet) programmatically in Molflow’s zip or xml file format.
Let me know if you need help, a good way to start is the demo, where I added vertex and facet geometry changes for demonstration.
Jeremy, I feel your pain. I prefer parametric CAD software for ease of modeling, but they don’t have the same accuracy as molflow. So when you export the CAD model as an STL and try to collapse a bunch “co-planer” triangles in molflow to reduce the facet count you’ll get a bunch of non-planer facets. Many times molflow doesn’t know how to collapse to the minimal number of facets and you’ll get some weird shaped facets. So, I’m forced to building out my own geometry in molflow…not always the easiest thing to do…using the imported STL model as a template. If the design changes, then I have to do it all over again since molflow is not parametric.
You could also just live with non-planer surfaces. Usually it will only cause negligible leakage, but you still get those purple outline facets in your view, which doesn’t look great for presentations. Maybe Marton can add an option to not display non-planer facets.
I didn’t reply to one part of Jeremy’s original post:
" it could be interesting to have a variable parameter for temperature, opacity, sticking factor and outgassing outside of the Time-dependent mode" - you can already do this. The final value (in t=infinity) of a parameter will be applied in non-time dependent (static or “constant flow”) mode.
So even if your simulation is not time-dependent, you can set facets’ sticking to “param1”, then assign a single value to “param1”, for example 0.5 at t=999s. This will result in a simulation where the sticking will be 0.5 on all facets with param1 sticking. Works for temperature, opacity and outgassing too.