I was trying to simulate the flow around an airfoil at Re=300000, M=0.7 and alpha=4° and I was using [solver-plugin-source] in order to trip transition of the boundary layer.
I tried the two following settings:
- a normal source rhov on the airfoil:
precision = single
[backend-cuda]
mpi-type = cuda-aware
device-id = local-rank
;[backend-openmp]
;cc = gcc
[constants]
gamma = 1.4
u_dim = 50.0
rho_dim =1.225
p_dim = 4464.285714285716
T_dim = 12.697961215347267
mu = 0.00020416666666666668
alpha = 4
Pr = 0.72
M = 0.7
Re = 3e5
# centro streamwise del forcing
x0 = 0.1
y0=0.05
# spatial extents (ell_x, ell_y)
lx = 0.003 ;# l_x (streamwise width)
ly = 0.002 ; # l_y (wall-normal width)
# --- amplitude ---
A = 1000 ; # amplitude of the forcing
# --- temporal band-limited surrogate
f1 = 10000
f2 = 2500
f3 = 1000
f4 = 5000
f5= 15000
# fixed "random-like" phases to keep forcing deterministic and restartable
p1 = 0.13
p2 = 1.70
p3 = 0.90
p4 = 2.40
p5 = 0.50
# relative weights for each harmonic
w1 = 0.2
w2 = 0.2
w3 = 0.2
w4 = 0.2
w5 = 0.2
[solver-time-integrator]
scheme = euler
tstart = 0.840
dt =8e-8
tend = 1.24
controller = none
atol = 0.00001
rtol = 0.00001
errest-norm = l2
safety-fact = 0.9
min-fact = 0.3
max-fact = 2.5
[soln-plugin-writer]
dt-out = 0.02
basedir = sol/.
basename =v2c_{t:.4f}
post-action = echo "Wrote file {soln} at time {t} for mesh {mesh}."
[solver]
system = navier-stokes
order = 3
#viscosity-correction = sutherland
shock-capturing =entropy-filter
[solver-entropy-filter]
d-min = 1e-6
p-min = 1e-6
e-tol = 1e-6
niters = 4
formulation = nonlinear
;e-func = physical
[solver-interfaces]
riemann-solver = exact
ldg-beta = 0.5
ldg-tau = 0.1
[solver-interfaces-line]
flux-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-interfaces-quad]
flux-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-elements-quad]
soln-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-elements-tri]
soln-pts = alpha-opt
quad-deg = 11
quad-pts = williams-shunn
[solver-interfaces-tri]
flux-pts = alpha-opt
quad-deg = 11
quad-pts = alpha-opt
[soln-bcs-inlet]
type = char-riem-inv
rho = rho_dim
u = 50.0*cos((alpha*3.14/180))
v = 50*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-bcs-outlet]
type = char-riem-inv
rho = rho_dim
u = 50.00*cos((alpha*3.14/180))
v = 50.00*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-bcs-wall]
type = no-slp-adia-wall
[soln-ics]
rho = rho_dim
u = 50.0*cos((alpha*3.14/180))
v = 50.0*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-plugin-fluidforce-wall]
nsteps = 500
file = force_rae.csv
header = true
quad-deg = 6
morigin = (0.0, 0.0)
[soln-plugin-residual]
nsteps = 500
file = residual_rae.csv
header = true
norm = inf
[soln-plugin-nancheck]
nsteps = 90
[solver-plugin-source]
rhov= rho * A * exp(-(powf((x - x0),2) /pow(lx,2) +pow((y-y0),2) / pow(ly,2))) * ( w1*sin(2*pi*f1*t + p1) + w2*sin(2*pi*f2*t + p2) + w3*sin(2*pi*f3*t + p3) + w4*sin(2*pi*f4*t + p4)+ w5*sin(2*pi*f5*t + p5))
rhou = 0.0
rhow = 0.0
E = 0.0
rho = 0.0
- a source of rhov and rhou ahead the leading edge:
[backend]
precision = single
[backend-cuda]
mpi-type = cuda-aware
device-id = local-rank
;[backend-openmp]
;cc = gcc
[constants]
gamma = 1.4
u_dim = 50.0
rho_dim =1.225
p_dim = 4464.285714285716
T_dim = 12.697961215347267
mu = 0.00020416666666666668
alpha = 4
Pr = 0.72
M = 0.7
Re = 3e5
# centro streamwise del forcing
x0 = -1
y0=0.0
# spatial extents (ell_x, ell_y)
lx = 0.1 ;# l_x (streamwise width)
ly =0.1 ; # l_y (wall-normal width)
# --- amplitude ---
A = 1000 ;
# --- temporal band-limited surrogate
f1 = 50
f2 = 0
f3 = 0
f4 = 0
f5= 0
# fixed "random-like" phases to keep forcing deterministic and restartable
p1 = 0
p2 = 0
p3 = 0
p4 = 0
p5 = 0
# relative weights for each harmonic
w1 = 1
w2 = 0
w3 = 0
w4 = 0
w5 = 0
[solver-time-integrator]
scheme = euler
tstart = 0.0
dt =4e-8
tend = 0.80
controller = none
atol = 0.00001
rtol = 0.00001
errest-norm = l2
safety-fact = 0.9
min-fact = 0.3
max-fact = 2.5
[soln-plugin-writer]
dt-out = 0.02
basedir = sol/.
basename =v2c_{t:.4f}
post-action = echo "Wrote file {soln} at time {t} for mesh {mesh}."
[solver]
system = navier-stokes
order = 3
#viscosity-correction = sutherland
shock-capturing =entropy-filter
[solver-entropy-filter]
d-min = 1e-6
p-min = 1e-6
e-tol = 1e-6
niters = 4
formulation = nonlinear
;e-func = physical
[solver-interfaces]
riemann-solver = exact
ldg-beta = 0.5
ldg-tau = 0.1
[solver-interfaces-line]
flux-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-interfaces-quad]
flux-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-elements-quad]
soln-pts = gauss-legendre-lobatto
quad-deg = 11
quad-pts = gauss-legendre-lobatto
[solver-elements-tri]
soln-pts = alpha-opt
quad-deg = 11
quad-pts = williams-shunn
[solver-interfaces-tri]
flux-pts = alpha-opt
quad-deg = 11
quad-pts = alpha-opt
[soln-bcs-inlet]
type = char-riem-inv
rho = rho_dim
u = 50.0*cos((alpha*3.14/180))
v = 50*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-bcs-outlet]
type = char-riem-inv
rho = rho_dim
u = 50.00*cos((alpha*3.14/180))
v = 50.00*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-bcs-wall]
type = no-slp-adia-wall
[soln-ics]
rho = rho_dim
u = 50.0*cos((alpha*3.14/180))
v = 50.0*sin(alpha*3.14/180)
p = p_dim
w = 0
[soln-plugin-fluidforce-wall]
nsteps = 500
file = force_rae.csv
header = true
quad-deg = 6
morigin = (0.0, 0.0)
[soln-plugin-residual]
nsteps = 500
file = residual_rae.csv
header = true
norm = inf
[soln-plugin-nancheck]
nsteps = 90
[solver-plugin-source]
rhov= rho * A * exp(-(powf((x - x0),2) /pow(lx,2) +pow((y-y0),2) / pow(ly,2))) * ( w1*sin(2*pi*f1*t + p1) + w2*sin(2*pi*f2*t + p2) + w3*sin(2*pi*f3*t + p3) + w4*sin(2*pi*f4*t + p4)+ w5*sin(2*pi*f5*t + p5))
rhou= rho * A * exp(-(powf((x - x0),2) /pow(lx,2) +pow((y-y0),2) / pow(ly,2))) * ( w1*sin(2*pi*f1*t + p1) + w2*sin(2*pi*f2*t + p2) + w3*sin(2*pi*f3*t + p3) + w4*sin(2*pi*f4*t + p4)+ w5*sin(2*pi*f5*t + p5))
rhow = 0.0
E = 0.0
rho = 0.0
However in both cases I evaluated the mean statistics but I found no significant differences with the case without the plugin. Are there recommendations on how to set up the source terms (type, location, frequency content) to effectively promote transition?