# Non-dimensionalized sutherland law

**URL:** https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695
**Category:** Cases
**Tags:** compressible, mesh, config
**Created:** [26 September 2022 01:12 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695 "2022-09-26T01:12:59Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![YoonSuKyung](https://avatars.discourse-cdn.com/v4/letter/y/5e9695/32.png) [@YoonSuKyung](https://pyfr.discourse.group/u/YoonSuKyung)
#### Post date: [26 September 2022 01:12 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/1 "2022-09-26T01:12:59Z")

</div>

Hi, i’m Sukyung Yoon  
I want to compare the compressible and incompressible flow field for the same Reynolds number condition.

Question1\>  
I want to simulate the Reynolds number 15,000 conditions.  
Can it be said that the Reynolds number in setting (1) and (2) are the same? (chord length = 1m)  
I think it’s the same, but I ask questions to be sure.

Question2)  
As shown in case(3), i tried to use the all dimensionless value as in (1).  
However, to use the Sutherland law, viscosity and temperature(cpTref, cpTs) were used as dimensional values.  
I do not think this is consistent.  
What values should I enter for viscosity and temperature?

![image](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/17ef6d14b346cb6859e22476ff8ea9b7450ca4d4.png)  
(1) AC-navier-stokes (incompressible)

![image](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/98cc9c5681dc6f77b2e398d2184aaffea20e8ef8.png)  
(2) Navier-stokes (compressible)

![image](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/005e798e1f7ec403c1c9e6cc5c1ba734d3362875.png)  
(3) Non-dimensional navier-stokes

thanks,

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [7 April 2023 17:53 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/2 "2023-04-07T17:53:12Z")

</div>

Hi Sukyung,

1. They should be the same, but it looks like you mistyped the viscosity in #2 (mu should be 1.125e-5 as you typed in the comment, not 0.000137e-5 as you typed in the config) and also #3 (rhoc\*|U|_L/mu =/= 15000). Also your freestream pressure is incorrect for that given Mach number, it should be set as P\_ref = rho\_ref_u\_ref^2/(gamma\*M^2). You can verify that you’ve recovered the correct Reynolds and Mach numbers by computing them with the freestream values.

2. This requires giving a reference temperature (in the form of enthalpy) since Sutherland’s law is inherently dimensional. Using the relation cpT = gamma/(gamma - 1) \* P/rho, you can set the cpTref based on the P\_ref and rho\_ref. Then you need to specify what reference temperature this corresponds to. If these conditions correspond to 273K and the Sutherland temperature is 110.4K, then cpTs should be set as cpTs = cpTref \* 110/273.

---

<div class="post-metadata">

### Author: ![fei](https://avatars.discourse-cdn.com/v4/letter/f/59ef9b/32.png) [@fei](https://pyfr.discourse.group/u/fei)
#### Post date: [8 April 2023 15:43 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/5 "2023-04-08T15:43:01Z")

</div>

@tdzanic  
Hello, Dzanic. I am confused about what you said.

Aren’t the free stream P\_ref and rho\_ref used to calculate the cpT? and cpTref is constant 273K. of course, cpTs = cp \* 110/T.

In my practice, under the non-dimentional condition, I use the Reynlod = 1/mu to get the value of mu. Then I use Sutherland’s law to get T based on mu (mu\_ref, Tref and Ts are constant 1.125e-5,  
273K,110.4K). Last, the non-dimentional value of cpTref = cp\*273/T, cpTs = cp \* 110.4/T. Is this right?

