montepy.cells module#

class montepy.cells.Cells(cells=None, problem=None)#

Bases: NumberedObjectCollection

A collections of multiple montepy.cell.Cell objects.

Parameters:
  • cells (list) – the list of cells to start with if needed

  • problem (MCNP_Problem) – the problem to link this collection to.

property allow_mcnp_volume_calc#

Whether or not MCNP is allowed to automatically calculate cell volumes.

Returns:

true if MCNP will attempt to calculate cell volumes

Return type:

bool

append(obj)#

Appends the given object to the end of this collection.

Parameters:

obj (Numbered_MCNP_Object) – the object to add.

Raises:

NumberConflictError – if this object has a number that is already in use.

append_renumber(obj, step=1)#

Appends the object, but will renumber the object if collision occurs.

This behaves like append, except if there is a number collision the object will be renumbered to an available number. The number will be incremented by step until an available number is found.

Parameters:
  • obj (Numbered_MCNP_Object) – The MCNP object being added to the collection.

  • step (int) – the incrementing step to use to find a new number.

Returns:

the number for the object.

Return type:

int

check_number(number)#

Checks if the number is already in use, and if so raises an error.

Parameters:

number (int) – The number to check.

Raises:

NumberConflictError – if this number is in use.

clear()#

Removes all objects from this collection.

clone(starting_number=None, step=None)#

Create a new instance of this collection, with all new independent objects with new numbers.

This relies mostly on copy.deepcopy.

Note

If starting_number, or step are not specified starting_number(), and step() are used as default values.

Added in version 0.5.0.

Parameters:
  • starting_number (int) – The starting number to request for a new object numbers.

  • step (int) – the step size to use to find a new valid number.

Returns:

a cloned copy of this object.

Return type:

type(self)

extend(other_list)#

Extends this collection with another list.

Parameters:

other_list (list) – the list of objects to add.

Raises:

NumberConflictError – if these items conflict with existing elements.

get(i: int, default=None) -> (<class 'montepy.numbered_mcnp_object.Numbered_MCNP_Object'>, None)#

Get i if possible, or else return default.

Parameters:
  • i (int) – number of the object to get, not it’s location in the internal list

  • default (object) – value to return if not found

Return type:

Numbered_MCNP_Object

items() Generator[Tuple[int, Numbered_MCNP_Object], None, None]#

Get iterator of the collections (number, object) pairs.

Return type:

tuple(int, MCNP_Object)

keys() Generator[int, None, None]#

Get iterator of the collection’s numbers.

Return type:

int

Links the input to the parent problem for this input.

This is done so that inputs can find links to other objects.

Parameters:

problem (MCNP_Problem) – The problem to link this input to.

next_number(step=1)#

Get the next available number, based on the maximum number.

This works by finding the current maximum number, and then adding the stepsize to it.

Parameters:

step (int) – how much to increase the last number by

property numbers#

A generator of the numbers being used.

Return type:

generator

property objects#

Returns a shallow copy of the internal objects list.

The list object is a new instance, but the underlying objects are the same.

Return type:

list

pop(pos=-1)#

Pop the final items off of the collection

Parameters:

pos (int) – The index of the element to pop from the internal list.

Returns:

the final elements

Return type:

Numbered_MCNP_Object

remove(delete)#

Removes the given object from the collection.

Parameters:

delete (Numbered_MCNP_Object) – the object to delete

request_number(start_num=None, step=None)#

Requests a new available number.

This method does not “reserve” this number. Objects should be immediately added to avoid possible collisions caused by shifting numbers of other objects in the collection.

Note

If starting_number, or step are not specified starting_number(), and step() are used as default values.

Changed in version 0.5.0: In 0.5.0 the default values were changed to reference starting_number() and step().

Parameters:
  • start_num (int) – the starting number to check.

  • step (int) – the increment to jump by to find new numbers.

Returns:

an available number

Return type:

int

set_equal_importance(importance, vacuum_cells=())#

Sets all cells except the vacuum cells to the same importance using montepy.data_cards.importance.Importance.all().

The vacuum cells will be set to 0.0. You can specify cell numbers or cell objects.

Parameters:
  • importance (float) – the importance to apply to all cells

  • vacuum_cells (list) – the cells that are the vacuum boundary with 0 importance

property starting_number#

The starting number to use when an object is cloned.

Returns:

the starting number

Return type:

int

property step#

The step size to use to find a valid number during cloning.

Returns:

the step size

Return type:

int

update_pointers(cells, materials, surfaces, data_inputs, problem, check_input=False)#

Attaches this object to the appropriate objects for surfaces and materials.

This will also update each cell with data from the data block, for instance with cell volume from the data block.

Parameters:
  • cells (Cells) – a Cells collection of the cells in the problem.

  • materials (Materials) – a materials collection of the materials in the problem

  • surfaces (Surfaces) – a surfaces collection of the surfaces in the problem

  • problem (MCNP_Problem) – The MCNP_Problem these cells are associated with

  • check_input (bool) – If true, will try to find all errors with input and collect them as warnings to log.

values() Generator[Numbered_MCNP_Object, None, None]#

Get iterator of the collection’s objects.

Return type:

Numbered_MCNP_Object