montepy.input_parser.syntax_node.MaterialsNode#

class montepy.input_parser.syntax_node.MaterialsNode(name)#

Bases: SyntaxNodeBase

A node for representing isotopes and their concentration, and the material parameters.

This stores a list of tuples of ZAIDs and concentrations, or a tuple of a parameter.

Added in version 1.0.0: This was added as a more general version of IsotopesNodes.

Parameters:

name (str) – a name for labeling this node.

Methods:

_delete_trailing_comment()

Deletes the trailing comment if any.

_grab_beginning_comment(extra_padding)

Consumes the provided comment, and moves it to the beginning of this node.

append()

Append the node to this node.

append_nuclide(isotope_fraction)

Append the isotope fraction to this node.

append_param(param)

Append the parameter to this node.

check_for_graveyard_comments([...])

Checks if there is a graveyard comment that is preventing information from being part of the tree, and handles them.

flatten()

Flattens this tree structure into a list of leaves.

format()

Generate a string representing the tree's current state.

get_trailing_comment()

Get the trailing c style comments if any.

Attributes:

comments

A generator of all comments contained in this tree.

name

The name for the node.

nodes

The children nodes of this node.

_delete_trailing_comment()#

Deletes the trailing comment if any.

_grab_beginning_comment(extra_padding)#

Consumes the provided comment, and moves it to the beginning of this node.

Parameters:

extra_padding (list) – the padding comment to add to the beginning of this padding.

append()#

Append the node to this node.

Parameters:

node (SyntaxNodeBase, str, None) – node

append_nuclide(isotope_fraction)#

Append the isotope fraction to this node.

Added in version 1.0.0: Added to replace append

Parameters:

isotope_fraction (tuple) – the isotope_fraction to add. This must be a tuple from A Yacc production. This will consist of: the string identifying the Yacc production, a ValueNode that is the ZAID, and a ValueNode of the concentration.

append_param(param)#

Append the parameter to this node.

Added in version 1.0.0: Added to replace append

Parameters:

param (ParametersNode) – the parameter to add to this node.

check_for_graveyard_comments(has_following_input=False)#

Checks if there is a graveyard comment that is preventing information from being part of the tree, and handles them.

A graveyard comment is one that accidentally suppresses important information in the syntax tree.

For example:

imp:n=1 $ grave yard Vol=1

Should be:

imp:n=1 $ grave yard
Vol=1

These graveyards are handled by appending a new line, and the required number of continue spaces to the comment.

Added in version 0.4.0.

Parameters:

has_following_input (bool) – Whether there is another input (cell modifier) after this tree that should be continued.

Return type:

None

flatten()#

Flattens this tree structure into a list of leaves.

Added in version 0.4.0.

Returns:

a list of ValueNode and PaddingNode objects from this tree.

Return type:

list

format()#

Generate a string representing the tree’s current state.

Returns:

the MCNP representation of the tree’s current state.

Return type:

str

get_trailing_comment()#

Get the trailing c style comments if any.

Returns:

The trailing comments of this tree.

Return type:

list

property comments#

A generator of all comments contained in this tree.

Returns:

the comments in the tree.

Return type:

Generator

property name#

The name for the node.

Returns:

the node’s name.

Return type:

str

property nodes#

The children nodes of this node.

Returns:

a list of the nodes.

Return type:

list