PME
dosyalari .msh
uzantilidir. P parçaya bölünmüs dagitik bir grid
dosya.0.msh
, dosya.1.msh
, ...
, dosya.P-1.msh
seklinde
muhafaza edilir. Bu dosyalar ilgili islemciler üzerinde muhafaza edilmesi
gerekmektedir. Örnegin, dosya.0.msh
, 0'inci islemcide,
dosya.1.msh
1'inci islemcide vs.
PME
dosyasinin ilk satiri, PME
'nin versiyonunu belirler:
# pme version 1.0
Ikinci satirda ise varlik sayilari verilmektedir. Burada 4 tane
sayi verilmistir. Bunlar sirasiyla söyledir:
Nokta-sayisi Kenar-sayisi Yüz-sayisi Bölge-sayisi
Üçüncü satirda iki rakam bulunmaktadir. Birinci rakam yüz varligi üzerinde kaç tane kenar bulundugunu gösterir. Ikinci rakam ise bölge üzerinde kaç tane yüz bulundugunu gösterir.
Dördüncü satirda ise ikinci satirdaki sayilara benzer sayilar bulunmaktadir. Fakat, buradaki sayilar gridin geometrik model sinirlari üzerindeki varliklarin sayilarini göstermektedir. Besinci satirda benzer bir sekilde parçalanmis gridin (parça) sinirlari üzerindeki varlik sayilarini verir (nokta sayisi, kenar sayisi ve yüz sayisi).
Daha sonra ilk olarak nokta listesine yer verilir. Nokta listesinin
her satirinda ,
ve
kordinatlari bulunur.
Nokta listesinden sonra kenar listesine yer verilir. Kenar listesinin
her satirinda iki sayi bulunmaktadir. Bunlarin her biri bir noktayi
belirtir. Örnegin, 3 sayisi varsa, bu nokta listesinde 3'üncü nokta
anlamindadir. Kullanilan endeksler 1'den baslamaktadir - örnegin
1'inci nokta, ikinci nokta vs.
Kenar listesinden sonra yüz listesi vardir. Yüz listesinin her satirinda
üç sayi bulunmaktadir. Bu sayilar kenarlarin sayisidir. Bu sayilar
pozitif veya negatif olarak verilmistir. Bu sayilarin mutlak degeri
kaçinci kenarin kullanildigini belirtir. Bir üçgen kenarlarin
tutarli bir siralamasi ile tanimlanir. Tutarli siralama kenarlarin
tutarli (ayni) yönde bir dolasim ile yapilir. Referans dolasim ise sag elin
ters saat yönünde dolasimi olarak alinmistir. Eger üçgen tarafindan
kullanilan bir kenarin noktalari kenar taniminda kullanilan sira ile
ayni ise kenar pozitif olarak yazilir. Eger ters yönde ise negatif olarak
yazilir. Üç boyutlu gridlerde bölgelerinde tutarli bir sekilde
yüz kullanimi tanimlanmalidir. Bu tanimlama söyledir: yüzü tanimlayan
sag el dolasim dikeyi bölge içerisine isaret ediyorsa yüz sayisi negatif
olarak yazilir. Eger dikey bölge disarisina isaret ediyorsa
yüz sayisi pozitif olarak yazilir.
Bu yönlerin PME
'de belirtik olarak muhafaza edilmesinin sebebi hem
yerel dolasim listelerinin hazirlanmasinda kolaylik, hemde sonlu
eleman hesaplamalarinda (örnegin belirten (determinant) hesaplamalarinda )
gerekli olmasidir.
Yüzlerde tanimlandiktan sonra, eger grid 3 boyutlu ise bölgelerin tanimi gelir. Bölgeler yüzlerle tanimlanir. Bölgelerin tanimindan sonra ise parça sinir varlik sahiplikleri gelir. Besinci satirda sayilari belirtilen parça sinir varliklarinin sahiplikleri sirasiyla noktalar, kenarlar ve yüzler olmak üzere verilir. Her bir satirda üç rakam bulunmaktadir:
Sahip-islemci Sahip-islemcideki-varlik-endeksi Kullanici-islemci-varlik-endeksi
Parça sinirindaki bir varlik birden fazla islemci tarafindan kullanilabilir (ve muhafaza) edilebilir. Böyle olunca bu varlikla ilgili islemlerden sorumlu olacak tek bir sahip tanimlanmistir. Bu sahiplik kavrami paralel sonlu eleman hesaplamalarinda ve paralel derleyecilerde sahip hesaplar kurali adi altinda yaygin olarak kullanilan bir paradigimdir.
Dosya biçimlerine örnek olarak Sekil 1(a)'deki kare gridin
dosyasi asagida verilmistir. Burada bütün grid 0 sayili islemci üzerindedir.
Sekil 3(a)'da varlik sayilari verilmistir. Sekil 3(b)'de ise 1'inci
ücgen taniminda sag el kuralinin uygulanisi gösterilmektedir. Grid
doyasi icerisinde 1'inci üçgen tanimi -5 -4 15
olarak
verilmistir. Sekil 3(b)'dende görüldügü gibi 5'inci ve 4'üncü kenarlar
ters yönde kullanilmistir. Bundan dolayi dosyada negatif olarak
yazilmistir.
# pme version 1.0 9 16 8 0 3 0 8 8 0 0 0 0 0 -1.0 1.0 0.0 0.0 1.0 0.0 1.0 1.0 0.0 -1.0 0.0 0.0 0.0 0.0 0.0 -1.0 -1.0 0.0 1.0 0.0 0.0 0.0 -1.0 0.0 1.0 -1.0 0.0 9 8 8 6 6 4 4 1 1 2 2 3 3 7 7 9 8 5 5 4 7 5 5 2 8 4 8 7 4 2 2 7 -5 -4 15 -3 -2 13 -7 -6 16 -10 12 -15 9 10 -13 -12 -11 -16 11 -9 14 -1 -8 -14 0 3 1 1 3 2 0 4 3 1 2 4 0 2 6 1 4 7 1 1 8 0 1 9 1 1 1 1 1 2 1 2 3 1 2 4 1 3 5 1 3 6 1 4 7 1 4 8
Yukaridaki grid 4 parçaya bölününce sirasiyla 0,1,2,3 islemcileri
için kare.0.msh
,kare.1.msh
,
kare.2.msh
,
kare.3.msh
dosyalarinda asagidaki sekilde muhafaza edilir. Bu parçalamada kullanilan
varlik sahiplikleri
Sekil 4'de kalin (koyu) nokta ve çizgilerle gösterilmistir.
kare.0.msh
dosyasi:
# pme version 1.0 4 5 2 0 3 0 3 2 0 0 3 2 0 -1.0 0.0 0.0 0.0 0.0 0.0 -1.0 -1.0 0.0 0.0 -1.0 0.0 4 3 3 1 4 2 2 1 4 1 -2 -1 5 3 4 -5 1 2 1 0 2 3 1 1 4 1 1 1 1 2 2 0 4 4 2 4 2 1 2 1 2 5 3 0 4 4
kare.1.msh
dosyasi:
# pme version 1.0 4 5 2 0 3 0 3 2 0 0 3 2 0 0.0 1.0 0.0 -1.0 0.0 0.0 -1.0 1.0 0.0 0.0 0.0 0.0 3 1 2 3 2 1 4 2 4 1 -1 -2 3 -4 5 -3 1 3 1 1 2 2 0 3 3 1 3 1 1 2 2 1 1 1 1 2 2 2 4 4 0 4 4 3 4 5
kare.2.msh
dosyasi:
# pme version 1.0 4 5 2 0 3 0 3 2 0 0 3 2 0 0.0 -1.0 0.0 1.0 0.0 0.0 1.0 -1.0 0.0 0.0 0.0 0.0 3 1 2 3 1 2 2 4 1 4 -1 -2 -3 4 -5 3 1 1 1 1 4 2 0 1 3 1 1 1 1 4 2 2 4 4 3 1 2 0 4 1 2 5 5 2 4 4
kare.3.msh
dosyasi:
# pme version 1.0 4 5 2 0 3 0 3 2 0 0 3 2 0 1.0 0.0 0.0 0.0 1.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 3 1 2 3 2 1 4 2 1 4 -1 -2 3 -4 -5 -3 1 4 1 1 3 2 0 4 3 1 4 1 1 3 2 1 1 2 2 4 4 3 1 1 2 4 5 3 4 4