1. Trang chủ
  2. » Công Nghệ Thông Tin

The boundary element method with programming for engineers and scientists - phần 3 doc

50 272 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 50
Dung lượng 655,4 KB

Nội dung

MATERIAL MODELLING AND FUNDAMENTAL SOLUTIONS 91 Figure 4.14 3-D Kelvin solution: variation of displacements in y-direction due to P x = 1.0 for Poissons ratio of 0.0 (left figure) and 0.5 (right figure) Figure 4.15 3-D Kelvin solution: variation of T xx for n ={1,0,0}. This is equivalent to V x y U xy (P,Q) P x = 1.0 x Q = 0.0 Q = 0.5 x y T xx (P,Q) P x = 1.0 92 The Boundary Element Method with Programming FUNCTION UK(dxr,r,E,ny,Cdim) ! ! ! FUNDAMENTAL SOLUTION FOR DISPLACEMENTS ! isotropic material (Kelvin solution) ! ! IMPLICIT NONE REAL,INTENT(IN) :: dxr(:) ! r ,x ,r ,y ,r ,z REAL,INTENT(IN) :: r ! r REAL,INTENT(IN) :: E ! Young's modulus REAL,INTENT(IN) :: ny ! eff. Poisson's ratio INTEGER,INTENT(IN):: Cdim ! Cartesian dimension REAL:: UK(Cdim,Cdim) ! Function returns array REAL:: G,c,c1,onr,clog,conr ! Temps G= E/(2.0*(1+ny)) c1= 3.0 - 4.0*ny SELECT CASE (Cdim) CASE (2) ! Plane strain solution c= 1.0/(8.0*Pi*G*(1.0 - ny)) clog= -c1*LOG(r) UK(1,1)= c*(clog + dxr(1)*dxr(1)) UK(2,2)= c*(clog + dxr(2)*dxr(2)) UK(1,2)= c*dxr(1)*dxr(2) UK(2,1)= UK(1,2) CASE(3) ! Three-dimensional solution c= 1.0/(16.0*Pi*G*(1.0 - ny)) conr=c/r UK(1,1)= conr*(c1 + dxr(1)*dxr(1)) UK(2,2)= conr*(c1 + dxr(2)*dxr(2)) UK(3,3)= conr*(c1 + dxr(3)*dxr(3)) UK(1,2)= conr*dxr(1)*dxr(2) UK(1,3)= conr*dxr(1)*dxr(3) UK(2,1)= UK(1,2) UK(2,3)= conr*dxr(2)*dxr(3) UK(3,1)= UK(1,3) UK(3,2)= UK(2,3) CASE DEFAULT END SELECT RETURN END FUNCTION UK Function TK requires one more parameter to be specified: the vector normal to the boundary (normal vector). MATERIAL MODELLING AND FUNDAMENTAL SOLUTIONS 93 FUNCTION TK(dxr,r,Vnor,ny,Cdim) ! ! FUNDAMENTAL SOLUTION FOR TRACTIONS ! isotropic material (Kelvin solution) ! IMPLICIT NONE REAL,INTENT(IN) :: dxr(:) ! r ,x ,r ,y ,r ,z REAL,INTENT(IN) :: r ! r REAL,INTENT(IN) :: Vnor(:) ! normal vector REAL,INTENT(IN) :: ny ! eff. Poisson's ratio INTEGER,INTENT(IN) :: Cdim ! Cartesian dimension REAL :: TK(Cdim,Cdim) ! Function returns array REAL :: c2,c3,costh,Conr ! Temps c3= 1.0 - 2.0*ny Costh= DOT_PRODUCT (Vnor,dxr) SELECT CASE (Cdim) CASE (2) ! plane strain c2= 1.0/(4.0*Pi*(1.0 - ny)) Conr= c2/r TK(1,1)= -(Conr*(C3 + 2.0*dxr(1)*dxr(1))*Costh) TK(2,2)= -(Conr*(C3 + 2.0*dxr(2)*dxr(2))*Costh) DO i=1,2 DO j=1,3 IF(i /= j) THEN TK(i,j)= -(Conr*(2.0*dxr(i)*dxr(j)*Costh & - c3*(Vnor(j)*dxr(i) - Vnor(i)*dxr(j)))) END IF END DO END DO CASE(3) ! Three-dimensional c2= 1.0/(8.0*Pi*(1.0 - ny)) Conr= c2/r**2 TK(1,1)= -Conr*(C3 + 3.0*dxr(1)*dxr(1))*Costh TK(2,2)= -Conr*(C3 + 3.0*dxr(2)*dxr(2))*Costh TK(3,3)= -Conr*(C3 + 3.0*dxr(3)*dxr(3))*Costh DO i=1,3 DO j=1,3 IF(i /= j) THEN TK(i,j)= -Conr*(3.0*dxr(i)*dxr(j)*Costh & - c3*(Vnor(j)*dxr(i) - Vnor(i)*dxr(j))) END IF END DO END DO CASE DEFAULT END SELECT END FUNCTION TK 94 The Boundary Element Method with Programming Fundamental solutions for anisotropic material exist, but are rather complicated 3 . Further details are discussed in Chapter 18. 4.4. CONCLUSIONS In this chapter we have dealt with the description of the material response in a mathematical way and have derived solutions for the equations governing the problem for simple loading. The solutions are for point sources, or loads, in an infinite domain. It has been shown that the implementation of these fundamental solutions into a F90 function is fairly straightforward. A particular advantage of the new facilities in F90 is that two-and three-dimensional solutions can be implemented in one FUNCTION, with the parameter Cdim determining the dimensionality of the result. The Kelvin fundamental solution is not the only one which may be used for a boundary element analysis. Indeed, any solution may be used, including ones which satisfy some boundary conditions explicitly. For example, we may include the zero boundary traction conditions at the ground surface. Green’s functions for a point load in a semi-infinite domain have been worked out, for example, by Melan in two dimensions 4 and Mindlin in three dimensions 5 . Also Bonnet 1 presents a solution for bonded half- spaces where two different materials may be considered implicitly in the solution. The fundamental solutions just derived will form the basis for the methods discussed in the next chapter. 4.5. REFERENCES 1. Bonnet, M, (1995) Boundary Integral Equation Methods for Solids and Fluids. Wiley, Chichester. 2. Sokolnikoff I.(1956) Mathematical Theory of Elesticity, McGraw-Hill, New York. 3. Tonon F, Pan E. and Amadei B. (2000) Green's functions and BEM formulations for 3-D anisotropic media. Computers and Structures, 79 (5):469-482. 4. Melan, E. (1932) Der Spannungszustand der durch eine Einzelkraft im Inneren beanspruchten Halbscheibe. Z. Angew. Math. & Mech, 12, 343-346. 5. Mindlin R.D. (1936) Force at a point in the interior of a semi-infinite solid. Physics 7: 195-202. 5 Boundary Integral Equations There is nothing more practical than a good theory I. Kant 5.1 INTRODUCTION As explained previously, the basic idea of the boundary element method comes from Trefftz 1 , who suggested that in contrast to the method of Ritz, only functions satisfying the differential equations exactly should be used to approximate the solution inside the domain. If we use these functions it means, of course, that we only need to approximate the actual boundary conditions. This approach, therefore, has some considerable advantages: x The solutions obtained inside the domain satisfy the differential equations exactly, approximations (or errors) only occur due to the fact that boundary conditions are only satisfied approximately. x Since functions are defined globally, there is no need to subdivide the domain into elements. x The solutions also satisfy conditions at infinity, therefore, there is no problem dealing with infinite domains, where the FEM has to use mesh truncation or approximate infinite elements. The disadvantage is that we need solutions of differential equations to be as simple as possible, if we want to reduce computation time. The most suitable solutions are ones 96 The Boundary Element Method with Programming involving concentrated sources or loads in infinite domains. As we know from the previous chapter, these solutions also have some rather nasty properties, such as singularities. The integration of these functions will require special consideration. The original method proposed by Trefftz is not suitable for writing general purpose programs as its accuracy is not satisfactory and, as will be seen later, convergence of the method cannot be assured. However, because of the inherent simplicity of the method, it serves well to explain some of the basic principles involved. Therefore, we will first introduce this method on a simple example in heat flow. However, we will actually develop our programs using the direct method, which gets its name from the fact that no fictitious source or forces need to be computed, as in the Trefftz method, but that unknowns at the boundary are obtained directly. In the development of the integral equations we will use the theorem of Betti, which is better known to engineers than the Greens theorem. 5.2 TREFFTZ METHOD To introduce the Trefftz method let us look at a simple two-dimensional example in heat flow. Consider an infinite homogeneous domain having conductivity k, where heat (q 0 ) flows only in the vertical (y) direction (Figure 5.1a). Figure 5.1 Heat flow in an infinite domain, case (a) and (b) x y x y  I n (b)(a) 0 q 0 q 0 q ()a t ()b t BOUNDARY INTEGRAL EQUATIONS 97 According to the Fourier law introduced in Chapter 4 we can write (5.1) Solving the differential equations for u, the temperature at a point Q with coordinates x,y is obtained as (5.2) If we assume the temperature at the centre of the circle to be zero, then C= 0. We now place a cylindrical isolator in the flow and compute how the flow pattern and temperature distribution changes. The isolator prevents flow to occur in a direction perpendicular to its boundary, which is computed by (5.3) Where n {n x , n y }is the vector normal to the boundary of the isolator (outward normal). Note that the positive direction of this vector is pointing from the infinite domain into the isolator. For the solution (5.2) just obtained, we find that this condition is not satisfied, because the flow in the direction normal to the isolator boundary (marked with a dotted line in Figure 5.1a) is computed as: (5.4) If we want to find out how the isolator changes the flow/temperature distribution, then we can think of the problem as divided into two parts: the first being the trivial one, whose solution we just obtained, the second being one where the solution is obtained for the following boundary condition: (5.5) If the two solutions for the flow normal to the boundary of the isolator are added then: (5.6) i.e. the boundary condition that no flow occurs normal to the isolator is satisfied. The final solution for the temperature is therefore (5.7) 0 0 and q uu x yk ww  ww  Cy k q Qu a  0 )( ()0 xy uuu tk kn n xy www    wwwn () 00 sin a y tnqq I  () () 0 sin ba ttq I     QuQuQu )b()a(  () () 0 ba tt t  98 The Boundary Element Method with Programming We now solve the boundary value problem (b) by the Trefftz method. To apply the Trefftz method, we quite arbitrarily select N points on the boundary of the isolator, where we wish to satisfy the boundary conditions, equation (5.5) and another set of points, where we apply fictitious sources. The reason these are called fictitious is that they are not actually present, but can be thought of as parameters of the global approximation functions. We have to be careful with the location of these points and this will be the major drawback of the method. The source points must be placed in such a way, that they do not influence the results. In our case, the best place is inside the isolator. Also, we must not place points P too close to the boundary points Q, because, as we know, when P approaches Q, the fundamental solutions become singular. In Figure 5.2 we show an example of the choice of locations for load points P i and boundary points Q i . We place points Q at quarter points on the boundary of the isolator, with radius R Q and points P at a circle, with radius R P inside the isolator. Figure 5.2 Points P for fictitious loads and Q, where boundary conditions are to be satisfied In the Trefftz method, we attempt to satisfy the given boundary conditions, by adjusting the magnitude of the fictitious sources F i applied at P i . Noting that the fundamental solutions for the flow in direction n, which we derived in the last chapter, is T(P,Q), the boundary condition at point Q 1 can be satisfied by (5.8) Here T(P i ,Q 1 ) is the flow in direction n(Q 1 ) at point Q 1 due to a source at P i . This is also sometimes referred to as an influence coefficient. We can now write a similar equation for each boundary point Q i , a total of 8 equations: (5.9)   8 () 11i 1 T, F b i i tQ PQ ¦     88 () () 112 2 11 T, F ; T, Fetc. bb ii i i ii t Q PQ t Q PQ ¦¦ x y P 1 P 8 P 7 P 3 P 2 P 6 P 4 P 5 Q 1 Q 8 Q 7 Q 3 Q 2 Q 4 Q 6 Q 5 R Q R P BOUNDARY INTEGRAL EQUATIONS 99 We obtain a system of simultaneous equations, which we can solve for unknown fictitious sources F i . Obviously, the number of fictitious sources depends on the number of equations we can write and hence, on the number of boundary points Q i . It is convenient, therefore, to have the same number of source points as we have field points. Once we have solved the system of simultaneous equations and calculated the fictitious sources F i, , then the temperature at any point Q on the boundary of the isolator and in the domain (but outside the isolator) is given by (5.10) The flow at a point Q in x and y-directions may be obtained by (5.11) 5.3 PROGRAM 5.1: FLOW AROUND CYLINDER, TREFFTZ METHOD The program shown here allows us to numerically solve the problem of flow around a cylinder, with a variable number of source points and this allows the reader to get a better understanding of the Trefftz method and its limitations. We activate the Laplace_lib, which contains the fundamental solutions of the Laplace equation governing our problem and the Utility_lib containing the subroutine for solving equations by the USE statement. Next, we read some information about the problem, such as heat inflow, conductivity, number of source/boundary points and radius of the cylinder. We finally, quite arbitrarily, specify that the source points are located on a circle with radius Rp, which has to be smaller than the radius of the cylinder. We can later do numerical experiments on the effect of distance between source and boundary points on accuracy of results. Since the size of the arrays for storing the equation system is dependent on the number of source points specified, we allocate them at run time. Next, we loop over all boundary points (DO loop Field_points) and all source points (DO loop Source_points) to generate the matrix of influence coefficients and the right hand side. The points Q and P are assumed to be equally distributed over the circle. The       ¦  8 1 i )( )()( F,QPUQu where QuQuQu i b ba     ¦ ¦ w w  w w  w w  w w   8 1 )( )( 8 1 )( )( )( 0 )( F , F , ; i i b b y i i b b x b yy b xx y QPU k y Qu kq x QPU k x Qu kq where qqqqq 100 The Boundary Element Method with Programming system of equations is solved next with utility program SOLVE. The values of temperature are computed at boundary points and interior points, the coordinates of which are specified by the input. Both involve a summation of influences (i.e., fundamental solutions multiplied with the fictitious source intensities). PROGRAM Trefftz ! ! Program to compute the heat flow past a cylindrical isolator ! in a 2-D infinite domain using the Trefftz method ! USE Laplace_lib ; USE Utility_lib IMPLICIT NONE ! declare all variables REAL :: q ! inflow/outflow REAL :: k ! Thermal conductivity INTEGER :: npnts ! Number of points P,Q REAL :: rq ! radius of isolator REAL :: rp ! radius of source points REAL(KIND=8),ALLOCATABLE :: Lhs(:,:) ! left hand side REAL(KIND=8),ALLOCATABLE :: Rhs(:) ! right hand side REAL(KIND=8),ALLOCATABLE :: F(:) ! fictitious sources REAL :: dxr(2) ! r ,x , r ,y REAL :: vnorm(2) ! normal vector REAL :: Delth,Thetq,Thetp,xq,yq,xp,yp,xi,yi,r,uq INTEGER :: npq,npp,ninpts,nin OPEN(UNIT=10,FILE='INPUT.DAT',STATUS='OLD',ACTION='READ') OPEN(UNIT=11,FILE='OUTPUT.DAT',STATUS='UNKNOWN',ACTION='WRITE') READ(10,*) q,k,npnts,rq,rp WRITE(11,*) ' Program 2: heat flow past a cylinder Trefftz method' WRITE(11,*) ' Heat inflow/outflow= ',q WRITE(11,*) ' Thermal conductivity= ',k WRITE(11,*) ' Number of Points P,Q= ',npnts WRITE(11,*) ' Radius of Isolator= ',rq WRITE(11,*) ' Radius of Sources = ',rp ALLOCATE (Lhs(npnts,npnts),Rhs(npnts),F(npnts)) ! Delth= 2*Pi/npnts ! increment in angle theta between points Thetq= Pi/2.0 ! angle theta to first field point Q1 Field_points: & DO npq= 1,npnts Rhs(npq)= q * SIN(Thetq) ! right hand side xq= rq*COS(Thetq) ! x-coordinate of field point yq= rq*SIN(Thetq) ! y-coordinate of field point vnorm(1)= -COS(Thetq) ! normal vector to Q vnorm(2)= -SIN(Thetq) Thetq= Thetq + Delth ! angle to next field point Q Thetp= Pi/2.0 ! angle to first source point P1 Source_points: & DO npp= 1,npnts xp= rp*COS(Thetp) ! x-coordinate of source point yp= rp*SIN(Thetp) ! y-coordinate of source point dxr(1)= xp-xq [...]... C*(ThetB-ThetA) dU= C1*(rB*SINThB*(LOG(rB )-1 )+ThetB*rB*COSThB & - rA*SINThA*(LOG(rA )-1 )-ThetA*rA*COSThA) 122 The Boundary Element Method with Programming dSx= C/k*(ThetB-ThetA) Fact= CosthB/CosthA IF(Fact > 0.0) THEN dSy= -C/k*LOG(Fact) ELSE dSy= 0 END IF dRx= -C/H*(costhB*SINThB - cosThA*sinThA) dRy= C/H*(costhB**2 - cosThA**2) up= up + dU*t0(ns) - dT*u(ns) qxp= -k*(dSx*t0(ns)-dRx*u(ns)) ! q-x' qyp= -k*(dSy*t0(ns)-dRy*u(ns))... input for an isolator of radius 1.0 with 32 points P and Q, where the source points P are situated along a circle with a radius 0.7 File INPUT.DAT 1.0 1.0 32 1.0 0.7 18 0 -5 0 -4 .5 0 -4 0 -3 .5 0 -3 0 -2 .5 0 -2 0 -1 .5 1 03 BOUNDARY INTEGRAL EQUATIONS 0 0 0 0 0 0 0 0 0 0 -1 1 1.5 2 2.5 3 3.5 4 4.5 5 File OUTPUT.DAT Program 2 : heat flow past a cylinder with Trefftz method Heat inflow/outflow= 1.00000 Thermal... Betti's theorem, displacements of load case 1 and tractions for load case 2 for computing W21 The theorem of Betti states that the work done by the load of case 1 along the displacements of case 2 must equal the work done by the loads of case 2 along the displacements of case 1 106 The Boundary Element Method with Programming If we assume that there are no body forces acting in the domain (these will... Figure 5 .3 Plot of error in computing the temperature versus the number of points P 104 The Boundary Element Method with Programming The error in the computation of the temperature at the top of the circular isolator (point Q1) is plotted in Figure 5 .3 It can be seen that very accurate results can be obtained with 24 elements 5.4 DIRECT METHOD As we have seen from the simple example, the Trefftz method. .. dS s u T dS s (5.21) 108 The Boundary Element Method with Programming We examine the integrals over s further For a smooth surface at P, using polar coordinates, as shown, we change the integration limits of the first integral to 0 and and substitute for the fundamental solution U Furthermore, as in the limit P will be coincident with Q, we can assume t(Q)=t(P) and u(Q)= u(P) Then we have t Q U P ,Q... segments, such as the ones used here for solving the 2-D heat flow problem are defined, where the known boundary condition and the unknown are assumed to be constant, then the integration can be carried out analytically For 3- D elasticity triangular elements with constant variation have been proposed, but the analytical evaluation of the integrals becomes rather involved However, even for the simple heat... x=0.000, y=1.000, T= -2 .026, q-x= 0.000, q-y= x=10.000 y=0.000, T= 0.000, q-x= 0.000, q-y= 0. 032 1.010 Direct method, Plot of error % 6,000 5,000 Error % 4,000 3, 000 2,000 1,000 0,000 8 16 24 Number of points Figure 5.14 Error in the temperature at segment 1 for different no of elements (points) 32 124 The Boundary Element Method with Programming 2 Heat flow qy 1,8 1,6 8 seg 16 seg 32 seg 48 seg 1,4... (5 .35 ) and u1 u u2 t1 , t2 t (5 .36 ) 1 P1 2 P2 n1 P8 8 y 7 P7 P3 x 3 4 P4 P6 P5 6 5 Figure 5.11 Discretisation into linear elements for problem of flow past cylinder If we consider the solution of the heat flow problem, which we solved by the Trefftz method, then we have a problem where flow {t}0 is specified at the boundary and temperatures are unknown (Figure 5.11) 114 The Boundary Element Method. .. practice, we will solve the integral equations numerically and attempt to either satisfy the boundary conditions at a limited number of points Q, or specify that some norm of the error in satisfaction of the boundary conditions is a minimum For a boundary value problem, either u or t is specified and the other is the unknown to be determined by solving the integral equations The boundary condition where... guaranteed for a general case as the number of points Q and P are increased 5.4.1 Theorem of Betti and integral equations An alternative to the Trefftz method is the direct method Here we use the well known Betti theorem, rather elegantly to get rid of the need to compute fictitious sources or forces We also abolish the need for an additional set of points, by placing the source points P to coincide with . 5 .3 Plot of error in computing the temperature versus the number of points P Trefftz method, Plot of error % -7 -6 -5 -4 -3 -2 -1 0 8162 432 Number of points Error % 104 The Boundary Element Method. INPUT.DAT 1.0 1.0 32 1.0 0.7 18 0. -5 . 0. -4 .5 0. -4 . 0. -3 .5 0. -3 . 0. -2 .5 0. -2 . 0. -1 .5 BOUNDARY INTEGRAL EQUATIONS 1 03 0. -1 . 0. 1. 0. 1.5 0. 2. 0. 2.5 0. 3. 0. 3. 5 0. 4. 0 CASE (3) ! Three-dimensional c2= 1.0/(8.0*Pi*(1.0 - ny)) Conr= c2/r**2 TK(1,1)= -Conr*(C3 + 3. 0*dxr(1)*dxr(1))*Costh TK(2,2)= -Conr*(C3 + 3. 0*dxr(2)*dxr(2))*Costh TK (3, 3)= -Conr*(C3 + 3. 0*dxr (3) *dxr (3) )*Costh

Ngày đăng: 13/08/2014, 08:21