ক্যাঁদাব্যাড়া Cadabra -১

Cadabra এর একটা শুবিধা হলো এটিতে input হিসাবে Latex ব্যবহার করা যায়। সুতরাং latex জানা থাকলে খুব সহজেই Cadabra এ input দিতে পারবেন। আর কমেন্ট করার জন্য Cadabra তে লাইন এর শুরুতে ‘#’ ব্যবহার করতে পারেন। # দিয়ে শুরু লাইনকে Cadabra ‘comment’ হিসাবে overlook করে যাবে।

) Cadabra তে Tensor এর Calculation এর জন্য প্রথমেই Index গুলি Declare করে নিতে হয়। এজন্য Cadabra open করে লিখতে হবে-

{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u#}::Indices.
এখানে একসাথে একগাদা index declare করা হলেও সব index যে ব্যবহার করতে হবে এমন কোন কথা নাই। একবারে declare করে দিলে পরে আর বারবার declare করা লাগে না। আবার u# দেয়ার মানে হচ্ছে Cadabra দরকার পড়লে u1,u2,u3 · · · এরকম infinite index নিতে পারবে।
যদি Greek index নেওয়া লাগে তাহলে লিখুন-
{\alpha,\beta,\gamma,\mu,\nu,\theta,\phi#}::Indices.

২)Index এর পর যে ধরনে tensor টা calculation করা হবে সেটা Declare করতে হবে। অর্থাৎ tensorটি লিখে দুটি কোলন দিয়ে ‘::’ tensor এর ধরন লিখতে হবে, এবং শেষে একটি ফুলস্টপ ”.’দিতে হবে। যদি metric tensor হয় তাহলে লিখুন-

G_{a b c}::Metric.
একই ভাবে Symmetric tensor এর জন্য-
G_{a b c}::Symmetric.
Anti Symmetric Tensor এর জন্য-
G_{a b c}::AntiSymmetric.

Cadabra এর Help–> Properties এ গিয়ে Tensor এর আরও property পাবেন।

৩)এরপর আপনি যে equation টা calculate করতে চান সেই equation টা লিখতে হবে, এক্ষেত্রে লাইন এর শেষে ‘;’ দিয়ে শেষ করতে হবে-
cderiv:=G_{a b c}G^{a b c};

এখানে cderiv একটি নাম মাত্র, Cadabra কে বোঝানোর জন্য আমরা equation টার একটা নাম দিলাম। এখানে ‘alu’ বা ‘potol’ দিলেও অসুবিধা ছিলনা। আপনি আপনার ইচ্ছামত নাম declare করতে পারেন এভাবে-

alu:=G_{a b c}G^{a b c}; অথবা
potol:=G_{a b c}G^{a b c}; ইত্যাদি। Cadabra , equation টাকে ঐ নামেই চিনবে।

৪) সর্বশেষে আপনি যে Calculation টা করতে চান সেটা লিখুন। যেমনঃ Anti Symmetrise করার জন্য লিখুন-
@asym!(cderiv){_{a},_{b},_{c}};

canonicalise করার জন্য লিখুন-
@canonicalise!(cderiv);

Distribute করার জন্য লিখুন-
@distribute!(cderiv);

ইত্যাদি। Cadabra এর Help–>Algorithms এ গিয়ে এরকম আরও অনেক অপরেশন এর নাম পাবেন।

এবার এই বিশাল প্যাচাল- ব্যাখ্যা- হাবিজাবি সব কিছু বাদ দিয়ে আমরা Cadabra তে যে input টা দিতে হবে তা সহজভাবে লিখতে পারি এভাবে-

>{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u#}::Indices.
>G_{a b c}::AntiSymmetric.
>cderiv:=G_{a b c}G^{a b c};
>@asym!(check){_{a},_{b},_{c}};
ব্যাস, কাজ শেষ, এবার এটিকে Cadabra য়  লিখে Run করে ফেলুন। 😀
…(চলবে)

Advertisements

মন্তব্য করুন

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / পরিবর্তন )

Twitter picture

You are commenting using your Twitter account. Log Out / পরিবর্তন )

Facebook photo

You are commenting using your Facebook account. Log Out / পরিবর্তন )

Google+ photo

You are commenting using your Google+ account. Log Out / পরিবর্তন )

Connecting to %s