{"action":"created","comment":{"url":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments/51998473","id":51998473,"diff_hunk":"@@ -0,0 +1,820 @@\n+module nuclide_header\n+\n+  use, intrinsic :: ISO_FORTRAN_ENV\n+\n+  use ace_header\n+  use constants\n+  use endf,        only: reaction_name\n+  use list_header, only: ListInt\n+  use math,        only: evaluate_legendre\n+  use string\n+\n+  implicit none\n+\n+!===============================================================================\n+! NUCLIDE_BASE contains the base nuclidic data for a nuclide, which does not depend\n+! upon how the nuclear data is represented (i.e., CE, or any variant of MG).\n+! The extended types, Nuclide_CE and Nuclide_MG deal with the rest\n+!===============================================================================\n+\n+  type, abstract :: Nuclide_Base\n+    character(12) :: name    ! name of nuclide, e.g. 92235.03c\n+    integer       :: zaid    ! Z and A identifier, e.g. 92235\n+    real(8)       :: awr     ! Atomic Weight Ratio\n+    integer       :: listing ! index in xs_listings\n+    real(8)       :: kT      ! temperature in MeV (k*T)\n+\n+    ! Linked list of indices in nuclides array of instances of this same nuclide\n+    type(VectorInt) :: nuc_list\n+\n+    ! Fission information\n+    logical :: fissionable         ! nuclide is fissionable?\n+\n+    contains\n+      procedure(nuclide_base_clear_), deferred, pass :: clear ! Deallocates Nuclide\n+      procedure(print_nuclide_),      deferred, pass :: print ! Writes nuclide info\n+  end type Nuclide_Base\n+\n+  abstract interface\n+\n+    subroutine nuclide_base_clear_(this)\n+      import Nuclide_Base\n+      class(Nuclide_Base), intent(inout) :: this\n+    end subroutine nuclide_base_clear_\n+\n+    subroutine print_nuclide_(this, unit)\n+      import Nuclide_Base\n+      class(Nuclide_Base),intent(in) :: this\n+      integer, optional,  intent(in) :: unit\n+    end subroutine print_nuclide_\n+\n+  end interface\n+\n+  type, extends(Nuclide_Base) :: Nuclide_CE\n+    ! Energy grid information\n+    integer :: n_grid                     ! # of nuclide grid points\n+    integer, allocatable :: grid_index(:) ! log grid mapping indices\n+    real(8), allocatable :: energy(:)     ! energy values corresponding to xs\n+\n+    ! Microscopic cross sections\n+    real(8), allocatable :: total(:)      ! total cross section\n+    real(8), allocatable :: elastic(:)    ! elastic scattering\n+    real(8), allocatable :: fission(:)    ! fission\n+    real(8), allocatable :: nu_fission(:) ! neutron production\n+    real(8), allocatable :: absorption(:) ! absorption (MT > 100)\n+    real(8), allocatable :: heating(:)    ! heating\n+\n+    ! Resonance scattering info\n+    logical              :: resonant = .false. ! resonant scatterer?\n+    character(10)        :: name_0K = '' ! name of 0K nuclide, e.g. 92235.00c\n+    character(16)        :: scheme ! target velocity sampling scheme\n+    integer              :: n_grid_0K ! number of 0K energy grid points\n+    real(8), allocatable :: energy_0K(:)  ! energy grid for 0K xs\n+    real(8), allocatable :: elastic_0K(:) ! Microscopic elastic cross section\n+    real(8), allocatable :: xs_cdf(:) ! CDF of v_rel times cross section\n+    real(8)              :: E_min ! lower cutoff energy for res scattering\n+    real(8)              :: E_max ! upper cutoff energy for res scattering\n+\n+    ! Fission information\n+    logical :: has_partial_fission ! nuclide has partial fission reactions?\n+    integer :: n_fission           ! # of fission reactions\n+    integer, allocatable :: index_fission(:) ! indices in reactions\n+\n+    ! Total fission neutron emission\n+    integer :: nu_t_type\n+    real(8), allocatable :: nu_t_data(:)\n+\n+    ! Prompt fission neutron emission\n+    integer :: nu_p_type\n+    real(8), allocatable :: nu_p_data(:)\n+\n+    ! Delayed fission neutron emission\n+    integer :: nu_d_type\n+    integer :: n_precursor ! # of delayed neutron precursors\n+    real(8), allocatable :: nu_d_data(:)\n+    real(8), allocatable :: nu_d_precursor_data(:)\n+    type(AngleEnergyContainer), allocatable :: nu_d_edist(:)\n+\n+    ! Unresolved resonance data\n+    logical                :: urr_present\n+    integer                :: urr_inelastic\n+    type(UrrData), pointer :: urr_data => null()\n+\n+    ! Reactions\n+    integer :: n_reaction ! # of reactions\n+    type(Reaction), allocatable :: reactions(:)\n+    type(DictIntInt) :: reaction_index ! map MT values to index in reactions\n+                                       ! array; used at tally-time\n+\n+    ! Type-Bound procedures\n+    contains\n+      procedure, pass :: clear => nuclide_ce_clear\n+      procedure, pass :: print => nuclide_ce_print\n+  end type Nuclide_CE\n+\n+  type, abstract, extends(Nuclide_Base) :: Nuclide_MG\n+    ! Scattering Order Information\n+    integer :: order      ! Order of data (Scattering for Nuclide_Iso,\n+                          ! Number of angles for all in Nuclide_Angle)\n+    integer :: scatt_type ! either legendre, histogram, or tabular.\n+    integer :: legendre_mu_points ! Number of tabular points to use to represent\n+                                  ! Legendre distribs, -1 if sample with the\n+                                  ! Legendres themselves\n+! Type-Bound procedures\n+    contains\n+      procedure(nuclide_mg_get_xs_), deferred, pass :: get_xs ! Get the xs\n+      procedure(nuclide_calc_f_), deferred, pass    :: calc_f ! Calculates f, given mu\n+  end type Nuclide_MG\n+\n+  abstract interface\n+    function nuclide_mg_get_xs_(this, g, xstype, gout, uvw, mu, i_azi, i_pol) &\n+         result(xs)\n+      import Nuclide_MG\n+      class(Nuclide_MG), intent(in) :: this\n+      integer, intent(in)           :: g      ! Incoming Energy group\n+      character(*), intent(in)      :: xstype ! Cross Section Type\n+      integer, optional, intent(in) :: gout   ! Outgoing Group\n+      real(8), optional, intent(in) :: uvw(3) ! Requested Angle\n+      real(8), optional, intent(in) :: mu     ! Change in angle\n+      integer, optional, intent(in) :: i_azi  ! Azimuthal Index\n+      integer, optional, intent(in) :: i_pol  ! Polar Index\n+      real(8)                       :: xs     ! Resultant xs\n+    end function nuclide_mg_get_xs_\n+\n+    pure function nuclide_calc_f_(this, gin, gout, mu, uvw, i_azi, i_pol) result(f)\n+      import Nuclide_MG\n+      class(Nuclide_MG), intent(in) :: this\n+      integer, intent(in)           :: gin   ! Incoming Energy Group\n+      integer, intent(in)           :: gout  ! Outgoing Energy Group\n+      real(8), intent(in)           :: mu    ! Angle of interest\n+      real(8), intent(in), optional :: uvw(3) ! Direction vector\n+      integer, intent(in), optional :: i_azi ! Incoming Energy Group\n+      integer, intent(in), optional :: i_pol ! Outgoing Energy Group\n+      real(8)                       :: f     ! Return value of f(mu)\n+\n+    end function nuclide_calc_f_\n+  end interface\n+\n+  !===============================================================================\n+! NUCLIDE_ISO contains the base MGXS data for a nuclide specifically for\n+! isotropically weighted MGXS\n+!===============================================================================\n+\n+  type, extends(Nuclide_MG) :: Nuclide_Iso\n+\n+    ! Microscopic cross sections\n+    real(8), allocatable :: total(:)        ! total cross section\n+    real(8), allocatable :: absorption(:)   ! absorption cross section\n+    real(8), allocatable :: scatter(:,:,:)  ! scattering information\n+    real(8), allocatable :: nu_fission(:,:) ! fission matrix (Gout x Gin)\n+    real(8), allocatable :: k_fission(:)    ! kappa-fission\n+    real(8), allocatable :: fission(:)      ! neutron production\n+    real(8), allocatable :: chi(:)          ! Fission Spectra\n+    real(8), allocatable :: mult(:,:)       ! Scatter multiplicity (Gout x Gin)\n+\n+    ! Type-Bound procedures\n+    contains\n+      procedure, pass :: clear  => nuclide_iso_clear     ! Deallocates Nuclide\n+      procedure, pass :: print  => nuclide_iso_print     ! Writes nuclide info\n+      procedure, pass :: get_xs => nuclide_iso_get_xs    ! Gets Size of Data w/in Object\n+      procedure, pass :: calc_f => nuclide_mg_iso_calc_f ! Calcs f given mu\n+  end type Nuclide_Iso\n+\n+!===============================================================================\n+! NUCLIDE_ANGLE contains the base MGXS data for a nuclide specifically for\n+! explicit angle-dependent weighted MGXS\n+!===============================================================================\n+\n+  type, extends(Nuclide_MG) :: Nuclide_Angle\n+\n+    ! Microscopic cross sections. Dimensions are: (Npol, Nazi, Nl, Ng, Ng)\n+    real(8), allocatable :: total(:,:,:)        ! total cross section\n+    real(8), allocatable :: absorption(:,:,:)   ! absorption cross section\n+    real(8), allocatable :: scatter(:,:,:,:,:)  ! scattering information\n+    real(8), allocatable :: nu_fission(:,:,:,:) ! fission matrix (Gout x Gin)\n+    real(8), allocatable :: k_fission(:,:,:)    ! kappa-fission\n+    real(8), allocatable :: fission(:,:,:)      ! neutron production\n+    real(8), allocatable :: chi(:,:,:)          ! Fission Spectra\n+    real(8), allocatable :: mult(:,:,:,:)       ! Scatter multiplicity (Gout x Gin)\n+\n+    ! In all cases, right-most indices are theta, phi\n+    integer              :: Npol         ! Number of polar angles\n+    integer              :: Nazi         ! Number of azimuthal angles\n+    real(8), allocatable :: polar(:)     ! polar angles\n+    real(8), allocatable :: azimuthal(:) ! azimuthal angles\n+\n+    ! Type-Bound procedures\n+    contains\n+      procedure, pass :: clear  => nuclide_angle_clear     ! Deallocates Nuclide\n+      procedure, pass :: print  => nuclide_angle_print     ! Gets Size of Data w/in Object\n+      procedure, pass :: get_xs => nuclide_angle_get_xs    ! Gets Size of Data w/in Object\n+      procedure, pass :: calc_f => nuclide_mg_angle_calc_f ! Calcs f given mu\n+  end type Nuclide_Angle\n+\n+!===============================================================================\n+! NUCLIDEMGCONTAINER pointer array for storing Nuclides\n+!===============================================================================\n+\n+  type NuclideMGContainer\n+    class(Nuclide_MG), pointer :: obj\n+  end type NuclideMGContainer\n+\n+!===============================================================================\n+! NUCLIDE0K temporarily contains all 0K cross section data and other parameters\n+! needed to treat resonance scattering before transferring them to NUCLIDE_CE\n+!===============================================================================\n+\n+  type Nuclide0K\n+\n+    character(10) :: nuclide             ! name of nuclide, e.g. U-238\n+    character(16) :: scheme = 'ares'     ! target velocity sampling scheme\n+    character(10) :: name                ! name of nuclide, e.g. 92235.03c\n+    character(10) :: name_0K             ! name of 0K nuclide, e.g. 92235.00c\n+    real(8)       :: E_min = 0.01e-6_8   ! lower cutoff energy for res scattering\n+    real(8)       :: E_max = 1000.0e-6_8 ! upper cutoff energy for res scattering\n+\n+  end type Nuclide0K\n+\n+!===============================================================================\n+! NUCLIDEMICROXS contains cached microscopic cross sections for a\n+! particular nuclide at the current energy\n+!===============================================================================\n+\n+  type NuclideMicroXS\n+    integer :: index_grid      ! index on nuclide energy grid\n+    integer :: index_temp      ! temperature index for nuclide\n+    real(8) :: last_E = ZERO   ! last evaluated energy\n+    real(8) :: interp_factor   ! interpolation factor on nuc. energy grid\n+    real(8) :: total           ! microscropic total xs\n+    real(8) :: elastic         ! microscopic elastic scattering xs\n+    real(8) :: absorption      ! microscopic absorption xs\n+    real(8) :: fission         ! microscopic fission xs\n+    real(8) :: nu_fission      ! microscopic production xs\n+\n+    ! Information for S(a,b) use\n+    integer :: index_sab          ! index in sab_tables (zero means no table)\n+    integer :: last_index_sab = 0 ! index in sab_tables last used by this nuclide\n+    real(8) :: elastic_sab        ! microscopic elastic scattering on S(a,b) table\n+\n+    ! Information for URR probability table use\n+    logical :: use_ptable  ! in URR range with probability tables?\n+    real(8) :: last_prn\n+  end type NuclideMicroXS\n+\n+!===============================================================================\n+! MATERIALMACROXS contains cached macroscopic cross sections for the material a\n+! particle is traveling through\n+!===============================================================================\n+\n+  type MaterialMacroXS\n+    real(8) :: total         ! macroscopic total xs\n+    real(8) :: elastic       ! macroscopic elastic scattering xs\n+    real(8) :: absorption    ! macroscopic absorption xs\n+    real(8) :: fission       ! macroscopic fission xs\n+    real(8) :: nu_fission    ! macroscopic production xs\n+  end type MaterialMacroXS\n+\n+!===============================================================================\n+! XSLISTING contains data read from a CE or MG cross_sections.xml file\n+! (or equivalent)\n+!===============================================================================\n+\n+  type XsListing\n+    character(12) :: name       ! table name, e.g. 92235.70c\n+    character(12) :: alias      ! table alias, e.g. U-235.70c\n+    integer       :: type       ! type of table (cont-E neutron, S(A,b), etc)\n+    integer       :: zaid       ! ZAID identifier = 1000*Z + A\n+    integer       :: filetype   ! ASCII or BINARY\n+    integer       :: location   ! location of table within library\n+    integer       :: recl       ! record length for library\n+    integer       :: entries    ! number of entries per record\n+    real(8)       :: awr        ! atomic weight ratio (# of neutron masses)\n+    real(8)       :: kT         ! Boltzmann constant * temperature (MeV)\n+    logical       :: metastable ! is this nuclide metastable?\n+    character(MAX_FILE_LEN) :: path ! path to library containing table\n+  end type XsListing\n+\n+  contains\n+\n+!===============================================================================\n+! NUCLIDE_*_CLEAR resets and deallocates data in Nuclide_Base, Nuclide_Iso\n+! or Nuclide_Angle\n+!===============================================================================\n+\n+    subroutine nuclide_ce_clear(this)\n+\n+      class(Nuclide_CE), intent(inout) :: this ! The Nuclide object to clear\n+\n+      integer :: i ! Loop counter\n+\n+      if (associated(this % urr_data)) deallocate(this % urr_data)\n+\n+      if (allocated(this % reactions)) then\n+        do i = 1, size(this % reactions)\n+          call this % reactions(i) % clear()\n+        end do\n+      end if\n+\n+      call this % reaction_index % clear()\n+\n+    end subroutine nuclide_ce_clear\n+\n+    subroutine nuclide_iso_clear(this)\n+\n+      class(Nuclide_Iso), intent(inout) :: this ! The Nuclide object to clear\n+\n+      ! Cler the extended information\n+      if (allocated(this % total)) then\n+        deallocate(this % total, this % absorption, this % scatter)\n+      end if\n+      if (allocated(this % fission)) then\n+        deallocate(this % fission, this % nu_fission)\n+      end if\n+      if (allocated(this % k_fission)) then\n+        deallocate(this % k_fission)\n+      end if\n+      if (allocated(this % chi)) then\n+        deallocate(this % chi)\n+      end if\n+      if (allocated(this % mult)) then\n+        deallocate(this % mult)\n+      end if\n+\n+    end subroutine nuclide_iso_clear\n+\n+    subroutine nuclide_angle_clear(this)\n+\n+      class(Nuclide_Angle), intent(inout) :: this ! The Nuclide object to clear\n+\n+      ! Cler the extended information\n+      if (allocated(this % total)) then\n+        deallocate(this % total, this % absorption, this % scatter)\n+      end if\n+      if (allocated(this % fission)) then\n+        deallocate(this % fission, this % nu_fission)\n+      end if\n+      if (allocated(this % k_fission)) then\n+        deallocate(this % k_fission)\n+      end if\n+      if (allocated(this % chi)) then\n+        deallocate(this % chi)\n+      end if\n+\n+      if (allocated(this % polar)) then\n+        deallocate(this % polar)\n+      end if\n+      if (allocated(this % azimuthal)) then\n+        deallocate(this % azimuthal)\n+      end if\n+      if (allocated(this % mult)) then\n+        deallocate(this % mult)\n+      end if\n+\n+    end subroutine nuclide_angle_clear","path":"src/nuclide_header.F90","position":373,"original_position":373,"commit_id":"989569ac5e4adb3eb8ea989768c87d5e3e1943fd","original_commit_id":"989569ac5e4adb3eb8ea989768c87d5e3e1943fd","user":{"login":"nelsonag","id":1037107,"avatar_url":"https://avatars.githubusercontent.com/u/1037107?v=3","gravatar_id":"","url":"https://api.github.com/users/nelsonag","html_url":"https://github.com/nelsonag","followers_url":"https://api.github.com/users/nelsonag/followers","following_url":"https://api.github.com/users/nelsonag/following{/other_user}","gists_url":"https://api.github.com/users/nelsonag/gists{/gist_id}","starred_url":"https://api.github.com/users/nelsonag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nelsonag/subscriptions","organizations_url":"https://api.github.com/users/nelsonag/orgs","repos_url":"https://api.github.com/users/nelsonag/repos","events_url":"https://api.github.com/users/nelsonag/events{/privacy}","received_events_url":"https://api.github.com/users/nelsonag/received_events","type":"User","site_admin":false},"body":"Agree.  Thought about doing that now, but the base abstract Nuclide type should have a clear routine since the CE Nuclide type (Nuclide_CE) still needs it.  So these MG extended types have to implement something.  I agree that I dont need to do anything, but wouldnt it be a little odd just having a blank routine? \r\n\r\nThat was my thinking at least","created_at":"2016-02-05T10:23:08Z","updated_at":"2016-02-05T10:23:08Z","html_url":"https://github.com/mit-crpg/openmc/pull/494#discussion_r51998473","pull_request_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/494","_links":{"self":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments/51998473"},"html":{"href":"https://github.com/mit-crpg/openmc/pull/494#discussion_r51998473"},"pull_request":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/494"}}},"pull_request":{"url":"https://api.github.com/repos/mit-crpg/openmc/pulls/494","id":50069684,"html_url":"https://github.com/mit-crpg/openmc/pull/494","diff_url":"https://github.com/mit-crpg/openmc/pull/494.diff","patch_url":"https://github.com/mit-crpg/openmc/pull/494.patch","issue_url":"https://api.github.com/repos/mit-crpg/openmc/issues/494","number":494,"state":"open","locked":false,"title":"Addition of MultiGroup Capability","user":{"login":"nelsonag","id":1037107,"avatar_url":"https://avatars.githubusercontent.com/u/1037107?v=3","gravatar_id":"","url":"https://api.github.com/users/nelsonag","html_url":"https://github.com/nelsonag","followers_url":"https://api.github.com/users/nelsonag/followers","following_url":"https://api.github.com/users/nelsonag/following{/other_user}","gists_url":"https://api.github.com/users/nelsonag/gists{/gist_id}","starred_url":"https://api.github.com/users/nelsonag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nelsonag/subscriptions","organizations_url":"https://api.github.com/users/nelsonag/orgs","repos_url":"https://api.github.com/users/nelsonag/repos","events_url":"https://api.github.com/users/nelsonag/events{/privacy}","received_events_url":"https://api.github.com/users/nelsonag/received_events","type":"User","site_admin":false},"body":"As discussed in #336, this PR contains the Multi-group capability.  The list below contains remaining work before this can be considered ready for merge.  \r\n\r\nOverall, I have a decent balance between not touching CE mode, but getting MG close to as fast as when I had it in its own standalone form.  I did this with usage of: extended types, procedure pointers, and a sprinkling of if (run_CE) here and there.\r\n\r\nRight now the only actual issue I am aware of is that CMFD does not work when feedback is enabled; however the CMFD solution is correct when it is not.  My hunch is that this is due to CMFD, which is left living in energy space (vice group space), has some term not being communicated properly back to energy space from the group space.  I haven't been able to find that yet, however.\r\n\r\nI have a question for you guys regarding testing: would you prefer there be specific MG tests in its own sub-directory within /tests/, that there be test_mg_* tests for everything that possibly  could have been touched by this new capability, or that the test harness be taught how to run both a CE and MG problem so we test both modes concurrently?  How were you thinking about attacking this for photon transport @paulromano?  \r\n\r\n- [x] Get CMFD Running (see discussion)\r\n- [x] General optimizations/cleanup (open to ideas for efficiency)\r\n- [x] Add example C5G7 problems\r\n- [x] Add User's Guide Documentation\r\n- [x] Add testing (see discussion)\r\n- [x] Add RelaxNG schema\r\n- [x] Update Python for general API\r\n\r\nReserved for future PRs:\r\n- Support HDF5 cross section files\r\n- Update Methods Documentation\r\n- Update MGXS Module of Python API to support types needed to have CE mode create MG mode data.\r\n","created_at":"2015-11-08T20:50:21Z","updated_at":"2016-02-05T10:23:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"444b68daf0c8ddb23000911579b5308c8e57f7a9","assignee":null,"milestone":{"url":"https://api.github.com/repos/mit-crpg/openmc/milestones/14","html_url":"https://github.com/mit-crpg/openmc/milestones/v0.8","labels_url":"https://api.github.com/repos/mit-crpg/openmc/milestones/14/labels","id":1241750,"number":14,"title":"v0.8","description":"","creator":{"login":"paulromano","id":743095,"avatar_url":"https://avatars.githubusercontent.com/u/743095?v=3","gravatar_id":"","url":"https://api.github.com/users/paulromano","html_url":"https://github.com/paulromano","followers_url":"https://api.github.com/users/paulromano/followers","following_url":"https://api.github.com/users/paulromano/following{/other_user}","gists_url":"https://api.github.com/users/paulromano/gists{/gist_id}","starred_url":"https://api.github.com/users/paulromano/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/paulromano/subscriptions","organizations_url":"https://api.github.com/users/paulromano/orgs","repos_url":"https://api.github.com/users/paulromano/repos","events_url":"https://api.github.com/users/paulromano/events{/privacy}","received_events_url":"https://api.github.com/users/paulromano/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":16,"state":"open","created_at":"2015-08-05T10:39:23Z","updated_at":"2016-02-01T12:45:31Z","due_on":"2016-04-30T05:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/494/commits","review_comments_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/494/comments","review_comment_url":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mit-crpg/openmc/issues/494/comments","statuses_url":"https://api.github.com/repos/mit-crpg/openmc/statuses/989569ac5e4adb3eb8ea989768c87d5e3e1943fd","head":{"label":"nelsonag:mg","ref":"mg","sha":"989569ac5e4adb3eb8ea989768c87d5e3e1943fd","user":{"login":"nelsonag","id":1037107,"avatar_url":"https://avatars.githubusercontent.com/u/1037107?v=3","gravatar_id":"","url":"https://api.github.com/users/nelsonag","html_url":"https://github.com/nelsonag","followers_url":"https://api.github.com/users/nelsonag/followers","following_url":"https://api.github.com/users/nelsonag/following{/other_user}","gists_url":"https://api.github.com/users/nelsonag/gists{/gist_id}","starred_url":"https://api.github.com/users/nelsonag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nelsonag/subscriptions","organizations_url":"https://api.github.com/users/nelsonag/orgs","repos_url":"https://api.github.com/users/nelsonag/repos","events_url":"https://api.github.com/users/nelsonag/events{/privacy}","received_events_url":"https://api.github.com/users/nelsonag/received_events","type":"User","site_admin":false},"repo":{"id":18528596,"name":"openmc","full_name":"nelsonag/openmc","owner":{"login":"nelsonag","id":1037107,"avatar_url":"https://avatars.githubusercontent.com/u/1037107?v=3","gravatar_id":"","url":"https://api.github.com/users/nelsonag","html_url":"https://github.com/nelsonag","followers_url":"https://api.github.com/users/nelsonag/followers","following_url":"https://api.github.com/users/nelsonag/following{/other_user}","gists_url":"https://api.github.com/users/nelsonag/gists{/gist_id}","starred_url":"https://api.github.com/users/nelsonag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nelsonag/subscriptions","organizations_url":"https://api.github.com/users/nelsonag/orgs","repos_url":"https://api.github.com/users/nelsonag/repos","events_url":"https://api.github.com/users/nelsonag/events{/privacy}","received_events_url":"https://api.github.com/users/nelsonag/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nelsonag/openmc","description":"OpenMC Monte Carlo Code","fork":true,"url":"https://api.github.com/repos/nelsonag/openmc","forks_url":"https://api.github.com/repos/nelsonag/openmc/forks","keys_url":"https://api.github.com/repos/nelsonag/openmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nelsonag/openmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nelsonag/openmc/teams","hooks_url":"https://api.github.com/repos/nelsonag/openmc/hooks","issue_events_url":"https://api.github.com/repos/nelsonag/openmc/issues/events{/number}","events_url":"https://api.github.com/repos/nelsonag/openmc/events","assignees_url":"https://api.github.com/repos/nelsonag/openmc/assignees{/user}","branches_url":"https://api.github.com/repos/nelsonag/openmc/branches{/branch}","tags_url":"https://api.github.com/repos/nelsonag/openmc/tags","blobs_url":"https://api.github.com/repos/nelsonag/openmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nelsonag/openmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nelsonag/openmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/nelsonag/openmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nelsonag/openmc/statuses/{sha}","languages_url":"https://api.github.com/repos/nelsonag/openmc/languages","stargazers_url":"https://api.github.com/repos/nelsonag/openmc/stargazers","contributors_url":"https://api.github.com/repos/nelsonag/openmc/contributors","subscribers_url":"https://api.github.com/repos/nelsonag/openmc/subscribers","subscription_url":"https://api.github.com/repos/nelsonag/openmc/subscription","commits_url":"https://api.github.com/repos/nelsonag/openmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/nelsonag/openmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/nelsonag/openmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/nelsonag/openmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/nelsonag/openmc/contents/{+path}","compare_url":"https://api.github.com/repos/nelsonag/openmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nelsonag/openmc/merges","archive_url":"https://api.github.com/repos/nelsonag/openmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nelsonag/openmc/downloads","issues_url":"https://api.github.com/repos/nelsonag/openmc/issues{/number}","pulls_url":"https://api.github.com/repos/nelsonag/openmc/pulls{/number}","milestones_url":"https://api.github.com/repos/nelsonag/openmc/milestones{/number}","notifications_url":"https://api.github.com/repos/nelsonag/openmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nelsonag/openmc/labels{/name}","releases_url":"https://api.github.com/repos/nelsonag/openmc/releases{/id}","deployments_url":"https://api.github.com/repos/nelsonag/openmc/deployments","created_at":"2014-04-07T18:40:04Z","updated_at":"2016-01-16T18:49:13Z","pushed_at":"2016-02-03T18:25:53Z","git_url":"git://github.com/nelsonag/openmc.git","ssh_url":"git@github.com:nelsonag/openmc.git","clone_url":"https://github.com/nelsonag/openmc.git","svn_url":"https://github.com/nelsonag/openmc","homepage":"http://mit-crpg.github.io/openmc/","size":26880,"stargazers_count":0,"watchers_count":0,"language":"FORTRAN","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"mit-crpg:develop","ref":"develop","sha":"6efefcac947d40c213c664e85951a5d1ef535988","user":{"login":"mit-crpg","id":1247634,"avatar_url":"https://avatars.githubusercontent.com/u/1247634?v=3","gravatar_id":"","url":"https://api.github.com/users/mit-crpg","html_url":"https://github.com/mit-crpg","followers_url":"https://api.github.com/users/mit-crpg/followers","following_url":"https://api.github.com/users/mit-crpg/following{/other_user}","gists_url":"https://api.github.com/users/mit-crpg/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-crpg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-crpg/subscriptions","organizations_url":"https://api.github.com/users/mit-crpg/orgs","repos_url":"https://api.github.com/users/mit-crpg/repos","events_url":"https://api.github.com/users/mit-crpg/events{/privacy}","received_events_url":"https://api.github.com/users/mit-crpg/received_events","type":"Organization","site_admin":false},"repo":{"id":2081118,"name":"openmc","full_name":"mit-crpg/openmc","owner":{"login":"mit-crpg","id":1247634,"avatar_url":"https://avatars.githubusercontent.com/u/1247634?v=3","gravatar_id":"","url":"https://api.github.com/users/mit-crpg","html_url":"https://github.com/mit-crpg","followers_url":"https://api.github.com/users/mit-crpg/followers","following_url":"https://api.github.com/users/mit-crpg/following{/other_user}","gists_url":"https://api.github.com/users/mit-crpg/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-crpg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-crpg/subscriptions","organizations_url":"https://api.github.com/users/mit-crpg/orgs","repos_url":"https://api.github.com/users/mit-crpg/repos","events_url":"https://api.github.com/users/mit-crpg/events{/privacy}","received_events_url":"https://api.github.com/users/mit-crpg/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mit-crpg/openmc","description":"OpenMC Monte Carlo Code","fork":false,"url":"https://api.github.com/repos/mit-crpg/openmc","forks_url":"https://api.github.com/repos/mit-crpg/openmc/forks","keys_url":"https://api.github.com/repos/mit-crpg/openmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mit-crpg/openmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mit-crpg/openmc/teams","hooks_url":"https://api.github.com/repos/mit-crpg/openmc/hooks","issue_events_url":"https://api.github.com/repos/mit-crpg/openmc/issues/events{/number}","events_url":"https://api.github.com/repos/mit-crpg/openmc/events","assignees_url":"https://api.github.com/repos/mit-crpg/openmc/assignees{/user}","branches_url":"https://api.github.com/repos/mit-crpg/openmc/branches{/branch}","tags_url":"https://api.github.com/repos/mit-crpg/openmc/tags","blobs_url":"https://api.github.com/repos/mit-crpg/openmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mit-crpg/openmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mit-crpg/openmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/mit-crpg/openmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mit-crpg/openmc/statuses/{sha}","languages_url":"https://api.github.com/repos/mit-crpg/openmc/languages","stargazers_url":"https://api.github.com/repos/mit-crpg/openmc/stargazers","contributors_url":"https://api.github.com/repos/mit-crpg/openmc/contributors","subscribers_url":"https://api.github.com/repos/mit-crpg/openmc/subscribers","subscription_url":"https://api.github.com/repos/mit-crpg/openmc/subscription","commits_url":"https://api.github.com/repos/mit-crpg/openmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/mit-crpg/openmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/mit-crpg/openmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/mit-crpg/openmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/mit-crpg/openmc/contents/{+path}","compare_url":"https://api.github.com/repos/mit-crpg/openmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mit-crpg/openmc/merges","archive_url":"https://api.github.com/repos/mit-crpg/openmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mit-crpg/openmc/downloads","issues_url":"https://api.github.com/repos/mit-crpg/openmc/issues{/number}","pulls_url":"https://api.github.com/repos/mit-crpg/openmc/pulls{/number}","milestones_url":"https://api.github.com/repos/mit-crpg/openmc/milestones{/number}","notifications_url":"https://api.github.com/repos/mit-crpg/openmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mit-crpg/openmc/labels{/name}","releases_url":"https://api.github.com/repos/mit-crpg/openmc/releases{/id}","deployments_url":"https://api.github.com/repos/mit-crpg/openmc/deployments","created_at":"2011-07-21T00:33:27Z","updated_at":"2016-02-05T03:28:41Z","pushed_at":"2016-02-05T01:55:39Z","git_url":"git://github.com/mit-crpg/openmc.git","ssh_url":"git@github.com:mit-crpg/openmc.git","clone_url":"https://github.com/mit-crpg/openmc.git","svn_url":"https://github.com/mit-crpg/openmc","homepage":"http://mit-crpg.github.io/openmc/","size":42204,"stargazers_count":70,"watchers_count":70,"language":"FORTRAN","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":89,"mirror_url":null,"open_issues_count":50,"forks":89,"open_issues":50,"watchers":70,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/494"},"html":{"href":"https://github.com/mit-crpg/openmc/pull/494"},"issue":{"href":"https://api.github.com/repos/mit-crpg/openmc/issues/494"},"comments":{"href":"https://api.github.com/repos/mit-crpg/openmc/issues/494/comments"},"review_comments":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/494/comments"},"review_comment":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mit-crpg/openmc/pulls/494/commits"},"statuses":{"href":"https://api.github.com/repos/mit-crpg/openmc/statuses/989569ac5e4adb3eb8ea989768c87d5e3e1943fd"}}}}