You are on page 1of 24

ONİKİNCİ BÖLÜM

İKİ BOYUTLU PROBLEMLER İÇİN SONLU


ELEMANLAR AĞI OLUŞTURULMASI

1. GİRİŞ

Sonlu elemanlar metodunun temel prensibi,öncelikle bir elemana ait sistem özelliklerini
içeren denklemlerin çıkartılıp tüm sistemi temsil edecek şekilde eleman denklemlerini
birleştirerek sisteme ait lineer denklem takımının elde edilmesi olduğu daha önceki
bölümlerde anlatılmıştı. Yöntemde genel olarak kullanılan üç temel basamak vardır.
Bunlar; hazırlık işlemleri (preprosesing),çözüm (prosesing) ve değerlendirme işlemleri
(postprosesing) olarak sıralanabilir. Hazırlık işlemleri,düğüm koordinatları,elemanların
birbirleri arasındaki süreklilik,sınır şartları yükler ve malzeme bilgileri ile ilgili dataların
hazırlanması safhasıdır. Çözüm safhası, problemin özelliğine göre gerekli hesaplamaların
yapılarak çözümlerin elde edilmesini,değerlendirme safhası ise, elde edilen alan
değişkenlerinin grafik çizimi (gerilme,sıcaklık hız dağılımı vs),deforme şekillerin elde
edilmesi,değişkenlerin çözüm bölgesindeki dağılımlarının görsel olarak elde edilmesini
içermektedir.

Ön ve son işlemler sonlu elemanlar metodunda önemli bir ağırlığı vardır. Bu nedenle
özellikle sonlu eleman ağ bilgilerinin (düğüm koordinatları ve eleman sürekliliği) otomatik
olarak hazırlanması büyük öneme sahiptir. Çoğu zaman problemin doğru ve yeterince
hassas çözümünün elde edilmesi için bir çok değişik sonlu eleman ağının denenmesi
gerekebilmektedir. Sonlu elemanlara ayırma işlemi ve problemin giriş bilgilerinin
hazırlanması eleman sayısı arttıkça hem zaman alıcı olmakta hem de hata yapma oranını
artırmaktadır. Bu yüzden elemanlara bölme işleminin bilgisayarla yapılması için yöntemler
geliştirilmiştir. Sonlu elemanlar metodu 1920’li yıllardan itibaren kullanılmaya başlanmış
olmakla beraber bilgisayar teknolojisindeki gelişmelerle ancak 1960’lı yıllardan itibaren
geniş bir kullanım alanı bulabilmiştir. Otomatik ağ oluşturma yöntemleri de bunlara
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

duyulan ihtiyaçla beraber 1970’lerden itibaren geliştirilmeye başlanmıştır. Yapılan


çalışmalar iki boyutlu ve üç boyutlu problemler için sonlu eleman ağı geliştirilmesi,eleman
tipine göre ağ optimizasyonu ve ele alınan problemin özelliklerine göre sonlu eleman
ağlarının düzenlenmesi şeklinde genel bir sınıflandırmaya tabi tutulabilir. İstenen
bölgelerde daha sık bir sonlu eleman ağı oluşturulması için ve sonlu eleman ağının alan
değişkenlerinin gradyanına göre daha hassas oluşturulması için bir çok çalışma yapılmıştır.

Bu bölümde, Zienkiewicz ve ark. (1971) tarafından önerilen ağ oluşturma yöntemi


aktarılacaktır. Bölümün sonunda 3 düğümlü üçgen; 4,8 ve 9 düğümlü dörtgen elemanlar
için ağ bilgilerini oluşturan ve elde edilen ağı ekranda görüntüleyen bir program
verilecektir.

2. YÖNTEM
2.1. Bölge ve Blok Şeması

Ağ oluşturma işleminin temel mantığı,az sayıdaki anahtar noktalar için girilmiş olan
elemanların süreklilik ve düğüm koordinat bilgilerinden yola çıkarak işlem yapılan bölgeyi
istenen incelikte elemanlara ayırma olarak tanımlanabilir. Bu bölüm,sistemin işleyişi
hakkında teorik bilgileri ve ağ oluşturma işleminde bilgisayar çözümünü içermektedir.

Bu yöntemde genel olarak kompleks bir bölge,küçük dikdörtgen bloklardan


oluşmuş,dikdörtgen model olarak ele alınır. Dikdörtgen bloklardan bazıları boşaltılır ve
bazı kenarlar birleştirilerek istenen şekil elde edilir. Şekil 1' de verilen bölge göz önüne
alınırsa; blok şemasını oluşturmak için daha küçük dikdörtgen bloklardan oluşan bir
dikdörtgen blok modeli Şekil 2’ de görüldüğü gibi elde edilir. Bölgelerin tanımlanabilmesi
için 1,3,5,

17 19
12 14
11 15

6 10
7 9
2 4

Şekil 1. Ortasında delik bulunan dikdörtgen levha için örnek alt blok bölüntüsü.

Bölüm-12-22
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

8,13,16,18 ve 20 numaralı bloklar boş blok olarak alınmalı ve koyu çizgi ile belirtilen
kenarlar karşılıklı olarak birleştirilmelidir. Şekil 3' de dikdörtgen bloklardan oluşmuş bir
tüm dikdörtgen modelin genel konfigürasyonu görülmektedir.

D
25 26 27 28 29 30
16 17 18 19 20
D21 D22
19 20 21 22 23 24
11 12 13 14 15
D15 D16
13 14 15 16 17 18
6 7 8 9 10
D9 D10
7 8 9 10 11 12
1 2 3 4 5
D3 D4 Y
1 2 3 4 5 6

Şekil 2. Şekil 1 için bölge ve blok diyagramı.

Model,yatay (Y)-düşey (D) eksen takımına yerleştirilmiştir. Aralık numaraları düşeydeki


aralık sayısı (ND) ve yataydaki aralık sayısı (NY) olarak adlandırılmıştır. Ağ oluştururken
her aralık alt bölümlere ayrılır. Aralıklarının alt bölümleri KD ve KY olmak üzere
düşeydeki toplam aralık (NDD(KD)) ve yataydaki toplam aralık (NYD(KY)) olarak
adlandırılmıştır.

Düğümler numaralandırılırken ilk noktadan başlanarak Y yönünde ilerlemek şartıyla


numaralar verilir. İlk sıra bittiğinde D yönündeki sonraki sıranın ilk düğümünden itibaren
aynı işlem tekrar edilir. Sonlu eleman modeli koordinat eksenine yerleştirilirken dikkat
edilecek nokta,aralık sayısı az olan tarafın Y ekseni üzerine oturmasıdır. Bunun nedeni,bir
blok üzerinde bulunan düğümlerin numaraları arasındaki farkın minimum olmasını
sağlamaktır. Sonlu elemanlar metodunda,elemanlar için hesaplanmış rijitlik matrisleri
genel rijitlik matrisi içine yerleştirilirken düğüm numaralarına bağlı sistematik içinde
yerleştirilmektedir. Bir elemanın düğümleri arasındaki farkın büyümesi,genel matriste
yerleştirilen değerlerin dağınık olmasına sebep olmakta,bu da bilgisayar kapasitesinin
artmasını gerektirmekte ve çözüm zamanının uzamasına yol açarak yapılacak hesapları
zorlaştırmaktadır. Program, numaralandırmayı yatay eksenden başlayarak yaptığından az
sayıda düğüm bulunan kenarın yatay eksene yerleştirilmesi elde edilecek matrisin daha
düzgün olmasını sağlamaktadır.

