প্রকল্প সম্পর্কে

jaxphys হলো JAX-এর উপর নির্মিত একটি GPU-ত্বরিত ডিফারেনশিয়েবল ফিজিক্স ইঞ্জিন। এটি ভারী গবেষণা কোড (FEniCS, OpenFOAM, COMSOL)—যা ইনস্টল করা কঠিন এবং ডিফারেনশিয়েবল নয়—এবং CPU-কেন্দ্রিক শিক্ষামূলক লাইব্রেরিগুলোর মধ্যকার শূন্যতা পূরণের লক্ষ্য রাখে। সবকিছুই বিশুদ্ধ JAX, তাই সিমুলেশন jax.jit, jax.vmap ও jax.grad-এর অধীনে চলে। আওতাভুক্ত ডোমেইন ও সলভার: - ক্লাসিক্যাল মেকানিক্স: ল্যাগ্রাঞ্জিয়ান ও হ্যামিল্টোনিয়ান সিস্টেম, সিম্প্লেক্টিক অয়লার, লিপফ্রগ (Störmer-Verlet), Yoshida-4, RK4, অয়লার, ভেলোসিটি-Verlet N-body, রিজিড বডি, অ্যাডাপটিভ RK45 স্টেপার। - কোয়ান্টাম: 1D ও 2D-এ স্প্লিট-অপারেটর শ্রোডিঙ্গার সলভার, ফাইনাইট-ডিফারেন্স আইগেনস্টেট, টাইট-বাইন্ডিং ব্যান্ড স্ট্রাকচার, এক্স্যাক্ট ডায়াগোনালাইজেশনের মাধ্যমে হাইজেনবার্গ স্পিন চেইন, লিন্ডব্লাড মাস্টার ইকুয়েশন। - ইলেকট্রোম্যাগনেটিজম: স্প্লিট-ফিল্ড PML সহ FDTD (2D TM ও 3D), স্ট্রেচড-কোঅর্ডিনেট PML সহ FDFD (2D TM), বোরিস-পুশড চার্জ, আয়তাকার ওয়েভগাইড মোড। - ফ্লুইড: দুর্বলভাবে কম্প্রেসিবল SPH, কম্প্রেসিবল অয়লার (1D MUSCL-HLLC), ল্যাটিস বোল্টজম্যান D2Q9, ভর্টিসিটি-স্ট্রিমফাংশন নেভিয়ার-স্টোকস। - স্ট্যাটিস্টিক্যাল মেকানিক্স: আইসিং মেট্রোপলিস (চেকারবোর্ড) ও উলফ ক্লাস্টার মন্টে কার্লো, বোল্টজম্যান স্ট্যাটিস্টিক্স (মন্টে কার্লো স্যাম্পলিং নিজে ডিফারেনশিয়েবল নয়)। - অপটিক্স: ABCD রে ট্রেসিং, ফ্রাউনহোফার ডিফ্র্যাকশন। একটি মূল ওয়ার্কফ্লো হলো একটি ল্যাগ্রাঞ্জিয়ান সংজ্ঞায়িত করা এবং JAX অটোডিফকে গতির সমীকরণ তৈরি করতে দেওয়া, তারপর সম্পূর্ণ ট্রাজেক্টরি জুড়ে অপটিমাইজ করা। optimize মডিউল গ্রেডিয়েন্ট-ভিত্তিক অপটিমাইজেশন, সেনসিটিভিটি অ্যানালাইসিস, প্যারামিটার গ্রিড সুইপ এবং সেরা সুইপ পয়েন্টগুলোর রিফাইনমেন্ট প্রদান করে। ইন্টিগ্রেটরগুলো ক্রম ও সিম্প্লেক্টিক বৈশিষ্ট্যসহ ডকুমেন্টেড; সিম্প্লেক্টিক ইন্টিগ্রেটর সেপারেবল হ্যামিল্টন সমীকরণ ধরে নেয়, তাই LagrangianSystem.simulate শুধু euler ও rk4 গ্রহণ করে, অন্যদিকে সিম্প্লেক্টিক ইন্টিগ্রেশনের জন্য HamiltonianSystem ব্যবহৃত হয়। README-তে ভেক্টরাইজড NumPy বেসলাইনের বিরুদ্ধে CPU-কেন্দ্রিক বেঞ্চমার্ক রিপোর্ট করা হয়েছে (যেমন N-body 16.3x, FDTD 3D 8.4x, শ্রোডিঙ্গার 2D 1.7x, SPH 0.6x যেখানে SciPy cKDTree বেসলাইন CPU-তে জেতে), এই সতর্কতা সহ যে পরিমাপগুলো একটি শেয়ার্ড 4-কোর ক্লাউড কন্টেইনার থেকে নেওয়া এবং কোনো GPU সংখ্যা মাপা হয়নি। একটি ভ্যালিডেশন স্যুট সলভারগুলোকে অ্যানালিটিক বা স্বাধীন ফলাফলের বিরুদ্ধে যাচাই করে: লিপফ্রগ ও Yoshida-4-এর জন্য কেপলার এনার্জি ত্রুটি সীমাবদ্ধ থাকলেও RK4 ড্রিফট করে, পরিমাপকৃত কনভার্জেন্স অর্ডার, বাইন্ডার-কিউমুল্যান্ট ক্রসিং থেকে আইসিং ক্রিটিক্যাল তাপমাত্রা, Yee ডিসপারশন রিলেশনের বিরুদ্ধে FDTD ক্যাভিটি মোড, শ্রোডিঙ্গার নর্ম সংরক্ষণ ও ফ্রি-প্যাকেট নির্ভুলতা, LBM চ্যানেল ডিকে ও পোয়াজুই প্রোফাইল, Sod শক টিউব L1 ত্রুটি, Hankel গ্রিনস ফাংশনের বিরুদ্ধে FDFD, এবং কেন্দ্রীয় ফাইনাইট ডিফারেন্সের সাথে তুলনা করা jax.grad গ্রেডিয়েন্ট। ইনস্টলেশন pip install jaxphys-এর মাধ্যমে; উদাহরণগুলোতে একটি ডাবল পেন্ডুলাম, প্রজেক্টাইল অপটিমাইজেশন, কোয়ান্টাম টানেলিং, FDTD ডিফ্র্যাকশন ও 3D ডাইপোল রেডিয়েশন, আইসিং ফেজ ট্রানজিশন, কার্মান ভর্টেক্স স্ট্রিট, স্পেসক্রাফট ট্রাজেক্টরি টার্গেটিং এবং একটি বেঞ্চমার্ক স্ক্রিপ্ট রয়েছে। ডেভেলপমেন্টে pytest, ruff ও mypy ব্যবহৃত হয়, সাথে uv-এর মাধ্যমে চালানো একটি অফলাইন ডেমো। প্রকল্পটি MIT লাইসেন্সপ্রাপ্ত এবং স্ট্যান্ডার্ড ফিজিক্স ও নিউমেরিক্যাল-ইন্টিগ্রেশন রেফারেন্স উদ্ধৃত করে।