[]

[Matlab] PDE-FEM

Oncelikle tumu buyuk harfli baslik icin ozur dilerim. Gelelim sorumuza. Simdi efendim etkin olarak kullanabildigim matematik bilgilerimle analitik olarak cozemedigim icin fem ile cozmeye yeltendigim bir problem var. Dolayisiyla bunun icin bir script yazacagim. Problemim tam olarak su; sekilde gordugunuz uzere diyelim ki 8 adet element ve 15 adet node'dan olusan bir geometrimiz var. ahanda surada i50.tinypic.com

her bir element 4 adet node'dan olusuyor. dolayisiyla benim her bir element icin 4x4 luk bir matrisim var. ornegin a ve b icin bu matrisleri yazalim;

|(1,1) (1,2) (1,9) (1,10)|
|(2,1) (2,2) (2,9) (2,10)|
|(9,1) (9,2) (9,9) (9,10)|
|(10,1)(10,2)(10,9)(10,10|

|(2,2) (2,3) (2,8) (2,9)|
|(3,2) (3,3) (3,8) (3,9)|
|(8,2) (8,3) (8,8) (8,9)|
|(9,2) (9,3) (9,8) (9,9)|

tahmin edeceginiz uzere 8 element icin de bu matrisleri yazdigimizda 15x15 lik global bir matrisin indislerini elde ediyoruz. diyelim ki elimizde 4x4'luk bir deger matrisi var. bu deger matrisinden elementler icin olusturdugumuz 4x4 luk matris ile ayni indisteki degerleri, 4x4 luk matriste verilen 15x15 lik matris indisine gidip yaziyoruz. ayni indise sahip degerleri topluyoruz tabii, uzerine yazmaktansa. cok guzel buraya kadar. gelin gorun ki bu is 8 element icin elle olusturulabilir olmasina ragmen 2000 element icin imkansiz. bana oyle bir script lazim ki verdigim element ve node sayisina gore element matrislerini olustursun. eger o matrisleri olusturabilirsem, deger matrisinden degerlerini okutabilip, global matriste yerine yazdirabilirim. isin o kismini yapabilirim saniyorum. lakin bu element matrislerini olusturma isini kafama yatiramadim. nasil yapariz ederiz de olusturabiliriz? her turlu fikire acigim. matlab olmaz da, scilab olur, octave olur, hesap makinesi olur. nasil derseniz. simdiden tesekkur ederim. ha tabii sunu da soylemekte fayda var, comsol bir opsiyon degil su anki sartlar altinda.

 
daha sonra takip edebileyim diye mesaj yazıyorum, bir kaç saat sonra bakarım.


  • kimlanbu  (21.06.10 17:32:48) 
soruyu tam anlamadım, elemanların stiffnes matrislerini assemble etmeye mi çalışıyorsun? eğer öyleyse, geçen sene şöyle bir program yazmıştım. ayıklayabilirsen istediğini, belki işine yarar:

function y=AssembleElements(Element, NNode)
K=zeros(2*NNode, 2*NNode);
for index=1:length(Element)
i=Element(index).n1.index;
j=Element(index).n2.index;
k=Element(index).k;
K(2*i-1,2*i-1)=K(2*i-1,2*i-1)+k(1,1);
K(2*i-1,2*i)=K(2*i-1,2*i)+k(1,2);
K(2*i-1,2*j-1)=K(2*i-1,2*j-1)+k(1,3);
K(2*i-1,2*j)=K(2*i-1,2*j)+k(1,4);
K(2*i,2*i-1)=K(2*i,2*i-1)+k(2,1);
K(2*i,2*i)=K(2*i,2*i)+k(2,2);
K(2*i,2*j-1)=K(2*i,2*j-1)+k(2,3);
K(2*i,2*j)=K(2*i,2*j)+k(2,4);
K(2*j-1,2*i-1)=K(2*j-1,2*i-1)+k(3,1);
K(2*j-1,2*i)=K(2*j-1,2*i)+k(3,2);
K(2*j-1,2*j-1)=K(2*j-1,2*j-1)+k(3,3);
K(2*j-1,2*j)=K(2*j-1,2*j)+k(3,4);
K(2*j,2*i-1)=K(2*j,2*i-1)+k(4,1);
K(2*j,2*i)=K(2*j,2*i)+k(4,2);
K(2*j,2*j-1)=K(2*j,2*j-1)+k(4,3);
K(2*j,2*j)=K(2*j,2*j)+k(4,4);
end
y=K;
end
  • marido  (21.06.10 21:54:06) 
@marido

global stiffness matrix'i bulmaya calisiyorum, dogrudur. gonderdiginiz kodu bir inceleyeyim. tesekkur ederim tekrar.
  • dahicocuk  (22.06.10 02:17:37) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.