Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
291 commits
Select commit Hold shift + click to select a range
dd595f5
BUG: Fix order of pts in mag grid (k-direction) & start changing to d…
abukowski21 Mar 31, 2025
dc4045a
sty: clean up error reporting around offset dipole
abukowski21 Apr 3, 2025
2df83cb
BUG/STY: Fix some missing points in dipole grid, formatting
abukowski21 Apr 3, 2025
fd005d5
FEAT: Check for non-physical cells on geo & mag grids
abukowski21 Apr 3, 2025
88fc85a
BUG: Catch errors making any kind of mag grid
abukowski21 Apr 3, 2025
471f5f5
BUG: Fix radius vs alt units & geo/mag lat on dipole grid
abukowski21 Apr 4, 2025
3104072
STY: Minor changes to dipole things
abukowski21 Apr 7, 2025
70796da
BUG: Fix dipole gradients!
abukowski21 Apr 7, 2025
4abac08
STY: Use scale height func in chapman integrals
abukowski21 Apr 7, 2025
fd13016
FEAT: Add cube with boolean "UseThisCell" for dipole grid. default=true
abukowski21 Apr 7, 2025
6b5ba69
SPEED: speed up calc_efield a tiny bit
abukowski21 Apr 7, 2025
218c7a5
STY: remove std namespace from init_mag_grid
abukowski21 Apr 7, 2025
a4724ff
STY/Bugs: Get chapman integrals working on dipole, clean up code a bit.
abukowski21 Apr 7, 2025
f97eb6f
DOC: add explainer on ninja builds, correct some info on installing &…
abukowski21 Apr 8, 2025
90c5769
DOC: Improve dipole docs. add .ipynb with plots, etc.
abukowski21 Apr 8, 2025
ed941f8
BUG: Fix units in dipole dk_*_meters
abukowski21 Apr 8, 2025
1f47579
STY: Limits outputs from grid_match to high verbosity
abukowski21 Apr 8, 2025
f3e7f81
BUG: Fix init_mag_grid gravity unit vector
abukowski21 Apr 9, 2025
aae064f
BUG: Ensure dk is negative for the dipole grid.
abukowski21 Apr 9, 2025
2274a46
BUG: Remove need to do altitude gradient. use k only.
abukowski21 Apr 9, 2025
224a5d4
BUG: um, dk needs to be POSITIVE for dipole. nan_checks pass now
abukowski21 Apr 9, 2025
7bb99ed
DOC: Update dipole ipynb w prev commit change
abukowski21 Apr 9, 2025
d88cd13
FEAT: Remove need to do lat/lon gradients, instead we can use j&i
abukowski21 Apr 9, 2025
0a3e91f
STY: Alter some verbosity when running
abukowski21 Apr 9, 2025
03e521e
BUG: Gravity & b-field on dipole, fixed
abukowski21 Apr 9, 2025
18c6740
FEAT: Create function to read armadillo cubes into Python. Contains i…
abukowski21 Apr 10, 2025
58e2f21
FEAT: Better handling of alt gc's. And add mat of first ghost cell.
abukowski21 Apr 14, 2025
e0db896
FEAT: Add func to read armadillo mats
abukowski21 Apr 14, 2025
6bb4d6d
bug??: Make sure the altitude limits & ghost cells on the dipole grid…
abukowski21 Apr 15, 2025
94fcdea
FEAT: Get vertical neutral (lower) bc's working with new dipole grid
abukowski21 Apr 15, 2025
392dc09
BUG: ammend prev commit: IC's and BCs were missing some important cells.
abukowski21 Apr 15, 2025
89d766c
DOC: Some plots of the dipole corners & their connections
abukowski21 Apr 17, 2025
0dc3e6c
BUG/STY: Astyle! And fixing init_mag_grid to work better for hi-res
abukowski21 Apr 17, 2025
862b40a
BUG: Use radial distance for BC's, not k-distance
abukowski21 Apr 17, 2025
bf53dfe
BUG: something is wrong with gravity!
aaronjridley Apr 23, 2025
6d25699
BUG: need to start at the first physical cell
aaronjridley Apr 23, 2025
f80320e
BUG: first GC + nGCs - 1 = 2, I think
aaronjridley Apr 23, 2025
f4c319f
FEAT: output magnitude of gravity
aaronjridley Apr 23, 2025
9ea7544
BUG: need sphere4 to go along with dipole4
aaronjridley Apr 23, 2025
ae3ce01
BUG: to capture e-region, need 100 points
aaronjridley Apr 23, 2025
3bcd3fa
STY: Astyle, yo
abukowski21 Apr 18, 2025
e12e25e
FEAT: Make ortho dipole4 the default ionGrid in settings files
abukowski21 Apr 18, 2025
7b8f0de
STY: Formatting of share/run/UA/inputs/defaults.json
abukowski21 Apr 18, 2025
6d5a5cc
FEAT: Make sphere4 the default neutral shape. This will require mpi!
abukowski21 Apr 18, 2025
99cb393
FEAT: Framework for adding tests in at runtime
abukowski21 Apr 21, 2025
79a4c85
FEAT: Create (semi-functional) gradient test
abukowski21 Apr 21, 2025
042302f
DOC: Fix MacOS install instructions to use g++ over clang
abukowski21 Apr 21, 2025
3f3fa44
FEAT: Add a globbed run* to .gitignore - supports any name of rundir's
abukowski21 Apr 23, 2025
5ef672e
FEAT: Post processor improvements! Including:
abukowski21 Apr 23, 2025
30fa3dd
BUG: Whoops prev commit on postprocessor was missing two pieces
abukowski21 Apr 23, 2025
febb59b
BUG: Fix radial unit vector typos in init_mag_grid
abukowski21 Apr 23, 2025
fa4c0bb
DOC: added a couple of comments
aaronjridley Apr 24, 2025
b699a5e
BUG: change sign of b-field in north
aaronjridley Apr 24, 2025
5a5204e
BUG: still issues with gravity direction
aaronjridley Apr 24, 2025
7f32743
FEAT: output grid spacing
aaronjridley Apr 25, 2025
cdc8bac
BUG: spacing should have times -1 in south
aaronjridley Apr 25, 2025
0bb93cd
STY: removed a random comment
aaronjridley Apr 25, 2025
5515253
STY: iDim -> iComp + remove int64_t everywhere
aaronjridley Apr 25, 2025
3866b60
FEAT: Add isClosed to all grids & doesTouch(S/N) pole to dipole
abukowski21 Apr 25, 2025
db2d8fb
DOC: Update docs & default input files to be consistent & correct
abukowski21 Apr 27, 2025
beba721
DOC: Add section on OpenMP & toc to running_aether.md
abukowski21 Apr 27, 2025
b6ecccc
BUG: Make check_for_nans TRUE be default. there are some gremlins
abukowski21 Apr 27, 2025
fc39fa0
FEAT: added ability to message pass
aaronjridley Apr 30, 2025
989984c
FEAT: message passing on multiple grids + iDir = 4
aaronjridley Apr 30, 2025
1c2ef28
FEAT: gotta know if dipole and closed!
aaronjridley Apr 30, 2025
9c9ac14
FEAT: dipole quadtree is like sphere quadtree
aaronjridley Apr 30, 2025
1f0622b
FEAT: connectivity for dipole grid
aaronjridley Apr 30, 2025
12ba82c
FEAT: exchange messages for ion grid
aaronjridley Apr 30, 2025
0bb1649
BUG: row/col switched in solver_gradients 4o_j
abukowski21 Apr 30, 2025
4961430
BUG: init_mag_grid wasn't correctly identifying if its touching the pole
abukowski21 May 8, 2025
c740361
STY: astyle, yo
abukowski21 May 8, 2025
eb9e29b
BUG: Dipole missing factor of 2 in number of GCs
abukowski21 May 8, 2025
d86b038
DOC: describe using astyle within vscode
aaronjridley May 13, 2025
d8c29af
BUG: need a communicator for members of same ensemble
aaronjridley May 14, 2025
fe71bab
BUG: static causes issues for second grid
aaronjridley May 14, 2025
1655828
FEAT: new communicator for ensemble
aaronjridley May 14, 2025
5fe11f9
FEAT: sync mean across ensemble member
aaronjridley May 14, 2025
243b38d
FEAT: get grid to grid message passing to work
aaronjridley May 20, 2025
fc6f18b
FEAT: needed for grid to grid MP
aaronjridley May 20, 2025
406642d
FEAT: needed for grid to grid MP
aaronjridley May 20, 2025
b365ed0
FEAT: testing grid to grid MP
aaronjridley May 20, 2025
e9c01de
FEAT: testing grid to grid MP
aaronjridley May 21, 2025
7bde45e
STY: remove space
aaronjridley May 21, 2025
21c934d
FEAT: make an output file for test results
aaronjridley May 21, 2025
b7b2449
FEAT: allow above and below grid interpolation
aaronjridley May 21, 2025
f43ddd6
Merge branch 'ortho_dipole' of github.com:AetherModel/Aether into ort…
aaronjridley May 22, 2025
ab076ec
BUG: Fix read_armadillo.py, indexing was weird/inconsistent
abukowski21 May 23, 2025
f0f5341
Create fism.py (direct from D Brandt)
abukowski21 Jul 1, 2025
a650409
FEAT: Read in FISM data
abukowski21 Jul 2, 2025
c8b09cd
FEAT: Get stored FISM, make it available as EUV model
abukowski21 Jul 2, 2025
f7e381e
FEAT: Python script to download & rebin FISM automatically
abukowski21 Jul 2, 2025
bb8cfb6
STY: Clean up fism code: add reporting & remove debugging cout's
abukowski21 Jul 2, 2025
8044ddd
Major updates to fism.py: Errors regarding rebinning and case sensiti…
DanBrandt Jul 3, 2025
50efe33
Merge pull request #173 from DanBrandt/fism
abukowski21 Jul 4, 2025
2606ba8
bugs: fism csv file needs to be comma separated, without any #start
abukowski21 Jul 10, 2025
a3bd162
maint: clean debug info, add fism.md with info on new fism stuff
abukowski21 Jul 10, 2025
201649b
bug: set default download location & euv model in fism.py
abukowski21 Jul 10, 2025
226ed39
git: add fism files to gitignore
abukowski21 Jul 10, 2025
91a3a1b
Added neuvac.py within srcPython; generates a .txt file for irradianc…
DanBrandt Jul 14, 2025
0d86eb1
Merge branch 'AetherModel:fism' into fism
DanBrandt Jul 14, 2025
46e85ed
Added version 2 of the euv_59.csv file; contains updated NEUVAC coeff…
DanBrandt Jul 14, 2025
592aebf
Added additional information to doc/internals/fism.md to explain how …
DanBrandt Jul 15, 2025
1a19756
Merge pull request #172 from t-barnard/tayler_branch
aaronjridley Jul 17, 2025
516782f
Note that adjusted means to 1AU and not to Earth
aaronjridley Jul 17, 2025
7fdbc00
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
d39113b
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
87e4828
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
86bfcb7
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
32f5efe
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
ce2b86a
This file is a custom setup file for an editor, maybe
aaronjridley Jul 17, 2025
9289699
Merge pull request #175 from DanBrandt/fism
aaronjridley Jul 17, 2025
63dafb4
BUG: shouldnt have so much output
aaronjridley Jul 17, 2025
9037f7e
Merge branch 'develop' into ortho_dipole
aaronjridley Jul 17, 2025
a220761
I hate warnings
aaronjridley Jul 17, 2025
67ef92c
Merge branch 'ortho_dipole' of github.com:AetherModel/Aether into ort…
aaronjridley Jul 17, 2025
260706d
Merge branch 'ortho_dipole' of github.com:aethermodel/Aether into ort…
abukowski21 Jul 17, 2025
ff07fa4
STY: tabs
aaronjridley Aug 13, 2025
9c22a68
STY: spaces and tabs
aaronjridley Aug 13, 2025
8b4310a
FEAT: added variables for calc_ion_v
aaronjridley Aug 13, 2025
a3cecb6
FEAT: working on adding horizontal cubesphere solver
aaronjridley Aug 13, 2025
5fe512c
STY: tabs and spaces + horizontal cubesphere
aaronjridley Aug 13, 2025
2fd3d91
FEAT: optimizing
aaronjridley Aug 13, 2025
bb59b82
FEAT: advection neutrals horizontal
aaronjridley Aug 13, 2025
4038fe3
FEAT: optimizing
aaronjridley Aug 13, 2025
066f57a
STY: spaces and tabs
aaronjridley Aug 13, 2025
afb783b
FEAT: allow horizontal advection
aaronjridley Aug 13, 2025
2ac8e4f
FEAT: add bell test ICs for advection
aaronjridley Aug 13, 2025
ed1632a
FEAT: horizontal solver for cubesphere
aaronjridley Aug 13, 2025
3084f94
FEAT: cubesphere tools for solvers
aaronjridley Aug 13, 2025
a4cae5f
FEAT: advection only with cubesphere
aaronjridley Aug 13, 2025
e1172ca
BUG: Typo in input/importError in postaether
abukowski21 Aug 13, 2025
c039efd
FEAT: Dipole interpolation coefficients
abukowski21 Aug 13, 2025
fea307e
FEAT: Conversions btwn mag/geo (moved one out of init_mag_grid)
abukowski21 Aug 13, 2025
d310131
add thermoelectric heating=false to defaults.json
abukowski21 Aug 13, 2025
6d5ae64
sty: rename binary > bisect search
abukowski21 Aug 13, 2025
cfd09cf
test: Some stuff for the gradient test on the dipole grid. it doesnt …
abukowski21 Aug 13, 2025
61ed779
STY: ASTYLE, YO
abukowski21 Aug 13, 2025
85f9c87
add radius to bfield output
abukowski21 Aug 13, 2025
e4ee36f
FEAT: added equal-angle terms for cubesphere
aaronjridley Aug 21, 2025
60d61ad
FEAT: added rochi cubesphere solver
aaronjridley Aug 21, 2025
b9d0fa1
commented out some things that dont work yet
aaronjridley Aug 21, 2025
e4af8a4
FEAT: added equal-angular cubesphere grid
aaronjridley Aug 21, 2025
8f183f9
FEAT: added equal-angular cubesphere grid
aaronjridley Aug 21, 2025
04a87ef
FEAT: equal-angular solver is default
aaronjridley Aug 21, 2025
2faca6d
FEAT: added, and commented out, blob for testing
aaronjridley Aug 21, 2025
c2ba58d
removed a bunch of commented out code
aaronjridley Aug 21, 2025
3e7cff8
FEAT: added equal-angle cubesphere solver
aaronjridley Aug 21, 2025
7f765e3
tiny changes
aaronjridley Aug 21, 2025
25284aa
FEAT: 2d toy code for equal-angle cubesphere
aaronjridley Aug 21, 2025
5402e92
Merge pull request #176 from AetherModel/ortho_dipole
aaronjridley Aug 22, 2025
9f2e80e
Merge branch 'develop' into cubesphere_advect
aaronjridley Aug 22, 2025
d7b9cb9
STY: spacing, BUG: removed variables
aaronjridley Aug 22, 2025
180a6a2
Moved advection solver into neutral class
aaronjridley Aug 22, 2025
007ce26
Moved advection solver into neutral class
aaronjridley Aug 22, 2025
58ef380
remove cout
aaronjridley Aug 22, 2025
dc68f6f
test run should be much faster
aaronjridley Aug 22, 2025
9b22166
Merge pull request #177 from AetherModel/cubesphere_advect
aaronjridley Aug 22, 2025
a9faa80
tabs and adding in display cube and matrix
aaronjridley Aug 23, 2025
be8d207
add in things needed for sphere
aaronjridley Aug 23, 2025
efbfc8e
turn back on some terms
aaronjridley Aug 23, 2025
2449592
fill corners augmenting and display cube/matrix
aaronjridley Aug 23, 2025
c0a9ab6
more infinity checks
aaronjridley Aug 23, 2025
ec083d1
removed comments
aaronjridley Aug 23, 2025
557d644
tabbifying
aaronjridley Aug 23, 2025
8581c2b
crashout smoothly if wrong shape is given
aaronjridley Aug 23, 2025
c336dd4
added space
aaronjridley Aug 23, 2025
b090979
crashout smoother in general
aaronjridley Aug 23, 2025
998993f
check to make sure nX = nY for cubesphere
aaronjridley Aug 23, 2025
c32d808
simplify dtx and dtx
aaronjridley Aug 23, 2025
fabbb08
turn back on interpolation + fill corners
aaronjridley Aug 23, 2025
28c0fdb
FEAT: consolidate blocks into one grid if possible
aaronjridley Sep 3, 2025
e205199
FEAT: recovered from an old branch
aaronjridley Sep 3, 2025
b01afeb
Merge pull request #179 from AetherModel/doc_changes
aaronjridley Sep 3, 2025
1c8014b
Merge pull request #178 from AetherModel/test_vertical_advect
aaronjridley Sep 3, 2025
3e8b9ad
Merge branch 'develop' of github.com:AetherModel/Aether into develop
aaronjridley Sep 3, 2025
1d9b170
STY: removed some print statements
aaronjridley Sep 3, 2025
f5b1222
FEAT: switch back on some features on dipole grid
aaronjridley Sep 3, 2025
91b95b3
STY: spaces
aaronjridley Sep 3, 2025
84ddaf1
BUG: start with 0th cell
aaronjridley Sep 3, 2025
4452480
STY: spacing + setting lower temp BC
aaronjridley Sep 3, 2025
f2dac4d
FEAT: fill ghostcells with values to allow good math
aaronjridley Sep 3, 2025
42e39f3
FEAT: fill ghostcells with values to allow good math
aaronjridley Sep 3, 2025
ea9b0c8
FEAT: finally, a formatter for json files
aaronjridley Sep 4, 2025
0a65a33
STY: formatted
aaronjridley Sep 4, 2025
bb451e7
BUG: need to exit main function before reporting time
aaronjridley Sep 4, 2025
73ba425
FEAT: set vertical BCs on the closed field lines
aaronjridley Sep 4, 2025
dd66713
FIX: set some vertical BCs below the grid
aaronjridley Sep 4, 2025
d658e2f
BUG: need dipole stuff so that variables are initialized
aaronjridley Sep 4, 2025
8f31f0d
FEAT: know which horizontal cells to set as BCs
aaronjridley Sep 4, 2025
f27299c
FEAT: working on BCs for closed fieldlines
aaronjridley Sep 4, 2025
913f2a2
FEAT: setting horizontal BCs for closed field lines
aaronjridley Sep 4, 2025
3897890
comment and spacing
aaronjridley Sep 4, 2025
be2a6b1
get to work with cubesphere
aaronjridley Sep 17, 2025
4d467bc
BUG: need to write restart files for grid
aaronjridley Sep 17, 2025
bf98af9
BUG: dont have every processor write
aaronjridley Sep 17, 2025
63ef60d
allow control of perturbing restarts
aaronjridley Sep 17, 2025
c9a3dde
allow control of perturbing restarts
aaronjridley Sep 17, 2025
2371fb2
FEAT: update to latest code
aaronjridley Sep 17, 2025
e3f6a07
STY: fewer couts
aaronjridley Sep 17, 2025
02feed7
FEAT: write y,m,d,h,m,s,ms to restart file
aaronjridley Sep 18, 2025
a029418
FEAT: write current indices for restarting
aaronjridley Sep 18, 2025
a5cf9e1
FEAT: read indices for restart
aaronjridley Sep 18, 2025
ae6f79b
FEAT: if restart process changes indices, reperturb
aaronjridley Sep 18, 2025
320946e
FEAT: if restart process changes indices, reperturb
aaronjridley Sep 18, 2025
7cc4d92
FEAT: add perturbations to test
aaronjridley Sep 18, 2025
f24c149
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
e4965bb
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
1cd92cb
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
ce96914
FEAT: added sphere6 as a shape
aaronjridley Sep 24, 2025
f6bf829
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
827d175
FEAT: prep for physical cell only calcs
aaronjridley Sep 24, 2025
60c8086
FEAT: prep for physical cell only calcs
aaronjridley Sep 24, 2025
653650c
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
52b7783
BUG: should be FLOAT
aaronjridley Sep 24, 2025
4e08694
set geo grid before init_grid
aaronjridley Sep 24, 2025
f89490e
BUG: scale the density to real altitude
aaronjridley Sep 24, 2025
910c4e8
BUG: get the correct grid settings
aaronjridley Sep 24, 2025
6368921
BUG: need the altitude of the lower BC from planet
aaronjridley Sep 24, 2025
39b2cc5
FEAT: define grid shapes and type in constants
aaronjridley Sep 24, 2025
a6f2488
FEAT: define grid shapes and type in constants
aaronjridley Sep 24, 2025
ccced60
STY: more precise output
aaronjridley Sep 24, 2025
449ed72
STY: more precise output
aaronjridley Sep 24, 2025
1ed1318
moved to constants
aaronjridley Sep 24, 2025
43c1eed
changed sphere6
aaronjridley Sep 24, 2025
879b87a
use gridshape instead of booleans
aaronjridley Sep 24, 2025
3ad2843
set lower alt bc and report stuff
aaronjridley Sep 24, 2025
1eb2a6b
clean up and use gridshape
aaronjridley Sep 24, 2025
167ce81
use constants for shapes
aaronjridley Sep 24, 2025
1464c85
FEAT: output lats and lons verbose=1
aaronjridley Sep 24, 2025
a3196bb
FEAT: use gridshape
aaronjridley Sep 24, 2025
35afea5
FEAT: check of latrange is set correctly for dipole
aaronjridley Sep 24, 2025
bd3093c
BUG: quadtree wrong for ion geo grid
aaronjridley Sep 24, 2025
c6ad5e4
define radius
aaronjridley Sep 24, 2025
326b61a
BUG: report error if shape not found
aaronjridley Sep 24, 2025
aa7405d
BUG: works with sphere6 type now
aaronjridley Sep 24, 2025
3f5d6f7
FEAT: test all combos of grid shapes
aaronjridley Sep 24, 2025
9cc4efe
Merge remote-tracking branch 'origin/tayler_branch' into tmp
t-barnard Nov 13, 2025
f1c5aad
Merge pull request to update tayler_branch
t-barnard Nov 13, 2025
dfcc27d
DOC: added more comments
aaronjridley Nov 26, 2025
ce0ab93
updated file
aaronjridley Nov 26, 2025
a0ee54e
STY: astyle, yo
aaronjridley Nov 26, 2025
2cd37a5
BUG: need default to run on 1 processor
aaronjridley Nov 26, 2025
9030957
Merge pull request #182 from AetherModel/data_assimilation
aaronjridley Nov 26, 2025
2e2bca7
Merge branch 'develop' into develop
aaronjridley Nov 26, 2025
c6fa64f
Merge pull request #181 from t-barnard/develop
aaronjridley Nov 27, 2025
ece6165
Merge branch 'develop' into messagepass_grids
aaronjridley Nov 27, 2025
5cd781c
BUG: proper merge between the Aarons codes
aaronjridley Nov 27, 2025
ce962ed
Merge pull request #184 from AetherModel/messagepass_grids
aaronjridley Nov 28, 2025
47c430f
Merge branch 'develop' into fism
aaronjridley Nov 28, 2025
889d68d
Merge pull request #185 from AetherModel/fism
aaronjridley Nov 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@

