Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

Boundary Element Methods for Engineers:

Part I: Potential Problems

Constant Boundary Element Program for Potential Problems

&

YEEND(IEEND)=YFIRST+(YLAST-YFIRST)*(1.-RATSEG**M)
/(1.-RATSEG**NELSEG)

END IF

END DO Each element in turn

END IF

!
!

GENERATE ELEMENT DATA FOR A SEGMENT IN THE FORM OF A CIRCULAR ARC.


IF(RSEG /= 0.) THEN

!
!

LOCATE THE CENTRE OF THE ARC.


XMID=(XFIRST+XLAST)/2.
YMID=(YFIRST+YLAST)/2.

ALSEG=SQRT((XLAST-XFIRST)**2+(YLAST-YFIRST)**2)
ALPERP2=RSEG**2-(ALSEG/2.)**2

IF(ABS(ALPERP2) < 1.E-6*RSEG**2) ALPERP2=0.


IF(ALPERP2 < -1.E-6*RSEG**2) THEN
64

WRITE(6,64) ISEG

&

FORMAT(/ "DATA ERROR FOR SEGMENT NUMBER",I6,


STOP

/ "NOT POSSIBLE TO CREATE A CIRCULAR ARC")

END IF

ALPERP=SQRT(ALPERP2)

UVFLX=(XLAST-XFIRST)/ALSEG
UVFLY=(YLAST-YFIRST)/ALSEG
FACT=1.

IF(RSEG < 0.) FACT=-1.

XCENT=XMID-ALPERP*UVFLY*FACT
!
!

!
!

YCENT=YMID+ALPERP*UVFLX*FACT
FIND THE ANGLE SUBTENDED THERE BY THE SEGMENT.

IF(ALPERP /= 0.) ANGSEG=2.*ATAN(ALSEG*0.5/ALPERP)


IF(ALPERP == 0.) ANGSEG=PI

DEFINE THE ELEMENT END POINT COORDINATES ON THE SEGMENT.


ANGFIR=ATAN2(YFIRST-YCENT,XFIRST-XCENT)
Each element in turn: DO M=1,NELSEG
IEEND=IEEND+1

ISEGEND(IEEND)=ISEG

IF(RATSEG == 1.) ANG=ANGSEG*FLOAT(M)/FLOAT(NELSEG)

IF(RATSEG /= 1.) ANG=ANGSEG*(1.-RATSEG**M)/(1.-RATSEG**NELSEG)

80
Download free eBooks at bookboon.com

You might also like