Bölüm-12-33
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

D
KY
bloğu alt
bölüntüsü

KD
bloğu alt
bölüntüs

NY+1

D1 1 D 2 D3 N
2 Y
1 Y1 2 Y 2 3

Yatay kenar
Blok no Düşey kenar
Köşe

Şekil 3. Düğüm,blok ve kenarların numaralandırılması.

Y ve D yönündeki toplan düğüm sayısı:


NY
NNY = 1 + ∑ NYD( KY ) (1)
KY =1

ND
NND = 1 + ∑ NDD( KD) (2)
KD =1

mümkün olan maksimum düğüm sayısı ise:

NNT = NNY × NND (3)

olarak ifade edilir.

Problemdeki düğümlerin tanımlanması için bir dizi oluşturulur. Ayrıca blokların


tanımlanması için de bir dizi kullanılmaktadır. Bu dizi blokların malzeme numaralarını
içermektedir. Eğer bir blok için bu değer sıfır olursa o blok boşaltılmış demektir. Normalde
mevcut bloklar için bu değer 1'dir. Farklı özelliklerdeki malzemelerden oluşmuş bir bölge
üzerinde inceleme yapıyorsak,farklı bölgeler için farklı malzeme numaraları vermemiz
gerekmektedir.

Blok şeması üzerinde tanımlamış olduğumuz tüm blok köşe düğümlerinin x ve y


koordinatları ile alt blokların herbirinde bulunması muhtemel eğri kenarların orta nokta
koordinatları da bilgi olarak verilmelidir. İlk olarak tüm kenarlar orta düğümleri,köşe
düğümleri arasındaki doğrunun orta noktasında bulunan doğrusal kenarlar olarak kabul

Bölüm-12-44
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

edilerek,orta düğümlerin x ve y koordinatları hesaplanır. Daha sonra eğrisel kenarlar için


orta düğüm koordinatları girildiğinde,bu gerçek değerler dizideki daha önceden kabul
edilmiş bulunan değerlerin yerini alır. Daha sonra birleştirilecek kenarlar önceden verilen
bilgilere göre işlenir.

2.2 Düğümlerin Numaralandırılması

Düğümlerin numaralandırılışını bir örnek üzerinde açıklamak yerinde olacaktır. Şekil 4'de
bir örnek problem için bölge ve ona ait blok şeması görülmektedir. Düğümlerin
numaralandırılmış şekli ise Şekil 5'te verilmiştir. Yatayda 2 ve düşeyde de 2 blok vardır. 4
Numaralı blok ise boşaltılmıştır. Oluşabilecek en büyük düğüm numarası 30 dur. 18-20
kenarı ile 18-28 kenarı birleştirilecek kenarlar olmaktadır. Düğüm numaralarını içeren
dizindeki her değişkene önce -1 değeri verilir. Bunun anlamı her düğümün mevcut ve
bağımsız olduğudur. Daha sonra boş blok üzerinde mevcut olmayan noktalar varsa,bu
noktaların dizideki yerlerine 0 değeri konur. Örnekte 24, 25, 29 ve 30 numaralı düğümler
mevcut değildir. Bu düğümlerin dizideki yerleri sıfırlanır. Birleştirilmiş kenarların varlığı
kontrol edilir. Eğer böyle kenarlar varsa,birleştirilecek iki kenardan düğüm numaraları
büyük olan kenar üzerindeki her bir düğümün dizideki yerine,birleştirilecek olan diğer
kenar üzerindeki karşılık düğümünün numarası konur. Düğüm numaraları küçük olan
kenar için bir işlem yapılmaz. Sonuç olarak,düğüm numaraları büyük olan kenar,diğeri
üzerine taşınmış olur.

Düğümlerden bazıları yok edildiği için düğüm numaraları arasındaki ardışıklık


bozulmuştur. Bu yüzden mevcut düğümlerin yeniden numaralandırılması gerekmektedir.

Şekil 4. Düğüm numaralandırılması için örnek problem.

Bölüm-12-55
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Numaralandırma işlemine 1'den başlanır,düğüm numaraları dizisinde değeri negatif olan


düğümler 1'er artırılarak numaralandırılır. Eğer düğümün değeri sıfır ise o düğüme numara
verilmez,dizideki yeri sıfır olarak kalır. Değeri pozitif olan düğümün ise birleştirilmiş
(taşınmış) bir düğüm olduğu bilindiğinden,karşılık düğümünün dizideki yeni değeri verilir.
Numaralandırma işlemi bu şekilde tamamlanır. Şekil 5.a'da düğüm numaraları dizisinin
genel hali görülmektedir. Buradaki değerler blok şemasındaki düğümlere hiç bir işlem
yapılmadan önce verilmiş numaralardır. Şekil 5.b'de ise dizinin tüm düğümler için (-1)
değeri verildikten sonra,olmayan düğümler için sıfır,taşınmış düğümler için ise karşılık
düğümünün numarası verilmiş durumu görülmektedir. Son basamakta yapılan işlemden
sonra düğümlerin aldığı gerçek numaralar Şekil 5.c'de görülmektedir.

2. 3. Koordinatların Bulunması

Bölge üzerindeki herhangi bir bloğu alt bölümlere ayırdığımızda oluşan kesişim
noktalarındaki alt düğümlerin koordinatlarının hesaplanması gerekmektedir. İncelenen
blok için 8 temel düğümün (4'ü köşe,4'ü orta) X ve Y koordinatları tarafımızdan girilmiş
olduğu için bilinmektedir. Y-D koordinat sisteminde blok üzerinde bulunan bir N1 alt
düğümünün,diğer 8 düğümle olan ilişkisi biliniyorsa,şekil fonksiyonları yardımıyla bu
düğümün X ve Y koordinatları bulunabilir. Bölge üzerindeki bir blok alt bölümlere
ayrıldığında,alt bölümler Y-D düzleminde eşit aralıklarla oluşturulur. Bu bilgi,
düğümlerin X ve Y koordinatlarının hesaplanabilmesi için yeterlidir.

⎧26 27 28 29 30⎫ ⎧−1 −1 20 0 0⎫ ⎧23 24 20 0 0⎫


⎪ ⎪ ⎪ ⎪ ⎪ ⎪
21 22 23 24 25 −1 −1 19 0 0 21 22 19 0 0
⎪ ⎪ ⎪ ⎪ ⎪ ⎪
⎪16 17 18 19 20⎪ ⎪−1 −1 18 −1 −1⎪ ⎪16 17 18 19 20⎪
⎨ ⎬ ⎨ ⎬ ⎨ ⎬
⎪11 12 13 14 15 ⎪ ⎪−1 −1 −1 −1 −1⎪ ⎪11 12 13 14 15⎪
⎪6 7 8 9 10 ⎪ ⎪−1 −1 −1 −1 −1⎪ ⎪6 7 8 9 10 ⎪
⎪ ⎪ ⎪ ⎪ ⎪ ⎪
⎩1 2 3 4 5⎭ ⎩−1 −1 −1 −1 −1⎭ ⎩1 2 3 4 5⎭

