/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 0.8.5 ] */ /* [wxMaxima: title start ] Esempio n.1 d'uso della libreria libtensori.mc [wxMaxima: title end ] */ /* [wxMaxima: comment start ] Sperimento la libreria con la metrica di Kerr-Newman fornita dalla libreria ctensor. [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] Premessa: carico la libreria [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Utilizza la libreria tensoriale. Deve dunque caricarla... [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load_questo:"libtensori.mc"; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ salvoqui:"c:/xmaxima/tensori_x.mc"; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Dato che nel file che voglio rileggere con una load(...) ci può essere una closefile(), per non avere segnalazioni di errore apro un file di dribbling il cui contenuto non mi interessa e dunque non importa se lo sovrascriverò. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ if atom(path_iniziale) then writefile("eliminando.mc"); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ora amplia il path [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ altracartella:"C:/xmaxima/###.{mc,mac}"; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] E' consigliabile, prima di modificarlo, di salvare il valore del path di default di Maxima. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ( if atom(path_iniziale) then (path_iniziale: file_search_maxima) )$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ora amplio il path iniziale aggiungendogli la cartella. Con questo trucco posso ricaricare varie volte questo documento senza il problema di modificare ogni volta il path di ricerca. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ file_search_maxima: cons(altracartella,path_iniziale); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Dopo avere ampliato il path, cerco di caricare la libreria tensoriale. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(load_questo); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ora salva su un nuovo file ossia salvoqui... [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ writefile(salvoqui); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Guardo i nomi delle funzioni della libreria. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ libmia; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Sono pronto per lavorare [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] Uso la libreria [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Ecco la metrica di Kerr - Newman. Attenzione qui uso la segnatura tradizionale (+,-,-,-) mentre la ctensor usa la segnatura (-,+,+,+) ossia usa il tensore metrico cambiato di segno. Non ci sono differenze rilevanti e il tensore di Ricci mi deve venire di segno opposto perché calcolo Ricci facendo la traccia del tensore di Riemann con un altro indice. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ KN_g22:matrix( [1-(2*m*r-q^2)/(r^2+a^2-a^2*sin(h)^2), 0,0,-(a*(q^2-2*m*r)*sin(h)^2)/(r^2+a^2-a^2*sin(h)^2)], [0,-(r^2+a^2-a^2*sin(h)^2)/(r^2-2*m*r+q^2+a^2),0,0], [0,0,-(r^2+a^2-a^2*sin(h)^2),0], [-(a*(q^2-2*m*r)*sin(h)^2)/(r^2+a^2-a^2*sin(h)^2),0,0, -(sin(h)^2*((r^2+a^2)^2 - sin(h)^2*a^2*(r^2-2*m*r+q^2+a^2)))/ (r^2+a^2-a^2*sin(h)^2)]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Elenco le componenti non nulle del tensore metrico. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ KN_g22[1,1]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ KN_g22[1,4]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ KN_g22[2,2]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ KN_g22[3,3]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ KN_g22[4,4]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Il determinante non è unitario ma non dipende dal valore della carica. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ratsimp(determinant(KN_g22)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Il sistema di coordinate usato è questo: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ct_coords: [t,r,h,p]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Creo tutti i più comuni tensori della metrica. [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ metrica:fa_metrica(KN_g22,ct_coords)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22:trigsimp(metrica[10])$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Confronto con quello che si ottiene dalla libreria ctensor... [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Questi devono venire tutti zero... [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ [r22[1][1,2],r22[1][1,3],r22[1][2,3],r22[1][2,4],r22[1][3,4]]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22[1][1,1]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22_11:(q^2*r^2-2*m*q^2*r+q^4+(2*a^2-a^2*cos(h)^2)*q^2)/ (r^6+3*a^2*cos(h)^2*r^4+3*a^4*cos(h)^4*r^2+a^6*cos(h)^6); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ trigsimp(r22[1][1,1]+r22_11); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22[1][1,4]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22_14:q^2*((2*a*cos(h)^2-2*a)*r^2+(2*a-2*a*cos(h)^2)*m*r+ (a*cos(h)^2-a)*q^2+(2*a^3*cos(h)^2-2*a^3))/ (r^2+a^2*cos(h)^2)^3$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(r22[1][1,4]+r22_14); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22[1][2,2]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22_22:-q^2/(r^4-2*m*r^3+(q^2+a^2*cos(h)^2+a^2)*r^2-2*a^2* cos(h)^2*m*r+a^2*cos(h)^2*q^2+a^4*cos(h)^2)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(r22[1][2,2]+r22_22); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22[1][3,3]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22_33:q^2/(r^2+a^2*cos(h)^2)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(r22[1][3,3]+r22_33); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22[1][4,4]; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r22_44:-((cos(h)^2-1)*q^2*r^4+(-a^2*cos(h)^4+4*a^2*cos(h)^2- 3*a^2)*q^2*r^2+(2*a^2*cos(h)^4-4*a^2*cos(h)^2+2*a^2)*m*q^2*r+ (-a^2*cos(h)^4+2*a^2*cos(h)^2-a^2)* q^4+(-a^4*cos(h)^4+3*a^4*cos(h)^2-2*a^4)*q^2)/(r^2+a^2*cos(h)^2)^3$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratsimp(r22[1][4,4]+r22_44); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] A meno del segno...perfetto accordo ! [wxMaxima: comment end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$