Transonic triangular aerofoil fail

I am preparing a compressibility analysis for a triangular airfoil.
The final goal is to perform the analysis for Reynolds numbers 6000, 15000, and Mach numbers 0.2, 0.5, and 0.7.
The attached .ini file is for Mach number 0.2 and Re=15000 case.

The grid was generated in a similar way to the previously attempted incompressibility analysis (SD7003 airfoil).
However, as a result of trying to interpret, NaN values ​​occur after a few seconds(0.001~ 0.003 sec).
I tried changing dt, pseudo-dt, pseudo-niters-max etc., but NaN values ​​continue to occur.
I tried starting with a value smaller than p=4, such as P=1, P=2, but the problem is not solved.

It’s my first time analyzing compressibility, so I don’t know what the problem is.
What is important in compressibility analysis (N-S)?
I am currently trying to create a new grid. Is it most likely a grid issue?

thanks

I forgot the shock.
shock option has been added.
The simulation was well performed for p=1.
However, when trying to calculate with p=4, it returns runtime error (zerodivision error)
I think it is related to the shock option.
What should I do?

Traceback (most recent call last):
  File "/home/sk/python3.9/pyfr14/bin/pyfr", line 33, in <module>
    sys.exit(load_entry_point('pyfr==1.14.0', 'console_scripts', 'pyfr')())
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 115, in main
    args.process(args)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 267, in process_restart
    _process_common(args, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 233, in _process_common
    solver = get_solver(backend, rallocs, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/__init__.py", line 16, in get_solver
    return get_integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/__init__.py", line 36, in get_integrator
    return integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/controllers.py", line 8, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/steppers.py", line 16, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/base.py", line 16, in __init__
    self.pseudointegrator = get_pseudo_integrator(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/__init__.py", line 58, in get_pseudo_integrator
    return DualMultiPIntegrator(backend, systemcls, rallocs, mesh,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/multip.py", line 121, in __init__
    self.pintgs[l] = lpsint(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/pseudocontrollers.py", line 11, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/base.py", line 51, in __init__
    self.system = systemcls(backend, rallocs, mesh, initsoln,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 66, in __init__
    self._gen_kernels(nregs, eles, int_inters, mpi_inters, bc_inters)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 186, in _gen_kernels
    kern = kgetter(i)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/baseadvecdiff/elements.py", line 139, in <lambda>
    self.kernels['shocksensor'] = lambda uin: self._be.kernel(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/backend.py", line 158, in kernel
    return kern(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 152, in kernel_meth
    src, ndim, argn, argt = self._render_kernel(name, mod, extrns,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/util.py", line 40, in newmeth
    res = cache[key] = meth(self, *args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 64, in _render_kernel
    src = tpl.render(**tplargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/template.py", line 36, in render
    return super().render(*args, **self.dfltargs, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/template.py", line 439, in render
    return runtime._render(self, self.callable_, args, data)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 874, in _render
    _render_context(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 916, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 943, in _exec_template
    callaTraceback (most recent call last):
  File "/home/sk/python3.9/pyfr14/bin/pyfr", line 33, in <module>
    sys.exit(load_entry_point('pyfr==1.14.0', 'console_scripts', 'pyfr')())
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 115, in main
    args.process(args)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 267, in process_restart
    _process_common(args, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 233, in _process_common
    solver = get_solver(backend, rallocs, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/__init__.py", line 16, in get_solver
    return get_integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/__init__.py", line 36, in get_integrator
    return integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/controllers.py", line 8, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/steppers.py", line 16, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/base.py", line 16, in __init__
    self.pseudointegrator = get_pseudo_integrator(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/__init__.py", line 58, in get_pseudo_integrator
    return DualMultiPIntegrator(backend, systemcls, rallocs, mesh,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/multip.py", line 121, in __init__
    self.pintgs[l] = lpsint(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/pseudocontrollers.py", line 11, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/base.py", line 51, in __init__
    self.system = systemcls(backend, rallocs, mesh, initsoln,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 66, in __init__
    self._gen_kernels(nregs, eles, int_inters, mpi_inters, bc_inters)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 186, in _gen_kernels
    kern = kgetter(i)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/baseadvecdiff/elements.py", line 139, in <lambda>
    self.kernels['shocksensor'] = lambda uin: self._be.kernel(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/backend.py", line 158, in kernel
    return kern(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 152, in kernel_meth
    src, ndim, argn, argt = self._render_kernel(name, mod, extrns,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/util.py", line 40, in newmeth
    res = cache[key] = meth(self, *args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 64, in _render_kernel
    src = tpl.render(**tplargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/template.py", line 36, in render
    return super().render(*args, **self.dfltargs, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/template.py", line 439, in render
    return runtime._render(self, self.callable_, args, data)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 874, in _render
    _render_context(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 916, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 943, in _exec_template
    callable_(context, *args, **kwargs)
  File "memory:0x7f13fa93d1f0", line 39, in render_body
  File "memory:0x7f13fa942ee0", line 42, in render_body
ZeroDivisionError: float division by zero
ble_(context, *args, **kwargs)
  File "memory:0x7f78f25d5430", line 39, in render_body
  File "memory:0x7f783e9ae130", line 42, in render_body
ZeroDivisionError: float division by zero
[sk-ubuntu:24764] 2 more processes have sent help message help-mpi-api.txt / mpi-abort
[sk-ubuntu:24764] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages
(pyfr14) sk@sk-ubuntu:~/python3.9/pyfr14/airfoil/ex/sample3_shock/p4$ mpirun -np 4 pyfr restart -b cuda -p tri_sample_par4.pyfrm  0.0800.pyfrs triangular_aoa6.ini
Traceback (most recent call last):
  File "/home/sk/python3.9/pyfr14/bin/pyfr", line 33, in <module>
    sys.exit(load_entry_point('pyfr==1.14.0', 'console_scripts', 'pyfr')())
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 115, in main
    args.process(args)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 267, in process_restart
    _process_common(args, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/__main__.py", line 233, in _process_common
    solver = get_solver(backend, rallocs, mesh, soln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/__init__.py", line 16, in get_solver
    return get_integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/__init__.py", line 36, in get_integrator
    return integrator(backend, systemcls, rallocs, mesh, initsoln, cfg)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/controllers.py", line 8, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/steppers.py", line 16, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/phys/base.py", line 16, in __init__
    self.pseudointegrator = get_pseudo_integrator(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/__init__.py", line 58, in get_pseudo_integrator
    return DualMultiPIntegrator(backend, systemcls, rallocs, mesh,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/multip.py", line 121, in __init__
    self.pintgs[l] = lpsint(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/pseudocontrollers.py", line 11, in __init__
    super().__init__(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/integrators/dual/pseudo/base.py", line 51, in __init__
    self.system = systemcls(backend, rallocs, mesh, initsoln,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 66, in __init__
    self._gen_kernels(nregs, eles, int_inters, mpi_inters, bc_inters)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/base/system.py", line 186, in _gen_kernels
    kern = kgetter(i)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/solvers/baseadvecdiff/elements.py", line 139, in <lambda>
    self.kernels['shocksensor'] = lambda uin: self._be.kernel(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/backend.py", line 158, in kernel
    return kern(*args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 152, in kernel_meth
    src, ndim, argn, argt = self._render_kernel(name, mod, extrns,
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/util.py", line 40, in newmeth
    res = cache[key] = meth(self, *args, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/backends/base/kernels.py", line 64, in _render_kernel
    src = tpl.render(**tplargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/pyfr/template.py", line 36, in render
    return super().render(*args, **self.dfltargs, **kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/template.py", line 439, in render
    return runtime._render(self, self.callable_, args, data)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 874, in _render
    _render_context(
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 916, in _render_context
    _exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
  File "/home/sk/python3.9/pyfr14/lib/python3.9/site-packages/mako/runtime.py", line 943, in _exec_template
    callable_(context, *args, **kwargs)
  File "memory:0x7f8b5a15cee0", line 39, in render_body
  File "memory:0x7f8b5a15e070", line 42, in render_body
ZeroDivisionError: float division by zero
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------

[backend]
precision = double
rank-allocator = linear

[backend-cuda]
device-id = local-rank ;round-robin
;mpi-type = cuda-aware ;standard


[constants]
gamma = 1.2941
Pr = 0.72

;Mach=0.2 ; v=47.0692
Uin = 164.7421 ;m/s
Vin = 0.0
w=0.0

Pc = 44.04192 ;pa
rhoc=1.0290e-3 ;kg/m^3

;Re = 15000
mu = 0.00001370e-5
cpTref =230400 ;j~ * K
cpTs = 187359

[solver]
system = navier-stokes ;compressible n-s
order = 4 ;order of polynomial solution basis
;anti-alias = surf-flux
viscosity-correction = sutherland ;none
shock-capturing = artificial-viscosity ;none

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

[solver-time-integrator]
formulation = dual
scheme = backward-euler ;sdirk33 ;sdirk34
pseudo-scheme = euler ;
tstart = 0.0
tend =0.16
dt =5e-7 ;0.00005
pseudo-dt = 1e-8 ;0.000002
controller = none
pseudo-niters-min = 1
pseudo-niters-max = 20
pseudo-resid-norm = l2 ;uniform ;l2
pseudo-resid-tol = 1e-5 ;1e-8 ;
;pseudo-resid-tol-p = 1.0 ;;;;;;
pseudo-controller = none  ;local-pi ;
;atol = 1e-6 ;1e-3
;safety-fact = 0.9
;min-fact = 0.99 ;0.3
;max-fact = 1.005 ;2.5
;pseudo-dt-max-mult = 2.5

;[solver-time-integrator]
;formulation = std
;scheme = rk34 ;euler
;tstart = 0.0
;tend =0.25
;dt = 0.001 ;1e-7 ;0.00001 ;0.00005
;controller=  pi ;none
;atol = 1e-3 ;1e-6
;rtol = 1e-3 ;1e-6
;errest-norm = l2
;safety-fact = 0.9
;min-fact = 0.3
;max-fact = 2.5
;dt-max=0.001



[solver-dual-time-integrator-multip]
pseudo-dt-fact = 2.3
;cycle = [(1, 1)]
;;cycle = [(2, 1), (1, 1), (0, 2), (1, 1), (2, 1)]
;;cycle = [(3, 1), (2, 1), (1, 1), (0, 2), (1, 1), (2, 1), (3, 3)]
;;cycle = [(3, 1), (2, 2), (1, 4), (0, 8), (1, 4), (2, 2), (3, 1)]
;cycle = [(4, 1), (3, 1), (2, 1), (1, 1), (0, 5), (1, 2), (2, 2), (3, 2), (4, 4)] ;working p4
cycle = [(4, 1), (3, 1), (2, 1), (1, 1), (0, 10), (1, 2), (2, 2), (3, 2), (4, 4)] ;working p4

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


[soln-plugin-sampler-1]
nsteps=10
samp-pts = [(-0.85,0.05,0)]
format = primitive
file = point-data_1.csv
header = true

[soln-plugin-sampler-2]
nsteps=10
samp-pts = [(-0.3,0.06,0)]
format = primitive
file = point-data_2.csv
header = true

[soln-plugin-sampler-3]
nsteps=10
samp-pts = [(0.15,0.03,0)]
format = primitive
file = point-data_3.csv
header = true

[soln-plugin-sampler-4]
nsteps=10
samp-pts = [(-0.85,0.05,0)]
format = conservative
file = point-data_4.csv
header = true

[soln-plugin-sampler-5]
nsteps=10
samp-pts = [(-0.3,0.06,0)]
format = conservative
file = point-data_5.csv
header = true

[soln-plugin-sampler-6]
nsteps=10
samp-pts = [(0.15,0.03,0)]
format = conservative
file = point-data_6.csv
header = true

[solver-interfaces-line]
flux-pts = gauss-legendre
quad-deg = 11
quad-pts = gauss-legendre

[solver-interfaces-tri]
flux-pts = williams-shunn
quad-deg = 11
quad-pts = williams-shunn

[solver-interfaces-quad]
flux-pts = gauss-legendre
quad-deg = 11
quad-pts = gauss-legendre

[solver-elements-tri]
soln-pts = williams-shunn

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

[solver-elements-hex]
soln-pts = gauss-legendre
quad-deg = 11
quad-pts = gauss-legendre

[solver-elements-tet]
soln-pts = shunn-ham
quad-deg = 11
quad-pts = shunn-ham

[solver-elements-pri]
soln-pts = williams-shunn~gauss-legendre
quad-deg = 11
quad-pts = williams-shunn~gauss-legendre

[solver-elements-pyr]
soln-pts = gauss-legendre
quad-deg = 11
quad-pts = witherden-vincent



[soln-plugin-writer]
dt-out = 0.0001
basedir = .
basename = {t:.4f}

[soln-plugin-nancheck]
nsteps = 1


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

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

[soln-plugin-fluidforce-upper]
nsteps = 10
file = upper_forces.csv
header = true
morigin = (0.0, 0.0, 0.0)

[soln-plugin-fluidforce-lower]
nsteps = 10
file = lower_forces.csv
header = true
morigin = (0.0, 0.0, 0.0)


[soln-bcs-inlet]
type = char-riem-inv
rho = rhoc
u = Uin
v = Vin
w = 0
p = Pc


[soln-bcs-outlet]
type = char-riem-inv
rho = rhoc
u = Uin
v = Vin
w = 0
p = Pc


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

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

[soln-ics]
rho = rhoc
u = Uin
v = Vin
w = 0
p = Pc








So running dual time stepping is probably not the best idea for this case, at least until you have a better idea of the time scales involved. Instead maybe try a standard method such as rk34 with globally adaptive time stepping.

Also this case, under some of the conditions you mention, will have a shock on the suction surface, as a result you will definitely need shock-capturing. The current shockcapturing, artificial-viscosity, isn’t very good frankly. Instead what you might like to try doing is pull the most recent commit of @tdzanic’s entropy filtering PR, this is a much more capable shock capturing method. If you don’t like the sound of that you can wait until it becomes a mainline feature in the near future.

A post was split to a new topic: Configuring Sutherland’s Law