(a) (b) (c)

Şekil 5 Düğümlerin numaralandırılması.

Bu veriler doğrultusunda N1 düğümünün X ve Y koordinatları


8
X= ∑ SH ( I ). X ( I )
I =1
(4)
8
Y= ∑ SH ( I ).Y ( I )
I =1

Bölüm-12-66
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

yardımıyla hesaplanabilir. Burada,SH(I),X(I),Y(I), I=1,2,3,....,8 olmak üzere sırasıyla şekil


fonksiyonlarını ve blok içindeki 8 temel düğümün koordinatlarını göstermektedir. 8
düğümlü izoparametrik eleman için şekil fonksiyonları

− (1 − r ).(1 − s ).(1 + r + s ) (5)


SH (1) =
4

(1 − r 2 ).(1 − s) (6)
SH (2) =
2

− (1 + r ).(1 − s ).(1 − r + s) (7)


SH (3) =
4

(1 + r ).(1 − s 2 ) (8)
SH (4) =
2

− (1 + r ).(1 + s ).(1 − r − s) (9)


SH (5) =
4

(1 − r 2 ).(1 + s) (10)
SH (6) =
2

− (1 − r ).(1 + s ).(1 + r − s) (11)


SH (7) =
4

(1 − r ).(1 − s 2 ) (12)
SH (8) =
2

şeklindedir. Burada r ve s lokal koordinatlarda bir eleman için eksen takımıdır (Şekil 6).
Alt bölümlere ayrılmış bir blok üzerindeki bir N1 düğümünün r ve s koordinatları yukarıda
verilmiş olan formüllerle bulunur. Bu değerler N1 düğümünün Y-D düzleminde,8 temel
düğüm ile olan uzaklık ilişkisini göstermektedir. Altbölümlerden dolayı oluşan bu alt
düğümlerin X ve Y koordinatlarının hesaplanmasıyla,bölge üzerindeki tüm düğümlerin
koordinatları bulunmuş olur. Son işlem olarak ilgili noktalar birleştirilir ve ağ oluşturulur.

s
4 7 3 (1,1)

8 r
6

1 (-1,-1) 5 2

Şekil 6. 8 düğümlü izoparametrik eleman

Bölüm-12-77
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

3. ÖRNEKLER
Program girdi dosyasında şu bilgileri istemektedir:
Eleman Tipi (Üçgen veya Dörtgen)
Düğüm sayısı (Üçgen=1,4 Düğümlü=2,5 Düğümlü=3,8 Düğümlü=4,9 Düğümlü=5)
Yataydaki bölüntü sayısı,Düşeydeki Bölüntü Sayısı
Malzeme sayısı
Malzeme çeşidi 1 den farklı olan bloklar (Boş bloklar için 0)
Blokların yatayda alt bölüntü sayısı
Blokların düşeyde alt bölüntü sayısı
Düğüm sayısı
X koordinatı,Y koordinatı
Yatayda eğri kenar sayısı (Kenardaki ara düğümün yeri değiştirilmek istendiğinde de bu kullanılır)
X koordinatı,Y koordinatı
Düşeyde eğri kenar sayısı
X Koordinatı,Y koordinatı
Birleşecek kenar sayısı
İlk kenarın iki düğümü
İkinci kenarın iki düğümü
Çıktı dosyası adı

Bu bilgiler girildikten sonra program çıktı dosyasında şu bilgileri oluşturur

Düğüm sayısı,Eleman sayısı, Malzeme sayısı,Boyut,Eleman düğüm sayısı,Yarıbant


genişliği,Tutulu düğüm sayısı (0),Yük sayısı (0)
Düğümlerin X ve Y koordinatları
Eleman düğüm bilgileri
Malzeme Numaraları
(Tutulu düğüm sayısı ve Yük sayısı herhangi bir editörle yazıldıktan sonra bu dosyanın altına
Serbestlik derecesi numarası,Tanımlı deplasman
Serbestlik derecesi numarası,Yük
Şeklinde ekleme yapılır.)

Bu bölümde sonlu elemanlar ağının oluşturulması ile ilgili bazı örnek çözümler
verilecektir. İlk örnekte, incelenecek bölge için blok şemasının oluşturulması,
koordinatların bulunması, boş blokların tespiti, birleştirilecek kenarların tanımlanması gibi
konular ayrıntılı olarak anlatılacaktır. Daha sonraki örneklerde ise yalnızca hesaplanmış
veriler sunulacaktır. Ayrıntılı anlatılacak bu örnek için, bir çok eğrisel kenar, boş blok ve
birleştirilmiş kenar içeren, dolayısıyla konunun tüm ayrıntılarını kapsayan zincir baklası
seçilmiştir (Şekil 7). Şeklin orta noktasına göre simetrik olması dolayısıyla, yalnızca ¼’lük
bölümünün incelenmesi mümkündür. Fakat konunun ayrıntılı anlatılabilmesi için şeklin
tamamını incelemek yerinde olacaktır.

Bölüm-12-88
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Şekil 7. Zincir baklasının geometrisi

İlk önce bölgenin şekli çizilerek muhtemel düğümler tasarlanır. Tasarlanmış düğümler
Şekilde görülmektedir. Dikkat edilecek nokta, her dört düğümün oluşturduğu her bir
elemanın kendi başına -daha başka bir bölünmeyi gerektirmeden- incelenebiliyor
olmasıdır. Bunun için kenarlar tek bir fonksiyonla ifade edilebilir olmalıdır. Doğrusal olan
kenarlar bunu sağlamaktadır. Eğrisel kenarların bu şartı sağlayabilmesi için, tek bir tepe
noktası bulunan eğrisel kenarlar elde edilene kadar ilgili kenarın bölünmesi gerekir.
Örnekteki 21 ve 13 düğümleri arasındaki eğrisel kenarı, tek bir elemanın kenarı olarak
tanımlayamayız. Bu yüzden eğrinin dönüm noktası olan yere bir düğüm konularak kenar
ikiye bölünmüştür. Oluşan her iki kenar da birer dairesel yaydır. Dolayısıyla tanımlanması
mümkündür.

Daha sonra oluşturulan elemanlara göre blok şeması tasarlanır. Örnekteki bölge için,
ayrılan elemanlara göre, Şekil 8'deki gibi 3x6'lık bir blok şeması uygun olacaktır. 2, 5, 8,
11, 14 ve 17 numaralı bloklar boşaltılıp 1-2 ile 3-4, 10-14 ile 11-15, 14-18 ile 15-19 ve 25-
26 ile 27-28 kenarları birleştirilirse blok diyagramı süreklilik açısında bölgemizdeki
tasarlanan elemanlara benzeyecektir. Yani 1 ve 3 numaralı blokların komşuluğu sağlanmış
olacaktır. Benzer şekilde 7 ve 9, 10 ve 12, 16 ve 18 numaralı bloklar da komşu olacaktır.

Bölüm-12-99
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Şekil 8. Zincir baklasına ait blok diyagramı.

Sırada düğümlerin koordinatlarının bulunması gelmektedir. Koordinatlar çizim yoluyla ya


