Vectors and spherical coordinates pseudo code

Konventionen:

array[n] = Array[0-(n-1)];
vectorarray = float[3];

code:

private static testVec(float[] test)
{
  if (test.length != 3)
    {
      print("error in vectormath: array in wrong format");
      exit(-1);
    }
}
public static void vecAdd(float[] base, float[] added)
{
  testVec(base);
  testVec(added);
  loop(3)
    {
      base[i] += added[i];
    }
}
public static void vecSub(float[] base, float[] substracted)
{
  testVec(base);
  testVec(substracted);
  loop(3)
    {
       base[i] -= substracted[i];
    }
}
public static void scalarMult(float a, float[] b)
{
  testVec(b);
  loop(3)
    {
      b[i] *= a;
    }
}
public static float dotProduct(float[]a, float[] b)
{
  float out = 0;

  testVec(a);
  testVec(b);
  loop(3)
    {
      out += a[i]*b[i];
    }
  out = sqrt(out);
  return out;
}
public static float[3] crossProduct(float[] a, float[] b)
{
  float[3] out;
  testVec(a):
  testVec(b);
  loop(3)
    {
      out[i] = a[(i+1)%3]*b[(i+2)%3] - b[(i+1)%3]*a[(i+2)%3];
    }
  return out;
}
public static float[] transformCartToSphere(float[] a)
{
  float[3] out;
  testVec(a);

  out[0] = dotProduct(a, a);
  out[1] = arccos(a[2]/out[0]);

  if (a[0] == 0) out[2] = sgn(y)*(MATH.pi/2);
  else if(a[0] > 0) out[2] = arctan(a[1]/a[0]);
  else
    {
      if (a[1] >= 0) out[2]= arctan(a[1]/a[0]) + MATH.pi;
      if (a[1] < 0) out[2]= arctan(a[1]/a[0]) - MATH.pi;
    }
  return out;
}
public static float[] transformSphereToCart(float[] a)
{
  float[3] out;
  testVec(a);

  out[0] = a[0]*sin(a[1])*cos(a[2]);
  out[1] = a[0]*sin(a[1])*sin(a[2]);
  out[2] = a[0]*cos(a[1]);

  return out;
}

Off topic again: CO2 Messungen mit Lüftungsschlitzen

Mimi und Juli (7a), Jorim und Hinrich (10c)

Dank geht an die beteiligten Lehrer Fau Yoon und Herrn Widlack.

Im Neubau wurde ein Fenster mit Lüftungsschlitzen modifiziert. Wir haben über den Zeitraum von 8:00 bis 11:30 den CO2 Gehalt gemessen.

co2_20140626T075557

Zunächst wurde von 8:00 bis 9:30 so gelüftet wie üblich (mit geöffneten Lüftungsschlitzen).
ZUsätzlich wurden die Fenster wie immer geöffnet bzw. geschlossen. Gegen 9:35 get ein Staubkorn durch den NDIR Sensor. Im weiteren Verlauf der Pause wird über geöffnete Fenster gelüftet. Zwischen 10:00 und 11:30 wurde der Versuch unernommen, die Lüftungsschlitze und
Fenster geschlossen zu halten. Dies konnte nur für eine halbe Stunde ertragen werden, bevor einmal per Fenster gelüftet wurde. Nach einer viertel Stunde erfolgte ein weiterer Anlauf mit geschlossenem Fenster die Entwicklung aufzunehmen. Um 11:20 wurde das Selbstexperiment dann abgebrochen und richtig gelüftet.

Den ganzen Vormittag war es bewölkt! Bemerkenswert ist deshalb der starke Anstieg der Temperatur von 18 auf 28 °C im Klassenraum, während es im Raum Hamburg (Temperatur der Meßstelle des Deutschen Wetterdiensts am FLughafen Fuhlsbüttel) erheblich kühler war.

Man kann eine Reduktion der CO2 Anstiegsrate um etwa 10 % Prozent aufgrund der Lüftungsschlitze erkennen. Die CO2 Konzentration im Raum wird aber auch mit Lüftungsschlitzen nur geringfügig verbessert und überschreitet den deutschen Richtwert von 1500 ppm CO2 weiterhin. Der Luftaustausch reicht auch bei weitem nicht, um die Raumtemperatur in einem erträglichen Rahmen zu halten.

Nach einer Mitteilung der Hamburger Behörde für Soziales, Familie, Gesundheit und Verbraucherschutz vom November 2008 muss ab 2000 ppm CO2 über das Lüften hinausgehende Maßnahmen in Angriff genommen werden

Learning emacs

  1. Vorbereiten der Rechner:
    1. Rechner links (Router mit zwei Netzwerk-Interfaces) mit dem Schulnetz verbinden (eth1 an Netzwerkdose) und die andere (eth0) an den Gigabit-Switch aus dem großen Karton vor dem CosmicRayDetector. Rechneranschlüsse sind beschriftet. DVI Anschluß an Monitor anschließen sowie USB Tastatur.
    2. eth0 des Rechners daneben (DELL) mit dem Switch verbinden.
    3. Beide Rechner, Switch und Monitor an Strom anschließen. Dann erst Switch und Monitor anschalten. Als zweites den Router (Schalter am Netzteil auf I und dann den Knopf in der Nähe des CD Laufwerks anschalten. Wenn der Rechner fertig gebootet hat (sieht man auf dem Monitor) den DELL Rechner anschalten (Frontseite oben rechts, Home-directory Server).
    4. Auf dem Router einloggen und mit dem Kommando ifconfig  die IP Adressen heraussuchen. Die IP-Adresse von eth0 ist die für die ssh benötigte.
    5. Dann kann man sich mit ssh userid@ipaddress einloggen.
  2. Öffnen von emacs ohne File
  3. Starten des Tutorials: C-h t

First plot of a basic daisyworld simulation

This is the first plot of a result of the daisyworld model in Fortran. It can be compared to one of the original article (need to cite properly later):

daisyworld_1

The wiggles in the plot are most probably related to the stability of the integration in time. We need to check the algorithm implemented in the program. This work has been done with Halime, Liv, Livia, and Kira.