# Help with PIMPLE algorithm in chtMultiregionFoam

 Register Blogs Members List Search Today's Posts Mark Forums Read

 August 30, 2022, 08:49 Help with PIMPLE algorithm in chtMultiregionFoam #1 New Member   Chris Join Date: Jan 2022 Posts: 21 Rep Power: 3 Hi everyone. I need help with using PIMPLE algorithm in chtMultiregionFoam. I have done a fair amount of reading to understand the basics of SIMPLE PISO ands PIMPLE algorithms. Their purpose, general structure and function. What I have an issue with is that I can't figure out the proper way to use the PIMPLE algorithm with chtMultiregionFoam in version 9 of OpenFoam. As you probably know since the release of OpenFoam v6 chtMultiregionSimpleFoam was discontinued and its functionality was merged into the chtMultiregionFoam. So from what I understand now chtMultiregionFoam is able to operate in SIMPLE PISO and PIMPLE modes if one uses the right parameters and this is independent of the option to use either a steady state simulations or a transient simulations. For a while a though I knew how to use chtMultiregionFoam because I was able to run a few simulation that converged to a reasonable steady state (though it took me more time steps than expected) but I start having stability issues after increasing mi inlet speed and trying to run the exact same case. This let me to an investigation in the proper us PIMPLE algorithm in chtMultiregionFoam and now I'm less confident in my knowledge of how this solver works than I was before. My situation is the following: Case description: I have a solid region surround a liquid region with various inlets and outlets. The solid region has one wall that is heated and the whole thing acts as a heat exchanger. The whole geometry is quite irregular. Description of my approach: I want to get a steady state of the system given a fixed inlet flow-rate and temperature and a fixed power of heating at the solid wall. Because it is impossible to initialize the velocity field properly in my geometry I break my simulation in three phases (1) Transient simulation with laminar flow (2) Transient simulation with turbulence turned on (3) steady state simulation. The first two phases are there to establish an initial U field for my steady state simulation without crashing. They basically function like potentialFoam only I have more control. Description of the problems: 1a. For chtMultiregionFoam problem there are many fvSolution files. One file in system directory and there is also one file for each respective region let's call the directories system/fluid and system/solid. It seem like OpenFoam v9 ignores what's in system/fluid and system/solid and only takes into account the fvSolution in the system directory when it comes to nOuterCorrectors and nCorrectors. I conclude that from the log-file messages "PIMPLE: Operating solver in SIMPLE mode". I also get "PIMPLE: No convergence criteria found" for both regions despite clearly specifying tolerances. 1b. I also noticed getting the message "PIMPLE: Operating solver in PISO mode" when changing nOuterCorrectors and nCorrectors in the fvSolution files in system/fluid and system/solid for Euler ddtScheme but a "PIMPLE: Operating solver in SIMPLE mode" for steady state. Questions: what is the appropriate configuration and role of all the fvSolution file (mostly interested in the steady state case)? What changes happen to the PIMPLE algorithm when changing the ddtScheme scheme? 2. Is there a guide for using the PIMPLE algorithm inside chtMultiregionFoam in order to emulate: * SIMPLE algorithm in steady state simulation. * PISO/PIMPLE algorithm in transient simulation. * PIMPLE algorithm in pseudo transient simulation to produce a steady state solution. 3. It seems that after increasing my inlet velocity (5-fold) I have terrible stability problems and my min and max temperatures get out of control quicly which makes the h calculation not converge. I can't get the problem resolved even after using tiny relaxation factors: Code: ```relaxationFactors { fields { rho 0.3; p 0.2; p_rgh 0.2; } equations { U 0.1; h 0.1; "(k|epsilon|omega)" 0.2; } }``` Does anybody have a good process for identifying and fixing sources of numerical instability? How do I diagnose and fix the thing that is causing the divergence. One thing I suspect after trying low relaxation values is that maybe after changing inlet velocities i didn't run the transient part of my simulation long enough for the U field to relax but I haven't tested that yet since it would take a lot of time to find out by trial and error. 4. Finally could the use of local time-stepping ddtScheme be a good idea for obtaining a steady state in my case and how can I find out if chtMultiregionFoam in OpenFoam v9 supports it? Best regards, Chris

 Tags chtmulitregionfoam, pimple, steady state, version 9