बीजगणितीय मल्टीग्रिड कोड


9

मैं बीजगणितीय मल्टीग्रिड विधियों (एएमजी) के कार्यान्वयन के बारे में अधिक जानकारी को समझना चाहूंगा। मैं "एक मल्टीग्रिड ट्यूटोरियल" पढ़ रहा हूं, जो काफी अच्छा है और एएमजी के लिए प्रक्षेप, मोटे-ग्रिड ऑपरेटर और मोटे ग्रिड चयन के सभी विवरणों की व्याख्या करता है। हालांकि, मुझे लगता है, एक कोड को पढ़ने और पढ़ने के आसपास ऐसा कुछ नहीं है।

इसलिए, मैं यह पूछना चाहता हूं कि क्या कोई भी शास्त्रीय एएमजी "उदाहरण कोड" जानता है, जैसे कि एसएफ मैककॉर्मिक द्वारा "मल्टीग्रिड मेथड्स" (एसआईएएम) के अंत में उपलब्ध ज्यामितीय मल्टीग्रिड फोरट्रान कोड। विधि के बारे में अधिक जानने के लिए बूमरैमजी जैसे उच्च गुणवत्ता और उत्पादन कोड प्राप्त करना काफी कठिन है।


क्या आप विशेष रूप से शास्त्रीय एएमजी में रुचि रखते हैं (* स्मूथ एकत्रीकरण के विपरीत)? यदि हां, तो कृपया प्रश्न में यह बताएं।
जेड ब्राउन

जवाबों:


10

बूमरैमजी हाइपर पैकेज का एक हिस्सा है , जिसे हासिल करना आसान है। बहुत कम जटिल कोड यदि आप इन विधियों को देख रहे हैं, तो आप PyAMG हो सकते हैं ।


हां, मुझे PyAMG पर एक नज़र थी, जो एक बहुत अच्छा कोड है, लेकिन इसमें पायथन में C / C ++ कोड लपेटने के बारे में यह सब सामान है, यह "शास्त्रीय" एक के अलावा अन्य एएमजी विधियों को लागू करता है, और इसी तरह। मैं कुछ सरल खोज रहा था, जिसका उपयोग लोग शिक्षण के लिए करते हैं।
बर्नार्डो MR

4
दुर्भाग्य से, एएमजी कोड में योगदान करने का प्रयास करने के साथ सामान्य अनुभव यह है कि यदि आपके पास विकल्पों की भीड़ नहीं है, तो आप एक दिलचस्प समस्या का सामना करने वाले कुछ भी हल करने में सक्षम नहीं हैं। इसलिए, आपके विशिष्ट एएमजी पैकेज में कनेक्टिविटी सन्निकटन, प्रक्षेप निर्माण और चौरसाई के लिए कई विकल्प शामिल होंगे जो कोड रीडिंग द्वारा पार्स करना निश्चित रूप से कठिन है। यह कहा जा रहा है, शास्त्रीय एएमजी मृत सरल है, और इसे स्वयं लागू करना या आपके छात्रों को स्वयं ऐसा करने की कोशिश करना (उनके कौशल स्तर के आधार पर) जाने का रास्ता हो सकता है।
पीटर ब्रूने

2

मैं अल्फियो बोरिज़ी के बीजगणितीय बहुविधि पद्धति से परिचय की अत्यधिक अनुशंसा करता हूं । परिशिष्ट A में एक नमूना फोरट्रान 77 कोड है।


मुझे लगता है कि वह कार्यान्वयन के बारे में पूछ रहा है, अधिक साहित्य नहीं।
जैक पॉल्सन

1
@JackPoulson: इसका परिशिष्ट में कार्यान्वयन है।
पॉल

2
क्षमा करें, जाहिरा तौर पर मैं आज सुबह नहीं पढ़ सकता। Upvoted।
जैक पॉल्सन

1
@Paul: मैं गलत हो सकता हूं, लेकिन मुझे लगता है कि यह पॉइसन समस्या के लिए एक ज्यामितीय मल्टीग्रिड कोड है (जो नॉनलाइन केस के लिए भी काम करता है)।
बर्नार्डो MR

@ बर्नार्डो एम। आर।: मुझे अभी यह पोस्टस्क्रिप्ट फ़ाइल मिली ... इसमें मॉडल समस्याओं के लिए लंबे समय तक चलने और प्रतिबंध लगाने के ठोस उदाहरण हैं। यह वास्तव में एक पूर्ण कोड नहीं है, लेकिन यह अभी भी आप के लिए कुछ काम का हो सकता है।
पॉल

1

एमएल पैकेज भी है जो ट्रिलिनो का हिस्सा है। इसकी प्रतिष्ठा उतनी ही अच्छी है जितनी कि बूमरैमजी / हाईप्रो।

एएमजी के लिए एक नए ट्रिलिनो पैकेज को म्यूएलु कहा जाता है, मेरा मानना ​​है कि, और अधिक हालिया रिलीज में भी उपलब्ध होना चाहिए।

ये सभी खुले स्रोत हैं।


1
मुएलु को रिलीज़ नहीं किया गया है और पिछली बार जब मैंने उनसे बात की थी, रे को एक और साल के लिए सार्वजनिक रिलीज़ की उम्मीद नहीं थी। ध्यान दें कि ML और MueLu (इस सीमा तक कि मैंने जो सुना है उसमें क्या है) स्मूथ एकत्रीकरण पर आधारित है जो शास्त्रीय AMG से अलग एल्गोरिथ्म है (जिस पर BoomerAMG आधारित है)।
जेड ब्राउन

1

मैं थोड़ी देर के लिए इस कार्यान्वयन पर काम कर रहा हूं । यह पायथन / Numpy / Scipy है। यह बीजगणितीय मल्टीग्रिड नहीं है - आपको अपने स्वयं के प्रतिबंध ऑपरेटर की आपूर्ति करनी होगी। लेकिन अगर यह एक शिक्षा कार्यान्वयन है जिसमें आप रुचि रखते हैं, तो मैं ऐसी क्षमता जोड़ने के लिए कुछ पुल अनुरोधों का स्वागत करूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.