validation of open source code bem++ for simulation of acoustic … · microsoft powerpoint -...
TRANSCRIPT
Validation of open source code BEM++ for simulation
of acoustic problems
P. Lukashin (ISP RAS, Russia), S. Strijhak, (ISP RAS, Russia), G. Shcheglov(BMSTU, Russia)
Jet’s engines of Launch abort vehicle
A rotating 7-bladed propeller on submarine Compressor stator test rig
Car’s outside rear-view mirror
Aeroacoustic sources
2
Sound‐pressure levels
C. Wagner, T. Hüttl, and P. Sagaut, eds. Large‐Eddy Simulation for Acoustics.Cambridge Univ. Press, New York, 2007. 3
Definition of acoustic’s problem and boundary conditions
4
The main approaches for numerical modelling in aeroacoustics
Approach Numerical method Accuracy Required resources / Applicability
Solution of «full» Navier – Stokes
equations
Direct Numerical Simulation (DNS) Fine Very much / Impossible
Large Eddy Simulation (LES)
Good Very much / Impossible
Unsteady Reynolds-Averaged Navier –Stokes (URANS)
Low Few / Possible but not reliable
CFD-CAACFD-ALECFD-APE
Linearized Euler Equation (LEE) or Acoustic Perturbation Equation (APE)
Good Needs many resources due to grid resolution for LES and acoustics.Applicable for small-scale cases.
CFDSurface Integral
Analytic Methods (Lighthill, Kirchhoff,
FW-H)
Hybrid methods(LES/RANS) and analytical methods for
far-field modelling
Sufficient Can not used in cases withreflection of acoustic waves
somewhere in considered region
CFD-BEM Connection of the CFD solution (LES/RANS) in the near-field and the
solution of Helmholtz equation by BEM (Boundary Element Method) in the far-
field
Good Good for large cases to avoid big grids
5
The BEM++ Library
• Core library in C++, complete interface via
Python
• Support for Laplace, Helmholtz, Maxwell
• Shared-Memory parallelization
• H-matrix assembly
• Open source license
• Mac and Linux supported6
Introduction to BEM++
BEM++ project: www.bempp.orgUniversity College London
7
Classification of acoustic problems2
22 2
1 0, ( , )uu u f x tc t
( , ) ( ) i tu x t U x e
2 2 0, /U k U k c wavenumber
U i U hn
0 1
0h
0h
Boundary conditions on S:
(Neumann BCs) (Dirichlet BCs)
1) Radiation problem:2) Scattering problem:
Acoustic wave equation:
Helmholtz equation:
8
Formulation of the test problem
2 2
0
0
0
lim [ ] 0
S I
I ikxa
SS
R
U k UU i Un
U U U
U U e
UR ikUR
| 0SU
| 0SUn
0, , ,k U R a
Source data:
(Neumann problem)
(Dirichlet problem)
Scattering from the unit sphere of plane wave:
9
BEM problem
*1( ) ( ) |2
II
n SUI T i S U i Un
*1( ( )) ( ) |
2
II
SUH i I K U i Un
* *nU and U
[ ]( ) ( , ) ( ) ( )S
S U x G x y U y dS у ( , )[ ]( ) ( ) ( )( )S
G x yK U x U y dS уn y
( , )[ ]( ) ( ) ( )( )S
G x yT U x U y dS уn x
( , )[ ]( ) ( ) ( )
( ) ( )S
G x yH U x U y dS уn x n y
[ ]( ) ( ) ( )S
I U x U x dS x
Boundary Integral equation (BIE) for
Neumann problem:Dirichlet problem:
are surface potentials, which need to be calculated.
10
BEM solution
*'[ ]InU U S U
*'[ ]IU U K U
'[ ]( ) : ( , ) ( ) ( )S
S U x G x y U y dS у
( , )'[ ]( ) : ( ) ( )( )S
G x yK U x U y dS уn y
| |
( , )4 | |
ik x yeG x yx y
Integral equation to derive the solution for
Neumann problem:Dirichlet problem:
Single-layer potential operator:
Double-layer potential operator:
Green’s function:
11
Discretization of the BIE and solving
1,( )
0,k
kk
xx
x
1,( )
0,j i
i jx
i j
kix
Triangulatedsurface with elementsand nodes
Piecewise constant functionsfor Neumann data:
Continuous piecewise linear functions for
Dirichlet data:
Solving the system by GMRES or CG
12
Interface basics of BEM++
Implementation in BEM++Geometry grid = bempp.api.shapes.regular_sphere (n)
Space function space = bempp.api.function_space(grid, "P", 1)BCs gr_fun = bempp.api.GridFunction(space, fun=fun)
Identity operator
I = bempp.api.operators.boundary.sparse.identity(space, space, space)
Boundary Integral
Operators
K = bempp.api.operators.boundary.helmholtz.double_layer (space, space, space, k)H = bempp.api.operators.boundary.helmholtz.hypersingular (space, space, space, k)
Potential Operators
S = bempp.api.operators.potential.helmholtz.single_layer(space, points, k)K = bempp.api.operators.potential.helmholtz.double_layer(space, points, k)
Solving the System
func,info=bempp.api.linalg.gmres (-H+1j *k*(0.5*I-K))=gr_fun)
Deriving the results
res = np.absolute(u_inc + K.evaluate(func)+1j*k*S.evaluate(b*func))
13
Analytical Solution
I SU U U
00
(2 1) ( ) (cos )n
I ikxa ll l
l
U U e l i j kr P
0( ) (cos )
nS
l l ll
U Ah kr P
0,I SU U at r ar r
0,I SU U at r a
0( )(2 1)( )
l ll
l
j kaA U l ih ka
1 10
1 1
( ) ( 1) ( )(2 1)( ) ( 1) ( )
l l ll
l l
lj ka l j kaA U l ilh ka l h ka
lj
lP
lh
Dirichlet problem:
Spherical Bessel functionLegendre functionSpherical Hankel function
Neumann problem:
14
Compare the results for Dirichlet problem
010, 1, 1, {1;0;0}k U R a
OXY planeAnalytical solutionBEM solution
15
Compare the results for Neumann problem
OXY plane
010, 1, 1, {1;0;0}k U R a
Analytical solutionBEM solution
16
Polar plots
OXY plane
010, 1, 1, {1;0;0}k U R a
17
Pressure range for a rigid sphere
Point APoint B
A
B
18
Simulation for prototype of Launch Vehicle
| 0SUn
100f Hz
{1;1; 1}a
Mesh size: 56500 elements
Pressure plotCPU Time
19
Conclusions
•Successful validation of the BEM++ open source library on test case «Sphere»•The pressure error is less than 5 % compared to analytical solution•Shared memory technology restricts efficiency of solver: sufficiently time of computation for industrials problems with large meshes is possible for low frequencies ( 100 Hz)
20