पीटीएससी में अनिश्चितकालीन सममित प्रणालियों के लिए कौन से पूर्ववर्ती (और सॉल्वर) का उपयोग करना चाहिए?


12

मेरा सिस्टम लैग्रेंज मल्टीप्लायरों के साथ एक सममित एफई समस्या है (उदाहरण के लिए अयोग्य स्टोक्स का प्रवाह):

(ABTBC)

जहाँ विशिष्ट मामला है (मैंने यह भी सुनिश्चित किया है कि समीकरणों को क्रमांकित किया जाए ताकि लैगरेंज गुणक अंतिम दिखाई दें)। प्रणाली काफी बड़ी है (+ 100k लाइनें)।C=0

इस प्रश्न का उत्तर पढ़ने के बाद , मुझे यह धारणा दी गई कि उपयुक्त पूर्व शर्त हैं जो मिश्रित FE- समस्याओं के लिए उपयोग किए जा सकते हैं।

PETSc का उपयोग करते हुए, मैंने सिस्टम को MINRES ( -ksp_type minres -pc_type none -mat_type sbaij) के साथ हल करने में कामयाबी हासिल की है , हालांकि परिशुद्धता महान नहीं है (एक रैखिक समस्या के लिए कई न्यूटन-पुनरावृत्तियों के कारण)। Preonditioner और ksp-solver का कोई अन्य संयोजन काम नहीं करता है।

क्या PETSc के लिए झंडे का कोई संयोजन है जो इस प्रणाली को सिर्फ MINRES की तुलना में तेज़ी से हल करेगा?


1
SciComp SE में आपका स्वागत है! आपका प्रश्न स्पष्टता और व्यापकता के संदर्भ में अच्छी तरह से प्रस्तुत किया गया है। केवल एक वाक्य कुछ अस्पष्ट या अधूरा है: आपका क्या मतलब है जो कि अभिकलन संगणना के कारण होता है?
जन

1
मैं वाक्य खत्म करना भूल गया! मुझे उम्मीद है कि यह अब स्पष्ट है।
मिकेल

जवाबों:


13

चेतावनी

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

सैडल पॉइंट समस्याओं का समाधान

आप उपयोगकर्ता के मैनुअल में ब्लॉक मैट्रिसेस को हल करने पर अनुभाग के साथ शुरू कर सकते हैं । स्टोक्स जैसी समस्याओं के लिए, आप PCFIELDSPLIT का उपयोग करके एक Schur पूरक पूर्व शर्त का निर्माण कर सकते हैं ।

-pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_detect_saddle_point

यह शूर पूरक ( ) के लिए कम से कम एक वर्ग चौकोर कम्यूटेटर पूर्ववर्ती के साथ जोड़ा जा सकता है -fieldsplit_1_pc_type lsc। यह सामान्य है -fieldsplit_1_ksp_type preonlyऔर बाहरी पुनरावृत्ति को अधिकांश कार्य करने देता है। ब्लॉक-त्रिकोणीय वेरिएंट लोकप्रिय हैं जब इस तरह से उपयोग किया जाता है, जैसे -pc_fieldsplit_schur_fact_type upper

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

कई समस्याओं के लिए, आप क्षेत्र अपघटन को अनुकूलित करना चाहते हैं और शूर पूरक पूर्ववर्तियों को पूरक करते हैं, जिनमें से कई सहायक ऑपरेटर शामिल हैं। उदाहरण के लिए, एल्मन एट अल से "दबाव संवहन-प्रसार" (PCD) विधि को दबाव स्थान में एक सहायक ऑपरेटर के विवेक की आवश्यकता होती है। इस उद्देश्य के लिए PCSHELL और उपयोगकर्ता के मैनुअल अनुभाग के उदाहरण देखें ।


3

आप एक पूर्वगामी चाहते हैं, और एक के निर्माण पर यहां चर्चा की गई है: http://www.math.tamu.edu/~bangerth/videos.676.38.html


व्याख्यान बहुत रोचक था, लेकिन मैं कुछ ठोस उदाहरणों की तलाश कर रहा था कि पेट्सक का उपयोग कैसे किया जाए।
मिकेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.