About initial values and exit boundaries

Hello everyone.

I have a question related to initial values and exit boundaries to ask for advice.

I’m trying to calculate a supersonic flat plate flow with squares.

First of all I used the free coming flow values to initialize the whole field, but it quickly reported an error dispersion, I also tried several initial conditions to try to set the initial velocity near the leading and trailing edges of the square a little bit smoother, but it still reported an error, I found that setting the initial velocity u=0.0 can be pushed forward, and got a more stable flow field, I found that the initial velocity u=0.0 can be pushed forward, and get a more stable flow field.

Unfortunately though there is a noticeable numerical perturbation near the right hand side flow exit, and the perturbation remains as time advances. I tried both exit boundaries char-riem-inv and sup-out-fn.

I understand that my problem is due to an unscientific setting of the initial values, but I’m having a hard time trying to determine the finer initial value function.

Here is my full configuration file below:

[backend]
precision = single 

[backend-cuda]
device-id = 2

[constants]
; M = 1.38
gamma = 1.4
Pr = 0.72
rhoin = 1.0
uin = 1.0
vin = 0.0
pin = 0.37507126354007264
mu =  1e-6
cpTref =  1.3127494223902545
cpTs =  1.2441967547741082

[solver]
system = navier-stokes  ; euler
order = 4
; anti-alias = flux
shock-capturing = entropy-filter  ; artificial-viscosity
viscosity-correction = sutherland

[solver-entropy-filter]
d-min = 1e-6
p-min = 1e-6
e-tol = 1e-6

; [solver-artificial-viscosity]
; max-artvisc = 0.01
; s0 = 0.01
; kappa = 10 

[solver-time-integrator]
formulation = std
scheme = rk34  ; tvd-rk3  
controller = none  ; pi,none
tstart = 0.0
tend = 10000
dt = 1.0E-3
atol = 1.0E-5 
rtol = 1.0E-5

[solver-interfaces]
riemann-solver = rusanov  
ldg-beta = 0.5
ldg-tau = 0.1

[solver-interfaces-line]
flux-pts = gauss-legendre-lobatto

[solver-elements-tri]
soln-pts = alpha-opt

[solver-elements-quad]
soln-pts = gauss-legendre-lobatto

[soln-plugin-nancheck]
nsteps = 10

[soln-plugin-residual] 
nsteps = 10
file = residual.csv
header = true

[soln-plugin-dtstats]
flushsteps = 1
file = dtstats.csv
header = true

[soln-bcs-inlet]
type = sup-in-fa
rho = rhoin
u = uin
v = vin
p = pin

[soln-bcs-outlet]
; type = sup-out-fn
type = char-riem-inv
rho = rhoin
u = uin
; u = uin * 0.5 * (1.0 + tanh((1/(2.45*3)*y - 1.001) / 0.0001)) 
v = vin
p = pin

[soln-bcs-wall]
type = no-slp-adia-wall

[soln-bcs-wall_slip]
type = slp-adia-wall

[soln-bcs-far]
; type = sup-out-fn
type = char-riem-inv
rho = rhoin
u = uin
v = vin
p = pin

[soln-ics]
rho = rhoin
u = 0.0  
v = vin
p = pin

[soln-plugin-writer]
dt-out =  1               
basedir = .                  
basename = 2d-{n:03d}

I hope you can offer advice, it’s much appreciated.

Regards, Wgbb.

1 Like