A&A Wykład 14

Gromady kuliste i Galaktyki

Dynamic[{DateString[],Clock[{1,1},1]}//First]

Andrzej Odrzywołek

Zakład Teorii Względności i Astrofizyki, Instytut Fizyki Teoretycznej UJ

Obiekty zbudowane z milionów ciał

Gromady gwiazd

Gromady kuliste

Galaktyki

Spiralne

Eliptyczne

Nieregularne i karłowate

Wszechświat

Gromady kuliste gwiazd

Przechodząc od problemu 1,2,3,4 do więcej ciał pojawiają się nowe, emergentne właściwości.

Sztandarowym przykładem astrofizycznego obiektu zbudowanego z N∼(10^4) … (10^6) gwiazd jest gromada kulista gwiazd.

Dalej odtworzymy powyższy układ w modelu symulacji N-ciał.

Model politropowy gromady kulistej (Sfera Plummera)

Funkcja Lane-Emdena dla n=5

Laplacian[w[ξ], {ξ, θ, φ}, "Spherical"] + w[ξ]^5 == 0

%/.w->Function[z,1/Sqrt[z^2/3 + 1]]

Simplify[%]

Rozkład gęstości ρ(r) i masa M wynoszą

(Subscript[w, 5])(ζ)=(1/(Sqrt[1+((ξ^2)/3)])),   	ρ(r)=(Subscript[ρ, c])(((Subscript[w, 5])(ζ))^5) = ((Subscript[ρ, c])/(((1+((r^2)/(a^2))))^(5/2))),   M = (4/3) π (a^3) (Subscript[ρ, c]).

Potencjał grawitacyjny (Subscript[Φ, g])(r) sfery Plummera

Najszybszy sposób wyprowadzenia to rozwiązanie r. Laplace’a ze znaną gęstością:

DSolve[1/r^2 D[r^2 D[(Subscript[Φ, g])[r],r],r]==4 Pi G ((Subscript[ρ, c])/(((1+((r^2)/(a^2))))^(5/2))),(Subscript[Φ, g])[r],r]

Stałe całkowania muszą być równe zero z powodu warunków w r=0 i r=∞. Podstawiając w miejsce (Subscript[ρ, c]) masę M dostaniemy

-((4 (a^4) G π (Sqrt[1+((r^2)/(a^2))]) (Subscript[ρ, c]))/(3 ((a^2)+(r^2))))/.(Subscript[ρ, c])->M/(4/3 Pi a^3)//FullSimplify[#,a>0]&

Zmiękczony potencjał newtonowski

Potencjał sfery Plummera

(Subscript[Φ, g])(r)=-((G M)/(Sqrt[(a^2)+(r^2)])), 	(lim_(a->0 ))(Subscript[Φ, g])(r) = -((G M)/r)

jest przykładem zmiękczonej siły grawitacji Newtona. W symulacjach N-body oraz dynamiki systemów gwiezdnych modyfikacje tego typu stosuje się z powodów:

matematycznych (dzielenie przez zero)

informatycznych (przekroczenie zakresu)

fizycznych (skończone rozmiary gwiazd, a>0)

problemów teorii Newtona: v≯c, nieograniczona od dołu energia (!)

istnienia czarnych dziur: a>=2G m/(c^2) !

Przejście od gładkiego ρ(r) do równoważnego układu N ciał

Procedura wymaga conajmniej 2 kroków:

Wylosowania pozycji {x,y,z} dla N punktów o masie m każdy, tak aby po uśrednieniu otrzymać gęstość ρ(r) [łatwiejsze]

Nadanie każdemu ciału losowo skierowanej prędkości v, tak aby układ był stacjonarny (niezmienny w czasie) [trudniejsze]. Dla przykładu, zadanie v=0 spowoduje natychmiastowy kolaps grawitacyjny w czasie rzędu τ~(1/(Sqrt[G ρ])); użycie v=H r (prawo Hubble’a) wywoła mini-wybuch.

Usunięcie przemieszczenia i ruchu środka masy. Przeskalowanie tak aby było spełnione twierdzenie wirialne: (Subscript[E, k])=-1/2 (Subscript[E, g]), gdzie (Subscript[E, k]) to całkowita energia kinetyczna cząstek, a (Subscript[E, g]) ich grawitacyjna energia wiązania.

Ostatni punkt ,,poprawia’’ losowanie dając systemy N-ciał działające dla absurdalnie małej liczby N<10!

Losowanie pozycji punktów materialnych

Dalsza część prezentacji krok po kroku opisze działanie programu generującego warunki początkowe dla symulacji gromady kulistej gwiazd w modelu Plummera. Zakładamy, że rozmiar gromady a=1.

Cały  kod  w  języku  programowania  C (rozwiń dziubek aby zobaczyć->)

/* This code generates simple text file
with random Plummer model (idealized globular cluster).
Units and sampling procedure according to textbook
by Hut@Makino.

A. Odrzywolek 2012-04-13,
modified 2015-06-01,
updated 2024-06-01
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#define NMAX (131072)

double m[NMAX];
double x[NMAX][3];
double a[NMAX][3];
double v[NMAX][3];


double rnd()
{
  
  

  return  rand()/(RAND_MAX+1.0);

}

double rnd2(double min, double max)
{
  
  return min + rnd()*(max-min);

}

double rnd_plum()
{
  double t,f;
  
  t=0.0;
  f=0.1; // (686 Sqrt[7])/19683 = 0.092210811329081397403043662398848
  
  while(f>t*t*pow(1.0-t*t,3.5))
  {
    t=rnd2(0.0,1.0);
    f=rnd2(0.0,0.1);
  }
  
  return t;
}


void plummer_single_point_coords_vel(double * pos, double * vel)
{
  double r,theta,phi,x,y,z;
  double v,vx,vy,vz;
  double rnd_theta;
  double scale_factor;
  
  scale_factor = 16.0/(3.0*M_PI); /* STANDARD UNITS form Hut&Makino */
  
  
  r = 1.0/sqrt(pow(rnd(),-2.0/3.0)-1.0); // This gives Plummer density PDF 3x^2/(1+x^2)^(5/2)
  
  rnd_theta = rnd2(-1.0,1.0);
  theta = acos(rnd_theta);
  phi = rnd2(0.0,2.0*M_PI);

  x = r*sin(theta)*cos(phi);
  y = r*sin(theta)*sin(phi);
  z = r*cos(theta);
  
  v = rnd_plum()*sqrt(2.0)*pow(1.0 + r*r,-0.25);
  
  theta = acos(rnd2(-1.0,1.0));
  phi = rnd2(0.0,2.0*M_PI);
  vx = v*sin(theta)*cos(phi);
  vy = v*sin(theta)*sin(phi);
  vz = v*cos(theta);
  
  
  
  pos[0]=x/scale_factor;
  pos[1]=y/scale_factor;
  pos[2]=z/scale_factor;
  
  vel[0]=vx*sqrt(scale_factor);
  vel[1]=vy*sqrt(scale_factor);
  vel[2]=vz*sqrt(scale_factor);
  
  
//  printf(“DEBUG: %lf %lf %lf\t %lf %lf %lf\n”,x,y,z,vx,vy,vz);
  
}



