ZalCG: Boeing 747
This example uses ZalCG in Inciter to compute the stationary flow field around a Boeing 747 commercial airliner.
The test case is configured with the cruise Mach number of 0.84 and an angle of attack of 3.06 degrees, which yields a transonic flow. Since the solution converges to steady state, the most efficient ways to compute this problem are to use implicit time marching or local time stepping [1] of which ZalCG implements the latter allowing taking larger time steps for larger cells.
Problem setup
The mesh, shown below, consists of 4,788,491 tetrahedra connecting 853,437 points. The initial conditions prescribe the Mach number of 0.84 and the velocity with an angle of attack of 3.06 degrees. At the outer surface of the domain characteristic far-field boundary conditions are applied. Symmetry (free-slip) conditions are applied on the airplane and symmetry surfaces.
Code revision to reproduce
To reproduce the results below, use code revision f5fb9d0 and the control file below.
Control file
-- vim: filetype=lua: print "Boeing 747" ttyi = 10 cfl = 0.5 solver = "zalcg" fctsys = { 1, 2, 3, 4, 5 } fctclip = true fctfreeze = 1.2e-5 stab2 = true stab2coef = 0.1 steady = true residual = 1.0e-10 rescomp = 1 part = "phg" mat = { spec_heat_ratio = 1.4 } rho = 1.225 -- density of air at STP, kg/m3 pre = 1.0e+5 -- N/m^2 mach = 0.84 -- free stream Mach number angle = 3.06 -- angle of attack -- free stream sound speed a = math.sqrt( mat.spec_heat_ratio * pre / rho ) ic = { density = rho, pressure = pre, velocity = { mach * a * math.cos(angle*math.pi/180.0), mach * a * math.sin(angle*math.pi/180.0), 0.0 } } bc_sym = { sideset = { 1 } } bc_far = { pressure = pre, density = rho, velocity = ic.velocity, sideset = { 2 } } fieldout = { iter = 10000, sideset = { 1 }, } diag = { iter = 10, format = "scientific", precision = 12 }
Run on 32 CPUs
./charmrun +p32 Main/inciter -i b747s.exo -c b747.q |& tee b747.out
Convergence to steady state
The figure below shows the convergence history of the L2-norms of the residuals of the conserved quantities.
Visualization
ParaView can be used for interactive visualization of the numerically computed 3D fields as
paraview out.e-s.0.32.0
Results on the airplane body and symmetry surfaces can be visualized by first stitching the partitioned surface output files into a single surface output file followed by invoking paraview on the stitched surface exo file:
Main/meshconv -i out-surf.1.e-s.0.32.% -o out-surf.1.exo paraview out-surf.1.exo
The Mach number distribution on the combined airplane and symmetry surface is depicted below.