> [@tdzanic](#):
>
> (in the form of enthalpy)

and what is this mean?

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [8 April 2023 16:47 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/6 "2023-04-08T16:47:56Z")

</div>

> [@fei](#):
>
> @tdzanic  
> Hello, Dzanic. I am confused about what you said.
> 
> Aren’t the free stream P\_ref and rho\_ref used to calculate the cpT? and cpTref is constant 273K. of course, cpTs = cp \* 110/T.

Not necessarily, Tref does not have to be 273K, depends on what problem you’re running and how you define your initial viscosity. Without the viscosity law, you only need two parameters to characterize the flow, Mach and Reynolds number. All flows with those same values will have the same characteristics.

When you add in a temperature-based viscosity law (one that is inherently dimensional like Sutherland’s law), then you need a third parameter, Tref. See [Sutherland's law -- CFD-Wiki, the free CFD reference](https://www.cfd-online.com/Wiki/Sutherland%27s_law) , note that Tref is not T0 (T0 ~ 273K), Tref is what temperature the viscosity is equal to its reference value. If the reference viscosity is based on the freestream, you need to specify Tref for the freestream. Alternatively, if you want to specify what the reference viscosity is at a value that is not equal to the freestream value, feel free to do so (the viscosity law will modify it accordingly throughout the domain). Note that because you’re changing the freestream conditions to be normalized to unit density/velocity/length, freestream `cpT` is not the usual dimensional value.

That’s why you have to use the relation `cpT = gamma/(gamma - 1) * P/rho` and scale those values accordingly to what temperature it corresponds to. At this point, setting the flow strictly based on Mach and Reynolds number isn’t enough, it needs to also match with respect to the ratio `cpTref/cpTs`. For a given Mach and Reynolds number, a flow with `cpTref = 10, cpTs = 1` is identical to a flow with `cpTref = 100, cpTs = 10` (see the link I referenced before on Sutherland’s law, if you want to keep a consistent scaling, both cpTref and cpTs need to be scaled identically).

> [@fei](#):
>
> In my practice, under the non-dimentional condition, I use the Reynlod = 1/mu to get the value of mu. Then I use Sutherland’s law to get T based on mu (mu\_ref, Tref and Ts are constant 1.125e-5,  
> 273K,110.4K). Last, the non-dimentional value of cpTref = cp\*273/T, cpTs = cp \* 110.4/T. Is this right?

You can calculate cpT in the freestream as `cpTinf = gamma/(gamma - 1) * Pinf/rhoinf `. Then you need to know what temperature the freestream is (dimensional). Call it `Tinf*`, could be 273K, 500K, 100K. If you set the viscosity `mu` as the one that corresponds to the freestream temperature, you can set `cpTref = cpTinf`. If you set the viscosity that corresponds to 273K, then you can set `cpTref = cpTinf*273/Tinf*`. Same thing with the Sutherland temperature, `cpTs = cpTinf*110.4/Tinf*`.

> [@fei](#):
>
> > [@tdzanic](#):
> >
> > (in the form of enthalpy)
> 
> and what is this mean?

[/quote]  
`cpT` is the enthalpy (like `cvT` is the internal energy).

---

<div class="post-metadata">

### Author: ![fei](https://avatars.discourse-cdn.com/v4/letter/f/59ef9b/32.png) [@fei](https://pyfr.discourse.group/u/fei)
#### Post date: [9 April 2023 16:15 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/7 "2023-04-09T16:15:09Z")

</div>

I am simulating the SWBLI in 4th International Workshop on High-Order CFD Methods [BL2 - Laminar shock-boundary layer interaction | HiOCFD4](https://how4.cenaero.be/content/bl2-laminar-shock-boundary-layer-interaction).

 ![image](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/07ff9018379741e6f132a9779a08ee305fda8abd.png)

 ![PML3D(JKQ`V3U~5F@@9RNX](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/3d8d82b921268b5be013868b7a8f3f8f1fa510b7.png)

And I set freestream temperature T = 145.14K to get Reynolds = 1e5 base on sutherland law. It comes out NaNs. Do you know what’s problem with it?

> [@tdzanic](#):
>
> If you set the viscosity `mu` as the one that corresponds to the freestream temperature, you can set `cpTref = cpTinf`

In this condition, is cpTs arbitrary value?

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [9 April 2023 17:14 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/9 "2023-04-09T17:14:01Z")

</div>

> [@fei](#):
>
> I am simulating the SWBLI in 4th International Workshop on High-Order CFD Methods [BL2 - Laminar shock-boundary layer interaction | HiOCFD4](https://how4.cenaero.be/content/bl2-laminar-shock-boundary-layer-interaction).
> 
> ![image](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/07ff9018379741e6f132a9779a08ee305fda8abd.png)
> 
> ![PML3D(JKQ`V3U~5F@@9RNX](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/3d8d82b921268b5be013868b7a8f3f8f1fa510b7.png)
> 
> And I set freestream temperature T = 145.14K to get Reynolds = 1e5 base on sutherland law.

That is a roundabout way of getting it close, but I would recommend not rounding things like freestream pressure as `0.15452368075 ~ 0.15`. However, I’m not sure why you would go about it this way, the case setup from HiOCFD tells you the freestream viscosity and temperature, why don’t you set it up like that (`mu = 1e-5`, `Tref = 288.15`)?

> [@fei](#):
>
> It comes out NaNs. Do you know what’s problem with it?

Unclear, you will have to debug this. I recommend starting with simpler setups like without Sutherland’s law at lower orders to figure out what the issues are (could be improper mesh, time step, case setup, BCs). Also looks like your ICs/BCs don’t match what the case setup mentions for the inlet.

> [@](#):
>
> > [@tdzanic](#):
> >
> > If you set the viscosity `mu` as the one that corresponds to the freestream temperature, you can set `cpTref = cpTinf`
> 
> In this condition, is cpTs arbitrary value?

`cpTs` is never arbitrary if you want to use Sutherlands law, it has to follow the relations I mentioned before.

---

<div class="post-metadata">

### Author: ![fei](https://avatars.discourse-cdn.com/v4/letter/f/59ef9b/32.png) [@fei](https://pyfr.discourse.group/u/fei)
#### Post date: [10 April 2023 01:08 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/10 "2023-04-10T01:08:18Z")

</div>

> [@tdzanic](#):
>
> why don’t you set it up like that (`mu = 1e-5`, `Tref = 288.15`)?

I set the temperature T equal to 145.14 in order to get the desired viscosity. Okey, I set `mu = 1e-5` , `Tref = 288.15`, then `cpTref = cpT = 0.525`. And the fractions in sutherland law are all equal to 1, so the value of Ts can’t be determined, should I set cpTs = cpTref / (273.15/110.4)?  
That’s why I asked this question.

> [@tdzanic](#):
>
> In this condition, is cpTs arbitrary value?

Second, I have the additional question. When we set freestream with an angle of attack, at subsonic flow, we have [sub-in-ftpttang] boundary condition, but at supersonic flow, is it set like u = Ucos(phi), v = Usin(phi)? (U is freestream velocity.) Becasue I set u,v in this way, the result seems wrong.

---

<div class="post-metadata">

### Author: ![YoonSuKyung](https://avatars.discourse-cdn.com/v4/letter/y/5e9695/32.png) [@YoonSuKyung](https://pyfr.discourse.group/u/YoonSuKyung)
#### Post date: [10 April 2023 01:22 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/11 "2023-04-10T01:22:49Z")

</div>

I applied Martian atmospheric conditions. (cp = 843.96)

Therefore, I applied the sutherland’s law to CO2.  
(Mu0=1.375e-5, T0=273K, S\_mu=222, Please refer to the link : [Sutherland’s Law](https://doc.comsol.com/5.5/doc/com.comsol.help.cfd/cfd_ug_fluidflow_high_mach.08.27.html) )  
(0.000137e-5 is my mistake)

Also, R is 191.8 J/(kg\*K), gamma=1.2941, so it may be different from what you calculated.

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [10 April 2023 01:23 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/12 "2023-04-10T01:23:26Z")

</div>

> [@fei](#):
>
> I set the temperature T equal to 145.14 in order to get the desired viscosity. Okey, I set `mu = 1e-5` , `Tref = 288.15`, then `cpTref = cpT = 0.525`. And the fractions in sutherland law are all equal to 1, so the value of Ts can’t be determined, should I set cpTs = cpTref / (273.15/110.4)?  
> That’s why I asked this question.

I don’t understand, setting the reference temperature to a certain value shouldn’t have anything to do with being able to determine the Sutherland temperature. It would be whatever fraction 110.4 is of your reference temperature.

> [@fei](#):
>
> Second, I have the additional question. When we set freestream with an angle of attack, at subsonic flow, we have [sub-in-ftpttang] boundary condition, but at supersonic flow, is it set like u = Ucos(phi), v = Usin(phi)? (U is freestream velocity.) Becasue I set u,v in this way, the result seems wrong.

We have [sub-in-frv] that is identical to [sup-in-fa] except for setting pressure. [sub-in-ftpttang] is a particular boundary condition used to set total pressure and temperature at the inlet, not sure if that’s what you want to do. That’s usually a BC used in turbomachinery.

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [10 April 2023 22:23 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/13 "2023-04-10T22:23:26Z")

</div>

> [@YoonSuKyung](#):
>
> I applied Martian atmospheric conditions. (cp = 843.96)
> 
> Therefore, I applied the sutherland’s law to CO2.  
> (Mu0=1.375e-5, T0=273K, S\_mu=222, Please refer to the link : [Sutherland’s Law](https://doc.comsol.com/5.5/doc/com.comsol.help.cfd/cfd_ug_fluidflow_high_mach.08.27.html) )  
> (0.000137e-5 is my mistake)
> 
> Also, R is 191.8 J/(kg\*K), gamma=1.2941, so it may be different from what you calculated.

My mistake, it looks all good to me now.

---

<div class="post-metadata">

### Author: ![YoonSuKyung](https://avatars.discourse-cdn.com/v4/letter/y/5e9695/32.png) [@YoonSuKyung](https://pyfr.discourse.group/u/YoonSuKyung)
#### Post date: [26 April 2023 07:24 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/14 "2023-04-26T07:24:10Z")

</div>

Hi, tdzanic  
I followed your advice and get cpTref, cpTs value for non-dimensional sutherland’s law.  
Can you check that the process is correct? If there’s anything wrong, please point it out.

 ![nondimensional_sutherland](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/a2b8fb0dc0329503f5e248893d1e7119e74ebf96.png)

And I understand that T0 of Sutherland’s law is different from Tref of cpTref, is that right?

---

<div class="post-metadata">

### Author: ![tdzanic](https://avatars.discourse-cdn.com/v4/letter/t/f05b48/32.png) [@tdzanic](https://pyfr.discourse.group/u/tdzanic)
#### Post date: [26 April 2023 11:10 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/15 "2023-04-26T11:10:40Z")

</div>

Hi Sukyung,

I believe there are some mistakes in the setup. For #1 and #2, it looks like you are setting the freestream density/velocity/pressure correctly so you are getting the right Mach number, but I believe the viscosity is incorrect. Here I think you need to ignore physical reference viscosities (they don’t mean anything in the non-dimensional form) and just set the viscosity that gives you the correct Reynolds number: i.e., `mu = rho*U*L/Re = 1/Re = 1/15,000 = 6.667e-5`. This is what your non-dimensional value of viscosity should be for #2.

Then, somewhat the same for #3, things like `mu_0` and `T_0` from the physical perspective don’t mean anything, you need to set these values accordingly to ensure your non-dimensional values are correct. Your `cpT` that you calculate in #2 looks correct – this is your freestream enthalpy. I am making the assumption here that your Reynolds number is based on the freestream (correct me if I’m wrong there). In that case, your `cpTref` needs to be set to the value that ensures that the viscosity in the freestream gives you the correct Reynolds number. The way I do that is by ensuring that `mu = 1/Re` and that `cpTref = cpTinf = 6.9392` in your case. That way, when the enthalpy in the flow equals `cpTref` (i.e., in your freestream), Sutherland’s law gives you a viscosity equal to your reference viscosity `mu = 1/Re` which recovers the correct Reynolds number in the freestream.

Then, the next step is to ensure your Sutherland temperature is correct. Here, you need to provide what temperature your freestream is supposed to be (in physical units of K). The non-dimensionalized value of Sutherland’s enthalpy `cpTs` is then just your freestream enthalpy multiplied by the ratio of the physical freestream temperature and the physical Sutherland temperature, i.e., `cpTs = cpTref*222/400`. Here I’m giving the Sutherland temperature of 222K for CO2 and assuming that the conditions I’m running have a freestream temperature of 400K (randomly chosen value, depends on your case).

Let me know if any of that is unclear.

– Tarik

---

<div class="post-metadata">

### Author: ![YoonSuKyung](https://avatars.discourse-cdn.com/v4/letter/y/5e9695/32.png) [@YoonSuKyung](https://pyfr.discourse.group/u/YoonSuKyung)
#### Post date: [2 June 2023 06:31 UTC](https://pyfr.discourse.group/t/non-dimensionalized-sutherland-law/695/16 "2023-06-02T06:31:56Z")

</div>

Hi Tarik

As your assumption, Reynolds number is set based on the freestream

Q1. Is the process of ensuring that Sutherland temperature is correct different from [3. Sutherland’s law for CO2] ?

Q2. Is it correct to use the dimensional value of temperature as shown (3.b) in Figure below?

Q3. Is the final value CpTref = 6.9392, CpTref = 6.90344 correct?  
If the setting is correct, the results of dimension and non-dimensional analysis will be compared.

Thank you so much for your answer.

 ![nondimensional_sutherland2](https://global.discourse-cdn.com/free1/uploads/pyfr/original/1X/db6d7a3c3b29e60f2b6b5a291f99775af3e4f488.png)
