What is the best way to automate simulation for multiple geometries?


#1

I love the ability to run multiple simulations on a server (not my cpu), because I can move onto the next task. So now my bottle neck is me entering in all the settings.

My goal is to run multiple CFD simulations to determine the Cv of a valve at different valve positions. I am doing this by creating a new project for each position, and then creating the mesh and simulation.

Is there a way to copy all the mesh and simulation settings and change the geometry? This would reduce the chances I make a mistake entering settings manually and reduce my time typing.

Thanks


#2

Hi @dhamilton,

a project on SimScale is designed to being able to efficiently manage all assets (geometries, meshes, simulations, results) necessary to complete a design project. So if you’re dealing with different configurations/designs of the same product/application, in your case the valve, I’d recommend that you simulate them all in the same project.

I’d start with building the complete “simulation pipeline” for one configuration until you’re happy with the result. So say, you take the first configuration, generate a suitable mesh, set up the simulation, run it and check on the results if you’re satisfied with them. Once this is done, I’d upload/import the other configurations of the design into the same project. Then:

  • Mesh: Hit the right click on the mesh you generated and choose “Duplicate mesh”. Within the duplicated mesh, change the base to the next configuration. In case you applied any local refinements, you’ll need to re-map the topological assignments, but all other settings will stay the same. Then simply generate the new mesh.
  • Simulation: Same approach with the simulation setup. You can either duplicate the simulation setup and change the domain to be the new mesh. Or you change the domain within the already existing simulation setup. As a generated “Simulation run” is immutable, the already generated simulation results with the first configuration will still be there. So you either create as many simulations by duplicating them as you have configurations or you create as many runs.

On a related note: One of the strengths of SimScale is that there are many public projects, that you can reuse for your own purposes. We’re aggressively working on providing more features to make this “reusing” of simulation content and know-how more intelligent and powerful. If there is any repetitive tasks you experience, that you’d like to see automated, make sure to post it here.

Hope that helps!

Best,

David


#3

A brief follow-up on this topic: I’ve seen lately in the community that there are actually several users simulating different configurations of the same product within separate projects, which implies (as @dhamilton mentioned in the post above) quite some redundant, manual steps. So I was wondering what the reason for this is - is the capability to duplicate meshes/simulations and re-apply them to other geometries too hidden? Or is the management of many assets within a project not powerful enough? Is there any advantage of having it in separate projects, that I missed?

Would be very interested in your thoughts on this to improve SimScale. Thanks in advance!


#4

Hi @dheiny,

I tend to do multiple configurations in one project. One feature that would help me out would be the ability to highlight a Run and make all of those associated setting current in the simulation designer. For example, I may iterate ten times on the setting to get me desired results. If I decide Run 5 gave me the best solution I would like to click on Run 5 and make those the active setting.

Thanks,
Christopher


#5

Hi @cjquijano, I completely agree with you. This feature would be a very useful!

I guess there are two ways this could be implemented. One way is as you described, where the settings from a previous run are applied to the parent simulation. The other way would be to create a completely new simulation based on the settings used in a previous run. I can see advantages to both approaches. I’m not sure which I would prefer.


#6

Christopher @cjquijano, Ben @BenLewis,

very valid suggestions! I can definitely see the value of making the Simulation <-> Run “relationship” more powerful. I created a feature request for it, will keep you updated.

Regarding the Simulation Run concept in general: On desktop systems, the traditional way of “running” a simulation is that specific simulation settings are executed and when I’m changing those settings afterwards, the UI indicates that the simulation results are “outdated”. So the “Simulation run” concept was introduced on SimScale due to the fact that with a cloud based solution, you can kick off many different simulations in general. So to keep track of all the different settings and the results that have been generated with it, this immutable “Settings Snapshot” concept was introduced.

Now in user interviews and user experience tests, I’ve seen different usage types of the run concept. Some use it primarily for “debugging” a simulation, so the difference from run to run within a simulation is only some parameter tweaking to get an accurate solution. Others use it to actually run a parameter study, say 5 different inlet velocities of a flow sim. I’ve rarely seen someone changing the mesh from run to run.

For what do you use primarily the runs on SimScale? Understanding better the strengths and drawbacks of it and for what it’s used would help to develop it into the right direction!

Thanks in advance for the feedback!

David


#7

Hi @dheiny, I’ve used the simulation run for all use cases you have listed. But these days I use it primarily for iterating on an idea. As a general rule, if I intend to change the geometry or simulation type (e.g. linear to non-linear) I will duplicate the simulation rather than create a new run within the same simulation. This is because it is time consuming to undo the changes, if required (topology links get broken).

Hope this helps.

Regards, Ben


#8

Hi @dheiny,

As @BenLewis mentioned, I also use simulation runs for all the cases you mention. I will tend to do several runs to debug or improve the results by changing solvers, boundary conditions, and other parameters. Let’s say I do ten runs tweaking the setting to find the best solution. In some cases the best solution is not the last iteration but it could be Run 5. I would like an easy way for the settings of Run 5 to become the current setting in the simulation designer. At this point I will use these “good” settings and perform multiple runs changing the loads.

Overall, I like the Settings Snapshot approach, we just need a way to make the run setting current again so we don’t have to re-enter all of our changes.

For me, if the mesh changes I will typically copy a simulation and re-set it up. Ideally I would like to iterate on the mesh settings as I described above but changing the mesh tends to break things. It would be nice if I could refine the mesh without having to set up the simulation again. I am not sure how you would do this unless all the loads, boundary conditions, materials, etc, are associated with the underlying geometry and no the mesh.

Thanks,
Christopher