এফএফটি পাইসন সলভারের রূপান্তর হার


16

এফএফটি বিষক্রিয়ারের জন্য তাত্ত্বিক রূপান্তর হার কত?

আমি একটি পইসন সমীকরণ সমাধানে করছি: সঙ্গে এন ( এক্স , Y , z- র ) = 3

2ভীএইচ(এক্স,Y,z- র)=-4πএন(এক্স,Y,z- র)
ডোমেনে[0,2]×[0,2]×[0,2]পর্যায়ক্রমিক সীমানা শর্তের সাথে। এই চার্জের ঘনত্ব নেট নিরপেক্ষ। সমাধানটি দিয়েছেন: ভিএইচ(এক্স)=n(
এন(এক্স,Y,z- র)=3π((এক্স-1)2+ +(Y-1)2+ +(z- র-1)2-1)
[0,2]×[0,2]×[0,2] যেখানেx=(x,y,z)। পারস্পরিক জায়গায় VH(G)=4πn(G)
ভীএইচ(এক্স)=এন(Y)|এক্স-Y|3Y
এক্স=(এক্স,Y,z- র) যেখানেজিহ'ল পারস্পরিক মহাকাশ ভেক্টর। আমি হার্ট্রি শক্তিতে আগ্রহী: এইচ=1
ভীএইচ(জি)=4πএন(জি)জি2
জি পারস্পরিক স্থানের ক্ষেত্রে এটি হয়ে যায় (বিবেচনার পরে): EH=2πG0 | n( ) | 2
এইচ=12এন(এক্স)এন(Y)|এক্স-Y|3এক্স3Y=12ভীএইচ(এক্স)এন(এক্স)3এক্স
দ্যজি=0শব্দটি বাদ দেওয়া হয়, যা কার্যকরভাবে করে তোলে চার্জ ঘনত্ব নেট নিরপেক্ষ (এবং যেহেতু এটি ইতিমধ্যে নিরপেক্ষ হয়, তাহলে সবকিছু সামঞ্জস্যপূর্ণ)।
এইচ=2πΣজি0|এন(জি)|2জি2
জি=0

এইচ=12835π=1,16410 ...

এখানে NumPy ব্যবহার করে এমন একটি প্রোগ্রাম রয়েছে যা গণনা করে।

from numpy import empty, pi, meshgrid, linspace, sum
from numpy.fft import fftn, fftfreq
E_exact = 128/(35*pi)
print "Hartree Energy (exact):      %.15f" % E_exact
f = open("conv.txt", "w")
for N in range(3, 384, 10):
    print "N =", N
    L = 2.
    x1d = linspace(0, L, N)
    x, y, z = meshgrid(x1d, x1d, x1d)

    nr = 3 * ((x-1)**2 + (y-1)**2 + (z-1)**2 - 1) / pi
    ng = fftn(nr) / N**3

    G1d = N * fftfreq(N) * 2*pi/L
    kx, ky, kz = meshgrid(G1d, G1d, G1d)
    G2 = kx**2+ky**2+kz**2
    G2[0, 0, 0] = 1  # omit the G=0 term

    tmp = 2*pi*abs(ng)**2 / G2
    tmp[0, 0, 0] = 0  # omit the G=0 term
    E = sum(tmp) * L**3
    print "Hartree Energy (calculated): %.15f" % E
    f.write("%d %.15f\n" % (N, E))
f.close()

এবং এখানে একটি রূপান্তর গ্রাফ রয়েছে ( conv.txtউপরের স্ক্রিপ্ট থেকে কেবল প্লট করা , এখানে একটি নোটবুক রয়েছে যা আপনি যদি নিজে নিজে খেলতে চান এটি এটি করে):

এফএফটি রূপান্তর গ্রাফ

আপনি দেখতে পাচ্ছেন যে, রূপান্তরটি লিনিয়ার, যা আমার জন্য একটি বিস্ময়কর ছিল, আমি ভেবেছিলাম যে এফএফটি তার চেয়ে অনেক দ্রুত রূপান্তরিত করে।

আপডেট :

সীমাটিতে সলিউশনটির ক্রপ রয়েছে (আমি এটি আগে বুঝতে পারি নি)। এফএফটি দ্রুত রূপান্তর করার জন্য, সমাধানটিতে অবশ্যই সমস্ত ডেরাইভেটিভগুলি মসৃণ করতে হবে। সুতরাং আমি নীচের ডানদিকে চেষ্টা করেছি:

nr = 3*pi*sin(pi*x)*sin(pi*y)*sin(pi*z)/4

ভীএইচ=পাপ(πএক্স)পাপ(πY)পাপ(πz- র) , যা অসীম পার্থক্যযোগ্য হওয়া উচিত। এই ক্ষেত্রে সঠিক অবিচ্ছেদ্য হয়এইচ=3π8। তবুও এফএফটি সলভার এখনও এই সঠিক সমাধানের জন্য কেবল রৈখিকভাবে রূপান্তর করে, যেমন উপরের স্ক্রিপ্টটি চালানো এবং কনভার্জেনশন প্লট করে ( প্লটের সাথে আপডেট নোটবুক ) পরীক্ষা করা যেতে পারে ।

কেউ কি 3 ডি তে কোনও মানদণ্ড জানে যাতে আমি লিনিয়ারের চেয়ে দ্রুত অভিযোজনটি দেখতে পারি?


কিন্তু, আপনার মসৃণ ঘনত্বের ডুরিটা ফাংশনটির ফুরিয়ার রূপান্তর নয়? আমি এটি চালাতে খুব অলস বলে স্বীকার করেছি, তবে এটির প্রথম উত্তরটিতে সঠিক উত্তর পাওয়া উচিত।
ম্যাট নিপলে

আমি ভাবছি এটাই সেটা. তবে এটি একটি পুনরাবৃত্তিতে রূপান্তরিত হয় না, যেমনটি নোটবুক প্লটগুলি থেকে দেখা যায়। কী চলছে তা আমার কোনও ধারণা নেই।
ওঁদেজ এর্তেক

ওরেজ, আপনি কি নিশ্চিত যে আপনার প্রয়োগটি সঠিক? আমার মনে আছে গ্রেড স্কুলে হোমওয়ার্ক অ্যাসাইনমেন্টের জন্য বর্ণালী দ্রাবকগুলি প্রয়োগ করার চেষ্টা করা এবং সম্পূর্ণ ধ্রুবকগুলিকে ফ্লব করে দেওয়া। আমি লক্ষ্য করেছি যে আপনি গণনা করা ও সঠিক শক্তির মধ্যে পরম দূরত্ব দেখে ত্রুটি পরিমাপ করছেন are আপনার অভ্যাসটি সমস্যার আসল সমাধানের মতো দেখতে কেমন? এটি গণনার পক্ষে সহজ হওয়া এবং সমস্যাটির 2-ডি টুকরো টুকরো টুকরো টুকরো করা উচিত।
অ্যারন আহমদিয়া

আরন --- আমি অন্য কিছু কোডের বিরুদ্ধে আমার বাস্তবায়ন পরীক্ষা করেছি, তবে আমি এটি আমার ভুল প্রাথমিক নমুনার জন্য পরীক্ষা করে দেখছিলাম, তাই উভয় কোডে আমার একই বাগ ছিল had ম্যাট ঠিক ছিল, এখন এটি প্রথম চেষ্টাতে রূপান্তরিত হয়। আমার উত্তর নীচে দেখুন।
ওন্দেজ ইরটিক

উত্তর:


10

আমাকে প্রথমে সমস্ত প্রশ্নের উত্তর দিন:

এফএফটি বিষক্রিয়ারের জন্য তাত্ত্বিক রূপান্তর হার কত?

তাত্ত্বিক কনভার্জেন্স ততক্ষণ তাত্পর্যপূর্ণ যতক্ষণ সমাধান পর্যাপ্ত মসৃণ হয়।

এই শক্তিটি কত দ্রুত রূপান্তরিত হওয়া উচিত?

হার্ট্রি শক্তি এইচপর্যাপ্ত মসৃণ সমাধানের জন্য তাত্পর্যপূর্ণ রূপান্তর করা উচিত। যদি সমাধানটি কম মসৃণ হয় তবে অভিযানটি ধীর হয়।

কেউ কি 3 ডি তে কোনও মানদণ্ড জানে যাতে আমি লিনিয়ারের চেয়ে দ্রুত অভিযোজনটি দেখতে পারি?

যে কোনও ডান হাত এমন একটি সমাধান তৈরি করে যা পর্যায়ক্রমিক এবং অসীম স্বতন্ত্রভাবে পার্থক্যযুক্ত (পর্যায়ক্রমের সীমানা জুড়ে) তাত্পর্যপূর্ণভাবে রূপান্তরিত হওয়া উচিত।


উপরের কোডে একটি বাগ হতে পারে, যার ফলে অভিব্যক্তিটি তাত্পর্যপূর্ণ চেয়ে ধীর হয়। মসৃণ ঘনত্ব কোড ( https://gist.github.com/certik/5549650/ ) ব্যবহার করে , নিম্নলিখিত প্যাচটি বাগটি ঠিক করেছে:

@@ -6,7 +6,7 @@ f = open("conv.txt", "w")
 for N in range(3, 180, 10):
     print "N =", N
     L = 2.
-    x1d = linspace(0, L, N)
+    x1d = linspace(0, L, N+1)[:-1]
     x, y, z = meshgrid(x1d, x1d, x1d)

     nr = 3*pi*sin(pi*x)*sin(pi*y)*sin(pi*z)/4

সমস্যাটি হ'ল আসল স্থানের নমুনা প্রথম এবং শেষ পয়েন্টটির পুনরাবৃত্তি করতে পারে না (যা পর্যায়ক্রমের সীমানা শর্তের কারণে একই মান রয়েছে)। অন্য কথায়, সমস্যাটি প্রাথমিক নমুনা সেট আপ করার ক্ষেত্রে ছিল।

এই ঠিক করার পরে, ঘনত্বটি একটি পুনরাবৃত্তিতে রূপান্তরিত হয়, যেমন ম্যাট উপরে বলেছে। সুতরাং আমি রূপান্তর গ্রাফ প্লট না।

তবে, কেউ আরও কঠিন ঘনত্ব চেষ্টা করতে পারেন, উদাহরণস্বরূপ:

     nr = 3*pi*exp(sin(pi*x)*sin(pi*y)*sin(pi*z))/4

তারপরে প্রত্যাশা হিসাবে অভিযোজকটি তাত্পর্যপূর্ণ। এই ঘনত্বের জন্য কনভার্জেনশন গ্রাফগুলি এখানে: এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন


অসাধারণ. দুঃখিত আমি আরও সাহায্য ছিল না!
অরন আহমদিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.