double E_kin(double * m, double v[][3], int Num)
{
  int i;
  double kinetic_energy=0.0;
  
  
    for(i=0;i<Num;i++)
    kinetic_energy = kinetic_energy 
                       + 0.5*m[i]*v[i][0]*v[i][0]
                       + 0.5*m[i]*v[i][1]*v[i][1]
                       + 0.5*m[i]*v[i][2]*v[i][2];
  return kinetic_energy;		       
}

double E_pot(double * m, double x[][3], int Num)
{
  int i,j;
  double potential_energy=0.0;
  double dx,dy,dz,r;
  
  
    for(i=0;i<Num;i++)
      for(j=0;j<Num;j++)
      {
	dx = x[i][0]-x[j][0];
	dy = x[i][1]-x[j][1];
	dz = x[i][2]-x[j][2];
	
	r = sqrt(dx*dx+dy*dy+dz*dz);
	
	if( !(i==j) )  potential_energy = potential_energy
                       + m[i]*m[j]/r;
      }
  return -0.5*potential_energy;    
}

int main(int argc, char **argv)
{
  int i,j, Num=16384;
  
  double r_CM[3]={0.0,0.0,0.0}, v_CM[3]={0.0,0.0,0.0}, total_mass=0.0;
  double Ek,Ep,alpha,beta, a;

 
  srand ( (unsigned int) ( time (NULL) ) );
  //  srand(100); 


  
  for(i=0; i<Num;i++)
  {
    m[i]=1.0/Num;
    plummer_single_point_coords_vel(x[i],v[i]);
  }
  
  for(i=0; i<Num;i++)
  {
    total_mass=total_mass + m[i];
  }  
  
  
  /* calculate center-of-mass */
  for(i=0;i<Num;i++)
    for(j=0;j<3;j++)
      r_CM[j] = r_CM[j]+m[i]*x[i][j]/total_mass;
  /* correcting center-of-mass */  
  for(i=0;i<Num;i++)
    for(j=0;j<3;j++)
      x[i][j] = x[i][j] - r_CM[j];

    
  /* calculate total momentum */
  for(i=0;i<Num;i++)
    for(j=0;j<3;j++)
      v_CM[j] = v_CM[j]+m[i]*v[i][j]/total_mass;
  /* correcting total momentum */  
  for(i=0;i<Num;i++)
    for(j=0;j<3;j++)
      v[i][j] = v[i][j] - v_CM[j];

    

  Ek = E_kin(m,v,Num);
  Ep = E_pot(m,x,Num);
  
  
//   printf(“E_kin = %lf\n”, Ek);
//   printf(“E_pot = %lf\n”,Ep );  
//   printf(“E_tot = %lf\n”,Ep+Ek );
//   printf(“E_kin/E_tot = %lf\n”,Ek/(Ep+Ek));
//   printf(“E_pot/E_tot = %lf\n”,Ep/(Ep+Ek));

  /* change units to get exactly E_kin=0.25, E_pot=-0.5 
  See: Hut@Makino, 12.2
  */
  
  alpha = -Ep/0.5;
  beta  = Ek/0.25;
  
  for(i=0;i<Num;i++)
    for(j=0;j<3;j++)
    {
      x[i][j] = x[i][j]*alpha;
      v[i][j] = v[i][j]/sqrt(beta);
    }

  Ek = E_kin(m,v,Num);
  Ep = E_pot(m,x,Num);
  
//   printf(“E_kin = %lf\n”, Ek);
//   printf(“E_pot = %lf\n”,Ep );  
//   printf(“E_tot = %lf\n”,Ep+Ek );
//   printf(“E_kin/E_tot = %lf\n”,Ek/(Ep+Ek));
//   printf(“E_pot/E_tot = %lf\n”,Ep/(Ep+Ek));


  printf(“%d\n”,Num);
  for(i=0; i<Num;i++) printf(“%e %e %e %e %e %e %e\n”, m[i],x[i][0],x[i][1],x[i][2],v[i][0],v[i][1],v[i][2]);



 // for(i=0; i<1024*1024; i++) printf(“%lf\n”, rnd_plum());


}

