@@ -18,17 +18,18 @@ cp -R share/run ./run.first_run
18
18
This creates the directory where you will do your run. In that directory is a
19
19
link to the aether executable and an input file called aether.json.
20
20
21
- You can then run the executable from the directory you created.
21
+ You can then run the executable from the directory you created. This uses four cores,
22
+ which is the minimum for the dipole grid.
22
23
23
24
``` bash
24
25
cd run.first_run
25
- ./aether
26
+ mpirun -np 4 ./aether
26
27
```
27
28
28
29
You should see something like:
29
30
30
31
``` bash
31
- run.first_run% ./aether
32
+ run.first_run% mpirun -np 4 ./aether
32
33
> Need to NOT adjust F10.7, but that isn' t included yet!!!
33
34
> Writing file : 3DALL_20110320_000000
34
35
> Writing file : 3DBFI_20110320_000000
@@ -59,6 +60,16 @@ The successful end of this will show a timing summary, similar to:
59
60
timing_total (s) : 2.94398
60
61
```
61
62
63
+ ### Running in 1D
64
+
65
+ If you want to quickly run Aether to test if things are working, there are a few changes
66
+ that need to be made to run in one dimension.
67
+
68
+ 1. Change the input file' s, ` aether.json` , value for the neutral and ion grids ** both**
69
+ to ` " sphere" ` . No number!
70
+ 2. Run the code with ` ./aether` . This will not use MPI, however armadillo may use
71
+ multiple OpenMP processes for math, so be careful on cluster login nodes.
72
+
62
73
# # Output Files
63
74
64
75
Aether outputs to a subdirectory called UA/output. At this time, all processors
@@ -127,11 +138,36 @@ model. This file is in UA/inputs/defaults.json.
127
138
This is a json file that sets all of the defaults within Aether. This file
128
139
should never be modified!
129
140
130
- ### For Developers
141
+ # # For Developers
131
142
132
- Within Aether, the inputs.cpp file has a large handful of of get_ routines to
143
+ Within Aether, the inputs.cpp file has a large handful of of ` get_` routines to
133
144
get the values of the settings that the user has set.
134
145
146
+ To speedup builds, it can be faster to use Ninja instead of GNU make. Ninja
147
+ automatically parallelizes to fit your machine, can re-run cmake for small changes, and
148
+ has other small differences from GNU make. To use ninja for builds:
149
+
150
+ 1. Ensure it is installed. This can be done with conda or your system' s package manager
151
+ (note on Ubuntu it is called "ninja-build)
152
+ 2. Clear the GNU make build pecs from `build`. This is most easily done by removing the
153
+ `CMakeCache.txt` file, but you can remove the entire contents of the build directory.
154
+ 3. Tell cmake to generate build scripts for Ninja. From `Aether/build/`, run:
155
+ `cmake -GNinja [any options] ../`.
156
+ 4. Build with `ninja`. This will use as many cores asz your system has.
157
+
158
+ The dfevelopment process can be further sped up since Ninja can change directories
159
+ before compiling. This is useful, for example, to not need to cd out of run when testing
160
+ changes. From `Aether/run/`, you can compile and run the code with the one-liner:
161
+
162
+ ```bash
163
+ ninja -C ../build && mpirun -np 4 ./aether
164
+ ```
165
+
166
+ The `-C` flag specifies which directory to move to before building. Obviously, change it
167
+ if yours is different. When changing header files, Ninja often catches the change and
168
+ will re-run cmake automatically. If not, you will need to remove `CMakeCache.txt` and
169
+ re-run cmake (again using the `-GNinja` flag).
170
+
135
171
## aether.json file
136
172
137
173
The file aether.json is read in AFTER the defaults file and these settings
0 commit comments