da analitik metotla bulunabilir. Birleştirilmiş kenarlardan dolayı çakışan düğümlerin
koordinatları da aynı olacaktır. Hesaplanmış olan koordinatlar (Düğüm numarası, X
koordinatı, Y koordinatı) şöyledir:
1 0 12 2 8 12 3 8 12 4 0 12 5 12 0 6 12 8
7 12 16 8 12 24 9 19.71 2.8 10 16 12 11 16 12 12 19.713
21.192 13 27 5 14 27 12 15 27 12 16 27 19 17 34.286 2.807
18 38 12 19 38 12 20 34.3 21.2 21 42 0 22 42 8 23 42 16
24 42 24 25 54 12 26 46 12 27 46 12 28 54 12

Son olarak, eğrisel kenarların tanımlanabilmesi için tepe nokta koordinatlarının da


bulunması gerekmektedir. Bunlar da eğrileri ikiye bölen noktalar olacaktır (eğriler dairesel
olduğu için). Eğer eğriler bir fonksiyonla ifade edilmiş olsaydı; eğri fonksiyonunun birinci
türevi, iki uç nokta arasından geçen doğrunun eğimine eşitlenerek koordinatlar
bulunabilirdi. Eğrisel kenarların orta nokta koordinatları ise (W Aralık Numarası, X
koordinatı, Y koordinatı) şöyledir:

1 3.51 3.51 2 9.17 9.17 3 9.17 14.82 4 3.51 20.48 5 16.1 0.72 6 14.83 9.17
7 14.83 14.83 8 16.1 23.28 9 22.9 4.28 12 22.9 19.7 13 31.1 4.28 16 31.1 19.72
17 37.9 0.7 18 39.17 9.17 19 39.17 14.8 20 37.9 23.3 21 50.5 3.5 22 44.8 9.1
23 44.8 14.8 24 50.5 20.5

Birleştirilecek olan kenarlara ait düğüm numaraları ise (birinci kenar 1 ve 2 düğümü-ikinci
kenar 1 ve 2 düğümü):

Bölüm-12-1010
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

10 14-11 15
14 18-15 19

Boş blokların numaraları ise şunlardır: 2, 5, 8, 11, 14 ve 17.


Bundan sonra istenen eleman tipi ve alt bölüntü sayıları belirlenerek istenen sıklık ve
eleman tipinde ağ elde etmek mümkündür. Ortasında ilave bir delik bulunan zincir baklası
için elde edilmiş olan 3 değişik ağ şekil 8’de verilmiştir. Bütün ağlar için düğüm sayısı 658
olup eleman sayıları,üçgen elemanlarla oluşturulmuş ağ için 1152, 4 düğümlü elemanlarla
oluşturulmuş ağ için 576 ve 9 düğümlü elemanlarla oluşturulmuş ağ için 144 dür. Yarı bant
genişliği ise sırasıyla 314, 314 ve 315 olmaktadır.

4 düğümlü elemanlarla oluşturulmuş ağ için çıktı dosyası şu şekilde elde edilmiştir:


658 576 1 2 4 314 2 2
0 12
1.6 12
3.2 12
4.8 12
6.4 12
8 12
.80896 8.00896
.................
53.18976 15.9904
54 12
52.4 12
50.8 12
49.2 12
47.6 12
46 12
1 2 8 7
3 4 10 9
...............
395 396 401 402
397 398 399 400
.................
1 1 1 1 .........
257 0
258 0
571 -1000
572 2000

Şekil 9 Eğri dış kenarlara ve çeşitli sayıda deliklere sahip bir levhanın üçgen ve 4 ve 9
düğümlü dörtgen elemanlarla hazırlanmış sonlu eleman ağları

Bölüm-12-1111
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

İkinci bir örnek olarak ortasında dairesel bir delik bulunan bir dikdörtgen kesit (Şekil 1)
incelenmiştir. Geometri için tasarlanan ağ yapısı ve blok şeması Şekil 10 ve 11 de
verilmiştir. Bu örnek için gerekli data dosyası şu şekildedir:

22 Dört düğümlü dörtgen eleman


54
2 Malzeme sayısı
10 30 50 80 13 0 16 0 18 0 20 0 Boş bloklar
33133 Alt bölüntü sayıları istenen hassasiyete göre değiştirilebilir. Fakat
3333 birleştirme nedeniyle 2. Yatay aralıkla 4. Düşey aralığın sayıları uygun
olmalıdır
30 Düğüm sayısı (Blok şemasında bulunan fakat boş bloklar sebebiyle gerçekte
olmayan düğümlerin tanımlanmasına gerek yoktur)
2 10 0 3 10 5 4 10 5 5 10 0 700 850
9 7.8 5.8 10 12.1 5.8 11 15 0 12 20 0 13 0 8 14 5 8
15 7 8 16 13 8 17 15 8 18 20 8 19 0 16 20 5 16
21 7.8 10.1 22 12.1 10.1 23 15 16 24 20 16 26 10 16 27 10 11
28 10 11 29 10 16 0 bitiş 0 la yapılmaktadır
0 yatayda eğri kenar yoktur
8
3 8.8 5.23 4 11.15 5.23 9 7.23 6.8 10 12.7 6.8 15 7.3 9.15 16 12.7 9.15
21 8.8 10.7 22 11.15 10.7 0

Şekil 10 Delikli levha için tasarlanan ağ

Bölüm-12-1212
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Şekil 11 Delikli levhaya ait blok şeması.

2 birleşecek kenar sayısı


2354
26 27 29 28
çıktı.mes dosya adı

Bu örnek için hazırlanmış değişik eleman sıklıklarına sahip üç örnek Şekil 12 de


verilmiştir. Bu datalardan yalnızca eleman düğüm sayısı değiştirilerek ağın eleman yapısı
değiştirilebileceği gibi,yatay ve düşey blokların bölüntü sayıları değiştirilerek de istenen
bölgede istenen sıklıkta ağ oluşturulabilmektedir. Hazırlanan program sonlu eleman
modellemesindeki boyut sorununa yardımcı olmak için yarı bant genişliğini de
hesaplamaktadır.

Şekil 12 Ortası delikli dikdörtgen levha için elde edilen,çeşitli sıklıklara sahip ağlar.

Bu örnekte ise biri merkezde olmak üzere 3 adet dairesel delik bulunan bir dairesel kesit
için model hazırlama ve girdi dosyası bilgileri verilmiştir (Şekil 13, 14). Burada, simetrik
bir yapıya sahip olan kesitin, yarısı incelenmiştir. Gerçekte kesit, her iki eksende de
simetrik olduğundan, bu kesitin yalnızca ¼’lük bir dilimini incelemek yeterli olacaktır.

Bölüm-12-1313
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Girdi dosyası bilgileri aşağıda verilmiştir. Buna göre ilgilenenler istediği şekilde bir sonlu
eleman ağı oluşturabilirler.

11 Üç düğümlü üçgen eleman


46
2
50 80 90 12 0 13 0 16 0 17 0 20 0
2222
333333

Şekil 13 Çeşitli sayıda delik bulunan dairesel kesit için taslak ağ

Bölüm-12-1414
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