Rozkład masy w naszym modelu to

dm = 4 π r^2 ρ(r) dr

co odpowiada rozkładowi prawdopodobieństwa o gęstości P(r) = ((3 (r^2))/(((1+(r^2)))^(5/2))). Sprawdźmy normalizację PDF (Probablility Density Function) do 1.

Integrate[((3 (x^2))/(((1+(x^2)))^(5/2))),{x,0,Infinity}]

Losujemy num promieni r używając wbudowanej funkcji

num=1234;
rndDistro=ProbabilityDistribution[((3 (r^2))/(((1+(r^2)))^(5/2))),{r,0,Infinity}];
(* rndDistro=TransformedDistribution[1/Sqrt[x^(-2/3)-1],x\[Distributed]UniformDistribution[]];*)
r=RandomVariate[rndDistro,num];
Histogram[r]

Interesuje nas jednak nie tylko 1-wymiarowe losowanie r, ale rozkład w 3D. Potrzebujemy losowych kierunków, co jest równoważne losowaniu punktów na sferze o promieniu R=1. Zróbmy test.

Graphics3D[{PointSize[Tiny],Point[RandomPoint[Sphere[],num*12]]},Boxed->False]

Użyjemy powyższej metody to znalezienia num losowych wersorów n. Prototyp gromady kulistej to po prostu iloczyn r n.

n=RandomPoint[Sphere[],num];
Graphics3D[{PointSize[Tiny],Point[r n]},Boxed->True,RotationAction->"Clip",BoxRatios-> {1,1,1},ViewCenter->{0.5, 0.5, 0.5},AxesOrigin->{0,0,0},Axes->True,PlotRange->6{{-1,1},{-1,1},{-1,1}}]

Losowanie prędkości (energii) punktów materialnych

Znalezienie funkcji rozkładu pędów wymaga rozwiązania równania Własowa dla stacjonarnego ruchu w potencjale politropy. Wynik może zależeć wyłącznie od całkowitej energii cząstki E. Szczegóły:  Binney and Tremaine, Galactic Dynamics: Second Edition,   Rozdz. 4.1 Collisionless Boltzman Equation

plummerDistro=ProbabilityDistribution[((512 (\[FormalX]^2) (((1-(\[FormalX]^2)))^(7/2)))/(7 π)),{\[FormalX],0,1}];
num=17; (* Proszę ustawić w zależności od szybkości komputera! *)
m={};initPos={};initVel={};
scale=16/(3Pi);
For[ii=1,ii<=num,ii++,
rr= RandomVariate[rndDistro];
{x,y,z}= rr RandomPoint[Sphere[]];
vel= RandomVariate[plummerDistro]*Sqrt[2]*(1+rr^2)^(-1/4);
{vx,vy,vz}=vel RandomPoint[Sphere[]];
{x,y,z}= {x/scale,y/scale,z/scale};
{vx,vy,vz}={vx/Sqrt[scale],vy/Sqrt[scale],vz/Sqrt[scale]};
AppendTo[m,1.0/num];
AppendTo[initPos,{x,y,z}];
AppendTo[initVel,{vx,vy,vz}];
]

Równania ruchu samograwitujących N-ciał

r=Table[{ToExpression["x"<>ToString[k]<>"[t]"],ToExpression["y"<>ToString[k]<>"[t]"],ToExpression["z"<>ToString[k]<>"[t]"]},{k,1,num}]

II zasada dynamiki Netwona

G=1;ε=0.01; (* Stała grawitacji oraz zmiękczenie siły newtonowskiej *)
sys=Table[
Table[
m[[i]] (((∂^2)r[[i,k]])/(∂(t^2)))==-(∑_(j=1)^num)If[i≠j,((G m[[i]] m[[j]] (r[[i,k]]-r[[j,k]]))/((((∑_(k=1)^3)((((r[[i,k]]-r[[j,k]]))^2)+((ε^2)/3))))^(3/2))),0],
{i,1,num}],{k,1,3}]//Flatten;

Warunki początkowe: położenia i prędkości w chwili t=0

icsPos=Table[r[[i,k]]==initPos[[i,k]],{i,1,num},{k,1,3}]/.t->0
icsVel=Table[D[r[[i,k]],t]==initVel[[i,k]],{i,1,num},{k,1,3}]/.t->0

Rozwiązanie numeryczne równań ruchu N-ciał

T1=25; (* Końcowy czas obliczeń *)
sol=NDSolve[Join[sys,icsPos,icsVel],Flatten@r,{t,0,T1}][[1]]; (*Rozw. numeryczne*)
R=r/.sol; (* Podstawienie rozwiązania *)

ParametricPlot3D[R,{t,0,T1},PlotRange->3.5{{-1,1},{-1,1},{-1,1}},PlotStyle->Thin]

Jak widać, gromada porusza się jako całość. Należy odjąć środek masy i jego ruch.

