बहु-भौतिकी सिमुलेशन के एल्गोरिदम और कार्यान्वयन के लिए सर्वोत्तम अभ्यास क्या हैं?


16

बहु-भौतिकी सिमुलेशन में कई "भौतिकी" युग्मन शामिल होते हैं, अक्सर अलग-अलग स्थान और / या समय के तराजू के साथ। इसके अतिरिक्त, एकल-भौतिकी कोड अक्सर विभिन्न टीमों द्वारा लिखे जाते हैं। सबसे अधिक इस्तेमाल की जाने वाली कपलिंग तकनीक पहली-ऑर्डर ऑपरेटर विभाजन है, लेकिन इसमें खराब सटीकता और स्थिरता गुण हैं। मैं यह कैसे निर्धारित करूं कि कौन सा एल्गोरिदम ब्याज की समस्या के लिए प्रभावी होगा, और मुझे इन एल्गोरिदम को उपलब्ध कराने के लिए अपने सॉफ़्टवेयर की संरचना कैसे करनी चाहिए?

जवाबों:


5

मैं दृढ़ता से पूरी तरह से युग्मित विधानसभा की वकालत करता हूं क्योंकि यह आसानी से ऑपरेटर विभाजन संस्करणों को पुन: पेश कर सकता है। विशेष रूप से, अलग-अलग भौतिकी के लिए अवशिष्ट और याकूबियन की गणना करने वाली दिनचर्या अलग हो सकती है, लेकिन फ्रेमवर्क उन्हें पूरी प्रणाली के लिए एकीकृत अवशिष्ट बनाने में सक्षम होना चाहिए। यह पेट्स कैसे काम करता है।

फिर, ऑपरेटर स्प्लिट सॉल्यूशंस को पूरी तरह से युग्मित प्रणाली के लिए एक पूर्व शर्त के रूप में, या कमांड लाइन से सभी अपने आप में एक सॉल्वर के रूप में उपयोग किया जा सकता है। इसके अलावा, कुछ कपल्स को संरक्षित किया जा सकता है, जबकि अन्य को घृणित किया जा सकता है। PETSc इसे PC FieldSplit इंटरफ़ेस के माध्यम से संभालता है। यह तरल गतिकी के लिए अर्ध-निहित आईसीई जैसे संकर योजनाओं की प्रतिकृति की अनुमति देता है।


5

चूंकि यह शोध का एक बहुत सक्रिय क्षेत्र है, इसलिए मैं इसका उत्तर देने का प्रयास करने में संकोच करता हूं लेकिन मुझे कुछ अनुभव है कि क्या प्रयास नहीं करना है।

नहीं है :

  • पुराने एप्लिकेशन कोड A और पुराने एप्लिकेशन B को लें, फिर उन्हें एक साथ जोड़े रखने का प्रयास करें
  • एक नया अनुप्रयोग बनाने के बजाय, पुरातन का उपयोग करें (hindight में अनुपयोगी) कोड
  • योगदान करने के लिए नए उपयोगकर्ताओं पर एक विशाल ढांचे (> 10 आवश्यक निर्भरता) की आवश्यकता होती है
  • डेटा लेआउट (मेष, मैट्रिक्स, वैक्टर आदि) मान लें कि खुद को लिखना आसान है

करें :

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