35
1 13 8 2 14.414 7.414 3 15 6 4 14.414 4.585 5 13 4
6 13 0 7 14.5 10.401 8 17 6 9 19.5 1.741 10 13 0
12 15.5 11.5 13 19 9 14 24.25 6.5 17 16 13 18 19 13
19 26 13 22 11.598 14.5 23 19 17 24 24.258 19.5 26 13 16
27 14.5 15.5 28 17 20 29 19.5 24.25 30 13 26 31 13 18
32 14.4 18.5 33 15 20 34 14.4 21.4 35 13 22 0
12 Yatayda eğri kenar sayısı
1 13.765 7.847 2 14.847 6.765 3 14.847 5.234 4 13.765 4.152
5 13.776 10.12 8 16.36 0.42 21 13.776 15.897 24 16.364 25.557
25 13.765 18.152 26 14.847 19.234 27 14.84 20.76 28 13.76 21.87
0
8 Düşeyde eğri kenar sayısı
7 15.121 10.878 9 22.192 3.807 12 15.897 12.223 14 25.557 9.63
17 15.897 13.776 19 25.557 16.364 22 15.121 15.121 24 22.192 22.192
0
0 Birleşecek kenar yoktur.
çıktı.mes

Örnekte birleştirilecek kenar çifti bulunmadığından, aralıkların altbölüm sayıları, arzu


edilen hassasiyete göre rahatça seçilebilir.

Şekil 14 Şekil 13 için blok şeması

Şekil 15 de kırılma mekaniği analizi için hazırlanmış sonlu eleman ağları verilmiştir.
Burada da düğüm sayıları her üç ağ için de 705 olup eleman sayıları sırasıyla 1280, 640 ve
160 tır. Yarı bant genişliği ise 91, 91 ve 109 olmaktadır.

Bölüm-12-1515
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

Şekil 15 Kırılma mekaniği analizi için hazırlanmış sonlu eleman ağları. Üçgen,4 düğümlü
ve 9 düğümlü dörtgen elemanlar

4. SONUÇ
Bu çalışmada nümerik yöntemlerle yapılan analizin ilk basamağı olan çözüm bölgesi için
ağ geliştirme üzerinde durulmuş ve bu amaçla geliştirilen yöntem kullanılarak bir
bilgisayar programı hazırlanmıştır. Çalışmada ele alınan geometrinin mümkün olduğu
kadar iyi modellenmesinin yanında analiz sırasında meydana gelecek denklem sistemi ve
bu sistemde oluşan genel matrislerin de homojen hale getirilmesi ve çözüm zamanının
azaltılması düşünülmüştür. Geliştirilen yöntemle her türlü geometrinin üçgen ve 4 veya 9
düğümlü dörtgen elemanlara bölünmesi mümkün olduğu gibi, alan değişkenlerinin çözüm
bölgesindeki dağılımı da dikkate alınarak çeşitli ağ inceltme işlemleri de yapılabilmektedir.

(*)Zienkiewicz,O. C.,Philips,D. V. 1971,An automatic mesh generation scheme for plane


and curved surfaces by isoparametric coordinates. Int. J. Numerical Methods in
Engineering (3) 519-528

1000 REM**************** AĞOLUŞTURMA ************************


REM* IKI BOYUTLU HER TÜR PROBLEM İÇİN *
REM* 3 DÜĞÜMLÜ ÜÇGEN *
REM* 4,5,8,9 DÜĞÜMLÜ DÖRTGEN ELEMANLARLA *
REM* SONLU ELEMAN MODELINI OLUSTURUR *
REM* 3,4 VE 9 DÜĞÜM İÇİN EKRANA ÇİZER *
REM* ADAPTE EDEN SÜLEYMAN TAŞGETİREN *
REM*******************************************************
1001 CLS : DEFINT I-N: NDIM=2
INPUT "AG OLUŞTURMAK İÇİN DOSYA ADI="; FILE1$
OPEN FILE1$ FOR INPUT AS #2
REM"ELEMAN TİPİ VE DÜĞÜM SAYISININ BELİRLENMESİ"
INPUT #2,NTMP
IF NTMP=2 THEN NEN=4 ELSE NEN=3: DS=1: GOTO 1010
REM DS<1-DÖRT 2-BES 3-SEKIZ 4-DOKUZ
INPUT #2,DS
1010 INPUT #2,NS,NW
NSW=NS*NW: NGN=(NS+1)*(NW+1): NM=1
DIM IDBLK(NSW),NSD(NS),NWD(NW),NGCN(NGN),NGCM(NGN)
'-------- Blok tanımlama ve malzeme numarası --------
FOR I=1 TO NSW: IDBLK(I)=1: NEXT I
1020 INPUT #2,NTMP
IF NTMP=0 GOTO 1030
INPUT #2,IDBLK(NTMP)
IF NM < IDBLK(NTMP) THEN NM=IDBLK(NTMP)
GOTO 1020

Bölüm-12-1616
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

'------------- Altbölümler ---------------


1030 NNS=1: NNW=1
FOR KS=1 TO NS
INPUT #2,NSD(KS)
NNS=NNS+NSD(KS): NEXT KS
FOR KW=1 TO NW
INPUT #2,NWD(KW)
NNW=NNW+NWD(KW): NEXT KW
'------------ Düğümler ve koordinatları ---------------
1040 NSR=NS*(NW+1)
NWR=NW*(NS+1)
DIM XB(NGN,2),SR(NSR,2),WR(NWR,2)
1050 INPUT #2,NTMP
IF NTMP=0 GOTO 1060
INPUT #2,XB(NTMP,1),XB(NTMP,2)
GOTO 1050
'-------- D kenarları orta nokta koordinatları --------
1060 FOR I=1 TO NW+1: FOR J=1 TO NS
IJ=(I-1)*NS+J
SR(IJ,1)=.5*(XB(IJ+I-1,1)+XB(IJ+I,1))
SR(IJ,2)=.5*(XB(IJ+I-1,2)+XB(IJ+I,2))
NEXT J: NEXT I
'-------- Y kenarları orta nokta koordinatları --------
1070 FOR I=1 TO NW: FOR J=1 TO NS+1
IJ=(I-1)*(NS+1)+J
WR(IJ,1)=.5*(XB(IJ,1)+XB(IJ+NS+1,1))
WR(IJ,2)=.5*(XB(IJ,2)+XB(IJ+NS+1,2))
NEXT J: NEXT I
'------ Eğri kenarlar ve orta nokta koordinatları ------
1080 INPUT #2,NTMP
IF NTMP=0 GOTO 1090
INPUT #2,SR(NTMP,1),SR(NTMP,2)
GOTO 1080
1090 INPUT #2,NTMP
IF NTMP=0 GOTO 1100
INPUT #2,WR(NTMP,1),WR(NTMP,2)
GOTO 1090
'------------------ Birleşik kenarlar ----------------------
1100 INPUT #2,NSJ
IF NSJ=0 GOTO 1120
DIM MERG(NSJ,4)
FOR I=1 TO NSJ
INPUT #2,L1,L2
I1=L1: I2=L2: GOSUB 2100: II1=IDIV
INPUT #2,L3,L4
I1=L3: I2=L4: GOSUB 2100: II2=IDIV
IF II1=II2 THEN 1110
PRINT "Altbölüm sayıları farklı."
PRINT "Kontrol edip yeniden başlayınız.": END
1110 MERG(I,1)=L1: MERG(I,2)=L2
MERG(I,3)=L3: MERG(I,4)=L4
NEXT I
'------- Temel düğümlerin global koordinatları ---------
1120 NTMPI=1
FOR I=1 TO NW+1
IF I=1 THEN IINC=0 ELSE IINC=NNS*NWD(I-1)
NTMPI=NTMPI+IINC: NTMPJ=0
FOR J=1 TO NS+1
IJ=(NS+1)*(I-1)+J
IF J=1 THEN JINC=0 ELSE JINC=NSD(J-1)
NTMPJ=NTMPJ+JINC