Korekta środka masy

rCM=Sum[m[[ii]]*initPos[[ii]],{ii,1,num}]/Total[m] (* Położenie środka masy *)
vCM=Sum[m[[ii]]*initVel[[ii]],{ii,1,num}]/Total[m](* Prędkość środka masy *)

initPos=initPos-Table[rCM,num]; (* Środek masy do {0,0,0} *)
initVel=initVel-Table[vCM,num];(* Prędkość środka masy do {0,0,0} *)
Sum[m[[ii]]*initPos[[ii]],{ii,1,num}]/Total[m] 
Sum[m[[ii]]*initVel[[ii]],{ii,1,num}]/Total[m]

Powtórzenie symulacji po korekcie war. początkowych

icsPos=Table[r[[i,k]]==initPos[[i,k]],{i,1,num},{k,1,3}]/.t->0;
icsVel=Table[D[r[[i,k]],t]==initVel[[i,k]],{i,1,num},{k,1,3}]/.t->0;
sol=NDSolve[Join[sys,icsPos,icsVel],Flatten@r,{t,0,T1}][[1]]; (*Rozw. numeryczne*)
R=r/.sol; (* Podstawienie rozwiązania *)
ParametricPlot3D[R,{t,0,T1},PlotRange->4.5{{-1,1},{-1,1},{-1,1}},PlotStyle->Thin]

Korekta równowagi wirialnej

Obliczamy całkowitą energię kinetyczną T oraz potencjalną U w chwili t=0.

T=(∑_(ii=1)^num)(1/2) m[[ii]] ((Norm[initVel[[ii]]])^2);
U=(∑_(i=1)^num)(∑_(j=1)^num)If[i≠j,-((G m[[i]] m[[j]])/(2 (Norm[initPos[[i]]-initPos[[j]]]))),0];
U/T (* W równowadze powinno wyjść -2 *)

Dokonamy przeskalowania war. pocz. tak aby uzyskać dokładnie T=(1/4),U=-(1/2).

α=-U/0.5;β=T/0.25;
initPos = α initPos;
initVel=(initVel/(Sqrt[β]));

Ruch gromady w pełnej równowadze

icsPos=Table[r[[i,k]]==initPos[[i,k]],{i,1,num},{k,1,3}]/.t->0;
icsVel=Table[D[r[[i,k]],t]==initVel[[i,k]],{i,1,num},{k,1,3}]/.t->0;
sol=NDSolve[Join[sys,icsPos,icsVel],Flatten@r,{t,0,T1}][[1]]; (*Rozw. numeryczne*)
R=r/.sol; (* Podstawienie rozwiązania *)
Manipulate[ListPointPlot3D[R/.t->τ,PlotRange->4{{-1,1},{-1,1},{-1,1}},PlotStyle->Thin,BoxRatios->{1, 1, 1}],{τ,0,T1,0.1}]

Gromada kulista VS gwiazda

Porównajmy energię wiązania modelu Plummera oraz układu dwóch białych karłów

Clear[r];
ρ=(M/((1/3) (4 π (a^3)) (((1+((r^2)/(a^2))))^(5/2))));
Φg=-((G M)/(Sqrt[(a^2)+(r^2)]));
U=(1/2) (∫_0^∞)4 π ρ (r^2) Φg\[DifferentialD]r;
U1=Refine[%,a>0]
U2= - G M^2/a

U1/.{G->Quantity[1,"GravitationalConstant"], M->Quantity[10^5,"SolarMass"],a->Quantity[10,"Parsecs"]}//UnitConvert
U2/.{G->Quantity[1,"GravitationalConstant"], M->Quantity[1.45,"SolarMass"],a->Quantity[1,"EarthMoonDistance"]}//UnitConvert
%/%%

Powstanie jednego (!) ciasnego układu zwartych obiektów w gromadzie kulistej dostarcza energii niemal wystarczającej do jego ,,odparowania’’ w całości.

Tworzenie układów podwójnych jest odpowiednikiem reakcji termojądrowych w gwiazdach.

