Thermal hydraulic model long initialisation times #25555
-
Hi, I am running a thermal hydraulic analysis of a coolant system. The graph has about 808 FlowChannels and 557 VolumeJunctions to connect them. The issue I am having is when I begin to run the simulation (using the 'combined' module solver) it takes a long time at the setup stage of "Initializing Equation Systems". To do this, it takes 5000 seconds and uses 814 MB memory. The mesh only has 3232 nodes and 2424 elements. I have noticed this time increases when I use more elements and also more VolumeJunctions (if I use JunctionOneToOne1Phase for all junctions with 1 inlet and 1 outlet, it takes like 300 seconds to initialise, which is still quite long). Is there any way to avoid this? It seems there is a variable created for every "junction" (also these show up in paraview as individual variables), which must cause the issue. I have attached a log file below. Best wishes,
|
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 31 replies
-
Hello @joshuahansel will have more insights but I think the prime way to accelerate these things is to move from having one object per flow channel and junction to a single vectorized object adding all these components. This will take a little bit of reworking the code, and we typically only do that if we have a need for a faster simulation. There might also be trivial slow downs of the code. If you profile the code we may just be able to fix them. Please see this page for profiling techniques: Guillaume |
Beta Was this translation helpful? Give feedback.
-
@licharlot You have some experience with large numbers of components. We've already applied that dependency resolution fix, right? |
Beta Was this translation helpful? Give feedback.
Ok I've been working on this idea of using field variables on the junctions. I tried it out on your problem with 3 different methods:
junction1:pressure
.pressure
, which is fine because these are block-restricted.Here are rough timing results in seconds, with the 100-edge case first and 150-edge case in parentheses, and the "?" where I didn't bother to try: