Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Geometry class #3

Merged
merged 4 commits into from
Sep 23, 2020
Merged

Implement Geometry class #3

merged 4 commits into from
Sep 23, 2020

Conversation

loganchen39
Copy link
Collaborator

Implemented the OISST Geometry class which passed the ctest. For the analysis grid I'll start by using the atlas::RegularLonLatGrid 1x1 degree "Slat360x180", [xt=(0, 1, 2, ..., 359), yt=(-89.5, -88.5, ..., 89.5)], which is the same as SODA's analysis grid. In the future we'll increase the resolution to quarter degree, 0.25x0.25. Here I also did not use the eckit::Configuration, which I probably should.

Copy link
Member

@travissluka travissluka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TravisCI tests are failing because of the oisst_coding_norms test. If you run ctest from the main oisst/ directory within your build directory (not oisst/test) you'll see that one additional test

Test project /home/tsluka/work/oisst/oisst.build/oisst
    Start 1: oisst_coding_norms
1/2 Test #1: oisst_coding_norms ...............***Failed    0.29 sec
    Start 2: test_oisst_geometry
2/2 Test #2: test_oisst_geometry ..............   Passed    0.02 sec

It's annoying, but probably for the best to keep that coding norms test in. If you run with verbose output ctest -R norms -V you'll see the complaints it has (mainly annoying little things like excess white space and such)

