วิทยาศาสตร์การคำนวณ

ถามตอบสำหรับนักวิทยาศาสตร์ที่ใช้คอมพิวเตอร์เพื่อแก้ปัญหาทางวิทยาศาสตร์

10
คำแนะนำสำหรับไลบรารีเมทริกซ์ C ++ ที่ใช้งานได้เร็วหรือไม่
ไม่มีใครมีคำแนะนำเกี่ยวกับห้องสมุดเมทริกซ์ C ++ ที่ใช้งานได้เร็วหรือไม่? สิ่งที่ฉันหมายถึงโดยใช้งานได้ดังต่อไปนี้: วัตถุ Matrix มีส่วนต่อประสานที่ใช้งานง่าย (เช่น: ฉันสามารถใช้แถวและคอลัมน์ขณะทำดัชนี) ฉันสามารถทำอะไรกับคลาสเมทริกซ์ที่ฉันสามารถทำได้กับ LAPACK และ BLAS ง่ายต่อการเรียนรู้และใช้ API ค่อนข้างลำบากในการติดตั้งใน Linux (ตอนนี้ฉันใช้ Ubuntu 11.04) สำหรับฉันแล้วการใช้งานมีความสำคัญมากกว่าความเร็วหรือการใช้หน่วยความจำในขณะนี้เพื่อหลีกเลี่ยงการปรับให้เหมาะสมก่อนวัย ในการเขียนรหัสฉันสามารถใช้อาร์เรย์ 1 มิติ (หรือเวกเตอร์ STL) และดัชนีหรือตัวชี้ที่เหมาะสมเพื่อจำลองเมทริกซ์ แต่ฉันไม่ต้องการหลีกเลี่ยงข้อบกพร่อง ฉันยังต้องการที่จะมุ่งเน้นความพยายามของจิตกับปัญหาที่เกิดขึ้นจริงฉันพยายามที่จะแก้ปัญหาและโปรแกรมลงในโดเมนปัญหาแทนที่จะใช้ส่วนหนึ่งของความสนใจ จำกัด ของฉันที่จะจำเคล็ดลับการเขียนโปรแกรมเล็ก ๆ ทั้งหมดที่ฉันใช้ และจำคำสั่ง LAPACK และอื่น ๆ ยิ่งรหัสน้อยที่ฉันต้องเขียนและยิ่งมีมาตรฐานมากเท่าไหร่ก็ยิ่งดีเท่านั้น ความหนาแน่นเมื่อเทียบกับหร็อมแหร็มยังไม่สำคัญ; เมทริกซ์บางตัวที่ฉันติดต่อด้วยจะเบาบาง แต่ไม่ใช่ทั้งหมด อย่างไรก็ตามถ้าแพ็คเกจใดจัดการกับเมทริกซ์ที่หนาแน่นหรือกระจัดกระจายได้ดีก็น่าจะกล่าวถึง การสร้างเทมเพลตก็ไม่สำคัญสำหรับฉันเช่นกันเนื่องจากฉันจะทำงานกับประเภทตัวเลขมาตรฐานและไม่จำเป็นต้องเก็บสิ่งอื่นใดนอกจากเป็นสองเท่าทุ่นหรือ ints เป็นเรื่องดี แต่ไม่จำเป็นสำหรับสิ่งที่ฉันต้องการจะทำ

14
การเขียนแบบทดสอบหน่วยสำหรับรหัสการวิจัยทางวิทยาศาสตร์ถือว่าคุ้มค่าหรือไม่
ฉันเชื่อมั่นอย่างยิ่งถึงคุณค่าของการใช้การทดสอบที่ตรวจสอบโปรแกรมที่สมบูรณ์ (เช่นการทดสอบการบรรจบกัน) รวมถึงชุดการทดสอบการถดถอยแบบอัตโนมัติ หลังจากอ่านหนังสือการเขียนโปรแกรมฉันได้รับความรู้สึกที่ดุด่าว่าฉัน "ควร" เขียนการทดสอบหน่วย (เช่นการทดสอบที่ตรวจสอบความถูกต้องของฟังก์ชั่นเดียวและไม่ต้องใช้รหัสทั้งหมดในการแก้ปัญหา) . อย่างไรก็ตามการทดสอบหน่วยดูเหมือนจะไม่เหมาะสมกับรหัสทางวิทยาศาสตร์เสมอไปและท้ายที่สุดก็รู้สึกประดิษฐ์หรือเสียเวลา เราควรเขียนการทดสอบหน่วยสำหรับรหัสการวิจัยหรือไม่

10
มีปัญหาอะไรบ้างที่ให้ผลดีกับการคำนวณ GPU
ดังนั้นฉันมีหัวที่ดีสำหรับปัญหาที่ฉันทำงานด้วยเป็นหนึ่งที่ดีที่สุดในอนุกรมและที่สามารถจัดการในแบบคู่ขนาน แต่ตอนนี้ฉันไม่ได้มีความคิดอะไรมากเกี่ยวกับสิ่งที่จัดการได้ดีที่สุดโดยการคำนวณโดยใช้ CPU และสิ่งที่ควรลดการใช้ GPU ฉันรู้ว่ามันเป็นคำถามพื้นฐาน แต่การค้นหาส่วนใหญ่ของฉันได้ถูกจับในผู้คนอย่างชัดเจนเรียกร้องให้หนึ่งหรืออื่น ๆ โดยไม่ต้องพิสูจน์ว่าทำไมจริงหรือค่อนข้างกฎของหัวแม่มือที่คลุมเครือ กำลังมองหาคำตอบที่มีประโยชน์มากขึ้นที่นี่
84 gpu 

17
มีตัวแก้ปัญหาการเขียนโปรแกรมแบบไม่เชิงเส้นคุณภาพสูงสำหรับ Python หรือไม่?
ฉันมีปัญหาการเพิ่มประสิทธิภาพทั่วโลกที่ไม่ท้าทายเพื่อแก้ปัญหา ปัจจุบันผมใช้กล่องเครื่องมือเพิ่มประสิทธิภาพของ MATLAB (โดยเฉพาะfmincon()กับอัลกอริทึม = 'sqp') ซึ่งมีประสิทธิภาพมาก อย่างไรก็ตามรหัสของฉันส่วนใหญ่อยู่ใน Python และฉันก็ชอบที่จะเพิ่มประสิทธิภาพใน Python ด้วยเช่นกัน มีตัวแก้ NLP ที่มีการผูก Python ที่สามารถแข่งขันได้fmincon()หรือไม่ มันจะต้อง สามารถรับมือกับความไม่เสมอภาคและความไม่เท่าเทียมกันได้ ไม่ต้องการให้ผู้ใช้จัดหายาโคบ ไม่เป็นไรหากไม่รับประกันว่าจะมีประสิทธิภาพระดับโลก ( fmincon()ไม่) fmincon()ฉันกำลังมองหาบางสิ่งบางอย่างที่ทนทานลู่ไปยังท้องถิ่นที่เหมาะสมแม้สำหรับความท้าทายปัญหาและแม้ว่ามันจะช้ากว่าเล็กน้อย ฉันได้พยายามแก้หลายที่ให้บริการผ่าน OpenOpt และพบว่าพวกเขาจะด้อยกว่าของ fmincon/sqpMATLAB เพียงเพื่อเน้นฉันมีสูตรเวิ้งว้างและแก้ปัญหาที่ดี เป้าหมายของฉันคือการเปลี่ยนภาษาเพื่อให้เวิร์กโฟลว์มีความคล่องตัวมากขึ้น เจฟฟ์ชี้ให้เห็นว่าคุณลักษณะบางอย่างของปัญหาอาจเกี่ยวข้องกัน พวกเขาคือ: 10-400 ตัวแปรการตัดสินใจ 4-100 ข้อ จำกัด ความเท่าเทียมกันของพหุนาม (ดีกรีพหุนามมีช่วงตั้งแต่ 1 ถึงประมาณ 8) จำนวนข้อ จำกัด ของความไม่เท่าเทียมกันที่มีเหตุผลเท่ากับจำนวนตัวแปรการตัดสินใจประมาณสองเท่า ฟังก์ชั่นวัตถุประสงค์เป็นหนึ่งในตัวแปรการตัดสินใจ ชาวจาโคเบียนแห่งข้อ จำกัด ความเท่าเทียมมีความหนาแน่นสูงเช่นเดียวกับชาวจาโคเบียนแห่งข้อ จำกัด ...

6
คอมไพเลอร์ของ Fortran นั้นดีกว่าจริง ๆ
คำถามนี้เป็นส่วนขยายของการสนทนาสองครั้งที่เกิดขึ้นเมื่อเร็ว ๆ นี้ในการตอบกลับไปยัง " C ++ vs Fortran สำหรับ HPC " และมันเป็นความท้าทายมากกว่าคำถาม ... หนึ่งในข้อโต้แย้งที่ได้ยินบ่อยที่สุดในความโปรดปรานของ Fortran คือคอมไพเลอร์ดีกว่า เนื่องจากคอมไพล์เลอร์ C / Fortran ส่วนใหญ่ใช้แบ็คเอนด์เดียวกันรหัสที่สร้างขึ้นสำหรับโปรแกรมที่เทียบเท่ากันทางความหมายในทั้งสองภาษาจึงควรเหมือนกัน เราอาจโต้แย้งได้ว่า C / Fortran นั้นคอมไพเลอร์เพื่อเพิ่มประสิทธิภาพมากขึ้น / น้อยลง ดังนั้นฉันจึงตัดสินใจลองทดสอบง่ายๆ: ฉันได้รับสำเนาของdaxpy.fและdaxpy.cและรวบรวมพวกเขาด้วย gfortran / gcc ตอนนี้ daxpy.c เป็นเพียงการแปล f2c ของ daxpy.f (โค้ดที่สร้างขึ้นโดยอัตโนมัติน่าเกลียดเหมือน heck) ดังนั้นฉันจึงเอาโค้ดนั้นและทำความสะอาดมันเล็กน้อย (พบ daxpy_c) ซึ่งโดยทั่วไปหมายถึงการเขียนลูปด้านในสุดเป็น for ( i = 0 ...
74 fortran  c  blas  benchmarking 

10
อะไรคือกลยุทธ์ที่ดีสำหรับการปรับปรุงประสิทธิภาพของรหัสของฉัน
ฉันทำงานในวิทยาศาสตร์การคำนวณและด้วยเหตุนี้ฉันจึงใช้เวลาไม่มากกับการพยายามเพิ่มปริมาณงานทางวิทยาศาสตร์ของรหัสจำนวนมากรวมทั้งการทำความเข้าใจประสิทธิภาพของรหัสเหล่านี้ สมมติว่าฉันได้ประเมินประสิทธิภาพเทียบกับความสามารถในการอ่าน / การใช้ซ้ำได้ / การบำรุงรักษาที่ไม่ดีของซอฟต์แวร์ที่ฉันกำลังทำงานอยู่และฉันได้ตัดสินใจแล้วว่าถึงเวลาแล้วที่จะต้องมีประสิทธิภาพ สมมติว่าฉันรู้ว่าฉันไม่มีอัลกอริทึมที่ดีกว่าสำหรับปัญหาของฉัน (ในแง่ของฟลอพ / s และแบนด์วิดท์หน่วยความจำ) คุณสามารถสมมติว่ารหัสฐานของฉันเป็นภาษาระดับต่ำเช่น C, C ++ หรือ Fortran สุดท้ายสมมติว่าไม่มีการขนานในโค้ดหรือว่าเราสนใจเพียงประสิทธิภาพในแกนเดียวเท่านั้น อะไรคือสิ่งสำคัญที่สุดที่ควรลองก่อน ฉันจะรู้ได้อย่างไรว่าได้ประสิทธิภาพมากแค่ไหน?

12
C ++ vs Fortran สำหรับ HPC
ในโปรแกรมปริญญาเอกวิทยาศาสตร์การคำนวณของเราเราทำงานเกือบเฉพาะใน C ++ และ Fortran ดูเหมือนว่าอาจารย์บางคนชอบมากกว่าคนอื่น ฉันสงสัยว่าอันไหนดีกว่าหรือในอันใดอันหนึ่งดีกว่าในบางกรณี
56 hpc  fortran  c++  languages 

5
ฉันจะใช้ FFT ของข้อมูลที่มีระยะห่างไม่เท่ากันได้อย่างไร
ฟูริเยร์ได้อย่างรวดเร็วเปลี่ยนขั้นตอนวิธีการคำนวณการสลายตัวฟูริเยร์ภายใต้สมมติฐานว่าจุดปัจจัยการผลิตมีระยะห่างเท่า ๆ กันในโดเมนเวลา, T เกิดอะไรขึ้นถ้าพวกเขาไม่ได้? มีอัลกอริทึมอื่นที่ฉันสามารถใช้หรือบางวิธีที่ฉันสามารถแก้ไข FFT เพื่อบัญชีสำหรับอัตราการสุ่มตัวอย่างตัวแปรที่มีประสิทธิภาพคืออะไร?เสื้อk= k Ttk=kTt_k = kT หากวิธีการแก้ปัญหาขึ้นอยู่กับวิธีการกระจายตัวอย่างมีสองสถานการณ์ที่ฉันสนใจมากที่สุด: อัตราการสุ่มตัวอย่างคงที่ด้วยกระวนกระวายใจ: โดยที่δ t kเป็นตัวแปรกระจายแบบสุ่ม สมมติว่าปลอดภัยที่จะพูด| δ t k | &lt; T / 2เสื้อk= k T+ δเสื้อktk=kT+δtkt_k = kT + \delta t_kδtkδtk\delta t_k|δtk|&lt;T/2|δtk|&lt;T/2|\delta t_k| < T/2 ตัวอย่างลดลงจากอัตราการสุ่มตัวอย่างคงที่: โดยที่n k ∈ Z ≥ ktk=nkTtk=nkTt_k = n_k Tnk∈Z≥knk∈Z≥kn_k \in\mathbb{Z}\ge k ...

4
โครงการภาษาวิทยาศาสตร์คอมพิวเตอร์“ Julia” มีความเป็นผู้ใหญ่เพียงใด
ฉันกำลังพิจารณาการเรียนรู้ภาษาใหม่เพื่อใช้สำหรับโครงการสร้างแบบจำลองเชิงตัวเลข / จำลองเป็นการแทนที่ (บางส่วน) สำหรับ C ++ และ Python ที่ฉันใช้อยู่ในปัจจุบัน ฉันเจอจูเลียซึ่งฟังดูสมบูรณ์แบบ ถ้ามันทำทุกอย่างที่อ้างฉันสามารถใช้มันเพื่อแทนที่ทั้ง C ++ และ Python ในทุกโปรเจคของฉันเพราะมันสามารถเข้าถึงโค้ดไลบรารี่การคำนวณทางวิทยาศาสตร์ระดับสูง (รวมถึง PyPlot) ได้ ฉันจะได้รับประโยชน์จากสิ่งต่าง ๆ เช่น coroutines ที่เหมาะสมซึ่งไม่มีในภาษาอื่น อย่างไรก็ตามมันเป็นโครงการที่ค่อนข้างใหม่ในปัจจุบันที่เวอร์ชัน 0.x และฉันพบคำเตือนต่าง ๆ (โพสต์ตามวันที่ต่าง ๆ ในอดีต) ว่ายังไม่พร้อมสำหรับการใช้งานแบบวันต่อวัน ดังนั้นฉันต้องการข้อมูลบางอย่างเกี่ยวกับสถานะของโครงการในขณะนี้ (กุมภาพันธ์ 2014 หรือเมื่อใดก็ตามที่มีการโพสต์คำตอบ) เพื่อช่วยฉันประเมินว่าส่วนตัวฉันควรพิจารณาลงทุนเวลาเพื่อเรียนรู้ภาษาในขั้นตอนนี้หรือไม่ ฉันอยากจะขอบคุณคำตอบที่มุ่งเน้นไปที่ข้อเท็จจริงที่เกี่ยวข้องเฉพาะเกี่ยวกับโครงการจูเลีย ; ฉันไม่ค่อยสนใจความเห็นจากประสบการณ์กับโครงการอื่น โดยเฉพาะอย่างยิ่งความคิดเห็นโดย Geoff Oxberry แสดงให้เห็นว่า Julia API ยังคงอยู่ในสถานะฟลักซ์ทำให้ต้องมีการอัพเดทโค้ดเมื่อมีการเปลี่ยนแปลง ฉันต้องการทราบถึงขอบเขตของกรณีนี้ว่าพื้นที่ใดของ API ...

17
เป็นเรื่องปกติที่จะไม่ใช้ไลบรารีสำหรับอัลกอริธึมเชิงตัวเลขมาตรฐานและทำไม
จำนวนมากของขั้นตอนวิธีเชิงตัวเลข (บูรณาการความแตกต่างของการแก้ไขฟังก์ชั่นพิเศษอื่น ๆ ) ที่มีอยู่ในห้องสมุดการคำนวณทางวิทยาศาสตร์เช่นGSL แต่ฉันมักจะเห็นรหัสด้วยการใช้งาน "มือรีด" ของฟังก์ชั่นเหล่านี้ สำหรับโปรแกรมขนาดเล็กที่ไม่ได้มีไว้สำหรับการเผยแพร่สู่สาธารณะเป็นเรื่องธรรมดาในหมู่นักวิทยาศาสตร์ด้านการคำนวณที่จะใช้อัลกอริธึมเชิงตัวเลขด้วยตัวคุณเอง (ซึ่งฉันหมายถึงการคัดลอกหรือถอดความจากเว็บไซต์ ถ้าเป็นเช่นนั้นมีเหตุผลพิเศษไหมที่จะหลีกเลี่ยงการเชื่อมโยงกับบางสิ่งบางอย่างเช่น GSL หรือเป็น "ประเพณี" มากกว่าสิ่งอื่นใดอีกหรือไม่ ฉันถามเพราะฉันเป็นแฟนตัวยงของการใช้รหัสซ้ำซึ่งจะแนะนำว่าฉันควรพยายามใช้การใช้งานที่มีอยู่เมื่อเป็นไปได้ แต่ฉันสงสัยว่ามีเหตุผลที่หลักการมีประโยชน์น้อยกว่าในการคำนวณทางวิทยาศาสตร์มากกว่าในการเขียนโปรแกรมทั่วไปหรือไม่ ลืมพูดถึง: ฉันถามเฉพาะเกี่ยวกับ C และ C ++ ตรงข้ามกับภาษาเช่น Python ที่มีประโยชน์ชัดเจน (ความเร็วของการดำเนินการ) เพื่อใช้ห้องสมุด
54 libraries  c 

7
ทักษะหลักใดที่นักวิทยาศาสตร์การคำนวณควรมี [ปิด]
นักวิทยาศาสตร์ทุกคนจำเป็นต้องรู้เกี่ยวกับสถิติเล็กน้อย: ความหมายถึงความสัมพันธ์กันคืออะไรช่วงความมั่นใจคืออะไร ในทำนองเดียวกันนักวิทยาศาสตร์ทุกคนควรรู้เล็กน้อยเกี่ยวกับการคำนวณ: คำถามคืออะไร มีเหตุผลอะไรที่จะคาดหวังให้นักวิทยาศาสตร์ที่ทำงานทุกคนรู้เกี่ยวกับการสร้างและการใช้ซอฟต์แวร์ รายการทักษะหลักของเรา --- สิ่งที่ผู้คนควรรู้ก่อนที่พวกเขาจะแก้ไขปัญหาอะไรกับ "คลาวด์" หรือ "พีต้า" ในชื่อ --- คือ: การเขียนโปรแกรมพื้นฐาน (ลูป, เงื่อนไข, รายการ, ฟังก์ชั่นและไฟล์ I / O) สคริปต์เชลล์ / พื้นฐานเชลล์ การควบคุมเวอร์ชัน ทดสอบโปรแกรมมากแค่ไหน SQL พื้นฐาน มีจำนวนมากที่ไม่ได้อยู่ในรายการนี้: การเขียนโปรแกรมเมทริกซ์ (MATLAB, NumPy, และอื่น ๆ ), สเปรดชีตเมื่อใช้งานได้ดีพวกเขามีประสิทธิภาพเทียบเท่ากับภาษาโปรแกรมส่วนใหญ่) เครื่องมืออัตโนมัติสำหรับงานเช่น Make และอื่น ๆ ดังนั้น: มีอะไรอยู่ในรายการของคุณ ? คุณคิดว่ามันยุติธรรมที่จะคาดหวังว่านักวิทยาศาสตร์ทุกคนรู้วันนี้? และสิ่งที่คุณจะนำออกจากรายการข้างต้นเพื่อให้มีที่ว่างสำหรับมัน ไม่มีใครมีเวลาพอที่จะเรียนรู้ทุกอย่าง
52 education 

4
ฉันควรทำตามแนวทางใดเมื่อเลือกตัวแก้ระบบเชิงเส้นหร็อมแหร็ม?
ระบบเชิงเส้นแบบกระจัดกระจายมีความถี่เพิ่มขึ้นในแอปพลิเคชัน หนึ่งมีงานประจำมากมายให้เลือกสำหรับการแก้ปัญหาระบบเหล่านี้ ในระดับสูงสุดมีสันปันน้ำระหว่างทางโดยตรง (เช่นการกำจัดแบบเกาส์แบบเบาบางหรือการสลายตัวแบบโคลสลอสด้วยอัลกอริธึมการสั่งแบบพิเศษและวิธีการแบบหลายหน้า) และการวนซ้ำ (เช่น GMRES, (bi-) วิธีการหนึ่งกำหนดว่าจะใช้วิธีการโดยตรงหรือซ้ำ? เมื่อทำการเลือกแล้วหนึ่งจะเลือกอัลกอริทึมเฉพาะได้อย่างไร ฉันรู้แล้วเกี่ยวกับการเอารัดเอาเปรียบของสมมาตร (เช่นใช้การไล่ระดับสีแบบคอนจูเกตสำหรับระบบเชิงบวกแบบสมมาตรแบบเบาบาง) แต่มีข้อควรพิจารณาอื่น ๆ เช่นนี้เพื่อพิจารณาในการเลือกวิธีหรือไม่?

3
อะไรคือความแตกต่างทางแนวคิดระหว่างองค์ประกอบ จำกัด และวิธีปริมาณ จำกัด
มีความแตกต่างที่ชัดเจนระหว่างผลต่างอันตะ จำกัด และวิธีปริมาตร จำกัด (การเคลื่อนย้ายจากการกำหนดจุดของสมการไปยังค่าเฉลี่ยที่สำคัญเหนือเซลล์) แต่ฉันพบว่า FEM และ FVM ใกล้เคียงกันมาก พวกเขาทั้งสองใช้รูปแบบอินทิกรัลและค่าเฉลี่ยเหนือเซลล์ วิธีการ FEM ทำอะไรที่ FVM ไม่ใช่ ฉันได้อ่านพื้นหลังเล็ก ๆ บน FEM ที่ฉันเข้าใจว่าสมการเขียนในรูปแบบที่อ่อนแอซึ่งทำให้วิธีการระบุจุดแตกต่างกันเล็กน้อยกว่า FVM อย่างไรก็ตามฉันไม่เข้าใจในระดับแนวคิดว่าความแตกต่างคืออะไร FEM ทำสมมติฐานบางอย่างเกี่ยวกับความไม่รู้จักที่แตกต่างกันภายในเซลล์สิ่งนี้ไม่สามารถทำได้ด้วย FVM หรือไม่? ฉันมาจากมุมมอง 1D เป็นส่วนใหญ่ดังนั้นบางที FEM อาจมีข้อดีมากกว่าหนึ่งมิติ ฉันไม่พบข้อมูลมากมายในหัวข้อนี้ในเน็ต วิกิพีเดียมีส่วนที่เกี่ยวกับวิธี FEM จะแตกต่างจากวิธีการที่แตกต่างกันแน่นอน แต่ที่เป็นเรื่องเกี่ยวกับมันhttp://en.wikipedia.org/wiki/Finite_element_method#Comparison_to_the_finite_difference_method

5
อะไรคือเกณฑ์ในการเลือกระหว่างความแตกต่างแน่นอนและองค์ประกอบ จำกัด
ฉันเคยคิดถึงความแตกต่าง จำกัด เป็นกรณีพิเศษขององค์ประกอบ จำกัด บนตารางที่มีข้อ จำกัด มาก ดังนั้นเงื่อนไขในการเลือกระหว่างวิธีไฟไนต์ดิฟเฟอเรนเชียล (FDM) และวิธีไฟไนต์เอลิเมนต์ (FEM) เป็นวิธีการเชิงตัวเลขคืออะไร? ที่ด้านข้างของวิธีไฟไนต์ดิฟเฟอเรนเชียล (FDM) เราอาจนับได้ว่าพวกมันมีแนวคิดที่ง่ายและง่ายต่อการใช้งานมากกว่าวิธีไฟไนต์เอลิเมนต์ (FEM) FEM มีประโยชน์ในการยืดหยุ่นเช่นกริดอาจไม่สม่ำเสมอและโดเมนอาจมีรูปร่างตามอำเภอใจ ตัวอย่างเดียวที่ฉันรู้ว่า FDM กลายเป็น FEM ที่ดีกว่าอยู่ใน Celia, Bouloutas, Zarbaซึ่งประโยชน์เกิดจากวิธีการ FD โดยใช้การแยกประเภทที่แตกต่างกันของอนุพันธ์เวลาซึ่งสามารถแก้ไขสำหรับวิธีไฟไนต์อิลิเมนต์ได้ .

8
วิธีการที่ดีในการจัดทำเอกสารซอฟต์แวร์ทางวิทยาศาสตร์คืออะไร?
หลายครั้งที่ฉันได้รับสืบทอดหรือพบรหัสทางวิทยาศาสตร์ที่เขียนโดยคนอื่น ๆ (หรือบางครั้งแม้แต่งานของฉันเอง) ฉันสังเกตว่าเอกสารนั้นกระจัดกระจายหรือไม่มีเลย ถ้าฉันโชคดีฉันเห็นความคิดเห็นที่ให้ข้อมูล ถ้าฉันโชคดีมากมีความเห็นของ Doxygen และ Doxyfile เพื่อให้ฉันมีอินเทอร์เฟซของฟังก์ชั่นและ HTML ที่จัดรูปแบบเพื่อให้คำปรึกษา ถ้าฉันโชคดีมากมีคู่มือ PDF และตัวอย่างเพิ่มเติมจากความคิดเห็นของ Doxygen และซอร์สไฟล์และฉันดีใจเพราะมันทำให้ชีวิตของฉันง่ายขึ้นมาก ข้อมูลและเครื่องมือใดมีประโยชน์ในการทำเอกสารซอร์สโค้ด? สำหรับเรื่องนั้นข้อมูลและเครื่องมือใดที่มีประโยชน์ในการจัดทำเอกสารข้อมูลและผลลัพธ์ที่มาพร้อมกับซอร์สโค้ดนั้นในกรณีของซอฟต์แวร์ทางวิทยาศาสตร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.