SoundSim
|
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include "main.h"
#include "soundwavefunction.h"
#include "collision.h"
#include "extras.h"
#include <time.h>
#include <sys/types.h>
#include <signal.h>
#include <mpi.h>
#include <stddef.h>
Go to the source code of this file.
Functions | |
item_node *** | createRoom () |
void | allocRoom () |
item_node *** | createRoomNew () |
void | changeRoom (item_node ***newRoom) |
int | getItemID (item_node *node) |
void | setItemID (item_node *node, int id) |
int | getFieldID (int x, int y, int z) |
item_node | getRoom () |
bool | isObstacle (int x, int y, int z) |
void | setFreq20b40 (item_node *node, int value) |
void | setFreq40b100 (item_node *node, int value) |
void | setFreq100b150 (item_node *node, int value) |
void | setFreq150b400 (item_node *node, int value) |
void | setFreq400b1000 (item_node *node, int value) |
void | setFreq1000b2000 (item_node *node, int value) |
void | setFreq2000b3500 (item_node *node, int value) |
void | setFreq3500b6000 (item_node *node, int value) |
void | setFreq6000b10000 (item_node *node, int value) |
void | setFreq10000b20000 (item_node *node, int value) |
int | getFreq20b40 (item_node *node) |
int | getFreq40b100 (item_node *node) |
int | getFreq100b150 (item_node *node) |
int | getFreq150b400 (item_node *node) |
int | getFreq400b1000 (item_node *node) |
int | getFreq1000b2000 (item_node *node) |
int | getFreq2000b3500 (item_node *node) |
int | getFreq3500b6000 (item_node *node) |
int | getFreq6000b10000 (item_node *node) |
int | getFreq10000b20000 (item_node *node) |
void | setDirectionID (item_node *node, int value) |
int | getDirectionID (item_node *node) |
int | getReboundID (int currentDirectionID) |
item_node | getSound (item_node *node) |
item_node | getObstacle (item_node *node) |
item_node * | getItem_Root (int x, int y, int z) |
item_node * | createItem (int x, int y, int z, int id) |
void | removeItem (item_node *node) |
item_node * | addItem (item_node *node, int x, int y, int z) |
item_node * | getItem_RootNewRoom (int x, int y, int z) |
void | addItemNewRoom (item_node *node, int x, int y, int z) |
int | isSoundField (int x, int y, int z) |
void | createReceipt (int(*roomtrans)[cols], int var, int x) |
int * | prepareArrays (item_node *node, int side) |
void | saveVisualisation (int x_offset) |
int | main (int argc, char *argv[]) |
Variables | |
int | visuStep = 1 |
Step Counter für Visualisierung. More... | |
int | x_format |
Raum Formate. More... | |
int | y_format |
int | z_format |
int | j |
int | k |
int | l |
int | i |
int | myrank |
int | size |
const int | nitems = 18 |
int | rows = 5 |
int | realcountright = 0 |
int | realcountleft = 0 |
int | cols = 18 |
item_node * | roomtrans |
Modelierung eines Fragments ! More... | |
item_node *** | room |
item_node *** | room_new |
item_node * | allElementsNew = NULL |
item_node * | allElements = NULL |
Fügt ein Element an eine neue Stelle (Eigenschaften bleiben erhalten), Element an der alten Position wird entfernt
node | |
x | |
y | |
z |
Definition at line 523 of file main.c.
References getItem_Root(), getItemID(), item_node::next, item_node::prev, and removeItem().
void addItemNewRoom | ( | item_node * | node, |
int | x, | ||
int | y, | ||
int | z | ||
) |
Fügt ein Element an eine neue Stelle in new_room (Eigenschaften bleiben erhalten), Element an der alten Position wird entfernt
node | |
x | |
y | |
z |
Definition at line 565 of file main.c.
References getItem_RootNewRoom(), getItemID(), item_node::next, item_node::prev, and removeItem().
Referenced by main(), procedure(), and procedureH().
void allocRoom | ( | ) |
void changeRoom | ( | item_node *** | newRoom | ) |
item_node* createItem | ( | int | x, |
int | y, | ||
int | z, | ||
int | id | ||
) |
Erzeugt ein neues Item mit einer bestimmten ID
x | |
y | |
z | |
id |
Definition at line 476 of file main.c.
References getItem_Root(), getItemID(), item_node::id, item_node::next, item_node::prev, and setMovement().
Referenced by box(), createReceipt(), createWall(), door(), interference(), loudspeaker(), main(), procedure(), and procedureH().
void createReceipt | ( | int(*) | roomtrans[cols], |
int | var, | ||
int | x | ||
) |
Definition at line 604 of file main.c.
References absorption(), createItem(), getReboundID(), isSoundField(), setDirectionID(), setFreq10000b20000(), setFreq1000b2000(), setFreq100b150(), setFreq150b400(), setFreq2000b3500(), setFreq20b40(), setFreq3500b6000(), setFreq400b1000(), setFreq40b100(), setFreq6000b10000(), setMovement(), setSideOfWave(), and setTouche().
Referenced by main().
item_node*** createRoom | ( | ) |
item_node*** createRoomNew | ( | ) |
int getDirectionID | ( | item_node * | node | ) |
Gibt die Richtung eine SoundItem
node |
Definition at line 410 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by addWave(), checkSoundValid(), interference(), main(), prepareArrays(), procedure(), and procedureH().
int getFieldID | ( | int | x, |
int | y, | ||
int | z | ||
) |
Gibt die allgemeine Feld ID zurück.
x | |
y | |
z |
Definition at line 207 of file main.c.
References item_node::id, item_node::next, x_format, and y_format.
Referenced by main().
int getFreq10000b20000 | ( | item_node * | node | ) |
Definition at line 384 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq1000b2000 | ( | item_node * | node | ) |
Definition at line 352 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq100b150 | ( | item_node * | node | ) |
Definition at line 328 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq150b400 | ( | item_node * | node | ) |
Definition at line 336 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), saveVisualisation(), and setFreqAll().
int getFreq2000b3500 | ( | item_node * | node | ) |
Definition at line 360 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq20b40 | ( | item_node * | node | ) |
Definition at line 312 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq3500b6000 | ( | item_node * | node | ) |
Definition at line 368 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq400b1000 | ( | item_node * | node | ) |
Definition at line 344 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq40b100 | ( | item_node * | node | ) |
Definition at line 320 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
int getFreq6000b10000 | ( | item_node * | node | ) |
Definition at line 376 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), checkSoundValid(), decSoundWithMovement(), interference(), prepareArrays(), and setFreqAll().
item_node* getItem_Root | ( | int | x, |
int | y, | ||
int | z | ||
) |
Das Root Element ist das 1.Element jeder gültigen Koordinate (ID 3)
x | |
y | |
z |
Definition at line 454 of file main.c.
References item_node::id, item_node::next, x_format, and y_format.
Referenced by addItem(), createItem(), interference(), main(), saveVisualisation(), and unToucheAll().
item_node* getItem_RootNewRoom | ( | int | x, |
int | y, | ||
int | z | ||
) |
Das Root Element von new_room ist das 1.Element jeder gültigen Koordinate (ID 3)
x | |
y | |
z |
Definition at line 545 of file main.c.
References item_node::id, item_node::next, x_format, and y_format.
Referenced by addItemNewRoom().
int getItemID | ( | item_node * | node | ) |
Gibt die ITEM ID zurück.
node |
Definition at line 185 of file main.c.
References item_node::id.
Referenced by addItem(), addItemNewRoom(), addWave(), checkSoundValid(), copyMovement(), createItem(), decSoundWithMovement(), getDirectionID(), getFreq10000b20000(), getFreq1000b2000(), getFreq100b150(), getFreq150b400(), getFreq2000b3500(), getFreq20b40(), getFreq3500b6000(), getFreq400b1000(), getFreq40b100(), getFreq6000b10000(), getMovement(), getSideOfWave(), getTouch(), getWaveRoot(), increaseMovement(), interference(), prepareArrays(), saveVisualisation(), setDirectionID(), setFreq10000b20000(), setFreq1000b2000(), setFreq100b150(), setFreq150b400(), setFreq2000b3500(), setFreq20b40(), setFreq3500b6000(), setFreq400b1000(), setFreq40b100(), setFreq6000b10000(), setMovement(), setSideOfWave(), setTouche(), setWaveRoot(), testGetItemID(), unTouche(), and unToucheAll().
int getReboundID | ( | int | currentDirectionID | ) |
Gibt die Abprallrichtung abhängig von der aktuellen Richtung
currentDirectionID |
Definition at line 421 of file main.c.
Referenced by createReceipt(), and main().
item_node getRoom | ( | ) |
bool isObstacle | ( | int | x, |
int | y, | ||
int | z | ||
) |
Wahrheitswert ob es sich bei der Koordinate um ein Hinderniss handelt.
x | |
y | |
z |
Definition at line 236 of file main.c.
References item_node::id.
Referenced by main(), and saveVisualisation().
int isSoundField | ( | int | x, |
int | y, | ||
int | z | ||
) |
Prüft ob Feld ein Sound Feld ist
x | |
y | |
z |
Definition at line 586 of file main.c.
References item_node::id, x_format, and y_format.
Referenced by addWave(), and createReceipt().
int main | ( | int | argc, |
char * | argv[] | ||
) |
Gesamtformat
Taktgeber
Definition at line 755 of file main.c.
References absorption(), addItemNewRoom(), addWave(), changeReboundSideOfWave(), changeRoom(), checkSoundValid(), cols, createReceipt(), createRoom(), createRoomNew(), item_node::data, decSoundWithMovement(), door(), getDirectionID(), getFieldID(), getItem_Root(), getReboundID(), getTouch(), i, increaseMovement(), interference(), isObstacle(), j, k, l, loudspeaker(), myrank, item_node::next, prepareArrays(), realcountleft, realcountright, removeItem(), saveVisualisation(), size, item_node::Sound, unToucheAll(), x_format, y_format, and z_format.
int* prepareArrays | ( | item_node * | node, |
int | side | ||
) |
Definition at line 642 of file main.c.
References cols, getDirectionID(), getFreq10000b20000(), getFreq1000b2000(), getFreq100b150(), getFreq150b400(), getFreq2000b3500(), getFreq20b40(), getFreq3500b6000(), getFreq400b1000(), getFreq40b100(), getFreq6000b10000(), getItemID(), getMovement(), getSideOfWave(), getTouch(), j, k, and l.
Referenced by main().
void removeItem | ( | item_node * | node | ) |
Entfernt das ausgewählte Element
node |
Definition at line 500 of file main.c.
References item_node::next, and item_node::prev.
Referenced by addItem(), addItemNewRoom(), checkSoundValid(), interference(), and main().
void saveVisualisation | ( | int | x_offset | ) |
Speichert die Matrix ab. Zeitschritte werden berücksichtigt.
Definition at line 691 of file main.c.
References cols, getFreq150b400(), getItem_Root(), getItemID(), isObstacle(), j, k, l, myrank, item_node::next, rows, x_format, y_format, and z_format.
Referenced by main().
void setDirectionID | ( | item_node * | node, |
int | value | ||
) |
Richtung eines SoundItem setzen
node | |
value |
Definition at line 399 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by createReceipt(), interference(), loudspeaker(), main(), procedure(), and procedureH().
void setFreq10000b20000 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 304 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq1000b2000 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 280 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq100b150 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 262 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq150b400 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 268 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq2000b3500 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 286 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq20b40 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 250 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq3500b6000 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 292 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq400b1000 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 274 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq40b100 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 256 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setFreq6000b10000 | ( | item_node * | node, |
int | value | ||
) |
Definition at line 298 of file main.c.
References item_node::data, getItemID(), and item_node::Sound.
Referenced by absorption(), createReceipt(), decSoundWithMovement(), interference(), loudspeaker(), main(), and setFreqAll().
void setItemID | ( | item_node * | node, |
int | id | ||
) |
Gibt einem ITEM die ID
node | |
id |
Definition at line 196 of file main.c.
References item_node::id.
item_node* allElementsNew = NULL |
Definition at line 34 of file main.c.
Referenced by changeRoom().
int cols = 18 |
Definition at line 29 of file main.c.
Referenced by main(), prepareArrays(), and saveVisualisation().
int i |
Definition at line 20 of file main.c.
Referenced by allocRoom(), box(), changeRoom(), createRoom(), createRoomNew(), createWall(), door(), loudspeaker(), main(), and unToucheAll().
int j |
Definition at line 20 of file main.c.
Referenced by allocRoom(), box(), createRoom(), createRoomNew(), createWall(), door(), main(), prepareArrays(), and saveVisualisation().
int k |
Definition at line 20 of file main.c.
Referenced by box(), createRoom(), createRoomNew(), createWall(), door(), main(), prepareArrays(), and saveVisualisation().
int l |
Definition at line 20 of file main.c.
Referenced by createRoom(), createRoomNew(), main(), prepareArrays(), and saveVisualisation().
int myrank |
OpenMPI Rank 0: Verwalter V, Rank 1: Visualizer V, Rank 2-n: SoundSim S
Definition at line 23 of file main.c.
Referenced by main(), and saveVisualisation().
item_node*** room |
Definition at line 32 of file main.c.
Referenced by createRoom(), and getRoom().
item_node*** room_new |
Definition at line 33 of file main.c.
Referenced by createRoomNew().
int rows = 5 |
Definition at line 26 of file main.c.
Referenced by main(), and saveVisualisation().
int x_format |
Raum Formate.
Definition at line 17 of file main.c.
Referenced by addWave(), allocRoom(), changeRoom(), createRoom(), createRoomNew(), createWall(), door(), getFieldID(), getItem_Root(), getItem_RootNewRoom(), isSoundField(), main(), saveVisualisation(), and unToucheAll().
int y_format |
Definition at line 18 of file main.c.
Referenced by allocRoom(), createRoom(), createRoomNew(), createWall(), door(), getFieldID(), getItem_Root(), getItem_RootNewRoom(), isSoundField(), main(), saveVisualisation(), and unToucheAll().
int z_format |
Definition at line 19 of file main.c.
Referenced by allocRoom(), createRoom(), createRoomNew(), createWall(), door(), main(), saveVisualisation(), and unToucheAll().