Bölüm-12-1717
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

NGCN(IJ)=NTMPI+NTMPJ: NEXT J: NEXT I


'---------------- Düğüm noktaları dizisi --------------------
1140 NNT=NNS*NNW
DIM NNAR(NNT)
FOR I=1 TO NNT
NNAR(I)=-1: NEXT I
'--------- Mevcut olmayan düğümler ---------
1160 FOR KW=1 TO NW: FOR KS=1 TO NS
KSW=NS*(KW-1)+KS
IF IDBLK(KSW) > 0 GOTO 1200
'-------- Bos bloklar --------
1170 K1=(KW-1)*(NS+1)+KS
N1=NGCN(K1)
NS1=2: IF KS=1 THEN NS1=1
NW1=2: IF KW=1 THEN NW1=1
NS2=NSD(KS)+1: IF KS=NS GOTO 1180
IF IDBLK(KSW+1) > 0 THEN NS2=NSD(KS)
1180 NW2=NWD(KW)+1: IF KW=NW GOTO 1190
IF IDBLK(KSW+NS) > 0 THEN NW2=NWD(KW)
1190 FOR I=NW1 TO NW2: IN1=N1+(I-1)*NNS
FOR J=NS1 TO NS2: IJ=IN1+J-1
NNAR(IJ)=0: NEXT J: NEXT I
IF NS2=NSD(KS) OR NW2=NWD(KW) GOTO 1200
IF KS=NS OR KW=NW GOTO 1200
IF IDBLK(KSW+NS+1) > 0 THEN NNAR(IJ)=-1
1200 NEXT KS: NEXT KW
'-------- Birleşik kenarlar ------
1210 IF NSJ=0 GOTO 1230
FOR I=1 TO NSJ
I1=MERG(I,1): I2=MERG(I,2): GOSUB 2100
IA1=NGCN(I1): IA2=NGCN(I2): IASTP=(IA2-IA1)/IDIV
I1=MERG(I,3): I2=MERG(I,4): GOSUB 2100
IB1=NGCN(I1): IB2=NGCN(I2): IBSTP=(IB2-IB1)/IDIV
IAA=IA1-IASTP
FOR IBB=IB1 TO IB2 STEP IBSTP
IAA=IAA+IASTP
IF IBB=IAA THEN NNAR(IAA)=-1: GOTO 1220
IF IBB > IAA THEN NNAR(IBB)=IAA ELSE NNAR(IAA)=IBB
1220 NEXT IBB: NEXT I
'---------- Düğümlerin gerçek numaraları --------
1230 NODE=0
FOR I=1 TO NNT
IF NNAR(I)=0 GOTO 1250
IF NNAR(I) > 0 GOTO 1240
NODE=NODE+1
NNAR(I)=NODE
GOTO 1250
1240 II=NNAR(I)
NNAR(I)=NNAR(II)*(-1)
1250 NEXT I
LAS=NODE
IF DS=1 THEN 1260
ON DS-1 GOSUB 2600,2800,2800
'----------------------------- Koordinatlar ---------------
1260 NN=NODE
NELM=0
DIM X(LAS*2,2),XP(8,2),NOC(2*NNT,NEN*2)
DIM MAT(2*NNT),PMN(2*NNT,2)
FOR I=1 TO LAS
X(I,1)=-1:X(I,2)=-1
NEXT

Bölüm-12-1818
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

FOR KW=1 TO NW:FOR KS=1 TO NS


KSW=NS*(KW-1)+KS
IF IDBLK(KSW)=0 GOTO 1330
'------------------------------- Alt düğümler ----------
1270 NODW=NGCN(KSW+KW-1)-NNS-1
FOR JW=1 TO NWD(KW)+1
ETA=-1+2*(JW-1)/NWD(KW)
NODW=NODW+NNS: NODS=NODW
FOR JS=1 TO NSD(KS)+1
XI=-1+2*(JS-1)/NSD(KS)
NODS=NODS+1
NODE=NNAR(NODS)
1280 GOSUB 2200: GOSUB 2300
FOR J=1 TO 2
C1=0
FOR I=1 TO 8
C1=C1+SH(I)*XP(I,J)
NEXT I
X(NODE,J)=C1
NEXT J
'-------------------------------------------
1290 IF JS=NSD(KS)+1 OR JW=NWD(KW)+1 GOTO 1320
N1=NODE: N2=NNAR(NODS+1)
N4=NNAR(NODS+NNS): N3=NNAR(NODS+NNS+1)
NELM=NELM+1: IF NEN=3 GOTO 1310
'------------------- Dörtgen eleman --------------------
1300 NOC(NELM,1)=N1: NOC(NELM,2)=N2: MAT(NELM)=IDBLK(KSW)
NOC(NELM,3)=N3: NOC(NELM,4)=N4: GOTO 1320
'------------------- Üçgen eleman -------------------
1310 NOC(NELM,1)=N1: NOC(NELM,2)=N2
NOC(NELM,3)=N3: MAT(NELM)=IDBLK(KSW)
NELM=NELM+1: NOC(NELM,1)=N3: NOC(NELM,2)=N4
NOC(NELM,3)=N1: MAT(NELM)=IDBLK(KSW)
1320 NEXT JS: NEXT JW
1330 NEXT KS: NEXT KW
NE=NELM: IF NEN=4 GOTO 1360
'----------------------------------------------------
1340 NE2=NE/2
FOR I=1 TO NE2
I1=2*I-1
N1=NOC(I1,1): N2=NOC(I1,2)
N3=NOC(I1,3): N4=NOC(2*I,2)
X13=X(N1,1)-X(N3,1):Y13=X(N1,2)-X(N3,2)
X24=X(N2,1)-X(N4,1):Y24=X(N2,2)-X(N4,2)
IF (X13*X13+Y13*Y13)<=1.1*(X24*X24+Y24*Y24) GOTO 1350
NOC(I1,3)=N4: NOC(2*I,3)=N2
1350 NEXT I
1360 DIM PM(NE),PN(NE): ON DS-1 GOSUB 2500,3000,3000: GOSUB 2400
GOSUB 4000
1370 END
'=========== I1,I2 kenarı altbölüm sayısı ===========
2100 IMIN=I1: IMAX=I2
IF IMIN > I2 THEN IMIN=I2
IMAX=I1
IF (IMAX-IMIN)=1 THEN IDIV=NGCN(IMAX)-NGCN(IMIN)
RETURN
IDIV=(NGCN(IMAX)-NGCN(IMIN))/NNS
RETURN
'====== Bloktaki 8 düğümün koordinatları ======
2200 N1=KSW+KW-1
XP(1,1)=XB(N1,1): XP(1,2)=XB(N1,2)

Bölüm-12-1919
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

