I am working on levee failure analysis. For that , I am performing multiple simulation on a levee model by changing the boundary conditions and time series in each simulation. I have 20,000 such simulation criteria. The model I have considered is an unsaturated model in a transient state. I am using Python to generate boundary conditions and time series, run the simulation, save the required results, and then reset the model by deleting boundary conditions and time series. I am using SAMG equation solver. I have tried with both settings, in which I kept the threads for matrix assembly and matrix solving to default and also changed it to single threaded, but the results were not significant; it changed only for 15-20 seconds. For performing one simulation, it's taking a lot of time; for example, for a single simulation, it's taking 4-5 minutes. It will not be possible to perform all 20,000 simulations if it takes this much time. How can I reduce the computational time so that I can achieve the required results?