/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.5 ] */ /* [wxMaxima: title start ] Rassegna di tensori metrici predefiniti in ctensor. [wxMaxima: title end ] */ /* [wxMaxima: comment start ] Visualizzo i tensori metrici offerti di default dal package ctensor. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Carico il package: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ if atom(lg) then load(ctensor); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lg:["Non ricaricare il package ctensor"]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ cframe_flag; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] In base al manuale elenco le varie opzioni disponibili: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ opzioni:[cartesian2d,polar,elliptic,confocalelliptic,bipolar, parabolic,cartesian3d,polarcylindrical,paraboloidal, conical,toroidal,spherical,oblatespheroidal, oblatespheroidalsqrt,prolatespheroidal,prolatespheroidalsqrt, ellipsoidal,cartesian4d,spherical4d,exteriorschwarzschild, interiorschwarzschild,kerr_newman]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ length(opzioni); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Scrivo una funzione che carica in sequenza tutti i sistemi selezionabili tramite gli elementi della lista opzioni e conserva nella lista lg_vari i vari tensori metrici in forma covariante. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ lgvari(oa,ob):=block([j,inpiu], lg_vari:[["Tipo di sistema","Matrice del tensore metrico"]], for j:1 thru length(opzioni) do ( ct_coordsys(opzioni[j]), inpiu:[[lg,j,opzioni[j]]], lg_vari:append(lg_vari,inpiu) ), print("Ha generato la lista lg_vari"), for j:oa+1 thru min(ob+1,length(lg_vari)) do print(lg_vari[j]) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lgvari(1,7); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lgvari(8,13); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lgvari(14,18); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lgvari(19,25); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lcs_matrix():=block([h,i,j,nn,nuova], nn:length(ct_coords), lcs_m:makelist(0,h,1,nn), for h:1 thru nn do( nuova:trigsimp(genmatrix(lambda([i,j],lcs[i,j,h]),nn,nn,1,1)), lcs_m[h]:ratsimp(nuova) ), "Ha aggiornato lcs_m")$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ mcs_matrix():=block([h,i,j,nn,nuova], nn:length(ct_coords), mcs_m:makelist(0,h,1,nn), for h:1 thru nn do( nuova:trigsimp(genmatrix(lambda([i,j],mcs[i,j,h]),nn,nn,1,1)), mcs_m[h]:ratsimp(nuova) ), "Ha aggiornato mcs_m")$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(oa,ob,printo):=block([j,nct,h,a,b], for j:oa thru min(ob,length(opzioni)) do ( print(["Simboli di Christoffel prima specie",opzioni[j]]), ct_coordsys(opzioni[j]), cmetric(), if printo[1] then print([lg,"= Tensore metrico g22"]), nct:length(ct_coords), christof(false), lcs_matrix(), if printo[1] then ( print([lcs_m[1],"= H20_22:",ct_coords[1]]), print([lcs_m[2],"= H21_22:",ct_coords[2]]), if nct>2 then print([lcs_m[3],"= H22_22:",ct_coords[3]]), if nct>3 then print([lcs_m[4],"= H23_22:",ct_coords[4]]) ) else ( print("Componenti del tensore metrico"), for a:1 thru nct do for b:a thru nct do if lg[a,b]#0 then if printo[length(printo)] then print( [lg[a,b],"=", ct_coords[a],ct_coords[b]] ), print("Simboli di Christoffel di prima specie"), for h:1 thru nct do if printo[h+1] then ( print(["Per la componente ",ct_coords[h]]), for a:1 thru nct do for b:a thru nct do if lcs_m[h][a,b]#0 then print( [lcs_m[h][a,b],"=", ct_coords[h],ct_coords[a],ct_coords[b]] ) ) ) ) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(oa,ob,printo):=block([j,nct,h,a,b], for j:oa thru min(ob,length(opzioni)) do ( print(["Simboli di Christoffel seconda specie",opzioni[j]]), ct_coordsys(opzioni[j]), cmetric(), if printo[1] then print([lg,"= Tensore metrico g22"]), nct:length(ct_coords), christof(false), mcs_matrix(), if printo[1] then ( print([mcs_m[1],"= H10_22:",ct_coords[1]]), print([mcs_m[2],"= H11_22:",ct_coords[2]]), if nct>2 then print([mcs_m[3],"= H12_22:",ct_coords[3]]), if nct>3 then print([mcs_m[4],"= H13_22:",ct_coords[4]]) ) else ( print("Componenti del tensore metrico"), for a:1 thru nct do for b:a thru nct do if lg[a,b]#0 then if printo[length(printo)] then print( [lg[a,b],"=", ct_coords[a],ct_coords[b]] ), print("Simboli di Christoffel di seconda specie"), for h:1 thru nct do if printo[h+1] then ( print(["Per la componente ",ct_coords[h]]), for a:1 thru nct do for b:a thru nct do if mcs_m[h][a,b]#0 then print( [mcs_m[h][a,b],"=", ct_coords[h],ct_coords[a],ct_coords[b]] ) ) ) ) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ si:[true]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ no:[false,true,true,true,true,true]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ no1:[false,true,false,false,false,true]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ no2:[false,false,true,false,false,false]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ no3:[false,false,false,true,false,false]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ no4:[false,false,false,false,true,false]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Elenco dei simboli di Christoffel di prima specie. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ prima_specie(1,1,no); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(2,2,no); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(3,3,s1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(4,4,s1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(5,5,s1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(6,6,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(7,7,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(8,8,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(9,9,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(10,10,no); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(11,11,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(11,11,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(11,11,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(11,11,no4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(12,12,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(13,13,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(13,13,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(13,13,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(13,13,no4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(14,14,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(15,15,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(16,16,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(17,17,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(17,17,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(17,17,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(17,17,no4); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(18,18,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(19,19,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(20,20,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(21,21,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(22,22,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(22,22,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(22,22,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ prima_specie(22,22,no4); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Elenco dei simboli di Christoffel di seconda specie... [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ seconda_specie(1,1,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(2,2,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(3,3,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(4,4,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(5,5,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(6,6,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(7,7,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(8,8,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(9,9,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(10,10,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(10,10,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(10,10,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(11,11,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(11,11,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(11,11,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(12,12,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(13,13,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(13,13,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(13,13,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(14,14,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(14,14,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(14,14,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(15,15,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(15,15,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(15,15,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(16,16,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(17,17,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(17,17,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(17,17,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(18,18,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(19,19,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(20,20,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(21,21,si); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(22,22,no1); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(22,22,no2); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(22,22,no3); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ seconda_specie(22,22,no4); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Le formule per la metrica di kerr-newman sono complicatissime. Se pero' il buco nero non ruota diventano molto pił semplici... Si tratta in tal caso della soluzione di Reissner e Nordstrom. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ev(lg,a=0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(ratsimp(mcs_m[1]),a=0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(ratsimp(mcs_m[2]),a=0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(ratsimp(mcs_m[3]),a=0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(ratsimp(mcs_m[4]),a=0); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$