Limitations_And_Assumptions - nasa/gunns GitHub Wiki

Limitations And Assumptions

These are the limitations & assumptions in our fluid dynamics:

# Limitation/Assumption Notes
1 All flows use Bernoulli’s Equation with a simple correction for compressibility. a, c
2 All flows are assumed steady and fully developed. m
3 We usually assume laminar and one-dimensional flow. a, c, d
4 We usually assume inviscid flow. a, c, e
5 Fluid properties are simple approximations to real-world values. We don’t have a thorough characterization of their accuracy. a, f
6 Specific enthalpy assumes a thermally perfect fluid and is generally inaccurate for fluids other than ideal gas. a, g
7 All gas expansion & compression is assumed isentropic. a, h
8 Fluid properties in a node are assumed to be homogenous throughout the represented volume. This limits the accuracy of our molecular & heat diffusion effects. b, i
9 We cannot model 2-phase flow and cannot mix phases in the same location. A network can have both liquid & gas phases in it, but never present together in the same node or flow. a, l
10 We cannot reliably model mixtures of fluids that are not ideal gas, because all fluid types in a mixture are assumed to have the same compressibility factor. a, j
11 We usually ignore all body forces. a, k

Notes

a. With effort, we could improve the GUNNS models to remove or reduce these limitations.

b. Permanent limitation.

c. In practice, we tune a link’s conductance parameter to match a typical desired flow rate and pressure condition, and the actual flow diverges from truth at other conditions. We may eventually implement more accurate flow equations for duct (i.e. Darcy-Weisbach) and choked & non-choked orifice flows.

d. We do model some aspects of turbulent and transition (unsteady) flow for wall heat convection.

e. We do model viscosity for wall heat convection.

f. These are usually curve fits or tables as a function of temperature and/or pressure. They are usually optimized around a certain point, such as STP or the critical point as appropriate, and can sometimes have significant error away from those points. They are also optimized for speed, i.e. linear or low-order polynomials whenever possible. See more information about our fluid properties here.

g. For all fluid phases, isobaric specific heat Cp & enthalpy h are assumed to be ideal, i.e. only a function of temperature and not a function of pressure & volume. Cp is modeled as linear with temperature, and h = Cp*T, so h is a quadratic with T. This is needed for easy reversibility between enthalpy & temperature at all points.

h. Because of Limitation 6, we can’t model Joule-Thomson (isenthalpic) expansion/compression. For cases where the fluid would have a positive J-T coefficient, we can approximate the J-T effect by using isentropic expansion instead and tuning its magnitude on a case-by-case basis, described here.

i. As a workaround, we can improve the accuracy of diffusion effects by dividing a volume into smaller pieces, like a mesh approach common to CFD’s. This incurs a significant CPU cost, however.

j. This assumption is valid for ideal gasses but is not true for fluids using other equations of state. Thus we can reliably model mixtures of ideal gasses but mixtures of non-ideal fluid types are discouraged because, unless they have identical compressibility at all times, they incur large Fluid_State_Error.

k. GUNNS does not automatically apply gravity or body acceleration. In practice, we apply it when needed by adding pressure sources across height differences as p = rho*g*h, etc.

l. In practice, we model phase changes by moving a mass of gas from a gas node and adding an equal mass of liquid to a liquid node, and vice-versa.

m. A linearization of the flow equation is used in the GUNNS linear algebra solution. This results in error whenever the solution results in a different pressure (non-steady state) across the link than where the linearization was applied at. This error can be reduced for modeling transient cases by decreasing the time step of the network, but this incurs a large CPU cost.

⚠️ **GitHub.com Fallback** ⚠️