diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py index 4fc3e4a0ac95be3784158d36fd573749ff3fa5e9..ea5445b27e3ada7deeb0e2b943b8cf15c8e555ce 100644 --- a/binarycpython/utils/grid.py +++ b/binarycpython/utils/grid.py @@ -2396,16 +2396,11 @@ class Population: or grid_variable["gridtype"] == "right edge" ): offset = -1 - if (grid_variable["gridtype"] == "right" - or grid_variable["gridtype"] == "right edge"): - start = 0 - else: - start = 0 - elif grid_variable["gridtype"] == "discrete": # discrete variables sample all the points offset = 0 - start = 0 + + start = 0 # for loop over the variable if vb: @@ -2491,9 +2486,8 @@ class Population: self._add_code("\n") # calculate phase volume - if(grid_variable["gridtype"] == "discrete" or grid_variable["dphasevol"] == -1): - # no phase volume required for discrete calculations - # so set it to 1.0 + if(grid_variable["dphasevol"] == -1): + # no phase volume required so set it to 1.0 self._add_code("dphasevol_{name} = 1.0 # 666\n".format(name=grid_variable["name"])) elif(grid_variable["gridtype"] == "right" or @@ -2503,8 +2497,15 @@ class Population: "dphasevol_{name} = (sampled_values_{name}[{name}_this_index] - sampled_values_{name}[{name}_prev_index])".format(name=grid_variable["name"]) + "\n" ) + elif grid_variable["gridtype"] == "discrete": + # discrete might have next defined, use it if we can, + # otherwise use prev + self._add_code( + "dphasevol_{name} = (sampled_values_{name}[{name}_next_index] - sampled_values_{name}[{name}_this_index]) if {name}_next_index else (sampled_values_{name}[{name}_this_index] - sampled_values_{name}[{name}_prev_index])".format(name=grid_variable["name"]) + + "\n" + ) else: - # left or centred always have this and next defined + # left and centred always have this and next defined self._add_code( "dphasevol_{name} = (sampled_values_{name}[{name}_next_index] - sampled_values_{name}[{name}_this_index])".format(name=grid_variable["name"]) + "\n"