Geometry::Geometry(const Geometry & other) : comm_(other.comm_) {
//util::abor1_cpp("Geometry::Geometry() needs to be implemented.", __FILE__, __LINE__);

atlasFunctionSpace_.reset(new atlas::functionspace::StructuredColumns(other.atlasFunctionSpace_->grid(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if all this is needed in the copy constructor here, it might work if the unique pointers were changed to shared pointers, and you just copy the pointers instead. Doesn't really matter at this point though, we can worry about that later when it's time to optimize the code

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes let's worry about it later, right now what I (and Jim) want is to get an initial result first. Later on we will optimize the code as I get more familiar with JEDI and ATLAS etc.

@loganchen39
Copy link
Collaborator Author

I have made the suggested changes. However there are still 5 "errors" from oisst_coding_norms.
Travis, does JEDI have some kind of coding style standard? If it does, please let me know and I'll follow as much as possible. Thanks.
After I made these changes, should I make a new pull request for you again, so you will push the changes to the protected develop branch? I am also new to these github process.

@travissluka
Copy link
Member

@loganchen39 the coding style JEDI uses is the that from google (I think this https://google.github.io/styleguide/cppguide.html). I never actually pay much attention to memorizing what the standard is, I just clean it up at the end after seeing the complaints from that test. You'll get used to it.

Keep this pull request open. Just fix those 5 errors in the norm, push to this same branch, and once those are fixed I'll approve and that "squash and merge" button below will be clickable letting us merge into develop

@loganchen39
Copy link
Collaborator Author

@travissluka I fixed those errors in the norm, compiled and test on my local (Cheyenne) machine, and committed to this develop_chen branch. If you think it's ok, you may approve. It's a good start for me to learn this github process. Thanks,

Copy link
Member

@travissluka travissluka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great, thanks @loganchen39

@travissluka travissluka changed the title develop_chen Implement Geometry class Sep 23, 2020
@travissluka travissluka merged commit 1a3aeb2 into develop Sep 23, 2020
@travissluka travissluka deleted the develop_chen branch September 23, 2020 21:28
loganchen39 added a commit that referenced this pull request May 21, 2021
* remove Model class, no longer needed (#1)

* remove makeobs (#2)

* remove makeobs.x, no longer needed

* remove Model class, no longer needed (#1)

* Implement Geometry class (#3)

* ctest passed for Geometry class

* Modified test CMakeLists.txt

* Travis's suggested changes completed by Ligang

* Travis's suggested changes completed by Ligang

* add dummy serializeable interfaces (#5)

* add serializable interfaces to State (#8)

* replace boost::shared_ptr with std::shared_ptr (#9)

* change jcsda repo locations (#10)

* Implement state class (#11)

* Temporary implememting class State for Travis to check.

* Updated State.cc

* Updating class State

* Updating class State.

* Updating class State.

* Updating class State.

* Finished class State, passed all test.

* Passed all test for class State.

* fix binary path

Co-authored-by: Travis Sluka <[email protected]>

* Finished class Increment.  (#17)

* Finished class Increment.

* Finished class increment.

* Updated increment.yml for class increment.

* Updated for class Increment.

* add test observations (#22)

Merged.

* Changed float to double for JEDI, read/write netCDF with float for consistency. (#24)

* Create Fields base class for Increment/State (#25)

* add MPI support (#26)

* add missing ModelAux stubs (#27)

* Feature/rename (#28)

* rename to umdsst

* switch to public jedi repo locations

* fix travisci

* Implement GetValues (#29)

* start GetValues

* add level(1) to fields

* getvalues working?

* Merge class LinearGetValues (#31)

* Implemented class LinearGetValues, passed all tests.

* minor change of a comment.

* add hofx_nomodel test (#32)

* add hofx_nomodel test

* remove use of external OOPS_TRAPFPE env var, deal with that later

* Finished bugfix/ConertToCelsius. (#41)

* Finished feature class Covariance. (#42)

* fix print in getvalues/lineargetvalues (#45)

* Finished Feature/dirac.x (#43)

* Implementing dirac.x.

* Finished feature dirac.x.

* Finishing feature/dirac.x.

Co-authored-by: Travis Sluka <[email protected]>

* Fixed conversion between Celsius and Kelvin. (#46)

* Fixed conversion between Celsius and Kelvin.

* Finished bugfix/C_K_conversion.

* update for ufo::locations change (#47)

* Finished Feature/staticbinit.x (#48)

* Implementing staticbinit.x

* Finished feature/staticbinit.x

* Finished feature/staticbinit.x 2nd Time.

* keep up with JEDI (#49)

* Finished Feature/var.x (#50)

* Implementing feature/var.x.

* Implementing feature/var.x.

* Implementing var.x

* Finished feature/var.x.

* Finished feature/var.x.

* Feature/add mask field (#51)

* added landmask.nc

* Finished feature/addMaskField.

* Finished feature/addMaskField.

* Finished feature/addMaskField.

* Remove hardcoded 180 and 360.

* Finished feature/useLandmask. (#55)

* Finished feature/useLandmask.

* Finished feature/useLandmask.

* Finished feature/useLandmask.

* add eckit::Configuration to LinearGetValues constructor (#59)

* Add support for horizontally varying correlation lengths (#58)

* clean old bump files on test run

* manually specify correlation lengths

* fix coding norms

* fix dependencies of errorcovariance test

* add StdDev variable change (#60)

* feature/addQC finished (#62)

* Finished AddQC, Solved problems with passing vector of pointers of FieldImpl from C to Fortran.

* Finishing feature/addQC.

* Feature/better landmask (#63)

* Test improved landmask.

* Finished feature/betterLandmask.

* Finished feature/betterLandmask.

* update for oops hofx3d (#64)

* Misc updates (#65)

* convert corr length from gaussian to GC

* add "default" var change

* update reference answers

* fix docker on travisci (#66)

* remove GeneralizedDepartures (#67)

Approved.

* Bugfix/grid issues (#68)

* invert lat on netcdf I/O

* landmask is explicitly applied to background

* flood  the test background file

* fix landmask/grid in yamls

* update reference answers

* add cycling script (#69)

* Create Model2GeoVaLs class (#70)

* fields working for any number of fields

* implement Model2GeoVaLs

* remove ggmask from Geometry

* cleanup

* Rossby radius based horizontal correlation lengths (#73)

* rossby radius based corr loc, using dummy RR values

* kd interpolation in geometry

* using rossby radius in covariance

* fix tests and coding norms

* document interptogeom

* add .dat to lfs

* fix compile error

* support for modules with new ecbuild (#76)

* support for module with new ecbuild

* use public atlas/fckit

* Feature/experiment - Added some initial background of 0.25x0.25 grid. (#77)

* Added some 0.25x0.25 files.

* Added new initial background for 20120101.

* Updated for some initial background of 0.25x025 grid.

* Updated initial background of 0.25x0.25 grid.

* Updated yml files with correct renamed file names.

* Updated to have correct file names.

* update most recent stable repo tags

Co-authored-by: Logan (Ligang) Chen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants