Hello PyFR Community, I’m currently trying to recreate the simulations from the paper of Park, Vincent and Witherden (2017) on a NACA0021 Aerofoil in deep stall.
I am using the provided mesh and configuration file for the p4.ini file and p4_mesh and started with a warmup phase until t=100 with p=1 and Re=27000.
After the warmup phase I changed the parameters to p=4 and Re=270000. However, I am getting a ‘minimum sized time step rejected’ error at around t=226.
Could you help me and share any information and tips, how I can solve this error?
I attached the configuration file after the warmup phase.
usually this happens when switching to high-order without enabling anti-aliasing. However, I see in your .ini file that anti-aliasing is indeed enabled in your case.
Did you enable it when you switched to p=4 or later on?
thanks for the reply. I noticed that I didn’t disable anti-aliasing during the warmup period. So it was enabled from the beginning. I’m not sure if that is the reason for the time step error, but I’m currently trying to run it again with anti-aliasing enabled at t=100, when I switched to p=4 and see if it makes any difference.
disable anti-alias by comment it out / disable filtering by set freq=0 & cutoff = 0
use [soln-plugin-writer] instead of [soln-output] for output files
But I run into issue before finish of t = 1: RuntimeError: Minimum sized time step rejected.
Both P3 and P4 run into this issue. The command i used:
pyfr run -b cuda -p …/meshes/p3_mesh/naca0021_p3_1c.pyfrm …/configs/p3_aa_warmup.ini
Could you please help or any insights to solve this issue? (Sorry but I did not find the button to upload the *ini file, so I pasted it at the end )
Thanks
Best,
Sharon
p3_aa_warmup.ini
[backend]
precision = double
rank-allocator = linear
[backend-cuda]
device-id = local-rank
[backend-openmp]
;cblas-st = Enter path to local single-threaded BLAS library for OpenMP backend
;cblas-mt = Enter path to local multi-threaded BLAS library for OpenMP backend
[constants]
gamma = 1.4
mu = 0.0000037
Pr = 0.72
M = 0.1
uc = 1.0
rhoc = 1.0
[solver]
system = navier-stokes
order = 1
;anti-alias = flux, surf-flux
This case is always a difficult one, but looking at you ini file I’m not sure that you have fully configured the PI controller for the adaptive time stepping. Please have a look at User Guide — Documentation.
Also dt=2.5e-8 strikes me as being far too small given that this is p=1.
Just FYI setting cutoff = 0 does not disable the filtering (but setting ‘freq=0’ does, so no worries)
Since the initial transient of the test case is a bit stiff, you may try different approaches to stabilize the simulations:
a) Use order = 0.
b) Increase the viscosity (reduce the Reynolds number)
c) Try to tune in the parameters atol, rtol, max-fact and min-fact to avoid sudden changes in the time step. You may try to use max-fact = 1.05 to avoid having unphysical time steps during the first iterations.
Let us know if any of those approaches works out for you!
Appaloges in advance if I state the obvious. The formula for the Reynold number is Re = \rho U L/\mu, where \rho, U, and L are characteristic a density, velocity, and length scale respectively. With \mu being a dynamic viscosity.
So for this case, all other things being equal, if you want to decrease the Reynolds number by a factor of 10, then you have to increase \mu by a factor of 10.
Thank you very much for you patient. I am trying to learn some necessary concepts to better run this simulation.
I checked the Re formula but still a little confused about the relationship between the Re 27,000 and mu 0.000037. It looks like Re = gamma*Pt/mu in this config file(P is Prandtl number? ).It is right? Or may I know what gamma means? I failed to find it out on web pages.
The relation for Prandlt number is Pr=c_p\mu/\kappa, where c_p is the specific heat at constant pressure and \kappa is the thermal conductivity. Being defined as the ratio of viscous diffusion to thermal diffusion. The Prandlt number is generally dependent on the working fluid and for air a typical value is 0.71 for standard T and p.
I don’t think the relation you give for \gamma, Re and Pr is correct. Firstly, \gamma, Pr, and Re are dimensionless numbers, in the relation you wrote down the right had side has dimensions of 1/\mu.
For the more enthusiastic reader you can alternatively think about it philosophically. Reynolds number is the ratio of inertial forces to viscous diffusion forces, and Pr/\mu would be the inverse scaling of thermal diffusivity. As \gamma (the ratio of specific heat) doesn’t get us from thermal diffusivity to the ratio of inertia over viscous diffusion this relation can’t work.
It sounds like you might be relatively new to CFD, if so, can I recommend two books that might help you: “Advanced Computational Fluid and Aerodynamics” by Paul Tucker, and “Riemann Solvers and Numerical Methods for Fluid Dynamics” by Eleuterio Toro. The latter is bit of a deep dive into the Riemann problem, but personally I think the first 2 chapters give excellent background. But feel free to continue asking questions, although a new topic might be the right place.