Długotrwała ewolucja modelu Plummera

Dla N->∞ prawdopodobieństwo oddziaływania spada do zera,
w pierwszym przybliżeniu pojedyncza cząstka porusza się w uśrednionym polu pozostałych, jak gaz Własowa.

Odparowanie gromady: oddziaływania trójciałowe wytwarzają cząstki
o prędkościach przekraczających prędkość ucieczki (Subscript[v, II]) (II prędkość kosmiczną).

Segregacja masy: gwiazdy cięższe/gęstsze (białe karły, gw. neutronowe, czarne dziury) dyfundują do centrum.

Kolaps jądra (ang. core-collapse, ale w zupełnie innym niż dla supernowych znaczeniu!): w centrum ρ->∞,  ale nadal nie wiadomo czy w tym procesie powstaje czarna dziura, tzw. IMBH.

Zacieśniające się układy podwójne są źródłem energii ,,termicznej’’
dla całej gromady, co powoduje zatrzymanie kolapsu i tzw. oscylacje grawitotermiczne.

Przyciąganie grawitacyjne wywołuje opór falowy (dynamiczny), powodując odstępstwo od trajektorii geodezyjnych.

Model Plummera VS prawdziwe gromady kuliste

A&A: gwiazdy ewoluują i nie są punktami materialnymi. Teoretycy:

Galaktyki

Zwiększając liczbę ciał (gwiazd) z N=(10^6) w górę do N=(10^12) wchodzimy w świat galaktyk. Upraszczając, większość z nich należy do jednej z 2 klas:

galaktyki eliptyczne - podobne do gromad kulistych, ale większe, spłaszczone (E0-E7) z SMBH w centrum

galaktyki spiralne - płaskie, rotujące

Budowa galaktyki spiralnej: widok prostopadły

Budowa galaktyki spiralnej: widok w płaszczyźnie dysku

Bąble Fermiego, dżety i centralna czarna dziura SGR (SuperStar[A])

Niestabilność modelu N-ciałowego dysku Galaktyki

Użyjemy modelu N-body do sprawdzenia co stanie się z cienkim, samograwitującym dyskiem w równowadze. Wymaga to użycia GPU.

Needs["OpenCLLink`"];
OpenCLQ[] (* Wymagany działający OpenCL *)
OpenCLInformation[] (* Tu należy wybrać GPU. U mnie jest to {"Platform"->1,"Device"->1} lub {"Platform"->2,"Device"->1} *)
GPU={"Platform"->1,"Device"->1} ;

Jeżeli powyższe nie działa, obliczenia będą zbyt wolne, aby zauważyć ruch.

srcf=Import["http://th.if.uj.edu.pl/~odrzywolek/homepage/students/aa/NBody2.cl","Text"];
(* Bez karty graficznej symulacja działa tak wolno, że nie ma sensu jej uruchamiać *)
NBody = OpenCLFunctionLoad[srcf,"nbody_sim",{{"Float",_,"Input"},{"Float",_,"Input"},_Integer,"Float","Float",{"Local","Float"},{"Float",_,"Output"},{"Float",_,"Output"}},64,GPU(*,"ShellOutputFunction"->Print*)];

(* Wczytujemy dane N-body dyskowego modelu Ł. Bratka *)
dat=Import["http://th.if.uj.edu.pl/~odrzywolek/homepage/students/aa/init.Disk.dat","Table"];
(* Poniżej można wybrać inne przykłady: gromadę kulistą lub dysk protoplanetarny *)
(*dat=Import["http://th.if.uj.edu.pl/~odrzywolek/homepage/students/aa/Plummer_16384.dat","Table"];
dat=Import["http://th.if.uj.edu.pl/~odrzywolek/homepage/students/aa/init.Slonce.Jowisz.heavy_disk.dat","Table"];*)

numParticles=dat[[1,1]] (* Ilość cząstek *)
deltaT=0.01; (* Krok czasowy *)
epsSqr=0.0001; (* Zmiękczanie siły newtonowskiej *)
initPos=RotateLeft/@dat[[2;;,1;;4]]; (* Warunki początkowe *)
initVel=Table[Join[dat[[ii,5;;]],{0.0}],{ii,2,numParticles+1}];
(* Załadowanie danych do GPU *)
oldPos=OpenCLMemoryLoad[initPos,"Float"];
oldVel=OpenCLMemoryLoad[initVel,"Float"];
(* Zarezerwowanie pamięci na krok pośredni *)
newPos=OpenCLMemoryAllocate["Float",{numParticles,4}];
newVel=OpenCLMemoryAllocate["Float",{numParticles,4}];

Symulacja N-body na GPU

(* UWAGA: aby zatrzymać symulację należy skasować komórkę z jej wizualizacją. Potem można wznowić.  *)
Dynamic[
Refresh[
NBody[oldPos,oldVel,numParticles,deltaT,epsSqr,256,newPos,newVel,numParticles];
NBody[newPos,newVel,numParticles,deltaT,epsSqr,256,oldPos,oldVel,numParticles];
currentPos=OpenCLMemoryGet[oldPos];
Graphics3D[
{
{AbsolutePointSize[1],Black,
Point[currentPos[[;;,1;;3]]]
}
},
Boxed->True,RotationAction->"Clip",PlotRange->6{{-1,1},{-1,1},{-1,1}},
ViewPoint->{0,0,-16},ImageSize->600
]
,UpdateInterval->0]
]

Halo ciemnej materii

Zarówno analizy stabilności jak i symulacje N-body wykazują niestabilność dynamiczną samograwitującego cienkiego dysku. Jak dotąd istnieje jedyna poważna propozycja rozwiązania tego problemu:
ruch w potencjale sferycznego halo ciemnej materii (ang. dark matter, DM). Masa ciemnego halo może przekraczać nawet 100x (!) masę widocznej (świecącej) materii (barionowej).

Formowanie się i stabilność galaktyk

Galaktyki spiralne są ewidentnie stabilne, ale marginalnie stabilne, o czym świadczy:

istnienie ramion spiralnych (fal gęstości) obracających się 2x wolniej od gwiazd

tworzenie się poprzeczki (bar)

skręcenie płaszczyzny galaktycznej (jak chipsy)

Na podstawie symulacji kosmologicznych wnioskujemy, że wszystkie galaktyki rodzą się jako spiralne: powiększają się przez pochłanianie (ang. minor mergers) mniejszych.

W przypadku utraty stabilności np. poprzez zderzenie dwóch dużych galaktyk (ang. major merger) regularny ruch gwiazd po orbitach kołowych ulega zniszczeniu i powstaje chaotyczny ,,gaz’’ gwiazdowy: galaktyka eliptyczna.

g. eliptyczna przypomina nieco gigantyczną gromadę kulistą z N=(10^12) gwiazd

w środku zazwyczaj ,,siedzi’’ supermasywna czarna dziura (np. (SuperStar[M87]), 6.5(10^9)(Subscript[M, ⊙]))

g. eliptyczne często mają duże masy i stanowią centrum gromady galaktyk

Klasyczna (historyczna) klasyfikacja galaktyk

Relacje Tully-Fishera, Fabera-Jacksona, M-σ, M-(Subscript[M, BH])

Na skali od gromad kulistych do gigantycznych galaktyk eliptycznych obserwuje się liczne korelacje parametrów opisujących systemy gwiezdne.

Masa barionowa (jasność) - asymptotyczna prędkość płaskiej krzywej rotacji dla galaktyk spiralnych [Relacja Tully-Fishera]

Jasność (masa) - dyspersja σ prędkości dla galaktyk eliptycznych [Relacja Fabera-Jacksona]

Masa galaktyki - masa centralnej czarnej dziury

Relacje powyższe tłumaczy się teoriami formowania struktur w kosmologicznych N-ciałowych symulacjach ciemnej materii. Alternatywnie, mogłyby być one wynikiem odstępstw od std. teorii grawitacji jak MOND.

Zapraszam na Seminarium Astrofizyczne

Każda środa, 12:30, sala A-1-08