CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   Main CFD Forum (https://www.cfd-online.com/Forums/main/)
-   -   Weiss Preconditioning (https://www.cfd-online.com/Forums/main/152723-weiss-preconditioning.html)

AshwaniAssam May 7, 2015 07:27

Weiss Preconditioning
 
2 Attachment(s)
Dear all,

We are trying to create a 3D unstructured Density-Based Navier-Stokes Solver. We are using (steady state algorithm) weiss time-derivative preconditioning as mentioned in ref[1]. And Runge Kutta 3rd order-time stepping with global time-stepping. For Lid Driven problem at Re = 100 (Ma~1e-6), we are using a fixed time step of 5e-2. We are getting a wavy like plot as can be seen in the figure attached. The smooth curve is the reference result (Ghia et al). I am also attaching the contour of the same. Can anyone help, in describing the mistake I might be doing in the code. :confused: Is the error in the convection term, diffusion or preconditioning altogether. We have used 2nd order preconditioned roe scheme [1]. The gradient calculation is also done as per [1].

[1] Weiss, Jonathan M., and Wayne A. Smith. "Preconditioning applied to variable and constant density flows." AIAA journal 33.11 (1995): 2050-2057.

Attachment 39297

Attachment 39298

with regards.
Ashwani

apoorv May 7, 2015 10:32

Weiss-Smith Preconditioning
 
It is a closed enclosure, what is the reference velocity

AshwaniAssam May 7, 2015 13:17

It is closed. The reference velocity being the maximum velocity in the domain. so, it comes out to be the velocity of the moving lid, in this case 0.001021. And the Ur for preconditioning is calculated using the formulation given in ref[1].

mprinkey May 7, 2015 15:39

I can't really speak to the specific preconditioning scheme. But I will ask some questions that might be helpful. The scheme is formulated as:

dU/dt = F(U)

(1) This is a pseudotransient solver. What are your final residuals, ||F(U_final)||? If those are converged results, you have a problem in the core discretization schemes. I can't be more specific because this test case is designed to have pressure, viscous, and convective terms all in play.

(2) If you turn off the preconditioning and/or drop the timestep substantially, do you get the same/better results?

(3) How large are your variations in density? Is the divergence of the velocity field zero?

(4) You can try scaling back Re to increase viscous behavior. That may help verify that the viscous formulation is right.

AshwaniAssam May 8, 2015 00:40

@mprinkey
Quote:

(1) This is a pseudotransient solver. What are your final residuals, ||F(U_final)||? If those are converged results, you have a problem in the core discretization schemes. I can't be more specific because this test case is designed to have pressure, viscous, and convective terms all in play.
A: These are not converged results, but they are taken, when residuals are of order 1e-3. Although this is a pseudo transient solver, but if we are using global time stepping,then I "think" we "should" get true solution (just my guess).
Quote:

(2) If you turn off the preconditioning and/or drop the timestep substantially, do you get the same/better results?
Turning off preconditioning gives unrealistic solution for such low Mach number, but gives accurate results for high Mach number( Flow over Wedge)Decreasing timesteps gives similar results(no drastic change).

Quote:

(3) How large are your variations in density? Is the divergence of the velocity field zero?
There are no variations in density. Will check divergence of velocity divergence and report back.

Quote:

(4) You can try scaling back Re to increase viscous behavior. That may help verify that the viscous formulation is right.
Will do this and report back. But have validated flow over flat plate case with Shapario et al's result. So, I am pretty much confident that the viscous part is correct.
What could be the sources of error in preconditioning? Can preconditioning survive at 1e-6 Mach numbers?And do we have to use CFL local timestepping, instead of using fixed global timestepping. I am trying these things out, and the speed of solver is very slow, so if someone has experience in this field, than any help in this regard will be appreciated.

apoorv May 8, 2015 08:09

Hi,

Based on previous experience, I have tested it till 0.001 Mach Number on airfoils and cascades, what is the medium you are using air or water. I am not sure it will work for such low mach numbers. But to my knowledge Preconditioned coupled solvers are preferred for natural convection, but I have never tested it.

Apoorv

AshwaniAssam May 13, 2015 02:39

Thank you for your reply!!

Can you please guide me how to construct the dissipation term? The paper says that given the equation:
Fc = (Fc_left+Fc_right-(Gamma*Aroe,p*(Q_right-Q_left)))*0.5
where Q is primitive variables vector.
Gamma: Preconditioning matrix.

It says that Fc_left and Fc_right are evaluated using reconstructed Left and Right Q vectors(using 2nd order reconstruction),and arithmetic averaging is used to evaluate Aroe,p and Gamma are evaluated using arithmetic averaging.

My question is, whether to evaluate Q_right - Q_left using arithmetic averaging, or using spatial reconstructed vectors? Can this be a source of error?
Also, the code works well for high speed flows (flow over wedge of 15 deg, at Ma = 2.5 and has been validated , with and without viscous flux), but will not give correct results for flow over bump at Ma = 0.1.
I have checked and rechecked the values time and again.
I am knee deep struck in this problem and don't know what to do, any directions will be appreciated.

sbaffini May 13, 2015 08:57

I suggest trying on a much simpler case with analytic solution (say, laminar channel), so that you can save time and you have a feedback on convergence/accuracy.

Fabian82 May 14, 2015 07:18

Numerical flux terms where the upwinding is based on the characteristics of the compressible Euler/Navier Stokes equations are known to fail in the low Mach number regime. The numerical diffusion caused by the upwinding becomes excessive at low Mach numbers and produces wrong results (most likely tending towards the Re=0 case).

For Riemann solver based numerical flux terms, preconditioning of the dissipation may solve the problem. See e.g. http://arxiv.org/abs/1409.8289 and references therein. Note that this preconditioning is independent of the preconditioning of the pseudo time derivative which is just intended to accelerate the convergence towards a steady state.

samurai_01 May 14, 2015 23:46

Hi

The artificial dissipation terms (Gamma*Aroe,p*(Q_right-Q_left)) in the paper by weiss actually have a mixture of reconstructed values and values that are obtained by arithmetic averaging.
All the values that have Delta with them, try finding them out using Reconstruction, for rest of the values use arithmetic averaging.

Also, Fc_left and Fc_right are made using reconstruction.
Hope this solves your problem a bit!!:)


All times are GMT -4. The time now is 05:29.