# Run and build directories
run/
run.test/
run*/
build/

# Doxygen generated files
doc/generated

# Python extras
__pycache__
.ipynb_checkpoints

# autogenerated files
tags
Expand All @@ -38,3 +39,7 @@ _deps
#vs code settings
.vscode
.DS_Store

# fism files
srcPython/FISM*.nc
srcPython/fism*.txt
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ endif()

# Directory variables
file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cpp)
file(GLOB TEST_FILES ${PROJECT_SOURCE_DIR}/srcTest/*.cpp)
set(MAIN_DIR ${PROJECT_SOURCE_DIR}/src/main)
set(TESTS_DIR ${PROJECT_SOURCE_DIR}/tests)
set(OUT_DIR ${PROJECT_SOURCE_DIR}/src/output)
Expand All @@ -34,7 +35,7 @@ elseif(TEST_EXCHANGE)
elseif(TEST_GRADIENT)
add_executable(aether ${SRC_FILES} ${MSIS_FILES} ${MAIN_DIR}/main_test_gradient.cpp)
else()
add_executable(aether ${SRC_FILES} ${MSIS_FILES} ${IE_FILES} ${MAIN_DIR}/main.cpp)
add_executable(aether ${SRC_FILES} ${TEST_FILES} ${MSIS_FILES} ${IE_FILES} ${MAIN_DIR}/main.cpp)
endif()

if(USE_DOUBLE_PRECISION)
Expand Down
29 changes: 10 additions & 19 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,29 +34,20 @@ on WSL with Ubuntu, the command seems to be:

astyle --options=.astylerc src/*.cpp

#### Linting
Astyle can also be used within VSCode as an extension. Install the "Astyle" extension (author: Chieh Yu). Then go to settings (the "Manage" wheel on the bottom left, then click on "settings"). Under "Extensions", click on "Astyle Configuration". Within that, you can set the location of the astylerc file. Click on "Edit in settings.json". Modify the file so it has the following line:
"[cpp]": {
"editor.defaultFormatter": "chiehyu.vscode-astyle",
"editor.formatOnSave": true
},
"astyle.astylerc": "${workspaceRoot}/.astylerc"

For *C++* code make sure to use a static code checker like
[cpplint](https://github.com/cpplint/cpplint) to check the code for
any style issues before submitting. For *Python*,
[flake8](https://flake8.pycqa.org/en/latest/) is a good option. Both
of these may by installed using pip.
This should then allow you to format the code using the defaults that we have set in the astyle file. This can be done with (Ctrl-Shift-I for Linux, Alt-Shift-F for Windows) and upon saving the file - this reformats the whole file to put it into the astyle format.

To install `cpplint`
#### Linting

```sh
# depending on your system one of these lines applies
pip install --user cpplint
pip install cpplint
python3 -m pip cpplint
python3 -m pip --user cpplint
```
For *Python*,
[flake8](https://flake8.pycqa.org/en/latest/) is a good option. This may by installed using pip.

Using a linter in an editor is a good supplement, but not a replacement for the
static linters. The linter in the 'atom' editor requires that you install the
`linter` and `gcc-linter` packages. Atom also has additional packages
`whitespaces` and `tabs-to-spaces` to automatically remove whitespaces at the
end of the lines, and convert tabs to spaces.

## Commit Styling

Expand Down
25 changes: 16 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ developed.

## Contents

- [Aether](#aether)
- [Contents](#contents)
- [Quick Start](#quick-start)
- [Dependencies](#dependencies)
- [Getting the Code](#getting-the-code)
- [Compiling \& Running](#compiling--running)
- [Code Manual](#code-manual)
- [Further Documentation](#further-documentation)
- [Contents](#contents)
- [Quick Start](#quick-start)
- [Dependencies](#dependencies)
- [Getting the Code](#getting-the-code)
- [Compiling \& Running](#compiling--running)
- [Inputs](#inputs)
- [Code Manual](#code-manual)
- [Further Documentation](#further-documentation)

## Quick Start

Expand Down Expand Up @@ -141,9 +141,16 @@ structure like this:
cd ..
cp -R share/run ./run.test
cd run.test
./aether
mpirun -np 4 ./aether
```

This will run the default configuration of Aether, which requires four MPI processors.
The default grids are `sphere4` and `dipole4` for the neutrals and ions (respectively),
which both require four "root nodes", or MPI workers. To read more about root nodes and
the available grids, please see [this page in the documentation](doc/internals/grid.md).

### Inputs

There are essentially two input files that specify the settings in the code.
When you are in a run directory, they are:

Expand Down
1 change: 1 addition & 0 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Contents within `doc`:
- [Ensembles](internals/ensembles.md)
- [Indices](internals/indices.md)
- [The Grid](internals/grid.md)
- [Coordinate Systems](internals/coordinates.md)
- [Doxyfile](Doxyfile)
- [README (this page)](README.md)
- [Citations](citations.md)
Expand Down
31 changes: 19 additions & 12 deletions doc/installation/dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,35 @@ If a path is printed, `cmake` is installed. To check the version, run `cmake
The layout of this page is as follows:

- [Installing Dependencies](#installing-dependencies)
- [Install gcc](#install-gcc)
- [Install Compiler](#install-compiler)
- [Install cmake](#install-cmake)
- [Install JSON libraries](#install-json-libraries)
- [Install Armadillo (and boost)](#install-armadillo-and-boost)
- [Install NetCDF (optional)](#install-netcdf-optional)

## Install gcc
## Install Compiler

This comes installed by default on Ubuntu. On MacOS this can be installed, for
example, using:
On MacOS this can be installed, for example, using:

```bash
sudo port install gcc11
sudo port install g++
```

> As development began, gcc11 was the latest version; there are newer versions
> of `gcc` available now (latest version is gcc14), which have not yet been
> validated.
> NOTE: On Macos, cmake will default to using clang instead of gcc.
You need to set an environmental variable to tell cmake to use g++ instead.
Do this with `export CXX=/opt/local/bin/g++`,
and replace the path if it is placed somewhere different.

On Ubuntu, `gcc` (the C-compiler) is pre-installed, but the C++ compiler is not. This
can be installed with (subsituting your machine's package manager command):

```bash
sudo apt install g++
```

## Install cmake

Aether uses [CMake](https://cmake.org/) instead of `make`. If you don't have it
Aether uses [CMake](https://cmake.org/) instead of GNU make. If you don't have it
installed, you need it.

For MacOS, this can be installed with:
Expand All @@ -57,7 +64,7 @@ For Ubuntu/Debian Linux:
sudo apt install cmake
```

This can be done on RedHat using yum also.
This can be done on RedHat using `yum` also.

## Install JSON libraries

Expand Down Expand Up @@ -100,7 +107,7 @@ sudo port install lapack
sudo port install OpenBLAS
sudo port install boost
sudo port install armadillo
sudo port install openmpi-bin libopenmpi-dev
sudo port install openmpi
```

## Install NetCDF (optional)
Expand All @@ -119,7 +126,7 @@ sudo port install netcdf-cxx4
If you want the gcc version of netcdf, then:

```bash
sudo port install netcdf-cxx4 +gcc10
sudo port install netcdf-cxx4
```

On Ubuntu, gcc is the default compiler, it seems like you can probably just do:
Expand Down
6 changes: 3 additions & 3 deletions doc/installation/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,10 @@ Here `FLAG` is a flag name and `VALUE` is the desired value (note the `-D`). A
more complete discussion of the available compilation flags can be found on the
[Compilation Options](build_opts.md) page.

If your default compiler isn't a GCC compiler, you will likely need to specify
the desired GCC compiler at this step using:
> If your default compiler isn't a GCC compiler, you will likely need to specify
the desired GCC compiler at this step using the environmental variable `$CXX`, or:

```bash
> ```bash
cmake -DCMAKE_CXX_COMPILER=<gcc or mpi executable with full path>
```

Expand Down
16 changes: 10 additions & 6 deletions doc/internals/coordinates.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,16 @@

## Dipole Coordinates
- Longitude (radians) - radians east of the meridian that contains the north magnetic pole and north rotation axis
- P (?) - Identifies the field line, related to L-shell
- Q (meters?) - The distance along the field line from some reference point, related to magnetic latitude.
- P (meters) - Identifies the field line. This is the same as L-shell and is constant along wach field line.
- Q (dimensionless) - parameterizes the distance along the field line, related to magnetic latitude & radius. This varies along the field line, but the values are idential for all field lines within each node. q=0 at the equator, and approaches positive (negative) infinity as theta points towards the north (south) pole. Thus, q values will be negative in the southern hemisphere and the change in q "upwards" will be negative in the northern hemisphere. See [../../edu/examples/Dipole](../../edu/examples/Dipole) for more information.

## More Dipole Coordinates
- L-shell (Planetary Radii) - The distance from the planet's center at which the magnetic field encounters the dipole's equatorial plane
- Magnetic Latitude (radians) - angle between the dipole's equatorial plane and the point.
- Invariant Latitude (degrees) - angle between the dipole's equatorial plane and the point at which the field-line passes through a reference radius of the planet. This is constant along the field-line and is related to the L-Shell.
- Magnetic Latitude (radians) - angle between the dipole's equatorial plane and a point.
- Invariant Latitude (radians) - angle between the dipole's equatorial plane and the point at which the field-line passes through a reference radius of the planet ([specified in the inputs](../internals/grid.md#inputs)). This is constant along the field-line and is related to the L-Shell.
- Magnetic Local Time (hours) - Angle between the sun, the north magnetic pole, and the point. Explicitly, this is done in PSE XY coordinates, ignoring the Z coorinate.

> The dipole `(i,j,k)` coordinates are (magnetic longitude, p, q).

# Coordinates in Aether

Expand All @@ -46,12 +47,15 @@ Because Aether considers gravity to be a function of radius and explicitly inclu

## i, j, k Coordinates

As described in the grid.md file, Aether uses a logical '(i, j, k)' 3D grid structure. Therefore, we refer to the 'primary' coordinates as the ijk coordinate system. What this means is that the i-coordinate is in the i-direction, the j-coordinate is in the j-direction, and the k-coordinate is in the k-direction.
As described in the grid.md file, Aether uses a logical `(i, j, k)` 3D grid structure. Therefore, we refer to the 'primary' coordinates as the ijk coordinate system. What this means is that the i-coordinate is in the i-direction, the j-coordinate is in the j-direction, and the k-coordinate is in the k-direction.

For the (perfectly) spherical grid, the i-coordinate is longitude, the j-coordinate is latitude, and the k-coordinate is radius.

For the Cubedsphere grid, the i-coordinate is RIGHT, the j-coodinate is UP, and the k-coordinate is radius. Each face of the cubedsphere has the same coordinate system, but only with reference to that face. This means that if each face is looked at independently, the lower left corner is at (about) i = -45, j = -45 deg, while the upper right corner is at i = +45, j = +45 deg. Radius is treated the same as in a spherical grid.

For the dipole coordinate system, the i-coordinate is magnetic longitude, the j-coordinate is L-shell, and the k-coordinate is Q: a dimensionless parameter, normalized to the planet radius, representing diatance along a magnetic field line. The dipole is orthogonal to a dipolar magnetic field.


Should the official coordinates be in the native coordinates (which could be different for each system), or should the coordinates be in meters, such that when gradients are taken, they are in /m?

Maybe we could have:
Expand All @@ -69,6 +73,6 @@ Locations:
All locations should be described in the following coordinates:
- i, j, k
- lon, lat, radius (+alt)
- magnetic lon, invariant lat?
- magnetic lon, invariant lat (only the dipole magnetic grid then has magnetic latitude)


42 changes: 42 additions & 0 deletions doc/internals/fism.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# FISM-2

FISM-2 can be used as a EUV model.

Needs the FISM-2 files automatically made by `srcPython/fism.py`.

FISM-2 contains the binned flux already, however Aether must still be provided with an
EUV csv file containing the cross-sections.

The different fism models available in fism.py contain different numbers of bins, so
the euv file must be different.

| Model | number of bins | euv file |
| :--- | :-------------: | -------: |
| HFG | 23 | euv_solomon.csv |
| Solomon | 23 | euv_solomon.csv |
| NEUVAC | 37/59 | euv.csv / euv_59.csv |
| EUVAC | 37 | euv.csv |

The input format, when using fism data:

"Euv" : {
"doUse" : true,
"Model" : "fism",
"File" : "UA/inputs/euv_59.csv",
"fismFile": "fism2_file_59.txt",
"IncludePhotoElectrons" : true,
"HeatingEfficiency" : 0.05,
"dt" : 60.0
},

To generate FISM-2 irradiances between two dates, one may call fism.py like so:

srcPython/fism.py 20110319 20110321 -b neuvac

Note that the optional argument '-b' defaults to the binning scheme of the NEUVAC model,
which employs 59 bins. To use the 37 bins of the EUVAC model, the argument should be
'euvac', while to use the 23 bins used by the HFG model, the argument should be 'solomon'.

fism.py should always be run before Aether is run using the FISM-2 model. Even though the
entire FISM-2 irradiances are stored in the repository, Aether will need a separate .csv
file containing the temporal subset of FISM-2 irradiances in the desired binning scheme.
Loading