Setting and retrieving parameters#
可以使用 Mapdl.parameters
从 Mapdl
的实例中获取 MAPDL 参数。
例如,如果您想使用 MAPDL 的 Mapdl.get()
方法来填充一个参数,那么您就可以用代码来访问该参数:
>>> from ansys.mapdl.core import launch_mapdl
>>> mapdl = launch_mapdl()
>>> mapdl.get("DEF_Y", "NODE", 2, "U", "Y")
>>> mapdl.parameters["DEF_Y"]
您还可以使用 Mapdl.parameters
从 Python 对象设置标量和数组参数:
>>> mapdl.parameters["MY_ARRAY"] = np.arange(10000)
>>> mapdl.parameters["MY_ARRAY"]
array([0.00000e+00, 1.00000e+00, 2.00000e+00, ..., 9.99997e+05,
9.99998e+05, 9.99999e+05])
>>> mapdl.parameters["MY_STRING"] = "helloworld"
>>> mapdl.parameters["MY_STRING"]
"helloworld"
您还可以通过 Mapdl.get()
方法访问的一些内置参数。例如,您可以用以下代码访问当前例程,而不是用 \*GET, ACTIVE, 0, ROUT
获取:
>>> mapdl.parameters.routine
'Begin level'
有关 Parameters
类可用方法和属性的完整列表,请参阅 Parameters。
有关 PyMAPDL 数组限制的更多信息,请参阅 Issues when importing and exporting numpy arrays in MAPDL。
特殊命名的参数#
带前导下划线的参数#
以下划线 ('_'
) 开头的参数是 MAPDL 宏和例程的保留参数。不鼓励使用它们,在 PyMAPDL 中也不能直接设置它们。
如果需要设置其中一个参数,可以使用 Mapdl._run
属性来避免 PyMAPDL 参数名检查:
>>> mapdl._run("_parameter=123")
'PARAMETER _PARAMETER = 123.00000000'
默认情况下,当发出 Mapdl.parameters
属性时,无法看到这种类型的参数。不过,您可以将 Mapdl.parameters.show_leading_underscore_parameters
设置为 True
:
>>> mapdl.parameters.show_leading_underscore_parameters = True
>>> mapdl.parameters
MAPDL Parameters
----------------
PORT : 50053.0
_RETURN : 0.0
_STATUS : 0.0
_UIQR : 17.0
带尾随下划线的参数#
以下划线结尾的参数推荐用于用户例程和宏。您可以在 PyMAPDL 中设置这种类型的参数,但默认情况下,在 Mapdl.parameters
属性中看不到它们,
除非 Mapdl.parameters.show_trailing_underscore_parameters
属性设置为 True
:
>>> mapdl.parameters["param_"] = 1.0
>>> mapdl.parameters
MAPDL Parameters
----------------
>>> mapdl.parameters.show_trailing_underscore_parameters = True
>>> mapdl.parameters
MAPDL Parameters
----------------
PARAM_ : 1.0
带前导下划线和尾随下划线的参数#
带前导和尾随下划线的参数是一种特殊类型。在任何情况下,都不能在 Mapdl.parameters
属性中看到这些参数。不建议使用它们。
您仍然可以使用检索参数的任何常规方法来检索这些特殊参数。不过,您必须知道参数名称:
>>> mapdl.parameters["_param_"] = 1.0
>>> mapdl.parameters
MAPDL Parameters
----------------
>>> print(mapdl.parameters["_param_"])
1.0