आप संख्यात्मक कोड को कैसे डिबग करते हैं, इस ऑसिलेटरी त्रुटि का स्रोत क्या हो सकता है?


16

शांत रूप में बहुत सारी जानकारी प्राप्त की जा सकती है, मुझे अनुभव हो रहा है कि अगर कोई पहले भी ऐसा कुछ देख चुका है तो मैं सोच रहा था। प्लॉट एड्विसिएशन-डिफ्यूजन समीकरण के लिए प्रारंभिक स्थिति (हरा) दिखाता है, फिर पुनरावृत्ति 200 (नीला) पर समाधान और फिर पुनरावृत्ति 400 (लाल) पर।

दोलनशील त्रुटि

उत्तोलन-विसरण समीकरण का हल कुछ पुनरावृत्तियों के बाद फूटता है। Péclet संख्या , और सीएफएल हालत संतुष्ट हो जाता है, सी 0.0015 , तो समीकरण चाहिए स्थिर हो। मुझे अनुमान है कि मेरे पास संख्यात्मक कोड में एक बग है।μ0.07सी0.0015

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

आप अपने संख्यात्मक कोड को कैसे डिबग करते हैं? क्या किसी ने पहले ऐसा कुछ देखा है, जहां एक अच्छी जगह की तलाश शुरू होगी?

अपडेट करें

  • यहाँ मेरी व्यक्तिगत "लैब बुक" शैली नोट है, जो परिवेदना-प्रसार समीकरण के लिए एक परिमित मात्रा विधि को लागू करने के लिए है, http://danieljfarrell.github.io/FVM/
  • पायथन स्रोत कोड यहाँ उपलब्ध है, http://github.com/danieljfarrell/FVM.git

अपडेट करें

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

×

परिमित-प्रसार विधि के माध्यम से बंद सीमा स्थितियों के साथ उत्क्षेप-प्रसार समीकरण।


2
आप किस तरह के विवेक का इस्तेमाल कर रहे हैं? क्या आदेश विधि? आपकी सीमाएँ क्या हैं?
ज्योफ ऑक्सबेरी

धन्यवाद @GeoffOxberry, मैंने अधिक विवरण के साथ अपडेट किया है। यद्यपि वास्तव में यह समझने के लिए कि मैंने क्या किया है आप ऊपर दिए गए गीथब लिंक पर मेरे लैब बुक नोट्स पढ़ सकते हैं।
बॉयफ्रेल

2
θ=0,0.5,1

1
=0<0

जवाबों:


9

मैंने अपना कुछ अनुभव यहाँ संख्यात्मक कोड डीबग करने पर एकत्र किया है: deal.II FAQ: डीबगिंग । मुझे नहीं पता कि क्या इससे आपको इस विशेष मामले में मदद मिली होगी, लेकिन यह दूसरों में हो सकती है।


नमस्ते, यह लिंक टूट गया जब परियोजना चली गई - क्या यह अभी सही है? github.com/dealii/dealii/wiki/…
हाइपरपैलियम

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