XP(2,1)=SR(KSW,1): XP(2,2)=SR(KSW,2)
XP(3,1)=XB(N1+1,1): XP(3,2)=XB(N1+1,2)
XP(4,1)=WR(N1+1,1): XP(4,2)=WR(N1+1,2)
XP(5,1)=XB(N1+NS+2,1): XP(5,2)=XB(N1+NS+2,2)
XP(6,1)=SR(KSW+NS,1): XP(6,2)=SR(KSW+NS,2)
XP(7,1)=XB(N1+NS+1,1): XP(7,2)=XB(N1+NS+1,2)
XP(8,1)=WR(N1,1): XP(8,2)=WR(N1,2)
RETURN
'============== Sekil fonksiyonları ================
2300 SH(1)=-(1-XI)*(1-ETA)*(1+XI+ETA)/4:SH(2)=(1-XI*XI)*(1-ETA)/2
SH(3)=-(1+XI)*(1-ETA)*(1-XI+ETA)/4:SH(4)=(1-ETA*ETA)*(1+XI)/2
SH(5)=-(1+XI)*(1+ETA)*(1-XI-ETA)/4:SH(6)=(1-XI*XI)*(1+ETA)/2
SH(7)=-(1-XI)*(1+ETA)*(1+XI-ETA)/4:SH(8)=(1-ETA*ETA)*(1-XI)/2
RETURN
'=============== Yarı bant genişliği ===================
2400 ST=1: ED=NEN
IF DS=2 THEN ST=0
IF DS=3 THEN ED=ED*2
IF DS=4 THEN ST=0: ED=ED*2
NBW=0
FOR N=1 TO NE
CMIN=NN+1: CMAX=0
FOR J=ST TO ED
IF CMIN > NOC(N,J) THEN CMIN=NOC(N,J)
IF CMAX < NOC(N,J) THEN CMAX=NOC(N,J)
NEXT J
C=(CMAX-CMIN+1)
IF NBW < C THEN NBW=C
NEXT N
'=============== Verilerin Kaydedilmesi ===================
INPUT #2,FILE$
OPEN FILE$ FOR OUTPUT AS #1
ND=0: NL=0
PRINT #1,LAS; NE; DS; NM; NDIM; NEN; NBW
FOR I=1 TO LAS
FOR J=1 TO NDIM
PRINT #1,X(I,J);
NEXT J
PRINT #1,
NEXT I
FOR I=1 TO NE
FOR J=ST TO ED
PRINT #1,NOC(I,J);
NEXT J: PRINT #1,: NEXT I
FOR I=1 TO NE
PRINT #1,MAT(I);
NEXT I
PRINT #1,
CLOSE #1
RETURN
2500 '-------- Eleman orta düğüm koordinatları --------
VI=1: TJ=0: TM=0
FOR I=1 TO NW
FOR K=1 TO NWD(I)
FOR J=1 TO NS
IF IDBLK((I-1)*NS+J)=0 THEN 2520
JM=(NSD(J)*(K-1))
FOR JI=1 TO NSD(J)
WI=JM+JI+TJ+TM
IF MAT(WI) <> 1 THEN 2510
P1=NOC(WI,1): P2=NOC(WI,2):P3=NOC(WI,3): P4=NOC(WI,4)

Bölüm-12-2020
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

PN(VI)=WI
PMN(VI,1)=((X(P1,1)+X(P2,1))/2+(X(P4,1)+X(P3,1))/2)/2
PMN(VI,2)=((X(P1,2)+X(P4,2))/2+(X(P2,2)+X(P3,2))/2)/2
2510 VI=VI+1
NEXT JI
TJ=TJ+(NSD(J)*NWD(I))
2520 NEXT J
TG=TJ: TJ=0
NEXT K
TM=TM+TG: TJ=0
NEXT I: GOSUB 2710
2530 RETURN
2600 TB=0: B=1
FOR J=1 TO NS
IF IDBLK(J) <> 0 THEN B=B+NSD(J)
NEXT
B=B+1
FOR I=1 TO NW
JM=0
FOR J=1 TO NS
IF IDBLK((I-1)*NS+J)<>0 THEN JM=JM+NSD(J)
NEXT
FOR K=1 TO NWD(I)
FOR J=1 TO NNS
IF NNAR(B)<0 THEN 2700
IF NNAR(B)=0 THEN 2610
NNAR(B)=NNAR(B)+JM*K+TB
LAS=NNAR(B)
2610 B=B+1
NEXT: NEXT
TB=TB+JM*NWD(I)
NEXT
2620 RETURN
2700 II=NNAR(B)*(-1): NNAR(B)=NNAR(II)
GOTO 2610
2710 J=1: FOR I=1 TO LAS
IF X(I,1)=-1 AND X(I,2)=-1 THEN 2730
2720 NEXT
FOR I=1 TO NE:NOC(I,0)=PM(I):NEXT
RETURN
2730 X(I,1)=PMN((J),1): X(I,2)=PMN((J),2)
PM(PN(J))=I:J=J+1
GOTO 2720
IF DS=2 THEN 2600
JM=0: TB=0
FOR I=1 TO NNT
IF NNAR(I) < 0 THEN NNAR(I)=NNAR(I)*(-1)
NEXT: RETURN
2800 DIM TN(NNW)
L=1: TB=1: B=1: BC=0
FOR I=1 TO NW
IF I <> NW THEN NRW=NWD(I) ELSE NRW=NWD(I)+1
FOR K=1 TO NRW
FOR J=1 TO NNS
IF NNAR(B) < 0 THEN 2900
IF NNAR(B)=0 THEN 2810
FOR JG=1 TO NGN
IF NGCN(JG)=NNAR(B) THEN NGCM(JG)=TB+BC
NEXT
NNAR(B)=TB+BC: LAS=NNAR(B)
2810 BC=BC+2: B=B+1

Bölüm-12-2121
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

