ansys.dyna.core.lib.parameters.ParameterSet#

class ansys.dyna.core.lib.parameters.ParameterSet(parent: ParameterSet | None = None)#

Hierarchical parameter storage for LS-DYNA deck parameters.

Child scopes see parent parameters but local parameters don’t leak upward.

get(param: str) Any#

Get a parameter by name, checking local then parent scopes.

Parameters:
paramstr

Parameter name to lookup.

Returns:
Any

Parameter value.

Raises:
KeyError

If parameter is not found in this scope or any parent scope.

add(param: str, value: Any) None#

Add a parameter to the local scope.

This method is for global parameters (PARAMETER keyword). They are added to the local scope but will be visible to child scopes.

Parameters:
paramstr

Parameter name.

valueAny

Parameter value.

add_local(param: str, value: Any) None#

Add a parameter to local scope only (PARAMETER_LOCAL).

Local parameters are only visible within the current scope and child scopes created from it, but won’t leak to parent or sibling scopes.

Parameters:
paramstr

Parameter name.

valueAny

Parameter value.

copy_with_child_scope() ParameterSet#

Create a new ParameterSet with this as the parent scope.

The child scope will be able to see parameters from this scope, but parameters added to the child won’t leak back to this scope.

Returns:
ParameterSet

New ParameterSet with this as parent.

scope(segment: str) Generator[None, None, None]#

Context manager to scope a URI segment during card reading.

As the read stack descends (keyword -> card -> field), each layer pushes its segment and pops on exit. Parameter references are recorded at the current full URI path.

Parameters:
segmentstr

URI segment to push (e.g., keyword id, card index, field name).

Yields:
None

Examples

>>> with parameter_set.scope("12345"):  # keyword id
...     with parameter_set.scope("card0"):
...         parameter_set.record_ref("secid", "&mysec")
...         # Records at URI: "12345/card0/secid"
record_ref(field: str, ref: str) None#

Record a parameter reference at the current URI path.

Called during card reading when a parameter reference (e.g., &myvar) is resolved. Stores the original reference string so it can be written back instead of the resolved value.

Parameters:
fieldstr

Field name or index to append to current URI path.

refstr

The original parameter reference string (e.g., “&myvar”, “-&density”).

get_ref(*path_segments: str) str | None#

Get the parameter reference string for a URI path.

Called during card writing to check if a field value came from a parameter reference that should be written instead of the value.

Parameters:
*path_segmentsstr

URI path segments to join (e.g., keyword_id, card_index, field_name).

Returns:
str or None

The original parameter reference string if one was recorded, or None if the value was a literal.

get_current_uri() str#

Get the current URI path as a string.

Returns:
str

The current URI path joined with ‘/’.