Volume#
- class montepy.data_inputs.volume.Volume(input: Input | str = None, in_cell_block: bool = False, key: str = None, value: SyntaxNode = None, *, problem: MCNP_Problem = None, jit_parse: bool = True, **kwargs)#
Bases:
CellModifierInputClass for the data input that modifies cell volumes;
VOL.Changed in version 1.5.0: Added
jit_parseparameter- Parameters:
input (
Input|str) – the Input object representing this data inputin_cell_block (
bool) – if this card came from the cell block of an input file.key (
str) – the key from the key-value pair in a cellvalue (
SyntaxNode) – the value syntax tree from the key-value pair in a celljit_parse (
bool) – Parse the object just-in-time, when the information is actually needed, if True.problem (montepy.MCNP_Problem)
Methods:
Checks that data wasn't given in data block and the cell block.
The text part of the input identifier.
After data has been pushed to cells, delete internal data to avoid inadvertent editing.
Gets a list of the ValueNodes that hold the information for all cells.
Deletes trailing comments from an object when it has been moved to another object.
Formats the syntax tree for printing in an input file.
_generate_default_node(value_type, default)Generates a "default" or blank ValueNode.
Generate default syntax trees that can be exported once the object is not in an illegal state.
_grab_beginning_comment(padding[, last_obj])Whether or not this class supports particle classifiers.
Whether or not this class supports numbering.
Initialize the object to a base state, before any parsing.
Takes the information from syntax tree and link it to the internal attributes.
Updates values in the syntax tree when in the cell block.
Method to update values in syntax tree with new values.
clone()Create a new independent instance of this object.
format_for_mcnp_input(mcnp_version[, ...])Creates a string representation of this MCNP_Object that can be written to file.
Fully parses this object, and disable just-in-time parsing for it.
link_to_problem(problem, *[, deepcopy])Links the input to the parent problem for this input.
mcnp_str([mcnp_version])Returns a string of this input as it would appear in an MCNP input file.
merge(other)Merges the data from another card of same type into this one.
After being linked to the problem update all cells attributes with this data.
search(search)Searches this input for the given string, or compiled regular expression.
validate()Validates that the object is in a usable state.
wrap_string_for_mcnp(string, mcnp_version, ...)Wraps the list of the words to be a well formed MCNP input.
Attributes:
Determines if this object has information that is worth printing in the input file.
The ValueNode that holds the information for this instance, that should be included in the data block.
The syntax tree object holding the data classifier.
The comments associated with this input if any.
The syntax tree actually holding the data.
Whether this has been fully parsed, or is just JIT parsed.
For a cell instance of
montepy.data_inputs.cell_modifier.CellModifierInputreturns True iff there is information here worth printing out.True if this object represents an input from the cell block section of a file.
Indicates whether or not the cell volume will attempt to be calculated by MCNP.
Any comments that come before the beginning of the input proper.
A dictionary of the additional parameters for the object.
The particle class part of the input identifier as a parsed list.
The text part of the input identifier parsed from the input.
The modifier to a name prefix that was parsed from the input.
If this volume is set.
True if this data were set in the cell block in the input
The trailing comments and padding of an input.
- static _class_prefix()#
The text part of the input identifier.
For example: for a material the prefix is
mthis must be lower case
- Returns:
the string of the prefix that identifies a input of this class.
- Return type:
- static _generate_default_node(value_type: Type, default: str, padding: str = ' ', never_pad: bool = False)#
Generates a “default” or blank ValueNode.
None is generally a safe default value to provide.
Changed in version 1.0.0: Added
never_padargument.- Parameters:
value_type (
Type) – the data type for the ValueNode.default (
str) – the default value to provide (type needs to agree with value_type)padding (
str) – the string to provide to the PaddingNode. If None no PaddingNode will be added.never_pad (
bool) – Whether to never add trailing padding. True means extra padding is suppressed.
- Returns:
a new ValueNode with the requested information.
- Return type:
- static _has_classifier()#
Whether or not this class supports particle classifiers.
For example:
kcodedoesn’t allow particle types but tallies do allow it e.g.,f7:n0 : not allowed
1 : is optional
2 : is mandatory
- Returns:
True if this class particle classifiers
- Return type:
- static _has_number()#
Whether or not this class supports numbering.
For example:
kcodedoesn’t allow numbers but tallies do allow it e.g.,f7- Returns:
True if this class allows numbers
- Return type:
- static wrap_string_for_mcnp(string: str, mcnp_version: montepy.types.VersionType, is_first_line: bool, suppress_blank_end: bool = True) list[str]#
Wraps the list of the words to be a well formed MCNP input.
multi-line inputs will be handled by using the indentation format, and not the “&” method.
- Parameters:
string (
str) – A long string with new lines in it, that needs to be chunked appropriately for MCNP inputsmcnp_version (
tuple[Integral,Integral,Integral]) – the tuple for the MCNP that must be formatted for.is_first_line (
bool) – If true this will be the beginning of an MCNP input. The first line will not be indented.suppress_blank_end (
bool) – Whether or not to suppress any blank lines that would be added to the end. Good for anywhere but cell modifiers in the cell block.
- Returns:
A list of strings that can be written to an input file, one item to a line.
- Return type:
- _check_redundant_definitions()#
Checks that data wasn’t given in data block and the cell block.
- _clear_data()#
After data has been pushed to cells, delete internal data to avoid inadvertent editing.
This is only called on data-block instances of this object.
- _collect_new_values() list[ValueNode]#
Gets a list of the ValueNodes that hold the information for all cells.
This will be a list in the same order as
montepy.MCNP_Problem.cells.
- _delete_trailing_comment()#
Deletes trailing comments from an object when it has been moved to another object.
- _format_tree() str#
Formats the syntax tree for printing in an input file.
By default this runs
self._tree.format().- Returns:
a string of the text to write out to the input file (not wrapped yet for MCNP).
- Return type:
- _generate_default_tree()#
Generate default syntax trees that can be exported once the object is not in an illegal state.
For leaves generally use
self._generate_default_nod(<type, None). Save the tree to self._tree- Parameters:
**kwargs (dict) – Allows passing additional arguments through __init__ as
**kwargs
- _grab_beginning_comment(padding: list[PaddingNode], last_obj=None)#
- Parameters:
padding (list[PaddingNode])
- _init_blank()#
Initialize the object to a base state, before any parsing.
This should not setup the syntax tree though.
- _parse_tree()#
Takes the information from syntax tree and link it to the internal attributes.
Use self._tree for this.
- _update_cell_values()#
Updates values in the syntax tree when in the cell block.
- _update_values()#
Method to update values in syntax tree with new values.
Generally when
make_prop_val_node()this is not necessary to do, but whenmake_prop_pointer()is used it is necessary. The most common need is to update a value based on the number for an object pointed at, e.g., the material number in a cell definition.
- clone() MCNP_Object#
Create a new independent instance of this object.
- Returns:
a new instance identical to this object.
- Return type:
- format_for_mcnp_input(mcnp_version: montepy.types.VersionType, has_following: bool = False, always_print: bool = False) list[str]#
Creates a string representation of this MCNP_Object that can be written to file.
- Parameters:
mcnp_version (
tuple[Integral,Integral,Integral]) – The tuple for the MCNP version that must be exported to.has_following (
bool) – If true this is followed by another input, and a new line will be inserted if this ends in a comment.always_print (
bool) – If true this will always produce a result irrespective ofprint_in_data_block.
- Returns:
a list of strings for the lines that this input will occupy.
- Return type:
- full_parse()#
Fully parses this object, and disable just-in-time parsing for it.
- Returns:
The object will be mutated and fully parsed.
- Return type:
None
- link_to_problem(problem, *, deepcopy: bool = False)#
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.
deepcopy (
bool) – If this is occuring during a problem level deepcopy
- mcnp_str(mcnp_version: montepy.types.VersionType = None) str#
Returns a string of this input as it would appear in an MCNP input file.
..versionadded:: 1.0.0
- merge(other)#
Merges the data from another card of same type into this one.
- Parameters:
other (CellModifierInput) – The other object to merge into this object.
- Raises:
MalformedInputError – if two objects cannot be merged.
- push_to_cells()#
After being linked to the problem update all cells attributes with this data.
This needs to also check that none of the cells had data provided in the cell block (check that
set_in_cell_blockisn’t set). Useself._check_redundant_definitionsto do this.- Raises:
MalformedInputError – When data are given in the cell block and the data block.
- search(search: str | Pattern) bool#
Searches this input for the given string, or compiled regular expression.
- validate()#
Validates that the object is in a usable state.
- property _is_worth_printing: bool#
Determines if this object has information that is worth printing in the input file.
Uses the
has_information()property for all applicable cell(s)- Returns:
True if this object should be included in the output
- Return type:
- property _problem: MCNP_Problem#
- property _tree_value#
The ValueNode that holds the information for this instance, that should be included in the data block.
- Returns:
The ValueNode to update the data-block syntax tree with.
- Return type:
- property classifier#
The syntax tree object holding the data classifier.
For example this would container information like
M4, orF104:n.- Returns:
the classifier for this data_input.
- Return type:
- property comments: list[PaddingNode]#
The comments associated with this input if any.
This includes all
Ccomments before this card that aren’t part of another card, and any comments that are inside this card.- Returns:
a list of the comments associated with this comment.
- Return type:
- property data: ListNode#
The syntax tree actually holding the data.
- Returns:
The syntax tree with the information.
- Return type:
- property full_parsed#
Whether this has been fully parsed, or is just JIT parsed.
- Returns:
True iff this is fully parsed, False means this is still just-in-time parsed.
- Return type:
- property has_information: bool#
For a cell instance of
montepy.data_inputs.cell_modifier.CellModifierInputreturns True iff there is information here worth printing out.e.g., a manually set volume for a cell
- Returns:
True if this instance has information worth printing.
- Return type:
- property in_cell_block: bool#
True if this object represents an input from the cell block section of a file.
- Return type:
- property is_mcnp_calculated: bool#
Indicates whether or not the cell volume will attempt to be calculated by MCNP.
This can be disabled by either manually setting the volume or disabling this calculation globally. This does not guarantee that MCNP will able to do so. Complex geometries may make this impossible.
- Returns:
True iff MCNP will try to calculate the volume for this cell.
- Return type:
- property leading_comments: list[PaddingNode]#
Any comments that come before the beginning of the input proper.
- Returns:
the leading comments.
- Return type:
- property parameters: dict[str, str]#
A dictionary of the additional parameters for the object.
e.g.:
1 0 -1 u=1 imp:n=0.5has the parameters{"U": "1", "IMP:N": "0.5"}
- property particle_classifiers: list[Particle]#
The particle class part of the input identifier as a parsed list.
This is parsed from the input that was read.
For example: the classifier for
F7:nis:n, andimp:n,pis:n,pThis will be parsed as a list:[<Particle.NEUTRON: 'N'>, <Particle.PHOTON: 'P'>].- Returns:
the particles listed in the input if any. Otherwise None
- Return type:
list[montepy.Particle]
- property prefix: str#
The text part of the input identifier parsed from the input.
For example: for a material like:
m20the prefix ism. this will always be lower case. Can also be called the mnemonic.- Returns:
The prefix read from the input
- Return type:
- property prefix_modifier: str#
The modifier to a name prefix that was parsed from the input.
For example: for a transform:
*tr5the modifier is*- Returns:
the prefix modifier that was parsed if any. None if otherwise.
- Return type:
- property set: bool#
If this volume is set.
- Returns:
true if the volume is manually set.
- Return type:
- property trailing_comment: list[PaddingNode]#
The trailing comments and padding of an input.
Generally this will be blank as these will be moved to be a leading comment for the next input.
- Returns:
the trailing
cstyle comments and intermixed padding (e.g., new lines)- Return type:
- property volume#