NEXT
TN(L)=BC+TB-2
L=L+1
KDS=1
IF DS=4 THEN KDS=2
FOR R=1 TO NS
IF IDBLK((I-1)*NS+R) <> 0 THEN BC=BC+NSD(R)*KDS
NEXT R
TB=BC+TB: BC=0
NEXT: NEXT
RETURN
2900 II=NNAR(B)*(-1)
NNAR(B)=NNAR(II): GOTO 2810
REM"---------------------------------SEKIZ DÜGÜM
3000 L=1: VI=1: TJ=0: TM=0
FOR I=1 TO NW
FOR K=1 TO NWD(I)
FOR J=1 TO NS
IF IDBLK((I-1)*NS+J)=0 THEN 3030
JM=(NSD(J)*(K-1))
FOR JI=1 TO NSD(J)
WI=JM+JI+TJ+TM
IF MAT(WI) <> 1 THEN 3020
P1=NOC(WI,1): P2=NOC(WI,2)
P3=NOC(WI,3): P4=NOC(WI,4)
P6=TN(L)+VI: P7=P6+1
P5=P1+1: P8=P4+1
P10=P6: P11=P8: P8=P3: P3=P2: P2=P5
P5=P7: P7=P11: P1=P1: P6=P4: P4=P10
IF DS=4 GOTO 3010
NOC(WI,1)=P1: NOC(WI,2)=P2: NOC(WI,3)=P3
NOC(WI,4)=P4: NOC(WI,5)=P5: NOC(WI,6)=P6
NOC(WI,7)=P7: NOC(WI,8)=P8
X(P2,1)=(X(P1,1)+X(P3,1))/2:X(P2,2)=(X(P1,2)+X(P3,2))/2
X(P4,1)=(X(P1,1)+X(P6,1))/2:X(P4,2)=(X(P1,2)+X(P6,2))/2
X(P5,1)=(X(P3,1)+X(P8,1))/2:X(P5,2)=(X(P3,2)+X(P8,2))/2
X(P7,1)=(X(P6,1)+X(P8,1))/2:X(P7,2)=(X(P6,2)+X(P8,2))/2
GOTO 3020
REM"----------------------------------DOKUZ DUGUM
3010 P9=P8: P5=P4+1: P6=P5+1: P7=P9-2: P8=P9-1
VI=VI+1
NOC(WI,0)=P1: NOC(WI,1)=P2: NOC(WI,2)=P3
NOC(WI,3)=P4: NOC(WI,4)=P5: NOC(WI,5)=P6
NOC(WI,6)=P7: NOC(WI,7)=P8: NOC(WI,8)=P9
X(P2,1)=(X(P1,1)+X(P3,1))/2:X(P2,2)=(X(P1,2)+X(P3,2))/2
X(P4,1)=(X(P1,1)+X(P7,1))/2:X(P4,2)=(X(P1,2)+X(P7,2))/2
X(P6,1)=(X(P3,1)+X(P9,1))/2:X(P6,2)=(X(P3,2)+X(P9,2))/2
X(P8,1)=(X(P7,1)+X(P9,1))/2:X(P8,2)=(X(P7,2)+X(P9,2))/2
X(P5,1)=(X(P4,1)+X(P6,1))/2:X(P5,2)=(X(P2,2)+X(P8,2))/2
VI=VI+1
3020 NEXT JI
TJ=TJ+(NSD(J)*NWD(I))
3030 NEXT J
VI=1: TG=TJ: TJ=0: L=L+1
NEXT K
TM=TM+TG: TJ=0
NEXT I
RETURN:RETURN

4000 '************** SEMAGCİZ ****************


'======== EKRAN DÜZENLEME =========

Bölüm-12-2222
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

KEY OFF
SCREEN 11: F$="####.##"
ASP=.46
LOCATE 16,25
OPEN FILE$ FOR INPUT AS #3
INPUT #3,NN,NE,NM,NDIM,NEN,NBW,ND,NL
DIM X(NN,NDIM),X1(NN,NDIM),NOC(NE,NEN),DEP(NN,NDIM),K(NN,NDIM)
'============= DATALAR ===============
4010 FOR I=1 TO NN: FOR J=1 TO NDIM
DEP(I,J)=0: X(I,J)=0
NEXT J: NEXT I
FOR I=1 TO NN: FOR J=1 TO NDIM
INPUT #1,X(I,J)
NEXT J: NEXT I
FOR I=1 TO NE: FOR J=1 TO NEN
INPUT #1,NOC(I,J): NEXT J: NEXT I
FOR I=1 TO NN
FOR J=1 TO NDIM
X1(I,J)=X(I,J)
NEXT J: NEXT I
XMAX=X(1,1): YMAX=X(1,2): XMIN=X(1,1): YMIN=X(1,2)
FOR I=2 TO NN
IF XMAX < X(I,1) THEN XMAX=X(I,1): IF YMAX < X(I,2) THEN YMAX=X(I,2)
IF XMIN > X(I,1) THEN XMIN=X(I,1): IF YMIN > X(I,2) THEN YMIN=X(I,2)
NEXT I
CLS
XL=(XMAX-XMIN): YL=(YMAX-YMIN)
X0=XMIN-XL/10: Y0=YMIN-YL/10
LINE (80,1)-(80,350): LINE (80,350)-(639,350)
VIEW (82,1)-(639,348)
AA=538*ASP/167
IF XL/YL > AA THEN YL=XL/AA: IF XL/YL < AA THEN XL=YL*AA
XMAX=X0+1.3*XL: YMAX=Y0+1.3*YL
WINDOW (X0,Y0)-(XMAX,YMAX)
LOCATE 1,3: PRINT USING F$; YMAX
LOCATE 23,73: PRINT USING F$; XMAX
LOCATE 23,10: PRINT USING F$; X0
LOCATE 22,3: PRINT USING F$; Y0
4015 IF NEN=9 GOTO 4100
'=========== ELEMAN ÇİZİMİ ================
4020 CLS
FOR IE=1 TO NE
FOR II=1 TO NEN
X1=X1(NOC(IE,II),1): Y1=X1(NOC(IE,II),2)
IF II=NEN GOTO 4030
X2=X1(NOC(IE,II+1),1): Y2=X1(NOC(IE,II+1),2)
LINE (X1,Y1)-(X2,Y2)
GOTO 4040
4030 X2=X1(NOC(IE,1),1): Y2=X1(NOC(IE,1),2)
LINE (X1,Y1)-(X2,Y2)
4040 NEXT II: NEXT IE
4100 CLS
FOR IE=1 TO NE
FOR II=1 TO 2
X1=X1(NOC(IE,II),1): Y1=X1(NOC(IE,II),2)
X2=X1(NOC(IE,II+1),1): Y2=X1(NOC(IE,II+1),2)
LINE (X1,Y1)-(X2,Y2)
NEXT II
FOR II=7 TO 8
X1=X1(NOC(IE,II),1): Y1=X1(NOC(IE,II),2)
X2=X1(NOC(IE,II+1),1): Y2=X1(NOC(IE,II+1),2)

Bölüm-12-2323
Mühendisler İçin Sonlu Elemanlar Metodu,M. TOPCU,S. TAŞGETİREN

LINE (X1,Y1)-(X2,Y2)
NEXT II
FOR II=1 TO 6 STEP 3
X1=X1(NOC(IE,II),1): Y1=X1(NOC(IE,II),2)
X2=X1(NOC(IE,II+3),1): Y2=X1(NOC(IE,II+3),2)
LINE (X1,Y1)-(X2,Y2)
NEXT II
FOR II=3 TO 8 STEP 3
X1=X1(NOC(IE,II),1): Y1=X1(NOC(IE,II),2)
X2=X1(NOC(IE,II+3),1): Y2=X1(NOC(IE,II+3),2)
LINE (X1,Y1)-(X2,Y2)
NEXT II
CIRCLE (X1(NOC(IE,5),1),X1(NOC(IE,5),2)),.2
NEXT IE
'================ DÜĞÜM NUMARALARI ===============
4200 LOCATE 24,20: INPUT ; " DÜĞÜM NUMARALARINI İSTERMİSİN > ",A$
IF A$="H" OR A$="h" GOTO 4300
FOR I=1 TO NN
ICOL=(100+(538*(X1(I,1)-X0)/(1.2*XL)))/8
IROW=(168-167*(X1(I,2)-Y0)/(1.2*YL))/8
LOCATE IROW,ICOL: PRINT I; : NEXT I: LOCATE 24,20
INPUT ; "DÜĞÜMSÜZ ÇİZİM İSTERMİSİN < E/H > ",A$
IF A$="E" OR A$="e" GOTO 4015
4300 END

Bölüm-12-2424

You might also like