Repository navigation
PIMPLE convergence issue for closed-end pipe injection with Water97FluidProperties #33163
Unanswered
tanaka792
asked this question in
Q&A Modules: Navier-Stokes
Replies: 1 comment 6 replies
|
hello
So where is the water going? Are you currently applying the pressure condition on the outlet? This does not feel like our usual pipe problem with a fixed inlet velocity and a fixed outlet pressure. |
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Check these boxes if you have followed the posting rules.
Question
I am trying to simulate a weakly-compressible 3D pipe injection problem using the MOOSE NavierStokes FV module with Water97FluidProperties.
The model is a straight 3D pipe with a length of a few hundred meters. Water is injected from the inlet, and my final target condition is a closed outlet with no outflow. I would like to observe the pressure evolution on the outlet boundary itself, not at an internal section upstream of the outlet. The expected fluid temperature range is about 30–80 °C.
My main question is about the formulation needed for this type of closed outlet + fixed inlet pressure buildup problem using PIMPLE. I am not mainly looking for advice such as simply reducing the timestep. I would like to understand whether something is missing in the PDE formulation, boundary conditions, pressure reference, mass storage/compressibility treatment, or coupling with Water97FluidProperties.
I also tried a fully coupled Newton solve, but for 3D flow with k-epsilon turbulence, the heat equation, and Water97, the computational cost was too high to be practical. Therefore, I would like to use PIMPLE.
Currently, even before switching to the final closed-outlet case, I am testing an open-outlet case with fixed outlet pressure. However, the PIMPLE residuals stagnate and do not decrease sufficiently. For example, they stay around values like these:
Momentum equation: Component 1 0.723904 Linear its: 1
Momentum equation: Component 2 0.610898 Linear its: 1
Momentum equation: Component 3 0.339547 Linear its: 1
Pressure equation: 1 Linear its: 7
Advected system: energy_system 0.270439 Linear its: 180
Advected system: TKE_system 0.126769 Linear its: 1
Advected system: TKED_system 0.158908 Linear its: 2
Another issue is the coupling with Water97FluidProperties. If I pass the solved pressure_total directly to Water97, the pressure during PIMPLE correction can exceed 100 MPa or become nonphysical, which easily causes Water97 range errors.
For this reason, I currently evaluate Water97 at a fixed representative pressure and the solved temperature, effectively using temperature-dependent properties:
The relevant input is:
For the current open-outlet test, the flow setup is:
The PIMPLE and linear solver settings are:
My final target condition is:
inlet: fixed velocity
outlet: closed / no-slip wall
quantity of interest: pressure evolution on the outlet boundary itself
For the closed-outlet case, the injected mass must be stored through pressure buildup. Therefore, I am also considering adding a simplified pressure dependence only to the density used by the flow solver:
rho = rho_Water97(p_const, T) * (1 + beta_p * (pressure_total - p_const))
The intention is to avoid passing the raw PIMPLE-corrected pressure_total directly into Water97, while still allowing compressibility in the density used by the flow equations.
Is this formulation reasonable for a weakly-compressible PIMPLE closed-end pipe injection problem?
Or is there a more standard MOOSE approach for modeling pressure buildup on the closed outlet boundary itself, such as an additional storage term, pressure reference, density formulation, boundary treatment, Kernel, or FunctorMaterial?
I would also appreciate pointers to similar input files or GitHub discussions involving Water97FluidProperties with NavierStokes FV / PIMPLE / k-epsilon pipe flow.
Additional information
Mesh size and type: A 3D straight pipe mesh loaded with FileMeshGenerator
The pipe diameter is 1 m, and the current simplified length is 100 m.
The mesh is approximately a 3D TET4 mesh with a characteristic element size of about 0.05 m
Reynolds number: About 5.0e4, using rho = 1000 kg/m3, U = 0.05 m/s, D = 1 m, and mu = 1e-3 Pa s.
Discretization (finite element CG/DG, finite volume, etc): Finite volume
Models (turbulence, porous media, etc): Weakly-compressible Navier-Stokes, k-epsilon turbulence, fluid heat transfer, gravity, and Water97FluidProperties. At present, Water97 is evaluated at a fixed representative pressure and the solved temperature to avoid range errors during PIMPLE pressure correction.
Solver method (fully coupled, segregated, multiapps, etc): PIMPLE solve.
Base input you started from: There was no single official input file that I directly started from. I mainly referred to the MOOSE FlowSegregated documentation and assembled a custom NavierStokes FV input from there. I then added FluidHeatTransferSegregated, TurbulenceSegregated, PIMPLE settings, k-epsilon turbulence, and Water97FluidProperties through NonADGeneralFunctorFluidProps.
All reactions