From 8753f2305954d2cac7b9efd0fda04e18abaa8bb3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 20 Sep 2015 09:44:31 +0700 Subject: [PATCH] Change StructuredMesh to RegularMesh. Write type as 'regular'. --- openmc/mesh.py | 4 ++-- openmc/statepoint.py | 7 ++----- src/cmfd_data.F90 | 6 +++--- src/cmfd_execute.F90 | 5 ++--- src/cmfd_input.F90 | 8 ++++---- src/constants.F90 | 2 +- src/eigenvalue.F90 | 4 ++-- src/global.F90 | 8 ++++---- src/input_xml.F90 | 8 ++++---- src/mesh.F90 | 14 +++++++------- src/mesh_header.F90 | 4 ++-- src/output.F90 | 8 ++++---- src/plot.F90 | 3 ++- src/plot_header.F90 | 4 ++-- src/state_point.F90 | 6 +++--- src/summary.F90 | 6 +++--- src/tally.F90 | 8 ++++---- src/trigger.F90 | 3 ++- 18 files changed, 53 insertions(+), 55 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index 7e907aaa5..fefc6d707 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -54,7 +54,7 @@ class Mesh(object): # Initialize Mesh class attributes self.id = mesh_id self.name = name - self._type = 'rectangular' + self._type = 'regular' self._dimension = None self._lower_left = None self._upper_right = None @@ -156,7 +156,7 @@ class Mesh(object): check_type('type for mesh ID="{0}"'.format(self._id), meshtype, basestring) check_value('type for mesh ID="{0}"'.format(self._id), - meshtype, ['rectangular', 'hexagonal']) + meshtype, ['regular', 'hexagonal']) self._type = meshtype @dimension.setter diff --git a/openmc/statepoint.py b/openmc/statepoint.py index 7d5e96b81..72c85d27e 100644 --- a/openmc/statepoint.py +++ b/openmc/statepoint.py @@ -264,7 +264,7 @@ class StatePoint(object): for mesh_key in mesh_keys: # Read the user-specified Mesh ID and type mesh_id = self._f['{0}{1}/id'.format(base, mesh_key)].value - mesh_type = self._f['{0}{1}/type'.format(base, mesh_key)].value + mesh_type = self._f['{0}{1}/type'.format(base, mesh_key)].value.decode() # Read the mesh dimensions, lower-left coordinates, # upper-right coordinates, and width of each mesh cell @@ -275,14 +275,11 @@ class StatePoint(object): # Create the Mesh and assign properties to it mesh = openmc.Mesh(mesh_id) - mesh.dimension = dimension mesh.width = width mesh.lower_left = lower_left mesh.upper_right = upper_right - - #FIXME: Set the mesh type to 'rectangular' by default - mesh.type = 'rectangular' + mesh.type = mesh_type # Add mesh to the global dictionary of all Meshes self._meshes[mesh_id] = mesh diff --git a/src/cmfd_data.F90 b/src/cmfd_data.F90 index 2b1778419..19fe39572 100644 --- a/src/cmfd_data.F90 +++ b/src/cmfd_data.F90 @@ -57,7 +57,7 @@ contains use global, only: cmfd, n_cmfd_tallies, cmfd_tallies, meshes,& matching_bins use mesh, only: mesh_indices_to_bin - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use string, only: to_str use tally_header, only: TallyObject @@ -79,8 +79,8 @@ contains integer :: i_filter_eout ! index for outgoing energy filter integer :: i_filter_surf ! index for surface filter real(8) :: flux ! temp variable for flux - type(TallyObject), pointer :: t => null() ! pointer for tally object - type(StructuredMesh), pointer :: m => null() ! pointer for mesh object + type(TallyObject), pointer :: t ! pointer for tally object + type(RegularMesh), pointer :: m ! pointer for mesh object ! Extract spatial and energy indices from object nx = cmfd % indices(1) diff --git a/src/cmfd_execute.F90 b/src/cmfd_execute.F90 index c55d206cb..4dfe99d77 100644 --- a/src/cmfd_execute.F90 +++ b/src/cmfd_execute.F90 @@ -217,7 +217,7 @@ contains use error, only: warning, fatal_error use global, only: meshes, source_bank, work, n_user_meshes, cmfd, & master - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use mesh, only: count_bank_sites, get_mesh_indices use search, only: binary_search use string, only: to_str @@ -239,8 +239,7 @@ contains integer :: n_groups ! number of energy groups logical :: outside ! any source sites outside mesh logical :: in_mesh ! source site is inside mesh - - type(StructuredMesh), pointer :: m ! point to mesh + type(RegularMesh), pointer :: m ! point to mesh ! Associate pointer m => meshes(n_user_meshes + 1) diff --git a/src/cmfd_input.F90 b/src/cmfd_input.F90 index 2d44d3e9b..dac74c9c3 100644 --- a/src/cmfd_input.F90 +++ b/src/cmfd_input.F90 @@ -247,7 +247,7 @@ contains use constants, only: MAX_LINE_LEN use error, only: fatal_error, warning - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use string use tally, only: setup_active_cmfdtallies use tally_header, only: TallyObject, TallyFilter @@ -264,10 +264,10 @@ contains integer :: i_filter_mesh ! index for mesh filter integer :: iarray3(3) ! temp integer array real(8) :: rarray3(3) ! temp double array - type(TallyObject), pointer :: t => null() - type(StructuredMesh), pointer :: m => null() + type(TallyObject), pointer :: t + type(RegularMesh), pointer :: m type(TallyFilter) :: filters(N_FILTER_TYPES) ! temporary filters - type(Node), pointer :: node_mesh => null() + type(Node), pointer :: node_mesh ! Set global variables if they are 0 (this can happen if there is no tally ! file) diff --git a/src/constants.F90 b/src/constants.F90 index 7d71c0f28..962c4a6a2 100644 --- a/src/constants.F90 +++ b/src/constants.F90 @@ -327,7 +327,7 @@ module constants RELATIVE_ERROR = 2, & STANDARD_DEVIATION = 3 - ! Global tallY parameters + ! Global tally parameters integer, parameter :: N_GLOBAL_TALLIES = 4 integer, parameter :: & K_COLLISION = 1, & diff --git a/src/eigenvalue.F90 b/src/eigenvalue.F90 index 33d63b7cc..403347caa 100644 --- a/src/eigenvalue.F90 +++ b/src/eigenvalue.F90 @@ -9,7 +9,7 @@ module eigenvalue use global use math, only: t_percentile use mesh, only: count_bank_sites - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use particle_header, only: Particle use random_lcg, only: prn, set_particle_seed, prn_skip use search, only: binary_search @@ -304,7 +304,7 @@ contains integer :: i, j, k ! index for bank sites integer :: n ! # of boxes in each dimension logical :: sites_outside ! were there sites outside entropy box? - type(StructuredMesh), pointer :: m => null() + type(RegularMesh), pointer :: m ! Get pointer to entropy mesh m => entropy_mesh diff --git a/src/global.F90 b/src/global.F90 index adc8f17da..398b72e14 100644 --- a/src/global.F90 +++ b/src/global.F90 @@ -8,7 +8,7 @@ module global use dict_header, only: DictCharInt, DictIntInt use geometry_header, only: Cell, Universe, Lattice, LatticeContainer, Surface use material_header, only: Material - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use plot_header, only: ObjectPlot use set_header, only: SetInt use source_header, only: ExtSource @@ -90,7 +90,7 @@ module global ! ============================================================================ ! TALLY-RELATED VARIABLES - type(StructuredMesh), allocatable, target :: meshes(:) + type(RegularMesh), allocatable, target :: meshes(:) type(TallyObject), allocatable, target :: tallies(:) integer, allocatable :: matching_bins(:) @@ -203,11 +203,11 @@ module global logical :: entropy_on = .false. real(8), allocatable :: entropy(:) ! shannon entropy at each generation real(8), allocatable :: entropy_p(:,:,:,:) ! % of source sites in each cell - type(StructuredMesh), pointer :: entropy_mesh + type(RegularMesh), pointer :: entropy_mesh ! Uniform fission source weighting logical :: ufs = .false. - type(StructuredMesh), pointer :: ufs_mesh => null() + type(RegularMesh), pointer :: ufs_mesh => null() real(8), allocatable :: source_frac(:,:,:,:) ! Write source at end of simulation diff --git a/src/input_xml.F90 b/src/input_xml.F90 index 15a08148d..4abc83f6a 100644 --- a/src/input_xml.F90 +++ b/src/input_xml.F90 @@ -8,7 +8,7 @@ module input_xml use geometry_header, only: Cell, Surface, Lattice, RectLattice, HexLattice use global use list_header, only: ListChar, ListReal - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use output, only: write_message use plot_header use random_lcg, only: prn @@ -2091,9 +2091,9 @@ contains character(MAX_WORD_LEN) :: temp_str character(MAX_WORD_LEN), allocatable :: sarray(:) type(DictCharInt) :: trigger_scores - type(ElemKeyValueCI), pointer :: pair_list => null() - type(TallyObject), pointer :: t => null() - type(StructuredMesh), pointer :: m => null() + type(ElemKeyValueCI), pointer :: pair_list + type(TallyObject), pointer :: t + type(RegularMesh), pointer :: m type(TallyFilter), allocatable :: filters(:) ! temporary filters type(Node), pointer :: doc => null() type(Node), pointer :: node_mesh => null() diff --git a/src/mesh.F90 b/src/mesh.F90 index b9d85f439..3d0235d18 100644 --- a/src/mesh.F90 +++ b/src/mesh.F90 @@ -20,7 +20,7 @@ contains subroutine get_mesh_bin(m, xyz, bin) - type(StructuredMesh), pointer :: m ! mesh pointer + type(RegularMesh), pointer :: m ! mesh pointer real(8), intent(in) :: xyz(:) ! coordinates integer, intent(out) :: bin ! tally bin @@ -73,7 +73,7 @@ contains subroutine get_mesh_indices(m, xyz, ijk, in_mesh) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m real(8), intent(in) :: xyz(:) ! coordinates to check integer, intent(out) :: ijk(:) ! indices in mesh logical, intent(out) :: in_mesh ! were given coords in mesh? @@ -98,7 +98,7 @@ contains function mesh_indices_to_bin(m, ijk, surface_current) result(bin) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m integer, intent(in) :: ijk(:) logical, optional :: surface_current integer :: bin @@ -132,7 +132,7 @@ contains subroutine bin_to_mesh_indices(m, bin, ijk) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m integer, intent(in) :: bin integer, intent(out) :: ijk(:) @@ -163,7 +163,7 @@ contains subroutine count_bank_sites(m, bank_array, cnt, energies, size_bank, & sites_outside) - type(StructuredMesh), pointer :: m ! mesh to count sites + type(RegularMesh), pointer :: m ! mesh to count sites type(Bank), intent(in) :: bank_array(:) ! fission or source bank real(8), intent(out) :: cnt(:,:,:,:) ! weight of sites in each ! cell and energy group @@ -264,7 +264,7 @@ contains function mesh_intersects_2d(m, xyz0, xyz1) result(intersects) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m real(8), intent(in) :: xyz0(2) real(8), intent(in) :: xyz1(2) logical :: intersects @@ -330,7 +330,7 @@ contains function mesh_intersects_3d(m, xyz0, xyz1) result(intersects) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m real(8), intent(in) :: xyz0(3) real(8), intent(in) :: xyz1(3) logical :: intersects diff --git a/src/mesh_header.F90 b/src/mesh_header.F90 index 9aa57df90..9da06f813 100644 --- a/src/mesh_header.F90 +++ b/src/mesh_header.F90 @@ -7,7 +7,7 @@ module mesh_header ! congruent squares or cubes !=============================================================================== - type StructuredMesh + type RegularMesh integer :: id ! user-specified id integer :: type ! rectangular, hexagonal integer :: n_dimension ! rank of mesh @@ -16,6 +16,6 @@ module mesh_header real(8), allocatable :: lower_left(:) ! lower-left corner of mesh real(8), allocatable :: upper_right(:) ! upper-right corner of mesh real(8), allocatable :: width(:) ! width of each mesh cell - end type StructuredMesh + end type RegularMesh end module mesh_header diff --git a/src/output.F90 b/src/output.F90 index 73b8e595d..1a841a777 100644 --- a/src/output.F90 +++ b/src/output.F90 @@ -10,7 +10,7 @@ module output HexLattice, BASE_UNIVERSE use global use math, only: t_percentile - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use mesh, only: mesh_indices_to_bin, bin_to_mesh_indices use particle_header, only: LocalCoord, Particle use plot_header @@ -1194,7 +1194,7 @@ contains integer :: filter_index ! index in results array for filters logical :: print_ebin ! should incoming energy bin be displayed? character(MAX_LINE_LEN) :: string - type(StructuredMesh), pointer :: m => null() + type(RegularMesh), pointer :: m ! Get pointer to mesh i_filter_mesh = t % find_filter(FILTER_MESH) @@ -1361,8 +1361,8 @@ contains integer, allocatable :: ijk(:) ! indices in mesh real(8) :: E0 ! lower bound for energy bin real(8) :: E1 ! upper bound for energy bin - type(StructuredMesh), pointer :: m => null() - type(Universe), pointer :: univ => null() + type(RegularMesh), pointer :: m + type(Universe), pointer :: univ bin = matching_bins(i_filter) diff --git a/src/plot.F90 b/src/plot.F90 index d8c255c34..a5497bc20 100644 --- a/src/plot.F90 +++ b/src/plot.F90 @@ -7,6 +7,7 @@ module plot use global use hdf5_interface use mesh, only: get_mesh_indices + use mesh_header, only: RegularMesh use output, only: write_message use particle_header, only: Particle, LocalCoord use plot_header @@ -215,7 +216,7 @@ contains real(8) :: xyz_ur_plot(3) ! upper right xyz of plot image real(8) :: xyz_ll(3) ! lower left xyz real(8) :: xyz_ur(3) ! upper right xyz - type(StructuredMesh), pointer :: m => null() + type(RegularMesh), pointer :: m m => pl % meshlines_mesh diff --git a/src/plot_header.F90 b/src/plot_header.F90 index 8dc725d9d..a6ea9a580 100644 --- a/src/plot_header.F90 +++ b/src/plot_header.F90 @@ -1,7 +1,7 @@ module plot_header use constants - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh implicit none @@ -28,7 +28,7 @@ module plot_header integer :: pixels(3) ! pixel width/height of plot slice integer :: meshlines_width ! pixel width of meshlines integer :: level ! universe depth to plot the cells of - type(StructuredMesh), pointer :: meshlines_mesh => null() ! mesh to plot + type(RegularMesh), pointer :: meshlines_mesh => null() ! mesh to plot type(ObjectColor) :: meshlines_color ! Color for meshlines type(ObjectColor) :: not_found ! color for positions where no cell found type(ObjectColor), allocatable :: colors(:) ! colors of cells/mats diff --git a/src/state_point.F90 b/src/state_point.F90 index 60057a2c9..1115647c4 100644 --- a/src/state_point.F90 +++ b/src/state_point.F90 @@ -20,7 +20,7 @@ module state_point use output, only: write_message, time_stamp use string, only: to_str, zero_padded, count_digits use tally_header, only: TallyObject - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use dict_header, only: ElemKeyValueII, ElemKeyValueCI #ifdef MPI @@ -54,7 +54,7 @@ contains character(20), allocatable :: scores(:) character(8), allocatable :: moment_names(:) ! names of moments (e.g, P3) character(MAX_FILE_LEN) :: filename - type(StructuredMesh), pointer :: meshp + type(RegularMesh), pointer :: meshp type(TallyObject), pointer :: tally type(ElemKeyValueII), pointer :: current type(ElemKeyValueII), pointer :: next @@ -181,7 +181,7 @@ contains mesh_group = create_group(meshes_group, "mesh " // trim(to_str(meshp%id))) call write_dataset(mesh_group, "id", meshp%id) - call write_dataset(mesh_group, "type", meshp%type) + call write_dataset(mesh_group, "type", "regular") call write_dataset(mesh_group, "n_dimension", meshp%n_dimension) call write_dataset(mesh_group, "dimension", meshp%dimension) call write_dataset(mesh_group, "lower_left", meshp%lower_left) diff --git a/src/summary.F90 b/src/summary.F90 index 90a4e726f..4159a209d 100644 --- a/src/summary.F90 +++ b/src/summary.F90 @@ -8,7 +8,7 @@ module summary use global use hdf5_interface use material_header, only: Material - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use output, only: time_stamp use string, only: to_str use tally_header, only: TallyObject @@ -462,7 +462,7 @@ contains integer(HID_T) :: tally_group integer(HID_T) :: filter_group character(20), allocatable :: scores(:) - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m type(TallyObject), pointer :: t tallies_group = create_group(file_id, "tallies") @@ -479,7 +479,7 @@ contains call write_dataset(mesh_group, "index", i) ! Write type and number of dimensions - call write_dataset(mesh_group, "type", m%type) + call write_dataset(mesh_group, "type", "regular") ! Write mesh information call write_dataset(mesh_group, "dimension", m%dimension) diff --git a/src/tally.F90 b/src/tally.F90 index 12085b5d2..69615314f 100644 --- a/src/tally.F90 +++ b/src/tally.F90 @@ -9,7 +9,7 @@ module tally use mesh, only: get_mesh_bin, bin_to_mesh_indices, & get_mesh_indices, mesh_indices_to_bin, & mesh_intersects_2d, mesh_intersects_3d - use mesh_header, only: StructuredMesh + use mesh_header, only: RegularMesh use output, only: header use particle_header, only: LocalCoord, Particle use search, only: binary_search @@ -908,7 +908,7 @@ contains logical :: start_in_mesh ! starting coordinates inside mesh? logical :: end_in_mesh ! ending coordinates inside mesh? type(TallyObject), pointer :: t - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m type(Material), pointer :: mat t => tallies(i_tally) @@ -1249,7 +1249,7 @@ contains integer :: offset ! offset for distribcell real(8) :: E ! particle energy type(TallyObject), pointer :: t - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m found_bin = .true. t => tallies(i_tally) @@ -1402,7 +1402,7 @@ contains logical :: y_same ! same starting/ending y index (j) logical :: z_same ! same starting/ending z index (k) type(TallyObject), pointer :: t - type(StructuredMesh), pointer :: m + type(RegularMesh), pointer :: m TALLY_LOOP: do i = 1, active_current_tallies % size() ! Copy starting and ending location of particle diff --git a/src/trigger.F90 b/src/trigger.F90 index 4a16cd5ca..a74a64be0 100644 --- a/src/trigger.F90 +++ b/src/trigger.F90 @@ -9,6 +9,7 @@ module trigger use string, only: to_str use output, only: warning, write_message use mesh, only: mesh_indices_to_bin + use mesh_header, only: RegularMesh use trigger_header, only: TriggerObject use tally, only: TallyObject @@ -315,7 +316,7 @@ contains real(8) :: std_dev = ZERO ! temporary standard deviration of result type(TallyObject), pointer :: t ! surface current tally type(TriggerObject) :: trigger ! surface current tally trigger - type(StructuredMesh), pointer :: m ! surface current mesh + type(RegularMesh), pointer :: m ! surface current mesh ! Get pointer to mesh i_filter_mesh = t % find_filter(FILTER_MESH)