Groudon, a ground wave online simulation system (multinodes version)
###check out the code Check out the code by using git command.1
git clone git@github.com:quake0day/Groudon.git
To deploy this online simulation system, we need compile serveral componements. Currently, there are two main componments that need to be compiled.
###Grwave We are using International Telecommunication Union (ITU)-R GRWAVE.
- A MS-DOS based software (written in Fortran 77).
- Used by ITU to obtain the graphics showed at Rec. ITU-R P.368-9.
- Allows calculating the field over a path with one value for conductivity.
GRWAVE is publicly available online: Official Website
####usage Firstly, we need to compile grwave by using GFortran Official Website
cd ~/Groudon/grwave/
gfortran grwave.for -o gr
Then we need copy the binary file gr
to Groudon's root directory, you can type something like
cp ~/Groudon/grwave/gr ~/Groudon/gr
###NS2
Firstly, you need make sure that you have a environment that is able to compile original ns2 source code into executable program (it can generate ns
after type make
)
After that, you need copy Shadowing2.cc
and Shadowing2.h
into */ns-2.*/mobile/
Since we want to simulate groundwave propagation, the default max propagation delay defined in NS2 cannot be directly used and need to be changed. (Otherwise if the propagation delay is more than 2us, and sender do not receive ACK, it will re-send the packet and give us a false result)
We need to change */ns-2.x/mac/mac802_11.h
.
#define DSSS_MaxPropagationDelay 0.000002 // 2us XXXX
to a bigger value. Like:
#define DSSS_MaxPropagationDelay 0.02
Then we can recompiled the whole program and copy the generated ns
to ~/Groudon/
Like:
cp */ns-2.*/ns ~/Groudon/ns
###Extra Python library Note:The library name are based on archlinux (AUR) it may have a different name in Ubuntu and other linux distro
- mysql-python
- python2-simplejson
- python2-imaging (PIL)
- python2-numpy
- python2-scipy
###Perl You need to install perl to process simulation result
Si Chen
Yifan Sun
Footnotes
-
The following instruction assume that you checkout this repo to your home directory (~/Groudon). ↩