montepy.mcnp_object module#
Classes:
|
Abstract class for semantic representations of MCNP inputs. |
- class montepy.mcnp_object.MCNP_Object(input, parser)#
Bases:
ABCAbstract class for semantic representations of MCNP inputs.
Changed in version 0.2.0: Generally significant changes for parser rework. For init removed
comments, and addedparseras arguments.- Parameters:
input (Input) – The Input syntax object this will wrap and parse.
parser (MCNP_Lexer) – The parser object to parse the input with.
Methods:
_generate_default_node(value_type, default)Generates a "default" or blank ValueNode.
Method to update values in syntax tree with new values.
clone()Create a new independent instance of this object.
compress_jump_values(values)Takes a list of strings and jump values and combines repeated jump values.
compress_repeat_values(values[, threshold])Takes a list of floats, and tries to compress it using repeats.
format_for_mcnp_input(mcnp_version)Creates a string representation of this MCNP_Object that can be written to file.
link_to_problem(problem)Links the input to the parent problem for this input.
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.
wrap_words_for_mcnp(words, mcnp_version, ...)Wraps the list of the words to be a well formed MCNP input.
Attributes:
The allowed keywords for this class of MCNP_Card.
The comments associated with this input if any.
Any comments that come before the beginning of the input proper.
A dictionary of the additional parameters for the object.
The trailing comments and padding of an input.
The words from the input file for this card.
- static _generate_default_node(value_type, default, padding=' ')#
Generates a “default” or blank ValueNode.
None is generally a safe default value to provide.
Added in version 0.2.0.
- Parameters:
value_type (Class) – the data type for the ValueNode.
default (value_type) – the default value to provide (type needs to agree with value_type)
padding (str, None) – the string to provide to the PaddingNode. If None no PaddingNode will be added.
- Returns:
a new ValueNode with the requested information.
- Return type:
- abstractmethod _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.Added in version 0.2.0.
- property allowed_keywords#
The allowed keywords for this class of MCNP_Card.
The allowed keywords that would appear in the parameters block. For instance for cells the keywords
IMPandVOLare allowed. The allowed keywords need to be in upper case.Deprecated since version 0.2.0: This is no longer needed. Instead this is specified in
montepy.input_parser.tokens.MCNP_Lexer._KEYWORDS().- Returns:
A set of the allowed keywords. If there are none this should return the empty set.
- Return type:
set
- clone()#
Create a new independent instance of this object.
- Returns:
a new instance identical to this object.
- Return type:
type(self)
- property comments#
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:
list
- static compress_jump_values(values)#
Takes a list of strings and jump values and combines repeated jump values.
e.g., 1 1 J J 3 J becomes 1 1 2J 3 J
Deprecated since version 0.2.0: This should be automatically handled by the syntax tree instead.
- Parameters:
values (list) – a list of string and Jump values to try to compress
- Returns:
a list of MCNP word strings that have jump compression
- Return type:
list
- Raises:
DeprecationWarning – raised always.
- static compress_repeat_values(values, threshold=1e-06)#
Takes a list of floats, and tries to compress it using repeats.
E.g., 1 1 1 1 would compress to 1 3R
Deprecated since version 0.2.0: This should be automatically handled by the syntax tree instead.
- Parameters:
values (list) – a list of float values to try to compress
threshold (float) – the minimum threshold to consider two values different
- Returns:
a list of MCNP word strings that have repeat compression
- Return type:
list
- Raises:
DeprecationWarning – always raised.
- format_for_mcnp_input(mcnp_version)#
Creates a string representation of this MCNP_Object that can be written to file.
- Parameters:
mcnp_version (tuple) – The tuple for the MCNP version that must be exported to.
- Returns:
a list of strings for the lines that this input will occupy.
- Return type:
list
- property leading_comments#
Any comments that come before the beginning of the input proper.
Added in version 0.2.0.
- Returns:
the leading comments.
- Return type:
list
- link_to_problem(problem)#
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.
- property parameters#
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"}- Returns:
a dictionary of the key-value pairs of the parameters.
- Rytpe:
dict
- property trailing_comment#
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:
list
- validate()#
Validates that the object is in a usable state.
- Raises:
IllegalState if any condition exists that make the object incomplete.
- property words#
The words from the input file for this card.
Warning
Deprecated since version 0.2.0: This has been replaced by the syntax tree data structure.
- Raises:
DeprecationWarning – Access the syntax tree instead.
- static wrap_string_for_mcnp(string, mcnp_version, is_first_line, suppress_blank_end=True)#
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 inputs
mcnp_version (tuple) – 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:
list
- static wrap_words_for_mcnp(words, mcnp_version, is_first_line)#
Wraps the list of the words to be a well formed MCNP input.
multi-line cards will be handled by using the indentation format, and not the “&” method.
Deprecated since version 0.2.0: The concept of words is deprecated, and should be handled by syntax trees now.
- Parameters:
words (list) – A list of the “words” or data-grams that needed to added to this card. Each word will be separated by at least one space.
mcnp_version (tuple) – the tuple for the MCNP that must be formatted for.
is_first_line (bool) – If true this will be the beginning of an MCNP card. The first line will not be indented.
- Returns:
A list of strings that can be written to an input file, one item to a line.
- Return type:
list
- Raises:
DeprecationWarning – raised always.