diff --git a/.github/workflows/doc-build.yml b/.github/workflows/doc-build.yml
index bb061177545..ac1c9e320fa 100644
--- a/.github/workflows/doc-build.yml
+++ b/.github/workflows/doc-build.yml
@@ -227,7 +227,7 @@ jobs:
shell: bash
run: |
export PYTHONFAULTHANDLER=1
- xvfb-run make -C doc ${{ inputs.builder }} SPHINXOPTS="-j auto -W --keep-going" | tee doc_build.log
+ xvfb-run make -C doc ${{ inputs.builder }} SPHINXOPTS="-j auto" | tee doc_build.log
- name: "Substitute defective GIF"
shell: bash
diff --git a/doc/changelog.d/4060.documentation.md b/doc/changelog.d/4060.documentation.md
new file mode 100644
index 00000000000..c1d7bc635f9
--- /dev/null
+++ b/doc/changelog.d/4060.documentation.md
@@ -0,0 +1 @@
+Docs: update documentation to ``2023r2``
\ No newline at end of file
diff --git a/doc/source/conf.py b/doc/source/conf.py
index d3d6fd294ee..31717e0d807 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -92,7 +92,9 @@
# -- General configuration ---------------------------------------------------
extensions = [
+ "ansys_sphinx_theme.extension.linkcode",
"jupyter_sphinx",
+ "linuxdoc.rstFlatTable",
"numpydoc",
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
@@ -156,6 +158,7 @@
numpydoc_validation_exclude = { # set of regex
# class inherits from pymapdl-reader
r"\.*MeshGrpc\.*",
+ r"ansys\.mapdl\.core\._commands\..+",
}
# Favicon
diff --git a/doc/source/images/_commands/GSTR5-2.svg b/doc/source/images/_commands/GSTR5-2.svg
new file mode 100644
index 00000000000..45371793e4a
--- /dev/null
+++ b/doc/source/images/_commands/GSTR5-2.svg
@@ -0,0 +1,178 @@
+
+
+
+
diff --git a/doc/source/images/_commands/Linebrk.gif b/doc/source/images/_commands/Linebrk.gif
new file mode 100644
index 00000000000..fba32d35358
Binary files /dev/null and b/doc/source/images/_commands/Linebrk.gif differ
diff --git a/doc/source/images/_commands/eqRESP2.gif b/doc/source/images/_commands/eqRESP2.gif
new file mode 100644
index 00000000000..1cb57fd08fc
Binary files /dev/null and b/doc/source/images/_commands/eqRESP2.gif differ
diff --git a/doc/source/images/_commands/gEDBO1.svg b/doc/source/images/_commands/gEDBO1.svg
new file mode 100644
index 00000000000..ef706b2a177
--- /dev/null
+++ b/doc/source/images/_commands/gEDBO1.svg
@@ -0,0 +1,836 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gEDLC1.svg b/doc/source/images/_commands/gEDLC1.svg
new file mode 100644
index 00000000000..cdf9e4f075a
--- /dev/null
+++ b/doc/source/images/_commands/gEDLC1.svg
@@ -0,0 +1,88 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gEINFIN1a.png b/doc/source/images/_commands/gEINFIN1a.png
new file mode 100644
index 00000000000..6ef9d762c5f
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN1a.png differ
diff --git a/doc/source/images/_commands/gEINFIN1b.png b/doc/source/images/_commands/gEINFIN1b.png
new file mode 100644
index 00000000000..d52c90c8cd3
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN1b.png differ
diff --git a/doc/source/images/_commands/gEINFIN2a.png b/doc/source/images/_commands/gEINFIN2a.png
new file mode 100644
index 00000000000..e200b503d22
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN2a.png differ
diff --git a/doc/source/images/_commands/gEINFIN2b.png b/doc/source/images/_commands/gEINFIN2b.png
new file mode 100644
index 00000000000..84811a4b0d9
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN2b.png differ
diff --git a/doc/source/images/_commands/gEINFIN3.png b/doc/source/images/_commands/gEINFIN3.png
new file mode 100644
index 00000000000..b10668e8a11
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN3.png differ
diff --git a/doc/source/images/_commands/gEINFIN4.png b/doc/source/images/_commands/gEINFIN4.png
new file mode 100644
index 00000000000..4c3331df213
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN4.png differ
diff --git a/doc/source/images/_commands/gEINFIN5.png b/doc/source/images/_commands/gEINFIN5.png
new file mode 100644
index 00000000000..37fa9d3d9ce
Binary files /dev/null and b/doc/source/images/_commands/gEINFIN5.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE1.png b/doc/source/images/_commands/gENDRELEASE1.png
new file mode 100644
index 00000000000..b0b6c3185cd
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE1.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE2.png b/doc/source/images/_commands/gENDRELEASE2.png
new file mode 100644
index 00000000000..f701ad908f6
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE2.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE3.png b/doc/source/images/_commands/gENDRELEASE3.png
new file mode 100644
index 00000000000..9fb9eb8d2cc
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE3.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE4.png b/doc/source/images/_commands/gENDRELEASE4.png
new file mode 100644
index 00000000000..f9eed4f4720
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE4.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE5.png b/doc/source/images/_commands/gENDRELEASE5.png
new file mode 100644
index 00000000000..d0c5eedb01a
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE5.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE6.png b/doc/source/images/_commands/gENDRELEASE6.png
new file mode 100644
index 00000000000..0c2664d3665
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE6.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE7.png b/doc/source/images/_commands/gENDRELEASE7.png
new file mode 100644
index 00000000000..69a824a800c
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE7.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE8.png b/doc/source/images/_commands/gENDRELEASE8.png
new file mode 100644
index 00000000000..df6c3594ec5
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE8.png differ
diff --git a/doc/source/images/_commands/gENDRELEASE9.png b/doc/source/images/_commands/gENDRELEASE9.png
new file mode 100644
index 00000000000..23505226f0c
Binary files /dev/null and b/doc/source/images/_commands/gENDRELEASE9.png differ
diff --git a/doc/source/images/_commands/gFFT1.PNG b/doc/source/images/_commands/gFFT1.PNG
new file mode 100644
index 00000000000..017d1aed2c7
Binary files /dev/null and b/doc/source/images/_commands/gFFT1.PNG differ
diff --git a/doc/source/images/_commands/gFFT2.PNG b/doc/source/images/_commands/gFFT2.PNG
new file mode 100644
index 00000000000..9f28e278364
Binary files /dev/null and b/doc/source/images/_commands/gFFT2.PNG differ
diff --git a/doc/source/images/_commands/gFFT3.PNG b/doc/source/images/_commands/gFFT3.PNG
new file mode 100644
index 00000000000..a58ac7c2675
Binary files /dev/null and b/doc/source/images/_commands/gFFT3.PNG differ
diff --git a/doc/source/images/_commands/gINIT1.svg b/doc/source/images/_commands/gINIT1.svg
new file mode 100644
index 00000000000..249d45ef707
--- /dev/null
+++ b/doc/source/images/_commands/gINIT1.svg
@@ -0,0 +1,585 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gKCEN1.svg b/doc/source/images/_commands/gKCEN1.svg
new file mode 100644
index 00000000000..00b33639961
--- /dev/null
+++ b/doc/source/images/_commands/gKCEN1.svg
@@ -0,0 +1,441 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gMERGE1.png b/doc/source/images/_commands/gMERGE1.png
new file mode 100644
index 00000000000..24ad6e17482
Binary files /dev/null and b/doc/source/images/_commands/gMERGE1.png differ
diff --git a/doc/source/images/_commands/gMERGE2.png b/doc/source/images/_commands/gMERGE2.png
new file mode 100644
index 00000000000..5149ce7a77c
Binary files /dev/null and b/doc/source/images/_commands/gMERGE2.png differ
diff --git a/doc/source/images/_commands/gMERGE3.png b/doc/source/images/_commands/gMERGE3.png
new file mode 100644
index 00000000000..c2b366ee27e
Binary files /dev/null and b/doc/source/images/_commands/gMERGE3.png differ
diff --git a/doc/source/images/_commands/gMSHP1.svg b/doc/source/images/_commands/gMSHP1.svg
new file mode 100644
index 00000000000..95730178564
--- /dev/null
+++ b/doc/source/images/_commands/gMSHP1.svg
@@ -0,0 +1,276 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gOCDATA1.png b/doc/source/images/_commands/gOCDATA1.png
new file mode 100644
index 00000000000..8b88a9a6f59
Binary files /dev/null and b/doc/source/images/_commands/gOCDATA1.png differ
diff --git a/doc/source/images/_commands/gPDBBMproblevels.gif b/doc/source/images/_commands/gPDBBMproblevels.gif
new file mode 100644
index 00000000000..3e6ea92b0fa
Binary files /dev/null and b/doc/source/images/_commands/gPDBBMproblevels.gif differ
diff --git a/doc/source/images/_commands/gPDCORR00.gif b/doc/source/images/_commands/gPDCORR00.gif
new file mode 100644
index 00000000000..64801779b0a
Binary files /dev/null and b/doc/source/images/_commands/gPDCORR00.gif differ
diff --git a/doc/source/images/_commands/gPDCORR06.gif b/doc/source/images/_commands/gPDCORR06.gif
new file mode 100644
index 00000000000..847face7a8d
Binary files /dev/null and b/doc/source/images/_commands/gPDCORR06.gif differ
diff --git a/doc/source/images/_commands/gPDCORR09.gif b/doc/source/images/_commands/gPDCORR09.gif
new file mode 100644
index 00000000000..c90c1051340
Binary files /dev/null and b/doc/source/images/_commands/gPDCORR09.gif differ
diff --git a/doc/source/images/_commands/gPDMETHbbm.gif b/doc/source/images/_commands/gPDMETHbbm.gif
new file mode 100644
index 00000000000..80956e4ec54
Binary files /dev/null and b/doc/source/images/_commands/gPDMETHbbm.gif differ
diff --git a/doc/source/images/_commands/gPDMETHccd.gif b/doc/source/images/_commands/gPDMETHccd.gif
new file mode 100644
index 00000000000..0add3f4d428
Binary files /dev/null and b/doc/source/images/_commands/gPDMETHccd.gif differ
diff --git a/doc/source/images/_commands/gPDMETHdir.gif b/doc/source/images/_commands/gPDMETHdir.gif
new file mode 100644
index 00000000000..7f77e5ca902
Binary files /dev/null and b/doc/source/images/_commands/gPDMETHdir.gif differ
diff --git a/doc/source/images/_commands/gPDMETHlhs.gif b/doc/source/images/_commands/gPDMETHlhs.gif
new file mode 100644
index 00000000000..820784875d0
Binary files /dev/null and b/doc/source/images/_commands/gPDMETHlhs.gif differ
diff --git a/doc/source/images/_commands/gPDPLOTlimits1.gif b/doc/source/images/_commands/gPDPLOTlimits1.gif
new file mode 100644
index 00000000000..1cca880a1e7
Binary files /dev/null and b/doc/source/images/_commands/gPDPLOTlimits1.gif differ
diff --git a/doc/source/images/_commands/gPDVARbeta.svg b/doc/source/images/_commands/gPDVARbeta.svg
new file mode 100644
index 00000000000..99519c58af1
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARbeta.svg
@@ -0,0 +1,112 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARbetacum.svg b/doc/source/images/_commands/gPDVARbetacum.svg
new file mode 100644
index 00000000000..07053936ccf
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARbetacum.svg
@@ -0,0 +1,112 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARexpo.svg b/doc/source/images/_commands/gPDVARexpo.svg
new file mode 100644
index 00000000000..d3b0effd8cd
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARexpo.svg
@@ -0,0 +1,76 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARexpocum.svg b/doc/source/images/_commands/gPDVARexpocum.svg
new file mode 100644
index 00000000000..27167c74430
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARexpocum.svg
@@ -0,0 +1,74 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARgama.svg b/doc/source/images/_commands/gPDVARgama.svg
new file mode 100644
index 00000000000..3da03b6a0ec
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARgama.svg
@@ -0,0 +1,73 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARgamacum.svg b/doc/source/images/_commands/gPDVARgamacum.svg
new file mode 100644
index 00000000000..42624b861b8
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARgamacum.svg
@@ -0,0 +1,72 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARgaus.svg b/doc/source/images/_commands/gPDVARgaus.svg
new file mode 100644
index 00000000000..e88928879b3
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARgaus.svg
@@ -0,0 +1,94 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARgauscum.svg b/doc/source/images/_commands/gPDVARgauscum.svg
new file mode 100644
index 00000000000..5fc720fb1bf
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARgauscum.svg
@@ -0,0 +1,60 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARlog1.svg b/doc/source/images/_commands/gPDVARlog1.svg
new file mode 100644
index 00000000000..08c82d36193
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARlog1.svg
@@ -0,0 +1,63 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARlog2.svg b/doc/source/images/_commands/gPDVARlog2.svg
new file mode 100644
index 00000000000..284c6f90d09
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARlog2.svg
@@ -0,0 +1,74 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARlog2cum.svg b/doc/source/images/_commands/gPDVARlog2cum.svg
new file mode 100644
index 00000000000..7f62cf4b388
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARlog2cum.svg
@@ -0,0 +1,75 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARtgau.svg b/doc/source/images/_commands/gPDVARtgau.svg
new file mode 100644
index 00000000000..1bc03e50aca
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARtgau.svg
@@ -0,0 +1,157 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARtgaucum.svg b/doc/source/images/_commands/gPDVARtgaucum.svg
new file mode 100644
index 00000000000..4a8a0409ef2
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARtgaucum.svg
@@ -0,0 +1,112 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARtria.svg b/doc/source/images/_commands/gPDVARtria.svg
new file mode 100644
index 00000000000..eb260bf4318
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARtria.svg
@@ -0,0 +1,111 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARtriacum.svg b/doc/source/images/_commands/gPDVARtriacum.svg
new file mode 100644
index 00000000000..188e2e597a6
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARtriacum.svg
@@ -0,0 +1,110 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARunif.svg b/doc/source/images/_commands/gPDVARunif.svg
new file mode 100644
index 00000000000..18078901859
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARunif.svg
@@ -0,0 +1,89 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARunifcum.svg b/doc/source/images/_commands/gPDVARunifcum.svg
new file mode 100644
index 00000000000..452944037b4
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARunifcum.svg
@@ -0,0 +1,91 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARweib.svg b/doc/source/images/_commands/gPDVARweib.svg
new file mode 100644
index 00000000000..9132931ae14
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARweib.svg
@@ -0,0 +1,91 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPDVARweibcum.svg b/doc/source/images/_commands/gPDVARweibcum.svg
new file mode 100644
index 00000000000..9d1ff6fdd77
--- /dev/null
+++ b/doc/source/images/_commands/gPDVARweibcum.svg
@@ -0,0 +1,137 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gPORT1.gif b/doc/source/images/_commands/gPORT1.gif
new file mode 100644
index 00000000000..85218c5a2aa
Binary files /dev/null and b/doc/source/images/_commands/gPORT1.gif differ
diff --git a/doc/source/images/_commands/gPORT2.gif b/doc/source/images/_commands/gPORT2.gif
new file mode 100644
index 00000000000..6fece1b2201
Binary files /dev/null and b/doc/source/images/_commands/gPORT2.gif differ
diff --git a/doc/source/images/_commands/gPORT3.gif b/doc/source/images/_commands/gPORT3.gif
new file mode 100644
index 00000000000..82b0430b161
Binary files /dev/null and b/doc/source/images/_commands/gPORT3.gif differ
diff --git a/doc/source/images/_commands/gPSMAT1.gif b/doc/source/images/_commands/gPSMAT1.gif
new file mode 100644
index 00000000000..408df366e70
Binary files /dev/null and b/doc/source/images/_commands/gPSMAT1.gif differ
diff --git a/doc/source/images/_commands/gPSMAT2.svg b/doc/source/images/_commands/gPSMAT2.svg
new file mode 100644
index 00000000000..02a01abfc45
--- /dev/null
+++ b/doc/source/images/_commands/gPSMAT2.svg
@@ -0,0 +1,688 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gRACE1.svg b/doc/source/images/_commands/gRACE1.svg
new file mode 100644
index 00000000000..d6f112bb2f7
--- /dev/null
+++ b/doc/source/images/_commands/gRACE1.svg
@@ -0,0 +1,227 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gRDEC.svg b/doc/source/images/_commands/gRDEC.svg
new file mode 100644
index 00000000000..203329ee1db
--- /dev/null
+++ b/doc/source/images/_commands/gRDEC.svg
@@ -0,0 +1,225 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD1.svg b/doc/source/images/_commands/gSECD1.svg
new file mode 100644
index 00000000000..004eee26ba8
--- /dev/null
+++ b/doc/source/images/_commands/gSECD1.svg
@@ -0,0 +1,110 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD10.svg b/doc/source/images/_commands/gSECD10.svg
new file mode 100644
index 00000000000..9996a245bce
--- /dev/null
+++ b/doc/source/images/_commands/gSECD10.svg
@@ -0,0 +1,193 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD11.svg b/doc/source/images/_commands/gSECD11.svg
new file mode 100644
index 00000000000..0af8ddd33ca
--- /dev/null
+++ b/doc/source/images/_commands/gSECD11.svg
@@ -0,0 +1,242 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD12.svg b/doc/source/images/_commands/gSECD12.svg
new file mode 100644
index 00000000000..e865cc3813a
--- /dev/null
+++ b/doc/source/images/_commands/gSECD12.svg
@@ -0,0 +1,127 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD13.svg b/doc/source/images/_commands/gSECD13.svg
new file mode 100644
index 00000000000..0b0dbf7e37a
--- /dev/null
+++ b/doc/source/images/_commands/gSECD13.svg
@@ -0,0 +1,207 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD14a.svg b/doc/source/images/_commands/gSECD14a.svg
new file mode 100644
index 00000000000..c2b463c6104
--- /dev/null
+++ b/doc/source/images/_commands/gSECD14a.svg
@@ -0,0 +1,109 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD14b.svg b/doc/source/images/_commands/gSECD14b.svg
new file mode 100644
index 00000000000..abecc83d28d
--- /dev/null
+++ b/doc/source/images/_commands/gSECD14b.svg
@@ -0,0 +1,118 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD14c.svg b/doc/source/images/_commands/gSECD14c.svg
new file mode 100644
index 00000000000..52979df99ef
--- /dev/null
+++ b/doc/source/images/_commands/gSECD14c.svg
@@ -0,0 +1,123 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD15a.svg b/doc/source/images/_commands/gSECD15a.svg
new file mode 100644
index 00000000000..67412b1cdbe
--- /dev/null
+++ b/doc/source/images/_commands/gSECD15a.svg
@@ -0,0 +1,141 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD15b.svg b/doc/source/images/_commands/gSECD15b.svg
new file mode 100644
index 00000000000..ac8440381d6
--- /dev/null
+++ b/doc/source/images/_commands/gSECD15b.svg
@@ -0,0 +1,141 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD15c.svg b/doc/source/images/_commands/gSECD15c.svg
new file mode 100644
index 00000000000..d97ef8c9019
--- /dev/null
+++ b/doc/source/images/_commands/gSECD15c.svg
@@ -0,0 +1,130 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD16.svg b/doc/source/images/_commands/gSECD16.svg
new file mode 100644
index 00000000000..52406713097
--- /dev/null
+++ b/doc/source/images/_commands/gSECD16.svg
@@ -0,0 +1,393 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD18.svg b/doc/source/images/_commands/gSECD18.svg
new file mode 100644
index 00000000000..88cbe0d5092
--- /dev/null
+++ b/doc/source/images/_commands/gSECD18.svg
@@ -0,0 +1,436 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD19.svg b/doc/source/images/_commands/gSECD19.svg
new file mode 100644
index 00000000000..729333f32d6
--- /dev/null
+++ b/doc/source/images/_commands/gSECD19.svg
@@ -0,0 +1,501 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD2.svg b/doc/source/images/_commands/gSECD2.svg
new file mode 100644
index 00000000000..e29aad5668a
--- /dev/null
+++ b/doc/source/images/_commands/gSECD2.svg
@@ -0,0 +1,104 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD20.svg b/doc/source/images/_commands/gSECD20.svg
new file mode 100644
index 00000000000..83e5590d487
--- /dev/null
+++ b/doc/source/images/_commands/gSECD20.svg
@@ -0,0 +1,403 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD21.svg b/doc/source/images/_commands/gSECD21.svg
new file mode 100644
index 00000000000..ad1a93ef1d8
--- /dev/null
+++ b/doc/source/images/_commands/gSECD21.svg
@@ -0,0 +1,402 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD22.svg b/doc/source/images/_commands/gSECD22.svg
new file mode 100644
index 00000000000..6aa9b33a781
--- /dev/null
+++ b/doc/source/images/_commands/gSECD22.svg
@@ -0,0 +1,561 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD22b.svg b/doc/source/images/_commands/gSECD22b.svg
new file mode 100644
index 00000000000..94fde4345c1
--- /dev/null
+++ b/doc/source/images/_commands/gSECD22b.svg
@@ -0,0 +1,537 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD22c.svg b/doc/source/images/_commands/gSECD22c.svg
new file mode 100644
index 00000000000..397ca1b41bc
--- /dev/null
+++ b/doc/source/images/_commands/gSECD22c.svg
@@ -0,0 +1,553 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD25.svg b/doc/source/images/_commands/gSECD25.svg
new file mode 100644
index 00000000000..54fa3d40845
--- /dev/null
+++ b/doc/source/images/_commands/gSECD25.svg
@@ -0,0 +1,474 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD26.svg b/doc/source/images/_commands/gSECD26.svg
new file mode 100644
index 00000000000..bb5f3f574a0
--- /dev/null
+++ b/doc/source/images/_commands/gSECD26.svg
@@ -0,0 +1,445 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD27.svg b/doc/source/images/_commands/gSECD27.svg
new file mode 100644
index 00000000000..b73f4ffa1a9
--- /dev/null
+++ b/doc/source/images/_commands/gSECD27.svg
@@ -0,0 +1,445 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD28.svg b/doc/source/images/_commands/gSECD28.svg
new file mode 100644
index 00000000000..6c6721e9acf
--- /dev/null
+++ b/doc/source/images/_commands/gSECD28.svg
@@ -0,0 +1,526 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD29.svg b/doc/source/images/_commands/gSECD29.svg
new file mode 100644
index 00000000000..81b3829dc4c
--- /dev/null
+++ b/doc/source/images/_commands/gSECD29.svg
@@ -0,0 +1,479 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD3.svg b/doc/source/images/_commands/gSECD3.svg
new file mode 100644
index 00000000000..1ebd37848c7
--- /dev/null
+++ b/doc/source/images/_commands/gSECD3.svg
@@ -0,0 +1,70 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD30.svg b/doc/source/images/_commands/gSECD30.svg
new file mode 100644
index 00000000000..ac3c780c5fd
--- /dev/null
+++ b/doc/source/images/_commands/gSECD30.svg
@@ -0,0 +1,66 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD31.svg b/doc/source/images/_commands/gSECD31.svg
new file mode 100644
index 00000000000..f0d1d83342b
--- /dev/null
+++ b/doc/source/images/_commands/gSECD31.svg
@@ -0,0 +1,283 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD32.svg b/doc/source/images/_commands/gSECD32.svg
new file mode 100644
index 00000000000..ccbc9d347ea
--- /dev/null
+++ b/doc/source/images/_commands/gSECD32.svg
@@ -0,0 +1,55 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD33.svg b/doc/source/images/_commands/gSECD33.svg
new file mode 100644
index 00000000000..ceb5df415e5
--- /dev/null
+++ b/doc/source/images/_commands/gSECD33.svg
@@ -0,0 +1,66 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD34.svg b/doc/source/images/_commands/gSECD34.svg
new file mode 100644
index 00000000000..f669f885785
--- /dev/null
+++ b/doc/source/images/_commands/gSECD34.svg
@@ -0,0 +1,124 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD35.svg b/doc/source/images/_commands/gSECD35.svg
new file mode 100644
index 00000000000..2f62b856f6b
--- /dev/null
+++ b/doc/source/images/_commands/gSECD35.svg
@@ -0,0 +1,171 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD4.svg b/doc/source/images/_commands/gSECD4.svg
new file mode 100644
index 00000000000..dd898095e80
--- /dev/null
+++ b/doc/source/images/_commands/gSECD4.svg
@@ -0,0 +1,92 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD5.svg b/doc/source/images/_commands/gSECD5.svg
new file mode 100644
index 00000000000..85e346f6ed4
--- /dev/null
+++ b/doc/source/images/_commands/gSECD5.svg
@@ -0,0 +1,146 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD6.svg b/doc/source/images/_commands/gSECD6.svg
new file mode 100644
index 00000000000..243d14d2ed2
--- /dev/null
+++ b/doc/source/images/_commands/gSECD6.svg
@@ -0,0 +1,176 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD7.svg b/doc/source/images/_commands/gSECD7.svg
new file mode 100644
index 00000000000..0b43e0350ad
--- /dev/null
+++ b/doc/source/images/_commands/gSECD7.svg
@@ -0,0 +1,156 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD8.svg b/doc/source/images/_commands/gSECD8.svg
new file mode 100644
index 00000000000..f8382fdfa08
--- /dev/null
+++ b/doc/source/images/_commands/gSECD8.svg
@@ -0,0 +1,106 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD9.svg b/doc/source/images/_commands/gSECD9.svg
new file mode 100644
index 00000000000..68b8c21bd1f
--- /dev/null
+++ b/doc/source/images/_commands/gSECD9.svg
@@ -0,0 +1,115 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECD_pipe.svg b/doc/source/images/_commands/gSECD_pipe.svg
new file mode 100644
index 00000000000..b4bcdb03f47
--- /dev/null
+++ b/doc/source/images/_commands/gSECD_pipe.svg
@@ -0,0 +1,896 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECO1.svg b/doc/source/images/_commands/gSECO1.svg
new file mode 100644
index 00000000000..e66f86eecf8
--- /dev/null
+++ b/doc/source/images/_commands/gSECO1.svg
@@ -0,0 +1,263 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECP.fig.3.jpg b/doc/source/images/_commands/gSECP.fig.3.jpg
new file mode 100644
index 00000000000..e3597fb7f20
Binary files /dev/null and b/doc/source/images/_commands/gSECP.fig.3.jpg differ
diff --git a/doc/source/images/_commands/gSECP1.jpg b/doc/source/images/_commands/gSECP1.jpg
new file mode 100644
index 00000000000..595eb5b2331
Binary files /dev/null and b/doc/source/images/_commands/gSECP1.jpg differ
diff --git a/doc/source/images/_commands/gSECR2.svg b/doc/source/images/_commands/gSECR2.svg
new file mode 100644
index 00000000000..94df2ab5059
--- /dev/null
+++ b/doc/source/images/_commands/gSECR2.svg
@@ -0,0 +1,155 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECR3.svg b/doc/source/images/_commands/gSECR3.svg
new file mode 100644
index 00000000000..4f26978b37f
--- /dev/null
+++ b/doc/source/images/_commands/gSECR3.svg
@@ -0,0 +1,680 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSECT1.svg b/doc/source/images/_commands/gSECT1.svg
new file mode 100644
index 00000000000..2fe24b0e089
--- /dev/null
+++ b/doc/source/images/_commands/gSECT1.svg
@@ -0,0 +1,149 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gSFCONTROL1.png b/doc/source/images/_commands/gSFCONTROL1.png
new file mode 100644
index 00000000000..4c0bf0c05ef
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL1.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL10.png b/doc/source/images/_commands/gSFCONTROL10.png
new file mode 100644
index 00000000000..10c63696a3c
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL10.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL11.png b/doc/source/images/_commands/gSFCONTROL11.png
new file mode 100644
index 00000000000..73c558780b6
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL11.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL12.png b/doc/source/images/_commands/gSFCONTROL12.png
new file mode 100644
index 00000000000..641e251459a
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL12.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL13.png b/doc/source/images/_commands/gSFCONTROL13.png
new file mode 100644
index 00000000000..32c87fcf1ae
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL13.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL14.png b/doc/source/images/_commands/gSFCONTROL14.png
new file mode 100644
index 00000000000..e96d786c614
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL14.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL15.png b/doc/source/images/_commands/gSFCONTROL15.png
new file mode 100644
index 00000000000..3b5ae044910
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL15.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL16.png b/doc/source/images/_commands/gSFCONTROL16.png
new file mode 100644
index 00000000000..89f496939b9
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL16.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL2.png b/doc/source/images/_commands/gSFCONTROL2.png
new file mode 100644
index 00000000000..3c2dc0223f3
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL2.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL3.png b/doc/source/images/_commands/gSFCONTROL3.png
new file mode 100644
index 00000000000..24e4dfd977a
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL3.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL4.png b/doc/source/images/_commands/gSFCONTROL4.png
new file mode 100644
index 00000000000..1391f4e319a
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL4.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL5.png b/doc/source/images/_commands/gSFCONTROL5.png
new file mode 100644
index 00000000000..ee526f2e9f5
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL5.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL6.png b/doc/source/images/_commands/gSFCONTROL6.png
new file mode 100644
index 00000000000..7d04cdf3b65
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL6.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL7.png b/doc/source/images/_commands/gSFCONTROL7.png
new file mode 100644
index 00000000000..6d9d5895c03
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL7.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL8.png b/doc/source/images/_commands/gSFCONTROL8.png
new file mode 100644
index 00000000000..886ebd4f269
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL8.png differ
diff --git a/doc/source/images/_commands/gSFCONTROL9.png b/doc/source/images/_commands/gSFCONTROL9.png
new file mode 100644
index 00000000000..be56fee7a28
Binary files /dev/null and b/doc/source/images/_commands/gSFCONTROL9.png differ
diff --git a/doc/source/images/_commands/gSHSDcontact.eps b/doc/source/images/_commands/gSHSDcontact.eps
new file mode 100644
index 00000000000..272c5c98362
Binary files /dev/null and b/doc/source/images/_commands/gSHSDcontact.eps differ
diff --git a/doc/source/images/_commands/gSHSDoverlap.eps b/doc/source/images/_commands/gSHSDoverlap.eps
new file mode 100644
index 00000000000..41bde6ecd90
Binary files /dev/null and b/doc/source/images/_commands/gSHSDoverlap.eps differ
diff --git a/doc/source/images/_commands/gTORU1.svg b/doc/source/images/_commands/gTORU1.svg
new file mode 100644
index 00000000000..c662e299a93
--- /dev/null
+++ b/doc/source/images/_commands/gTORU1.svg
@@ -0,0 +1,5628 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gcmd2ddispltopnodes.png b/doc/source/images/_commands/gcmd2ddispltopnodes.png
new file mode 100644
index 00000000000..6e2405d56fd
Binary files /dev/null and b/doc/source/images/_commands/gcmd2ddispltopnodes.png differ
diff --git a/doc/source/images/_commands/gcmd_mlist_example.PNG b/doc/source/images/_commands/gcmd_mlist_example.PNG
new file mode 100644
index 00000000000..ec3b328ca19
Binary files /dev/null and b/doc/source/images/_commands/gcmd_mlist_example.PNG differ
diff --git a/doc/source/images/_commands/gcmd_oczone_comp.png b/doc/source/images/_commands/gcmd_oczone_comp.png
new file mode 100644
index 00000000000..7b36c96a7d0
Binary files /dev/null and b/doc/source/images/_commands/gcmd_oczone_comp.png differ
diff --git a/doc/source/images/_commands/gcmd_oczone_compz.png b/doc/source/images/_commands/gcmd_oczone_compz.png
new file mode 100644
index 00000000000..1c19845a261
Binary files /dev/null and b/doc/source/images/_commands/gcmd_oczone_compz.png differ
diff --git a/doc/source/images/_commands/gcmd_oczone_pip.png b/doc/source/images/_commands/gcmd_oczone_pip.png
new file mode 100644
index 00000000000..29f833e4823
Binary files /dev/null and b/doc/source/images/_commands/gcmd_oczone_pip.png differ
diff --git a/doc/source/images/_commands/gcmd_oczone_zloc.png b/doc/source/images/_commands/gcmd_oczone_zloc.png
new file mode 100644
index 00000000000..dd8fcac8913
Binary files /dev/null and b/doc/source/images/_commands/gcmd_oczone_zloc.png differ
diff --git a/doc/source/images/_commands/gcmdexxt1.jpg b/doc/source/images/_commands/gcmdexxt1.jpg
new file mode 100644
index 00000000000..1e639b78799
Binary files /dev/null and b/doc/source/images/_commands/gcmdexxt1.jpg differ
diff --git a/doc/source/images/_commands/gcmdrsymm1.png b/doc/source/images/_commands/gcmdrsymm1.png
new file mode 100644
index 00000000000..5b9d56fa3c6
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm1.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm2.png b/doc/source/images/_commands/gcmdrsymm2.png
new file mode 100644
index 00000000000..de3fac5c723
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm2.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm3.png b/doc/source/images/_commands/gcmdrsymm3.png
new file mode 100644
index 00000000000..72f297f3c6e
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm3.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm4.png b/doc/source/images/_commands/gcmdrsymm4.png
new file mode 100644
index 00000000000..778f88c3dde
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm4.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm5.png b/doc/source/images/_commands/gcmdrsymm5.png
new file mode 100644
index 00000000000..b9d93c3d79c
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm5.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm_VFextrusion.png b/doc/source/images/_commands/gcmdrsymm_VFextrusion.png
new file mode 100644
index 00000000000..8e53442b4b5
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm_VFextrusion.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm_cyclic_reflection.png b/doc/source/images/_commands/gcmdrsymm_cyclic_reflection.png
new file mode 100644
index 00000000000..eca2d6c3f05
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm_cyclic_reflection.png differ
diff --git a/doc/source/images/_commands/gcmdrsymm_planar_reflection.png b/doc/source/images/_commands/gcmdrsymm_planar_reflection.png
new file mode 100644
index 00000000000..d8cd1230eec
Binary files /dev/null and b/doc/source/images/_commands/gcmdrsymm_planar_reflection.png differ
diff --git a/doc/source/images/_commands/ghflumpcircuitload2.GIF b/doc/source/images/_commands/ghflumpcircuitload2.GIF
new file mode 100644
index 00000000000..e090897ed9e
Binary files /dev/null and b/doc/source/images/_commands/ghflumpcircuitload2.GIF differ
diff --git a/doc/source/images/_commands/gpdcfld1.svg b/doc/source/images/_commands/gpdcfld1.svg
new file mode 100644
index 00000000000..d1e42ca7c62
--- /dev/null
+++ b/doc/source/images/_commands/gpdcfld1.svg
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/doc/source/images/_commands/gpdcfld2.svg b/doc/source/images/_commands/gpdcfld2.svg
new file mode 100644
index 00000000000..d59f351c43a
--- /dev/null
+++ b/doc/source/images/_commands/gpdcfld2.svg
@@ -0,0 +1,706 @@
+
+
+
+
diff --git a/doc/source/images/_commands/graphics - Shortcut.lnk b/doc/source/images/_commands/graphics - Shortcut.lnk
new file mode 100644
index 00000000000..785a689c95c
Binary files /dev/null and b/doc/source/images/_commands/graphics - Shortcut.lnk differ
diff --git a/doc/source/images/_commands/gsecplotshell.jpg b/doc/source/images/_commands/gsecplotshell.jpg
new file mode 100644
index 00000000000..93503833fec
Binary files /dev/null and b/doc/source/images/_commands/gsecplotshell.jpg differ
diff --git a/doc/source/images/_commands/gsupportblock.png b/doc/source/images/_commands/gsupportblock.png
new file mode 100644
index 00000000000..9a19d74cf52
Binary files /dev/null and b/doc/source/images/_commands/gsupportblock.png differ
diff --git a/doc/source/mapdl_commands/apdl/abbreviations.rst b/doc/source/mapdl_commands/apdl/abbreviations.rst
index dd1daba0cdc..8f104076c70 100644
--- a/doc/source/mapdl_commands/apdl/abbreviations.rst
+++ b/doc/source/mapdl_commands/apdl/abbreviations.rst
@@ -1,22 +1,21 @@
-.. _ref_abbreviations_commands_api:
-*************
-Abbreviations
-*************
+.. _ref_abbreviations:
+
-.. currentmodule:: ansys.mapdl.core
+Abbreviations
+=============
-These APDL commands can be used to define abbreviations for longer commands, and to create user-defined commands.
-.. note::
- It is probably easier to use Python strings instead of MAPDL
- strings.
+.. currentmodule:: ansys.mapdl.core._commands.apdl.abbreviations
+.. autoclass:: ansys.mapdl.core._commands.apdl.abbreviations.Abbreviations
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.abbr
- Mapdl.abbres
- Mapdl.abbsav
- Mapdl.ucmd
+ Abbreviations.abbr
+ Abbreviations.abbres
+ Abbreviations.abbsav
+ Abbreviations.ucmd
diff --git a/doc/source/mapdl_commands/apdl/array_parameters.rst b/doc/source/mapdl_commands/apdl/array_parameters.rst
new file mode 100644
index 00000000000..d7cdcade7a7
--- /dev/null
+++ b/doc/source/mapdl_commands/apdl/array_parameters.rst
@@ -0,0 +1,37 @@
+
+.. _ref_array_parameters:
+
+
+ArrayParameters
+===============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.apdl.array_parameters
+
+.. autoclass:: ansys.mapdl.core._commands.apdl.array_parameters.ArrayParameters
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ ArrayParameters.mfouri
+ ArrayParameters.mfun
+ ArrayParameters.moper
+ ArrayParameters.mwrite
+ ArrayParameters.sread
+ ArrayParameters.starvplot
+ ArrayParameters.starvput
+ ArrayParameters.toper
+ ArrayParameters.vabs
+ ArrayParameters.vcol
+ ArrayParameters.vcum
+ ArrayParameters.vfact
+ ArrayParameters.vfun
+ ArrayParameters.vitrp
+ ArrayParameters.vlen
+ ArrayParameters.vmask
+ ArrayParameters.voper
+ ArrayParameters.vscfun
+ ArrayParameters.vstat
+ ArrayParameters.vwrite
diff --git a/doc/source/mapdl_commands/apdl/array_parm.rst b/doc/source/mapdl_commands/apdl/array_parm.rst
deleted file mode 100644
index 2fb6e0a8bc4..00000000000
--- a/doc/source/mapdl_commands/apdl/array_parm.rst
+++ /dev/null
@@ -1,40 +0,0 @@
-.. _ref_array_parameters_commands_api:
-
-****************
-Array parameters
-****************
-
-.. currentmodule:: ansys.mapdl.core
-
-These APDL commands are used to operate on parameter arrays (vectors and matrices).
-
-.. note::
- Many of these commands are kept for legacy compatibility.
-
- To interact with arrays in a more Pythonic manner, see the parameters class :ref:`ref_parameters_api` .
-
- For working with arrays outside of MAPDL, consider using `NumPy `_.
-
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.mfouri
- Mapdl.mfun
- Mapdl.moper
- Mapdl.mwrite
- Mapdl.sread
- Mapdl.toper
- Mapdl.vabs
- Mapdl.vcol
- Mapdl.vcum
- Mapdl.vfact
- Mapdl.vfun
- Mapdl.vitrp
- Mapdl.vlen
- Mapdl.vmask
- Mapdl.voper
- Mapdl.starvput
- Mapdl.vscfun
- Mapdl.vstat
- Mapdl.vwrite
diff --git a/doc/source/mapdl_commands/apdl/encryption_decryption.rst b/doc/source/mapdl_commands/apdl/encryption_decryption.rst
new file mode 100644
index 00000000000..0a97fd24da9
--- /dev/null
+++ b/doc/source/mapdl_commands/apdl/encryption_decryption.rst
@@ -0,0 +1,21 @@
+
+.. _ref_encryption_decryption:
+
+
+EncryptionDecryption
+====================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.apdl.encryption_decryption
+
+.. autoclass:: ansys.mapdl.core._commands.apdl.encryption_decryption.EncryptionDecryption
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ EncryptionDecryption.dbdecrypt
+ EncryptionDecryption.dbencrypt
+ EncryptionDecryption.decrypt
+ EncryptionDecryption.encrypt
diff --git a/doc/source/mapdl_commands/apdl/index.rst b/doc/source/mapdl_commands/apdl/index.rst
new file mode 100644
index 00000000000..675a01e5981
--- /dev/null
+++ b/doc/source/mapdl_commands/apdl/index.rst
@@ -0,0 +1,30 @@
+
+.. _ref_apdl:
+
+
+Apdl
+====
+
+
+.. list-table::
+
+ * - :ref:`ref_abbreviations`
+ * - :ref:`ref_parameter_definition`
+ * - :ref:`ref_matrix_operations`
+ * - :ref:`ref_macro_files`
+ * - :ref:`ref_encryption_decryption`
+ * - :ref:`ref_array_parameters`
+ * - :ref:`ref_process_controls`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ abbreviations
+ parameter_definition
+ matrix_operations
+ macro_files
+ encryption_decryption
+ array_parameters
+ process_controls
diff --git a/doc/source/mapdl_commands/apdl/macro_files.rst b/doc/source/mapdl_commands/apdl/macro_files.rst
index 6e7610f8ba6..9de70cf512f 100644
--- a/doc/source/mapdl_commands/apdl/macro_files.rst
+++ b/doc/source/mapdl_commands/apdl/macro_files.rst
@@ -1,35 +1,30 @@
-.. _ref_macro_files_commands_api:
-***********
-Macro files
-***********
+.. _ref_macro_files:
-.. currentmodule:: ansys.mapdl.core
-These APDL commands are used to build and execute command macros.
+MacroFiles
+==========
-.. note::
- Most of the commands here should be replaced with Python
- alternatives. For example, instead of using macros, use Python
- functions. Instead of ``/MKDIR`` use ``os.mkdir``.
-.. warning::
- Many of the commands here must be run in ``mapdl.non_interactive``
+.. currentmodule:: ansys.mapdl.core._commands.apdl.macro_files
+
+.. autoclass:: ansys.mapdl.core._commands.apdl.macro_files.MacroFiles
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cfclos
- Mapdl.cfopen
- Mapdl.cfwrite
- Mapdl.create
- Mapdl.dflab
- Mapdl.end
- Mapdl.mkdir
- Mapdl.msg
- Mapdl.pmacro
- Mapdl.psearch
- Mapdl.rmdir
- Mapdl.tee
- Mapdl.ulib
- Mapdl.use
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ MacroFiles.cfclos
+ MacroFiles.cfopen
+ MacroFiles.cfwrite
+ MacroFiles.create
+ MacroFiles.end
+ MacroFiles.mkdir
+ MacroFiles.msg
+ MacroFiles.pmacro
+ MacroFiles.psearch
+ MacroFiles.rmdir
+ MacroFiles.slashtee
+ MacroFiles.ulib
+ MacroFiles.use
diff --git a/doc/source/mapdl_commands/apdl/matrix_op.rst b/doc/source/mapdl_commands/apdl/matrix_op.rst
deleted file mode 100644
index 07e35e9d9a7..00000000000
--- a/doc/source/mapdl_commands/apdl/matrix_op.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-.. _ref_matrix_operations_commands_api:
-
-*****************
-Matrix operations
-*****************
-
-.. currentmodule:: ansys.mapdl.core
-
-These APDL Math commands can be used to create, manipulate, and solve matrices.
-
-.. note::
- See the :ref:`mapdl_math_class_ref` for a more pythonic way of
- interacting with APDLMath.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.axpy
- Mapdl.comp
- Mapdl.dmat
- Mapdl.dot
- Mapdl.eigen
- Mapdl.export
- Mapdl.fft
- Mapdl.free
- Mapdl.init
- Mapdl.itengine
- Mapdl.lsbac
- Mapdl.lsdump
- Mapdl.lsengine
- Mapdl.lsfactor
- Mapdl.lsrestore
- Mapdl.merge
- Mapdl.mult
- Mapdl.nrm
- Mapdl.remove
- Mapdl.scal
- Mapdl.smat
- Mapdl.starprint
- Mapdl.sort
- Mapdl.vec
- Mapdl.wrk
diff --git a/doc/source/mapdl_commands/apdl/matrix_operations.rst b/doc/source/mapdl_commands/apdl/matrix_operations.rst
new file mode 100644
index 00000000000..e0dece49a4b
--- /dev/null
+++ b/doc/source/mapdl_commands/apdl/matrix_operations.rst
@@ -0,0 +1,45 @@
+
+.. _ref_matrix_operations:
+
+
+MatrixOperations
+================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.apdl.matrix_operations
+
+.. autoclass:: ansys.mapdl.core._commands.apdl.matrix_operations.MatrixOperations
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ MatrixOperations.axpy
+ MatrixOperations.comp
+ MatrixOperations.dmat
+ MatrixOperations.dot
+ MatrixOperations.eigen
+ MatrixOperations.export
+ MatrixOperations.fft
+ MatrixOperations.free
+ MatrixOperations.hprod
+ MatrixOperations.init
+ MatrixOperations.itengine
+ MatrixOperations.lsbac
+ MatrixOperations.lsdump
+ MatrixOperations.lsengine
+ MatrixOperations.lsfactor
+ MatrixOperations.lsrestore
+ MatrixOperations.merge
+ MatrixOperations.mult
+ MatrixOperations.nrm
+ MatrixOperations.remove
+ MatrixOperations.scal
+ MatrixOperations.smat
+ MatrixOperations.starinquire
+ MatrixOperations.starprint
+ MatrixOperations.starrename
+ MatrixOperations.starsort
+ MatrixOperations.vec
+ MatrixOperations.wrk
diff --git a/doc/source/mapdl_commands/apdl/parameter_definition.rst b/doc/source/mapdl_commands/apdl/parameter_definition.rst
index 8a3b7f91711..88affe9918a 100644
--- a/doc/source/mapdl_commands/apdl/parameter_definition.rst
+++ b/doc/source/mapdl_commands/apdl/parameter_definition.rst
@@ -1,24 +1,30 @@
-.. _ref_parameter_definition_commands_api:
-********************
-Parameter definition
-********************
+.. _ref_parameter_definition:
-.. currentmodule:: ansys.mapdl.core
-These APDL commands are used to define parameters and their values.
+ParameterDefinition
+===================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.apdl.parameter_definition
+
+.. autoclass:: ansys.mapdl.core._commands.apdl.parameter_definition.ParameterDefinition
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.afun
- Mapdl.dim
- Mapdl.inquire
- Mapdl.parres
- Mapdl.parsav
- Mapdl.starset
- Mapdl.taxis
- Mapdl.tread
- Mapdl.vfill
- Mapdl.starvget
- Mapdl.vread
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ ParameterDefinition.afun
+ ParameterDefinition.dim
+ ParameterDefinition.get
+ ParameterDefinition.inquire
+ ParameterDefinition.parres
+ ParameterDefinition.parsav
+ ParameterDefinition.starset
+ ParameterDefinition.starstatus
+ ParameterDefinition.starvget
+ ParameterDefinition.taxis
+ ParameterDefinition.tread
+ ParameterDefinition.vfill
+ ParameterDefinition.vread
diff --git a/doc/source/mapdl_commands/apdl/process_controls.rst b/doc/source/mapdl_commands/apdl/process_controls.rst
index 1bef3310216..cf10acac958 100644
--- a/doc/source/mapdl_commands/apdl/process_controls.rst
+++ b/doc/source/mapdl_commands/apdl/process_controls.rst
@@ -1,34 +1,19 @@
-.. _ref_process_controls_api:
-****************
-Process controls
-****************
+.. _ref_process_controls:
-.. currentmodule:: ansys.mapdl.core
-These APDL commands can be used to control the order in which other
-commands are processed.
+ProcessControls
+===============
-.. note::
- The following commands are not directly mapped to PyMAPDL. Use
- `non-interactive` if you must use these commands, but ideally they
- should be replaced by Python statements.
- * ``*CYCLE``
- * ``*DO``
- * ``*DOWHILE``
- * ``*ELSE``
- * ``*ELSEIF``
- * ``*ENDDO``
- * ``*ENDIF``
- * ``*EXIT``
- * ``*GO``
- * ``*IF``
- * ``*REPEAT``
- * ``*RETURN``
+.. currentmodule:: ansys.mapdl.core._commands.apdl.process_controls
+.. autoclass:: ansys.mapdl.core._commands.apdl.process_controls.ProcessControls
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
- Mapdl.wait
+
+ ProcessControls.starexit
+ ProcessControls.wait
diff --git a/doc/source/mapdl_commands/aux12/general_radiation.rst b/doc/source/mapdl_commands/aux12/general_radiation.rst
index 9d52fd6e35c..71519a9dc36 100644
--- a/doc/source/mapdl_commands/aux12/general_radiation.rst
+++ b/doc/source/mapdl_commands/aux12/general_radiation.rst
@@ -1,15 +1,19 @@
-.. _ref_general Radiation_api:
-*****************
-General radiation
-*****************
+.. _ref_general_radiation:
-.. currentmodule:: ansys.mapdl.core
-These AUX12 commands are used to specify general radiation parameters.
+GeneralRadiation
+================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux12.general_radiation
+
+.. autoclass:: ansys.mapdl.core._commands.aux12.general_radiation.GeneralRadiation
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.stef
- Mapdl.toffst
+ GeneralRadiation.aux12
+ GeneralRadiation.stef
diff --git a/doc/source/mapdl_commands/aux12/index.rst b/doc/source/mapdl_commands/aux12/index.rst
new file mode 100644
index 00000000000..d13c4803fa2
--- /dev/null
+++ b/doc/source/mapdl_commands/aux12/index.rst
@@ -0,0 +1,20 @@
+
+.. _ref_aux12:
+
+Aux12
+=====
+
+.. list-table::
+
+ * - :ref:`ref_general_radiation`
+ * - :ref:`ref_radiation_matrix_method`
+ * - :ref:`ref_radiosity_solver`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ general_radiation
+ radiation_matrix_method
+ radiosity_solver
diff --git a/doc/source/mapdl_commands/aux12/radiation_mat.rst b/doc/source/mapdl_commands/aux12/radiation_mat.rst
deleted file mode 100644
index 588b013cff0..00000000000
--- a/doc/source/mapdl_commands/aux12/radiation_mat.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. _ref_radiation Matrix Method_api:
-
-***********************
-Radiation matrix method
-***********************
-
-.. currentmodule:: ansys.mapdl.core
-
-These AUX12 commands are used to calculate radiation view factors and
-to create a radiation substructure for the Radiation Matrix method.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.emis
- Mapdl.geom
- Mapdl.mprint
- Mapdl.space
- Mapdl.vtype
- Mapdl.write
diff --git a/doc/source/mapdl_commands/aux12/radiation_matrix_method.rst b/doc/source/mapdl_commands/aux12/radiation_matrix_method.rst
new file mode 100644
index 00000000000..8f9257b4d65
--- /dev/null
+++ b/doc/source/mapdl_commands/aux12/radiation_matrix_method.rst
@@ -0,0 +1,23 @@
+
+.. _ref_radiation_matrix_method:
+
+
+RadiationMatrixMethod
+=====================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux12.radiation_matrix_method
+
+.. autoclass:: ansys.mapdl.core._commands.aux12.radiation_matrix_method.RadiationMatrixMethod
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ RadiationMatrixMethod.emis
+ RadiationMatrixMethod.geom
+ RadiationMatrixMethod.mprint
+ RadiationMatrixMethod.space
+ RadiationMatrixMethod.vtype
+ RadiationMatrixMethod.write
diff --git a/doc/source/mapdl_commands/aux12/radiosity_solver.rst b/doc/source/mapdl_commands/aux12/radiosity_solver.rst
index 1a7ab414290..0ae7966cdce 100644
--- a/doc/source/mapdl_commands/aux12/radiosity_solver.rst
+++ b/doc/source/mapdl_commands/aux12/radiosity_solver.rst
@@ -1,23 +1,20 @@
-.. _ref_radiosity Solver_api:
-****************
-Radiosity solver
-****************
+.. _ref_radiosity_solver:
-.. currentmodule:: ansys.mapdl.core
-These AUX12 commands are used to calculate the radiation view factors
-and to specify the solution parameters for the Radiosity solver
-method.
+RadiositySolver
+===============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux12.radiosity_solver
+
+.. autoclass:: ansys.mapdl.core._commands.aux12.radiosity_solver.RadiositySolver
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.hemiopt
- Mapdl.radopt
- Mapdl.spcnod
- Mapdl.spctemp
- Mapdl.v2dopt
- Mapdl.vfsm
- Mapdl.vfopt
- Mapdl.vfquery
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ RadiositySolver.vfco
+ RadiositySolver.vfquery
+ RadiositySolver.vfsm
diff --git a/doc/source/mapdl_commands/aux15.rst b/doc/source/mapdl_commands/aux15.rst
deleted file mode 100644
index df357169578..00000000000
--- a/doc/source/mapdl_commands/aux15.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. _ref_iges_api:
-
-****
-IGES
-****
-
-.. currentmodule:: ansys.mapdl.core
-
-These AUX15 commands read an IGES format file into PREP7 data.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.igesin
- Mapdl.ioptn
diff --git a/doc/source/mapdl_commands/aux15/iges.rst b/doc/source/mapdl_commands/aux15/iges.rst
new file mode 100644
index 00000000000..4846944d1d6
--- /dev/null
+++ b/doc/source/mapdl_commands/aux15/iges.rst
@@ -0,0 +1,20 @@
+
+.. _ref_iges:
+
+
+Iges
+====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux15.iges
+
+.. autoclass:: ansys.mapdl.core._commands.aux15.iges.Iges
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Iges.aux15
+ Iges.igesin
+ Iges.ioptn
diff --git a/doc/source/mapdl_commands/aux15/index.rst b/doc/source/mapdl_commands/aux15/index.rst
new file mode 100644
index 00000000000..23bea85776e
--- /dev/null
+++ b/doc/source/mapdl_commands/aux15/index.rst
@@ -0,0 +1,16 @@
+
+.. _ref_aux15:
+
+Aux15
+=====
+
+.. list-table::
+
+ * - :ref:`ref_iges`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ iges
diff --git a/doc/source/mapdl_commands/aux2/bin_dump.rst b/doc/source/mapdl_commands/aux2/bin_dump.rst
deleted file mode 100644
index 8a78b43b9e5..00000000000
--- a/doc/source/mapdl_commands/aux2/bin_dump.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _ref_binary File Dump_api:
-
-****************
-Binary file dump
-****************
-
-.. currentmodule:: ansys.mapdl.core
-
-These AUX2 commands are used to dump the contents of binary files.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.dump
- Mapdl.fileaux2
- Mapdl.form
- Mapdl.ptr
diff --git a/doc/source/mapdl_commands/aux2/bin_manip.rst b/doc/source/mapdl_commands/aux2/bin_manip.rst
deleted file mode 100644
index bf34c096c79..00000000000
--- a/doc/source/mapdl_commands/aux2/bin_manip.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _ref_binary File Manipulation_api:
-
-************************
-Binary file manipulation
-************************
-
-.. currentmodule:: ansys.mapdl.core
-
-These AUX2 commands are used to manipulate the contents of binary
-files.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.combine
- Mapdl.hbmat
- Mapdl.psmat
diff --git a/doc/source/mapdl_commands/aux2/binary_file_dump.rst b/doc/source/mapdl_commands/aux2/binary_file_dump.rst
new file mode 100644
index 00000000000..b06682cafd8
--- /dev/null
+++ b/doc/source/mapdl_commands/aux2/binary_file_dump.rst
@@ -0,0 +1,22 @@
+
+.. _ref_binary_file_dump:
+
+
+BinaryFileDump
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux2.binary_file_dump
+
+.. autoclass:: ansys.mapdl.core._commands.aux2.binary_file_dump.BinaryFileDump
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ BinaryFileDump.aux2
+ BinaryFileDump.dump
+ BinaryFileDump.fileaux2
+ BinaryFileDump.form
+ BinaryFileDump.ptr
diff --git a/doc/source/mapdl_commands/aux2/binary_file_manipulation.rst b/doc/source/mapdl_commands/aux2/binary_file_manipulation.rst
new file mode 100644
index 00000000000..0f681bb0ee0
--- /dev/null
+++ b/doc/source/mapdl_commands/aux2/binary_file_manipulation.rst
@@ -0,0 +1,20 @@
+
+.. _ref_binary_file_manipulation:
+
+
+BinaryFileManipulation
+======================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux2.binary_file_manipulation
+
+.. autoclass:: ansys.mapdl.core._commands.aux2.binary_file_manipulation.BinaryFileManipulation
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ BinaryFileManipulation.combine
+ BinaryFileManipulation.hbmat
+ BinaryFileManipulation.psmat
diff --git a/doc/source/mapdl_commands/aux2/index.rst b/doc/source/mapdl_commands/aux2/index.rst
new file mode 100644
index 00000000000..3dc466a90bb
--- /dev/null
+++ b/doc/source/mapdl_commands/aux2/index.rst
@@ -0,0 +1,18 @@
+
+.. _ref_aux2:
+
+Aux2
+====
+
+.. list-table::
+
+ * - :ref:`ref_binary_file_dump`
+ * - :ref:`ref_binary_file_manipulation`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ binary_file_dump
+ binary_file_manipulation
diff --git a/doc/source/mapdl_commands/aux3.rst b/doc/source/mapdl_commands/aux3.rst
deleted file mode 100644
index 8c7d9027fa7..00000000000
--- a/doc/source/mapdl_commands/aux3.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _ref_results_files_api:
-
-*************
-Results files
-*************
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands are related to the /AUX3 command.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.compress
- Mapdl.fileaux3
- Mapdl.list
- Mapdl.modify
- Mapdl.undelete
- Mapdl.delete
diff --git a/doc/source/mapdl_commands/aux3/index.rst b/doc/source/mapdl_commands/aux3/index.rst
new file mode 100644
index 00000000000..7855d643336
--- /dev/null
+++ b/doc/source/mapdl_commands/aux3/index.rst
@@ -0,0 +1,16 @@
+
+.. _ref_aux3:
+
+Aux3
+====
+
+.. list-table::
+
+ * - :ref:`ref_results_files`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ results_files
diff --git a/doc/source/mapdl_commands/aux3/results_files.rst b/doc/source/mapdl_commands/aux3/results_files.rst
new file mode 100644
index 00000000000..e82b982ff68
--- /dev/null
+++ b/doc/source/mapdl_commands/aux3/results_files.rst
@@ -0,0 +1,24 @@
+
+.. _ref_results_files:
+
+
+ResultsFiles
+============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.aux3.results_files
+
+.. autoclass:: ansys.mapdl.core._commands.aux3.results_files.ResultsFiles
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ ResultsFiles.aux3
+ ResultsFiles.compress
+ ResultsFiles.delete
+ ResultsFiles.fileaux3
+ ResultsFiles.list
+ ResultsFiles.modify
+ ResultsFiles.undelete
diff --git a/doc/source/mapdl_commands/database/components.rst b/doc/source/mapdl_commands/database/components.rst
index 49b4f69edfd..e77e23000d7 100644
--- a/doc/source/mapdl_commands/database/components.rst
+++ b/doc/source/mapdl_commands/database/components.rst
@@ -1,23 +1,26 @@
-.. _ref_components_api:
-**********
+.. _ref_components:
+
+
Components
-**********
+==========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.database.components
-These DATABASE commands allow selected subsets of entities to be named
-as components for easy selection later on.
+.. autoclass:: ansys.mapdl.core._commands.database.components.Components
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cm
- Mapdl.cmdele
- Mapdl.cmedit
- Mapdl.cmgrp
- Mapdl.cmlist
- Mapdl.cmmod
- Mapdl.cmplot
- Mapdl.cmsel
- Mapdl.cmwrite
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Components.cm
+ Components.cmdele
+ Components.cmedit
+ Components.cmgrp
+ Components.cmlist
+ Components.cmmod
+ Components.cmplot
+ Components.cmsel
+ Components.cmwrite
diff --git a/doc/source/mapdl_commands/database/coord_sys.rst b/doc/source/mapdl_commands/database/coord_sys.rst
deleted file mode 100644
index afce4dd78dd..00000000000
--- a/doc/source/mapdl_commands/database/coord_sys.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-.. _ref_coordinate System_api:
-
-*****************
-Coordinate system
-*****************
-
-.. currentmodule:: ansys.mapdl.core
-
-These DATABASE commands define and manipulate coordinate systems.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.clocal
- Mapdl.cs
- Mapdl.cscir
- Mapdl.csdele
- Mapdl.cskp
- Mapdl.cslist
- Mapdl.cswpla
- Mapdl.csys
- Mapdl.local
diff --git a/doc/source/mapdl_commands/database/coordinate_system.rst b/doc/source/mapdl_commands/database/coordinate_system.rst
new file mode 100644
index 00000000000..07367f22196
--- /dev/null
+++ b/doc/source/mapdl_commands/database/coordinate_system.rst
@@ -0,0 +1,26 @@
+
+.. _ref_coordinate_system:
+
+
+CoordinateSystem
+================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.database.coordinate_system
+
+.. autoclass:: ansys.mapdl.core._commands.database.coordinate_system.CoordinateSystem
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ CoordinateSystem.clocal
+ CoordinateSystem.cs
+ CoordinateSystem.cscir
+ CoordinateSystem.csdele
+ CoordinateSystem.cskp
+ CoordinateSystem.cslist
+ CoordinateSystem.cswpla
+ CoordinateSystem.csys
+ CoordinateSystem.local
diff --git a/doc/source/mapdl_commands/database/index.rst b/doc/source/mapdl_commands/database/index.rst
new file mode 100644
index 00000000000..7eb7c65b115
--- /dev/null
+++ b/doc/source/mapdl_commands/database/index.rst
@@ -0,0 +1,26 @@
+
+.. _ref_database:
+
+Database
+========
+
+.. list-table::
+
+ * - :ref:`ref_selecting`
+ * - :ref:`ref_coordinate_system`
+ * - :ref:`ref_components`
+ * - :ref:`ref_picking`
+ * - :ref:`ref_working_plane`
+ * - :ref:`ref_set_up`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ selecting
+ coordinate_system
+ components
+ picking
+ working_plane
+ set_up
diff --git a/doc/source/mapdl_commands/database/picking.rst b/doc/source/mapdl_commands/database/picking.rst
index 38a43bb5e03..e1ae4b42dba 100644
--- a/doc/source/mapdl_commands/database/picking.rst
+++ b/doc/source/mapdl_commands/database/picking.rst
@@ -1,18 +1,19 @@
-.. _ref_picking_api:
-*******
+.. _ref_picking:
+
+
Picking
-*******
+=======
-.. currentmodule:: ansys.mapdl.core
-These DATABASE commands are generated by the GUI when picking
-operations are performed. They can also be used to add additional
-parameters to a command. For example, more points to a spline than
-would be normally supported.
+.. currentmodule:: ansys.mapdl.core._commands.database.picking
+
+.. autoclass:: ansys.mapdl.core._commands.database.picking.Picking
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.fitem
- Mapdl.flst
+ Picking.fitem
+ Picking.flst
diff --git a/doc/source/mapdl_commands/database/selecting.rst b/doc/source/mapdl_commands/database/selecting.rst
index 0db338bbc6a..9810209e89b 100644
--- a/doc/source/mapdl_commands/database/selecting.rst
+++ b/doc/source/mapdl_commands/database/selecting.rst
@@ -1,39 +1,42 @@
-.. _ref_selecting_api:
-*********
+.. _ref_selecting:
+
+
Selecting
-*********
+=========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.database.selecting
-These DATABASE commands are used to select subsets of database
-entities for further operations.
+.. autoclass:: ansys.mapdl.core._commands.database.selecting.Selecting
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.allsel
- Mapdl.asll
- Mapdl.asel
- Mapdl.aslv
- Mapdl.dofsel
- Mapdl.esel
- Mapdl.esla
- Mapdl.esll
- Mapdl.esln
- Mapdl.eslv
- Mapdl.ksel
- Mapdl.ksll
- Mapdl.ksln
- Mapdl.lsel
- Mapdl.lsla
- Mapdl.lslk
- Mapdl.nsel
- Mapdl.nsla
- Mapdl.nsle
- Mapdl.nslk
- Mapdl.nsll
- Mapdl.nslv
- Mapdl.partsel
- Mapdl.vsel
- Mapdl.vsla
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Selecting.allsel
+ Selecting.asel
+ Selecting.asll
+ Selecting.aslv
+ Selecting.dofsel
+ Selecting.esel
+ Selecting.esla
+ Selecting.esll
+ Selecting.esln
+ Selecting.eslv
+ Selecting.ksel
+ Selecting.ksll
+ Selecting.ksln
+ Selecting.lsel
+ Selecting.lsla
+ Selecting.lslk
+ Selecting.nsel
+ Selecting.nsla
+ Selecting.nsle
+ Selecting.nslk
+ Selecting.nsll
+ Selecting.nslv
+ Selecting.seltol
+ Selecting.vsel
+ Selecting.vsla
diff --git a/doc/source/mapdl_commands/database/set_up.rst b/doc/source/mapdl_commands/database/set_up.rst
new file mode 100644
index 00000000000..e1a89b98791
--- /dev/null
+++ b/doc/source/mapdl_commands/database/set_up.rst
@@ -0,0 +1,24 @@
+
+.. _ref_set_up:
+
+
+SetUp
+=====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.database.set_up
+
+.. autoclass:: ansys.mapdl.core._commands.database.set_up.SetUp
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SetUp.resume
+ SetUp.save
+ SetUp.smbc
+ SetUp.stat
+ SetUp.stitle
+ SetUp.title
+ SetUp.units
diff --git a/doc/source/mapdl_commands/database/setup.rst b/doc/source/mapdl_commands/database/setup.rst
deleted file mode 100644
index ef92f56356a..00000000000
--- a/doc/source/mapdl_commands/database/setup.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-.. _ref_setup_commands_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These DATABASE commands can be used to initialize the database, save
-it to a file, or annotate it with titles and systems of units.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.clear
- Mapdl.resume
- Mapdl.save
- Mapdl.smbc
- Mapdl.stat
- Mapdl.stitle
- Mapdl.title
- Mapdl.units
diff --git a/doc/source/mapdl_commands/database/working_plane.rst b/doc/source/mapdl_commands/database/working_plane.rst
index d3eb8ec1699..f76f86027a8 100644
--- a/doc/source/mapdl_commands/database/working_plane.rst
+++ b/doc/source/mapdl_commands/database/working_plane.rst
@@ -1,25 +1,28 @@
-.. _ref_working_plane_api:
-*************
-Working plane
-*************
+.. _ref_working_plane:
-.. currentmodule:: ansys.mapdl.core
-These DATABASE commands turn on, move, rotate, and modify the working
-plane, which is used for picking operations.
+WorkingPlane
+============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.database.working_plane
+
+.. autoclass:: ansys.mapdl.core._commands.database.working_plane.WorkingPlane
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.kwpave
- Mapdl.kwplan
- Mapdl.lwplan
- Mapdl.nwpave
- Mapdl.nwplan
- Mapdl.wpave
- Mapdl.wpcsys
- Mapdl.wplane
- Mapdl.wpoffs
- Mapdl.wprota
- Mapdl.wpstyl
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ WorkingPlane.kwpave
+ WorkingPlane.kwplan
+ WorkingPlane.lwplan
+ WorkingPlane.nwpave
+ WorkingPlane.nwplan
+ WorkingPlane.wpave
+ WorkingPlane.wpcsys
+ WorkingPlane.wplane
+ WorkingPlane.wpoffs
+ WorkingPlane.wprota
+ WorkingPlane.wpstyl
diff --git a/doc/source/mapdl_commands/display/setup.rst b/doc/source/mapdl_commands/display/setup.rst
deleted file mode 100644
index aa42c72255f..00000000000
--- a/doc/source/mapdl_commands/display/setup.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _ref_display_setup_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These DISPLAY commands are used to set up the DISPLAY program.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cmap
- Mapdl.devdisp
- Mapdl.filedisp
- Mapdl.nocolor
- Mapdl.showdisp
- Mapdl.trans
diff --git a/doc/source/mapdl_commands/graphics/annotation.rst b/doc/source/mapdl_commands/graphics/annotation.rst
index a32ec936573..1184b9bf445 100644
--- a/doc/source/mapdl_commands/graphics/annotation.rst
+++ b/doc/source/mapdl_commands/graphics/annotation.rst
@@ -1,26 +1,31 @@
-.. _ref_annotation_api:
-**********
+.. _ref_annotation:
+
+
Annotation
-**********
+==========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.annotation
-These GRAPHICS commands are used to annotate a display with notes and
-symbols.
+.. autoclass:: ansys.mapdl.core._commands.graphics.annotation.Annotation
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.an3d
- Mapdl.annot
- Mapdl.anum
- Mapdl.lspec
- Mapdl.lsymbol
- Mapdl.slash_pcircle
- Mapdl.pmore
- Mapdl.polygon
- Mapdl.pspec
- Mapdl.pwedge
- Mapdl.tlabel
- Mapdl.tspec
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Annotation.an3d
+ Annotation.annot
+ Annotation.anum
+ Annotation.lspec
+ Annotation.lsymbol
+ Annotation.pcircle
+ Annotation.pmore
+ Annotation.polygon
+ Annotation.pwedge
+ Annotation.slashlarc
+ Annotation.slashline
+ Annotation.slashpspec
+ Annotation.tlabel
+ Annotation.tspec
diff --git a/doc/source/mapdl_commands/graphics/graphs.rst b/doc/source/mapdl_commands/graphics/graphs.rst
index 0afd86b213f..4c5fc934430 100644
--- a/doc/source/mapdl_commands/graphics/graphs.rst
+++ b/doc/source/mapdl_commands/graphics/graphs.rst
@@ -1,21 +1,24 @@
-.. _ref_graphs_api:
-******
+.. _ref_graphs:
+
+
Graphs
-******
+======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.graphs
-These GRAPHICS commands are used to control the way line graphs are
-displayed.
+.. autoclass:: ansys.mapdl.core._commands.graphics.graphs.Graphs
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.axlab
- Mapdl.grid
- Mapdl.gropt
- Mapdl.grtyp
- Mapdl.gthk
- Mapdl.xrange
- Mapdl.yrange
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Graphs.axlab
+ Graphs.grid
+ Graphs.gropt
+ Graphs.grtyp
+ Graphs.gthk
+ Graphs.xrange
+ Graphs.yrange
diff --git a/doc/source/mapdl_commands/graphics/index.rst b/doc/source/mapdl_commands/graphics/index.rst
new file mode 100644
index 00000000000..03b25f3e807
--- /dev/null
+++ b/doc/source/mapdl_commands/graphics/index.rst
@@ -0,0 +1,28 @@
+
+.. _ref_graphics:
+
+Graphics
+========
+
+.. list-table::
+
+ * - :ref:`ref_annotation`
+ * - :ref:`ref_views`
+ * - :ref:`ref_graphs`
+ * - :ref:`ref_labeling`
+ * - :ref:`ref_set_up`
+ * - :ref:`ref_style`
+ * - :ref:`ref_scaling`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ annotation
+ views
+ graphs
+ labeling
+ set_up
+ style
+ scaling
diff --git a/doc/source/mapdl_commands/graphics/labeling.rst b/doc/source/mapdl_commands/graphics/labeling.rst
index 7445b7972ed..932a94f2ba2 100644
--- a/doc/source/mapdl_commands/graphics/labeling.rst
+++ b/doc/source/mapdl_commands/graphics/labeling.rst
@@ -1,29 +1,32 @@
-.. _ref_labeling_api:
-********
+.. _ref_labeling:
+
+
Labeling
-********
+========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.labeling
-These GRAPHICS commands are used to add helpful labels and symbols to
-displays.
+.. autoclass:: ansys.mapdl.core._commands.graphics.labeling.Labeling
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cformat
- Mapdl.clabel
- Mapdl.contour
- Mapdl.cval
- Mapdl.gformat
- Mapdl.hbc
- Mapdl.number
- Mapdl.pbc
- Mapdl.pbf
- Mapdl.plopts
- Mapdl.pnum
- Mapdl.psf
- Mapdl.psymb
- Mapdl.triad
- Mapdl.udoc
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Labeling.cformat
+ Labeling.clabel
+ Labeling.contour
+ Labeling.cval
+ Labeling.gformat
+ Labeling.hbc
+ Labeling.number
+ Labeling.pbc
+ Labeling.pbf
+ Labeling.plopts
+ Labeling.pnum
+ Labeling.psf
+ Labeling.psymb
+ Labeling.triad
+ Labeling.udoc
diff --git a/doc/source/mapdl_commands/graphics/scaling.rst b/doc/source/mapdl_commands/graphics/scaling.rst
index 063276bb84b..b3b64216768 100644
--- a/doc/source/mapdl_commands/graphics/scaling.rst
+++ b/doc/source/mapdl_commands/graphics/scaling.rst
@@ -1,21 +1,24 @@
-.. _ref_scaling_api:
-*******
+.. _ref_scaling:
+
+
Scaling
-*******
+=======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.scaling
-These GRAPHICS commands are used to scale various parts of the
-display.
+.. autoclass:: ansys.mapdl.core._commands.graphics.scaling.Scaling
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.iclwid
- Mapdl.icscale
- Mapdl.ratio
- Mapdl.shrink
- Mapdl.sscale
- Mapdl.txtre
- Mapdl.vscale
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Scaling.iclwid
+ Scaling.icscale
+ Scaling.ratio
+ Scaling.shrink
+ Scaling.slashdscale
+ Scaling.sscale
+ Scaling.vscale
diff --git a/doc/source/mapdl_commands/graphics/set_up.rst b/doc/source/mapdl_commands/graphics/set_up.rst
new file mode 100644
index 00000000000..9fb6de27e15
--- /dev/null
+++ b/doc/source/mapdl_commands/graphics/set_up.rst
@@ -0,0 +1,43 @@
+
+.. _ref_set_up:
+
+
+SetUp
+=====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.graphics.set_up
+
+.. autoclass:: ansys.mapdl.core._commands.graphics.set_up.SetUp
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SetUp.cmap
+ SetUp.color
+ SetUp.device
+ SetUp.dsys
+ SetUp.dv3d
+ SetUp.gcmd
+ SetUp.gcolumn
+ SetUp.gfile
+ SetUp.gplot
+ SetUp.graphics
+ SetUp.gresume
+ SetUp.gsave
+ SetUp.gtype
+ SetUp.image
+ SetUp.immed
+ SetUp.jpeg
+ SetUp.mrep
+ SetUp.noerase
+ SetUp.pngr
+ SetUp.pstatus
+ SetUp.replot
+ SetUp.seg
+ SetUp.show
+ SetUp.slashreset
+ SetUp.tiff
+ SetUp.window
diff --git a/doc/source/mapdl_commands/graphics/setup.rst b/doc/source/mapdl_commands/graphics/setup.rst
deleted file mode 100644
index ff8e58f1d4a..00000000000
--- a/doc/source/mapdl_commands/graphics/setup.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-.. _ref_graphics_setup_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These GRAPHICS commands are used for general graphics control, such as
-window setup, color settings, specifications saving, etc.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.color
- Mapdl.device
- Mapdl.dsys
- Mapdl.dv3d
- Mapdl.gcmd
- Mapdl.gcolumn
- Mapdl.gfile
- Mapdl.gplot
- Mapdl.graphics
- Mapdl.gresume
- Mapdl.gsave
- Mapdl.gtype
- Mapdl.image
- Mapdl.jpeg
- Mapdl.mrep
- Mapdl.pcopy
- Mapdl.pngr
- Mapdl.pscr
- Mapdl.pstatus
- Mapdl.replot
- Mapdl.slashreset
- Mapdl.seg
- Mapdl.show
- Mapdl.tiff
- Mapdl.window
diff --git a/doc/source/mapdl_commands/graphics/style.rst b/doc/source/mapdl_commands/graphics/style.rst
index e02d8c9c1de..22a7e62ae08 100644
--- a/doc/source/mapdl_commands/graphics/style.rst
+++ b/doc/source/mapdl_commands/graphics/style.rst
@@ -1,26 +1,31 @@
-.. _ref_style_api:
-*****
+.. _ref_style:
+
+
Style
-*****
+=====
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.style
-These GRAPHICS commands are used to change the way a model is
-displayed.
+.. autoclass:: ansys.mapdl.core._commands.graphics.style.Style
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cplane
- Mapdl.ctype
- Mapdl.edge
- Mapdl.eshape
- Mapdl.facet
- Mapdl.gline
- Mapdl.gmarker
- Mapdl.gmface
- Mapdl.light
- Mapdl.normal
- Mapdl.shade
- Mapdl.trlcy
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Style.cplane
+ Style.ctype
+ Style.edge
+ Style.eshape
+ Style.facet
+ Style.gline
+ Style.gmarker
+ Style.gmface
+ Style.light
+ Style.normal
+ Style.shade
+ Style.slashtype
+ Style.trlcy
+ Style.txtre
diff --git a/doc/source/mapdl_commands/graphics/views.rst b/doc/source/mapdl_commands/graphics/views.rst
index 6fae00ee2a4..332b80941d1 100644
--- a/doc/source/mapdl_commands/graphics/views.rst
+++ b/doc/source/mapdl_commands/graphics/views.rst
@@ -1,23 +1,27 @@
-.. _ref_views_api:
-*****
+.. _ref_views:
+
+
Views
-*****
+=====
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.graphics.views
-These GRAPHICS commands are used to control the view of the model.
+.. autoclass:: ansys.mapdl.core._commands.graphics.views.Views
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.angle
- Mapdl.auto
- Mapdl.dist
- Mapdl.focus
- Mapdl.user
- Mapdl.vcone
- Mapdl.view
- Mapdl.vup
- Mapdl.xfrm
- Mapdl.zoom
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Views.angle
+ Views.auto
+ Views.dist
+ Views.focus
+ Views.user
+ Views.vcone
+ Views.view
+ Views.vup
+ Views.xfrm
+ Views.zoom
diff --git a/doc/source/mapdl_commands/index.rst b/doc/source/mapdl_commands/index.rst
index 8eeba77bb34..b37ac88c46c 100644
--- a/doc/source/mapdl_commands/index.rst
+++ b/doc/source/mapdl_commands/index.rst
@@ -19,10 +19,7 @@ are grouped by capability.
:maxdepth: 1
:caption: Session
- session/run_controls
- session/processor_entry
- session/files
- session/list_controls
+ session/index
********
@@ -34,12 +31,8 @@ These commands are used to operate on the database globally.
:maxdepth: 1
:caption: Database
- database/setup
- database/selecting
- database/components
- database/working_plane
- database/coord_sys
- database/picking
+ database/index
+
********
Graphics
@@ -50,13 +43,7 @@ These commands are used to control the graphics of the program.
:maxdepth: 1
:caption: Graphics
- graphics/setup
- graphics/views
- graphics/scaling
- graphics/style
- graphics/labeling
- graphics/graphs
- graphics/annotation
+ graphics/index
****
@@ -69,12 +56,7 @@ These commands make up the ANSYS Parametric Design Language
:maxdepth: 1
:caption: APDL
- apdl/parameter_definition
- apdl/macro_files
- apdl/abbreviations
- apdl/array_parm
- apdl/matrix_op
- apdl/process_controls
+ apdl/index
.. _ref_prep_commands:
@@ -166,20 +148,8 @@ processor.
:maxdepth: 1
:caption: POST1
- post1/setup
- post1/controls
- post1/results
- post1/element_table
- post1/listing
- post1/animation
- post1/path_operations
- post1/surface_operations
- post1/load_case
- post1/magnetics_calc
- post1/trace_points
- post1/special
- post1/status
- post1/failure_criteria
+ post1/index
+
******
POST26
@@ -191,13 +161,7 @@ time-history processor.
:maxdepth: 1
:caption: POST26
- post26/setup
- post26/controls
- post26/operations
- post26/display
- post26/listing
- post26/special
- post26/status
+ post26/index
****
@@ -210,8 +174,7 @@ binary files produced by the program.
:maxdepth: 1
:caption: AUX2
- aux2/bin_dump
- aux2/bin_manip
+ aux2/index
****
AUX3
@@ -223,7 +186,7 @@ files by deleting sets or by changing values.
:maxdepth: 1
:caption: AUX3
- aux3
+ aux3/index
*****
@@ -236,9 +199,7 @@ analyses.
:maxdepth: 1
:caption: AUX12
- aux12/general_radiation
- aux12/radiation_mat
- aux12/radiosity_solver
+ aux12/index
*****
@@ -250,7 +211,7 @@ These commands are used to read in an IGES file for analysis in ANSYS.
:maxdepth: 1
:caption: AUX15
- aux15
+ aux15/index
*****************
@@ -263,41 +224,8 @@ onto the existing geometry.
:maxdepth: 1
:caption: MAP
- map
-
-
-***************
-DISPLAY program
-***************
-These commands are used for the DISPLAY program. The DISPLAY program
-is a companion program to ANSYS, used for recovering graphics displays
-produced within ANSYS.
-
-.. note::
- Many of these commands are not applicable when using PyMAPDL.
-
-.. toctree::
- :maxdepth: 1
- :caption: DISPLAY
-
- display/setup
-
-
-**********************
-REDUCED order modeling
-**********************
-These commands are used for the DISPLAY program. The DISPLAY program
-is a companion program to ANSYS, used for recovering graphics displays
-produced within ANSYS.
-
-.. toctree::
- :maxdepth: 1
- :caption: REDUCED
+ map/index
- reduced/setup
- reduced/preparation
- reduced/generation
- reduced/use_pass
*******************
Connection commands
diff --git a/doc/source/mapdl_commands/map.rst b/doc/source/mapdl_commands/map.rst
deleted file mode 100644
index 827b60dc046..00000000000
--- a/doc/source/mapdl_commands/map.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _ref_pressure_mapping_api:
-
-****************
-Pressure mapping
-****************
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands are used to read pressure data from an external file
-and map it onto a geometry.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.ftype
- Mapdl.plgeom
- Mapdl.plmap
- Mapdl.read
- Mapdl.slashmap
- Mapdl.target
- Mapdl.writemap
diff --git a/doc/source/mapdl_commands/map/index.rst b/doc/source/mapdl_commands/map/index.rst
new file mode 100644
index 00000000000..e806cb76b56
--- /dev/null
+++ b/doc/source/mapdl_commands/map/index.rst
@@ -0,0 +1,16 @@
+
+.. _ref_map:
+
+Map
+===
+
+.. list-table::
+
+ * - :ref:`ref_pressure_mapping`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ pressure_mapping
diff --git a/doc/source/mapdl_commands/map/pressure_mapping.rst b/doc/source/mapdl_commands/map/pressure_mapping.rst
new file mode 100644
index 00000000000..79bebfb50ee
--- /dev/null
+++ b/doc/source/mapdl_commands/map/pressure_mapping.rst
@@ -0,0 +1,25 @@
+
+.. _ref_pressure_mapping:
+
+
+PressureMapping
+===============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.map.pressure_mapping
+
+.. autoclass:: ansys.mapdl.core._commands.map.pressure_mapping.PressureMapping
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ PressureMapping.ftype
+ PressureMapping.map
+ PressureMapping.plgeom
+ PressureMapping.plmap
+ PressureMapping.read
+ PressureMapping.slashmap
+ PressureMapping.target
+ PressureMapping.writemap
diff --git a/doc/source/mapdl_commands/post1/_fatigue.rst b/doc/source/mapdl_commands/post1/_fatigue.rst
new file mode 100644
index 00000000000..1c5de0994f1
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/_fatigue.rst
@@ -0,0 +1,31 @@
+
+.. _ref__fatigue:
+
+
+Fatigue
+=======
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1._fatigue
+
+.. autoclass:: ansys.mapdl.core._commands.post1._fatigue.Fatigue
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Fatigue.fe
+ Fatigue.felist
+ Fatigue.fl
+ Fatigue.fllist
+ Fatigue.fp
+ Fatigue.fplist
+ Fatigue.fs
+ Fatigue.fsdele
+ Fatigue.fslist
+ Fatigue.fsnode
+ Fatigue.fsplot
+ Fatigue.ftcalc
+ Fatigue.ftsize
+ Fatigue.ftwrite
diff --git a/doc/source/mapdl_commands/post1/_special_purpose.rst b/doc/source/mapdl_commands/post1/_special_purpose.rst
new file mode 100644
index 00000000000..7a45a436555
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/_special_purpose.rst
@@ -0,0 +1,19 @@
+
+.. _ref__special_purpose:
+
+
+SpecialPurpose
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1._special_purpose
+
+.. autoclass:: ansys.mapdl.core._commands.post1._special_purpose.SpecialPurpose
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SpecialPurpose.kcalc
+ SpecialPurpose.plcrack
diff --git a/doc/source/mapdl_commands/post1/animation.rst b/doc/source/mapdl_commands/post1/animation.rst
index 503e9348fe2..2abf7778544 100644
--- a/doc/source/mapdl_commands/post1/animation.rst
+++ b/doc/source/mapdl_commands/post1/animation.rst
@@ -1,28 +1,31 @@
-.. _ref_animation_api:
-*********
+.. _ref_animation:
+
+
Animation
-*********
+=========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post1.animation
-These POST1 commands are used to animate results.
+.. autoclass:: ansys.mapdl.core._commands.post1.animation.Animation
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.ancntr
- Mapdl.ancut
- Mapdl.andata
- Mapdl.andscl
- Mapdl.ancyc
- Mapdl.andyna
- Mapdl.anfile
- Mapdl.anflow
- Mapdl.anharm
- Mapdl.anim
- Mapdl.anisos
- Mapdl.anmode
- Mapdl.anmres
- Mapdl.antime
- Mapdl.trtime
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Animation.ancntr
+ Animation.ancut
+ Animation.ancyc
+ Animation.andata
+ Animation.andscl
+ Animation.andyna
+ Animation.anfile
+ Animation.anflow
+ Animation.anharm
+ Animation.anim
+ Animation.anisos
+ Animation.anmode
+ Animation.antime
+ Animation.trtime
diff --git a/doc/source/mapdl_commands/post1/controls.rst b/doc/source/mapdl_commands/post1/controls.rst
index 6c27318bf09..24bd0697638 100644
--- a/doc/source/mapdl_commands/post1/controls.rst
+++ b/doc/source/mapdl_commands/post1/controls.rst
@@ -1,21 +1,26 @@
-.. _ref_controls_api:
-********
+.. _ref_controls:
+
+
Controls
-********
+========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post1.controls
-These POST1 commands are used to control the calculations done for
-other commands.
+.. autoclass:: ansys.mapdl.core._commands.post1.controls.Controls
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.avprin
- Mapdl.avres
- Mapdl.efacet
- Mapdl.ernorm
- Mapdl.inres
- Mapdl.layer
- Mapdl.rsys
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Controls.avprin
+ Controls.avres
+ Controls.efacet
+ Controls.ernorm
+ Controls.force
+ Controls.inres
+ Controls.layer
+ Controls.rsys
+ Controls.shell
diff --git a/doc/source/mapdl_commands/post1/element_table.rst b/doc/source/mapdl_commands/post1/element_table.rst
index db946831b8b..e79d24fc4b5 100644
--- a/doc/source/mapdl_commands/post1/element_table.rst
+++ b/doc/source/mapdl_commands/post1/element_table.rst
@@ -1,35 +1,36 @@
-.. _ref_element_table_api:
-*************
-Element table
-*************
+.. _ref_element_table:
-.. currentmodule:: ansys.mapdl.core
-These POST1 commands are used to operate with the element table, which
-in turn is used to process results stored for each element, such as
-average stresses, heat fluxes, etc.
+ElementTable
+============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.element_table
+
+.. autoclass:: ansys.mapdl.core._commands.post1.element_table.ElementTable
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.detab
- Mapdl.esort
- Mapdl.etable
- Mapdl.eusort
- Mapdl.pletab
- Mapdl.plls
- Mapdl.pretab
- Mapdl.sabs
- Mapdl.sadd
- Mapdl.sallow
- Mapdl.sexp
- Mapdl.sfact
- Mapdl.sfcalc
- Mapdl.smax
- Mapdl.smin
- Mapdl.smult
- Mapdl.ssum
- Mapdl.tallow
- Mapdl.vcross
- Mapdl.vdot
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ ElementTable.esort
+ ElementTable.etable
+ ElementTable.eusort
+ ElementTable.pletab
+ ElementTable.plls
+ ElementTable.pretab
+ ElementTable.sabs
+ ElementTable.sadd
+ ElementTable.sallow
+ ElementTable.sexp
+ ElementTable.sfact
+ ElementTable.sfcalc
+ ElementTable.smax
+ ElementTable.smin
+ ElementTable.smult
+ ElementTable.ssum
+ ElementTable.tallow
+ ElementTable.vcross
+ ElementTable.vdot
diff --git a/doc/source/mapdl_commands/post1/failure_criteria.rst b/doc/source/mapdl_commands/post1/failure_criteria.rst
index b68bbb3de19..f16b4c40a70 100644
--- a/doc/source/mapdl_commands/post1/failure_criteria.rst
+++ b/doc/source/mapdl_commands/post1/failure_criteria.rst
@@ -1,18 +1,18 @@
-.. _ref_failure_criteria_api:
-****************
-Failure criteria
-****************
+.. _ref_failure_criteria:
-.. currentmodule:: ansys.mapdl.core
-These POST1 commands are for use with the failure criteria.
+FailureCriteria
+===============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.failure_criteria
+
+.. autoclass:: ansys.mapdl.core._commands.post1.failure_criteria.FailureCriteria
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.fc
- Mapdl.fccheck
- Mapdl.fcdele
- Mapdl.fclist
- Mapdl.fctyp
+ FailureCriteria.fctyp
diff --git a/doc/source/mapdl_commands/post1/index.rst b/doc/source/mapdl_commands/post1/index.rst
new file mode 100644
index 00000000000..304dddb680f
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/index.rst
@@ -0,0 +1,46 @@
+
+.. _ref_post1:
+
+Post1
+=====
+
+.. list-table::
+
+ * - :ref:`ref_animation`
+ * - :ref:`ref_set_up`
+ * - :ref:`ref_controls`
+ * - :ref:`ref_special_purpose`
+ * - :ref:`ref_status`
+ * - :ref:`ref_magnetics_calculations`
+ * - :ref:`ref_element_table`
+ * - :ref:`ref_failure_criteria`
+ * - :ref:`ref__fatigue`
+ * - :ref:`ref_listing`
+ * - :ref:`ref_path_operations`
+ * - :ref:`ref__special_purpose`
+ * - :ref:`ref_load_case_calculations`
+ * - :ref:`ref_results`
+ * - :ref:`ref_trace_points`
+ * - :ref:`ref_surface_operations`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ animation
+ set_up
+ controls
+ special_purpose
+ status
+ magnetics_calculations
+ element_table
+ failure_criteria
+ _fatigue
+ listing
+ path_operations
+ _special_purpose
+ load_case_calculations
+ results
+ trace_points
+ surface_operations
diff --git a/doc/source/mapdl_commands/post1/listing.rst b/doc/source/mapdl_commands/post1/listing.rst
index fcc26ae3c39..ee7b7f16666 100644
--- a/doc/source/mapdl_commands/post1/listing.rst
+++ b/doc/source/mapdl_commands/post1/listing.rst
@@ -1,19 +1,23 @@
-.. _ref_listing_api:
-*******
+.. _ref_listing:
+
+
Listing
-*******
+=======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post1.listing
-These POST1 commands are used to control printed listings of results.
+.. autoclass:: ansys.mapdl.core._commands.post1.listing.Listing
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.format
- Mapdl.header
- Mapdl.irlist
- Mapdl.page
- Mapdl.prerr
- Mapdl.priter
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Listing.format
+ Listing.header
+ Listing.irlist
+ Listing.page
+ Listing.prerr
+ Listing.priter
diff --git a/doc/source/mapdl_commands/post1/load_case.rst b/doc/source/mapdl_commands/post1/load_case.rst
deleted file mode 100644
index 1db82198ee7..00000000000
--- a/doc/source/mapdl_commands/post1/load_case.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-.. _ref_load Case Calculations_api:
-
-**********************
-Load case calculations
-**********************
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST1 commands are used for combining results from different
-load steps.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.lcabs
- Mapdl.lcase
- Mapdl.lcdef
- Mapdl.lcfact
- Mapdl.lcfile
- Mapdl.lcoper
- Mapdl.lcsel
- Mapdl.lcsum
- Mapdl.lcwrite
- Mapdl.lczero
- Mapdl.rappnd
diff --git a/doc/source/mapdl_commands/post1/load_case_calculations.rst b/doc/source/mapdl_commands/post1/load_case_calculations.rst
new file mode 100644
index 00000000000..f3d3c9f181a
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/load_case_calculations.rst
@@ -0,0 +1,27 @@
+
+.. _ref_load_case_calculations:
+
+
+LoadCaseCalculations
+====================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.load_case_calculations
+
+.. autoclass:: ansys.mapdl.core._commands.post1.load_case_calculations.LoadCaseCalculations
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ LoadCaseCalculations.lcabs
+ LoadCaseCalculations.lcase
+ LoadCaseCalculations.lcdef
+ LoadCaseCalculations.lcfact
+ LoadCaseCalculations.lcfile
+ LoadCaseCalculations.lcoper
+ LoadCaseCalculations.lcsel
+ LoadCaseCalculations.lcwrite
+ LoadCaseCalculations.lczero
+ LoadCaseCalculations.rappnd
diff --git a/doc/source/mapdl_commands/post1/magnetics_calc.rst b/doc/source/mapdl_commands/post1/magnetics_calc.rst
deleted file mode 100644
index be754d524ed..00000000000
--- a/doc/source/mapdl_commands/post1/magnetics_calc.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-.. _ref_magnetics Calculations_api:
-
-**********************
-Magnetics calculations
-**********************
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST1 commands are used for special purpose magnetics
-postprocessing.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.curr2d
- Mapdl.emagerr
- Mapdl.emf
- Mapdl.emft
- Mapdl.fluxv
- Mapdl.mmf
- Mapdl.plf2d
- Mapdl.powerh
- Mapdl.senergy
diff --git a/doc/source/mapdl_commands/post1/magnetics_calculations.rst b/doc/source/mapdl_commands/post1/magnetics_calculations.rst
new file mode 100644
index 00000000000..56068418c13
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/magnetics_calculations.rst
@@ -0,0 +1,26 @@
+
+.. _ref_magnetics_calculations:
+
+
+MagneticsCalculations
+=====================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.magnetics_calculations
+
+.. autoclass:: ansys.mapdl.core._commands.post1.magnetics_calculations.MagneticsCalculations
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ MagneticsCalculations.curr2d
+ MagneticsCalculations.emagerr
+ MagneticsCalculations.emf
+ MagneticsCalculations.emft
+ MagneticsCalculations.fluxv
+ MagneticsCalculations.mmf
+ MagneticsCalculations.plf2d
+ MagneticsCalculations.powerh
+ MagneticsCalculations.senergy
diff --git a/doc/source/mapdl_commands/post1/path_operations.rst b/doc/source/mapdl_commands/post1/path_operations.rst
index a51b3f2eb95..6928df85788 100644
--- a/doc/source/mapdl_commands/post1/path_operations.rst
+++ b/doc/source/mapdl_commands/post1/path_operations.rst
@@ -1,33 +1,38 @@
-.. _ref_path_operations_api:
-***************
-Path operations
-***************
+.. _ref_path_operations:
-.. currentmodule:: ansys.mapdl.core
-These POST1 commands are used for path operations.
+PathOperations
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.path_operations
+
+.. autoclass:: ansys.mapdl.core._commands.post1.path_operations.PathOperations
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.padele
- Mapdl.paget
- Mapdl.paput
- Mapdl.paresu
- Mapdl.pasave
- Mapdl.path
- Mapdl.pcalc
- Mapdl.pcross
- Mapdl.pdef
- Mapdl.pdot
- Mapdl.plpagm
- Mapdl.plpath
- Mapdl.plsect
- Mapdl.pmap
- Mapdl.ppath
- Mapdl.prange
- Mapdl.prpath
- Mapdl.prsect
- Mapdl.psel
- Mapdl.pvect
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ PathOperations.fssect
+ PathOperations.padele
+ PathOperations.paget
+ PathOperations.paput
+ PathOperations.paresu
+ PathOperations.pasave
+ PathOperations.path
+ PathOperations.pcalc
+ PathOperations.pcross
+ PathOperations.pdef
+ PathOperations.pdot
+ PathOperations.plpagm
+ PathOperations.plpath
+ PathOperations.plsect
+ PathOperations.pmap
+ PathOperations.ppath
+ PathOperations.prange
+ PathOperations.prpath
+ PathOperations.prsect
+ PathOperations.psel
+ PathOperations.pvect
diff --git a/doc/source/mapdl_commands/post1/results.rst b/doc/source/mapdl_commands/post1/results.rst
index 22f57701a35..61d05206fa2 100644
--- a/doc/source/mapdl_commands/post1/results.rst
+++ b/doc/source/mapdl_commands/post1/results.rst
@@ -1,34 +1,38 @@
-.. _ref_results_api:
-*******
+.. _ref_results:
+
+
Results
-*******
+=======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post1.results
-These POST1 commands are used to process results, such as
-degree-of-freedom results, nodal stresses, and element summable and
-non-summable miscellaneous data.
+.. autoclass:: ansys.mapdl.core._commands.post1.results.Results
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.nsort
- Mapdl.nusort
- Mapdl.plcint
- Mapdl.pldisp
- Mapdl.plesol
- Mapdl.plnsol
- Mapdl.plorb
- Mapdl.prenergy
- Mapdl.prorb
- Mapdl.plvect
- Mapdl.prcint
- Mapdl.presol
- Mapdl.prjsol
- Mapdl.prnld
- Mapdl.prnsol
- Mapdl.prrfor
- Mapdl.prrsol
- Mapdl.prvect
- Mapdl.sumtype
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Results.lcsum
+ Results.nsort
+ Results.nusort
+ Results.plcint
+ Results.plcksurf
+ Results.pldisp
+ Results.plesol
+ Results.plnsol
+ Results.plorb
+ Results.plvect
+ Results.prcint
+ Results.prenergy
+ Results.presol
+ Results.prjsol
+ Results.prnld
+ Results.prnsol
+ Results.prorb
+ Results.prrfor
+ Results.prrsol
+ Results.prvect
+ Results.sumtype
diff --git a/doc/source/mapdl_commands/post1/set_up.rst b/doc/source/mapdl_commands/post1/set_up.rst
new file mode 100644
index 00000000000..10d50cd3e92
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/set_up.rst
@@ -0,0 +1,26 @@
+
+.. _ref_set_up:
+
+
+SetUp
+=====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.set_up
+
+.. autoclass:: ansys.mapdl.core._commands.post1.set_up.SetUp
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SetUp.append
+ SetUp.desol
+ SetUp.detab
+ SetUp.dnsol
+ SetUp.hrcplx
+ SetUp.rescombine
+ SetUp.reset
+ SetUp.set
+ SetUp.subset
diff --git a/doc/source/mapdl_commands/post1/setup.rst b/doc/source/mapdl_commands/post1/setup.rst
deleted file mode 100644
index b187c7d74b3..00000000000
--- a/doc/source/mapdl_commands/post1/setup.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _ref_setup_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST1 commands are used to put data into the database for
-postprocessing.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.append
- Mapdl.desol
- Mapdl.dnsol
- Mapdl.hrcplx
- Mapdl.rescombine
- Mapdl.subset
- Mapdl.set
diff --git a/doc/source/mapdl_commands/post1/special.rst b/doc/source/mapdl_commands/post1/special.rst
deleted file mode 100644
index b79a31cdb3b..00000000000
--- a/doc/source/mapdl_commands/post1/special.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-.. _ref_special Purpose_api:
-
-***************
-Special purpose
-***************
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST1 commands are used for various special purposes.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.bfint
- Mapdl.cbdof
- Mapdl.cmsfile
- Mapdl.cyccalc
- Mapdl.cycfiles
- Mapdl.cycphase
- Mapdl.cycspec
- Mapdl.exoption
- Mapdl.expand
- Mapdl.exprofile
- Mapdl.exunit
- Mapdl.fssparm
- Mapdl.fsum
- Mapdl.hfang
- Mapdl.hfsym
- Mapdl.intsrf
- Mapdl.kcalc
- Mapdl.nforce
- Mapdl.nldpost
- Mapdl.plcamp
- Mapdl.plcfreq
- Mapdl.plchist
- Mapdl.plfar
- Mapdl.plmc
- Mapdl.plnear
- Mapdl.plzz
- Mapdl.pras
- Mapdl.prcamp
- Mapdl.prfar
- Mapdl.prnear
- Mapdl.reswrite
- Mapdl.rmflvec
- Mapdl.rsplit
- Mapdl.rstmac
- Mapdl.spoint
- Mapdl.spmwrite
diff --git a/doc/source/mapdl_commands/post1/special_purpose.rst b/doc/source/mapdl_commands/post1/special_purpose.rst
new file mode 100644
index 00000000000..7bc21631223
--- /dev/null
+++ b/doc/source/mapdl_commands/post1/special_purpose.rst
@@ -0,0 +1,56 @@
+
+.. _ref_special_purpose:
+
+
+SpecialPurpose
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.special_purpose
+
+.. autoclass:: ansys.mapdl.core._commands.post1.special_purpose.SpecialPurpose
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SpecialPurpose.bfint
+ SpecialPurpose.cbdof
+ SpecialPurpose.cmsfile
+ SpecialPurpose.cyccalc
+ SpecialPurpose.cycfiles
+ SpecialPurpose.cycphase
+ SpecialPurpose.cycspec
+ SpecialPurpose.exoption
+ SpecialPurpose.expand
+ SpecialPurpose.exprofile
+ SpecialPurpose.exunit
+ SpecialPurpose.fssparm
+ SpecialPurpose.fsum
+ SpecialPurpose.hfang
+ SpecialPurpose.hfsym
+ SpecialPurpose.macopt
+ SpecialPurpose.nforce
+ SpecialPurpose.nldpost
+ SpecialPurpose.plas
+ SpecialPurpose.plcamp
+ SpecialPurpose.plcfreq
+ SpecialPurpose.plchist
+ SpecialPurpose.plfar
+ SpecialPurpose.plmc
+ SpecialPurpose.plnear
+ SpecialPurpose.plzz
+ SpecialPurpose.pras
+ SpecialPurpose.prcamp
+ SpecialPurpose.prfar
+ SpecialPurpose.prmc
+ SpecialPurpose.prnear
+ SpecialPurpose.reswrite
+ SpecialPurpose.rmflvec
+ SpecialPurpose.rsplit
+ SpecialPurpose.rstmac
+ SpecialPurpose.slashexpand
+ SpecialPurpose.spmwrite
+ SpecialPurpose.spoint
+ SpecialPurpose.vtkwrite
diff --git a/doc/source/mapdl_commands/post1/status.rst b/doc/source/mapdl_commands/post1/status.rst
index 447abdfddcd..87bbb6dc3f7 100644
--- a/doc/source/mapdl_commands/post1/status.rst
+++ b/doc/source/mapdl_commands/post1/status.rst
@@ -1,19 +1,26 @@
-.. _ref_status_post1:
-******
+.. _ref_status:
+
+
Status
-******
+======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post1.status
-These POST1 commands are for use with the STAT command.
+.. autoclass:: ansys.mapdl.core._commands.post1.status.Status
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.calc
- Mapdl.datadef
- Mapdl.display
- Mapdl.lccalc
- Mapdl.point
- Mapdl.spec
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Status.calc
+ Status.datadef
+ Status.define
+ Status.display
+ Status.lccalc
+ Status.point
+ Status.print
+ Status.sort
+ Status.spec
diff --git a/doc/source/mapdl_commands/post1/surface_operations.rst b/doc/source/mapdl_commands/post1/surface_operations.rst
index 7f292a0cc6a..832d3fe11bf 100644
--- a/doc/source/mapdl_commands/post1/surface_operations.rst
+++ b/doc/source/mapdl_commands/post1/surface_operations.rst
@@ -1,26 +1,29 @@
-.. _ref_surface_operations_api:
-******************
-Surface operations
-******************
+.. _ref_surface_operations:
-.. currentmodule:: ansys.mapdl.core
-These POST1 commands are used to define an arbitrary surface and to
-develop results information for that surface.
+SurfaceOperations
+=================
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.surface_operations
+
+.. autoclass:: ansys.mapdl.core._commands.post1.surface_operations.SurfaceOperations
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.sucalc
- Mapdl.sucr
- Mapdl.sudel
- Mapdl.sueval
- Mapdl.suget
- Mapdl.sumap
- Mapdl.supl
- Mapdl.supr
- Mapdl.suresu
- Mapdl.susave
- Mapdl.susel
- Mapdl.suvect
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SurfaceOperations.sucalc
+ SurfaceOperations.sucr
+ SurfaceOperations.sudel
+ SurfaceOperations.sueval
+ SurfaceOperations.suget
+ SurfaceOperations.sumap
+ SurfaceOperations.supl
+ SurfaceOperations.supr
+ SurfaceOperations.suresu
+ SurfaceOperations.susave
+ SurfaceOperations.susel
+ SurfaceOperations.suvect
diff --git a/doc/source/mapdl_commands/post1/trace_points.rst b/doc/source/mapdl_commands/post1/trace_points.rst
index fa94cb96cb8..607ba87f662 100644
--- a/doc/source/mapdl_commands/post1/trace_points.rst
+++ b/doc/source/mapdl_commands/post1/trace_points.rst
@@ -1,18 +1,21 @@
-.. _ref_trace Points_api:
-************
-Trace points
-************
+.. _ref_trace_points:
-.. currentmodule:: ansys.mapdl.core
-These POST1 commands are used to trace particle motions in a flow
-stream.
+TracePoints
+===========
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post1.trace_points
+
+.. autoclass:: ansys.mapdl.core._commands.post1.trace_points.TracePoints
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.pltrac
- Mapdl.trpdel
- Mapdl.trplis
- Mapdl.trpoin
+ TracePoints.pltrac
+ TracePoints.trpdel
+ TracePoints.trplis
+ TracePoints.trpoin
diff --git a/doc/source/mapdl_commands/post26/_set_up.rst b/doc/source/mapdl_commands/post26/_set_up.rst
new file mode 100644
index 00000000000..51c82954568
--- /dev/null
+++ b/doc/source/mapdl_commands/post26/_set_up.rst
@@ -0,0 +1,18 @@
+
+.. _ref__set_up:
+
+
+SetUp
+=====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post26._set_up
+
+.. autoclass:: ansys.mapdl.core._commands.post26._set_up.SetUp
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SetUp.gapf
diff --git a/doc/source/mapdl_commands/post26/controls.rst b/doc/source/mapdl_commands/post26/controls.rst
index e1dd3a850d3..b65d74ec374 100644
--- a/doc/source/mapdl_commands/post26/controls.rst
+++ b/doc/source/mapdl_commands/post26/controls.rst
@@ -1,19 +1,20 @@
-.. _ref_post26_controls_api:
-********
+.. _ref_controls:
+
+
Controls
-********
+========
-.. currentmodule:: ansys.mapdl.core
-These POST26 commands are used to control the calculations of other
-commands.
+.. currentmodule:: ansys.mapdl.core._commands.post26.controls
+
+.. autoclass:: ansys.mapdl.core._commands.post26.controls.Controls
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.cfact
- Mapdl.force
- Mapdl.layerp26
- Mapdl.shell
- Mapdl.tvar
+ Controls.cfact
+ Controls.layerp26
+ Controls.tvar
diff --git a/doc/source/mapdl_commands/post26/display.rst b/doc/source/mapdl_commands/post26/display.rst
index 974f4ab1663..f558de3d1a7 100644
--- a/doc/source/mapdl_commands/post26/display.rst
+++ b/doc/source/mapdl_commands/post26/display.rst
@@ -1,19 +1,23 @@
-.. _ref_display_api:
-*******
+.. _ref_display:
+
+
Display
-*******
+=======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post26.display
-These POST26 commands are used to display the results.
+.. autoclass:: ansys.mapdl.core._commands.post26.display.Display
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.keep
- Mapdl.plcplx
- Mapdl.pltime
- Mapdl.plvar
- Mapdl.spread
- Mapdl.xvar
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Display.keep
+ Display.plcplx
+ Display.pltime
+ Display.plvar
+ Display.spread
+ Display.xvar
diff --git a/doc/source/mapdl_commands/post26/index.rst b/doc/source/mapdl_commands/post26/index.rst
new file mode 100644
index 00000000000..3a21a42ca0c
--- /dev/null
+++ b/doc/source/mapdl_commands/post26/index.rst
@@ -0,0 +1,30 @@
+
+.. _ref_post26:
+
+Post26
+======
+
+.. list-table::
+
+ * - :ref:`ref_operations`
+ * - :ref:`ref_set_up`
+ * - :ref:`ref_controls`
+ * - :ref:`ref_special_purpose`
+ * - :ref:`ref_listing`
+ * - :ref:`ref__set_up`
+ * - :ref:`ref_display`
+ * - :ref:`ref_status`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ operations
+ set_up
+ controls
+ special_purpose
+ listing
+ _set_up
+ display
+ status
diff --git a/doc/source/mapdl_commands/post26/listing.rst b/doc/source/mapdl_commands/post26/listing.rst
index 70d6ca759a1..86a0d09a62f 100644
--- a/doc/source/mapdl_commands/post26/listing.rst
+++ b/doc/source/mapdl_commands/post26/listing.rst
@@ -1,20 +1,23 @@
-.. _ref_post26_listing_api:
-*******
+.. _ref_listing:
+
+
Listing
-*******
+=======
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post26.listing
-These POST26 commands are used to produce tabular listings of the
-results.
+.. autoclass:: ansys.mapdl.core._commands.post26.listing.Listing
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.extrem
- Mapdl.lines
- Mapdl.nprint
- Mapdl.prcplx
- Mapdl.prtime
- Mapdl.prvar
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Listing.extrem
+ Listing.lines
+ Listing.nprint
+ Listing.prcplx
+ Listing.prtime
+ Listing.prvar
diff --git a/doc/source/mapdl_commands/post26/operations.rst b/doc/source/mapdl_commands/post26/operations.rst
index 80cb615d09b..a346c30b701 100644
--- a/doc/source/mapdl_commands/post26/operations.rst
+++ b/doc/source/mapdl_commands/post26/operations.rst
@@ -1,31 +1,34 @@
-.. _ref_operations_api:
-**********
+.. _ref_operations:
+
+
Operations
-**********
+==========
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.post26.operations
-These POST26 commands are used to perform operations on the stored
-variables.
+.. autoclass:: ansys.mapdl.core._commands.post26.operations.Operations
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.abs
- Mapdl.add
- Mapdl.atan
- Mapdl.clog
- Mapdl.conjug
- Mapdl.deriv
- Mapdl.exp
- Mapdl.filldata
- Mapdl.imagin
- Mapdl.int1
- Mapdl.large
- Mapdl.nlog
- Mapdl.prod
- Mapdl.quot
- Mapdl.realvar
- Mapdl.small
- Mapdl.sqrt
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Operations.abs
+ Operations.add
+ Operations.atan
+ Operations.clog
+ Operations.conjug
+ Operations.deriv
+ Operations.exp
+ Operations.filldata
+ Operations.imagin
+ Operations.int1
+ Operations.large
+ Operations.nlog
+ Operations.prod
+ Operations.quot
+ Operations.realvar
+ Operations.small
+ Operations.sqrt
diff --git a/doc/source/mapdl_commands/post26/set_up.rst b/doc/source/mapdl_commands/post26/set_up.rst
new file mode 100644
index 00000000000..249be2edb2c
--- /dev/null
+++ b/doc/source/mapdl_commands/post26/set_up.rst
@@ -0,0 +1,34 @@
+
+.. _ref_set_up:
+
+
+SetUp
+=====
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post26.set_up
+
+.. autoclass:: ansys.mapdl.core._commands.post26.set_up.SetUp
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SetUp.ansol
+ SetUp.cisol
+ SetUp.data
+ SetUp.enersol
+ SetUp.esol
+ SetUp.gssol
+ SetUp.jsol
+ SetUp.nsol
+ SetUp.nstore
+ SetUp.numvar
+ SetUp.rforce
+ SetUp.rgb
+ SetUp.solu
+ SetUp.store
+ SetUp.timerange
+ SetUp.vardel
+ SetUp.varnam
diff --git a/doc/source/mapdl_commands/post26/setup.rst b/doc/source/mapdl_commands/post26/setup.rst
deleted file mode 100644
index a7fec0dc22d..00000000000
--- a/doc/source/mapdl_commands/post26/setup.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-.. _ref_post26_setup_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST26 commands are used to store data for processing.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.ansol
- Mapdl.cisol
- Mapdl.data
- Mapdl.edread
- Mapdl.enersol
- Mapdl.esol
- Mapdl.file
- Mapdl.gapf
- Mapdl.gssol
- Mapdl.jsol
- Mapdl.nsol
- Mapdl.nstore
- Mapdl.numvar
- Mapdl.reset
- Mapdl.rforce
- Mapdl.rgb
- Mapdl.solu
- Mapdl.store
- Mapdl.timerange
- Mapdl.vardel
- Mapdl.varnam
diff --git a/doc/source/mapdl_commands/post26/special.rst b/doc/source/mapdl_commands/post26/special.rst
deleted file mode 100644
index 2864d00671e..00000000000
--- a/doc/source/mapdl_commands/post26/special.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _ref_special_purpose_api:
-
-***************
-Special purpose
-***************
-
-.. currentmodule:: ansys.mapdl.core
-
-These POST26 commands are used for various special purposes.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.cvar
- Mapdl.pmgtran
- Mapdl.rcyc
- Mapdl.resp
- Mapdl.rpsd
- Mapdl.smooth
- Mapdl.vput
- Mapdl.vget
diff --git a/doc/source/mapdl_commands/post26/special_purpose.rst b/doc/source/mapdl_commands/post26/special_purpose.rst
new file mode 100644
index 00000000000..9e73e770014
--- /dev/null
+++ b/doc/source/mapdl_commands/post26/special_purpose.rst
@@ -0,0 +1,25 @@
+
+.. _ref_special_purpose:
+
+
+SpecialPurpose
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.post26.special_purpose
+
+.. autoclass:: ansys.mapdl.core._commands.post26.special_purpose.SpecialPurpose
+
+.. autosummary::
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ SpecialPurpose.cvar
+ SpecialPurpose.pmgtran
+ SpecialPurpose.rcyc
+ SpecialPurpose.resp
+ SpecialPurpose.rpsd
+ SpecialPurpose.smooth
+ SpecialPurpose.vget
+ SpecialPurpose.vput
diff --git a/doc/source/mapdl_commands/post26/status.rst b/doc/source/mapdl_commands/post26/status.rst
index 1cdc8bbd714..c0c0bc463fb 100644
--- a/doc/source/mapdl_commands/post26/status.rst
+++ b/doc/source/mapdl_commands/post26/status.rst
@@ -1,17 +1,19 @@
-.. _ref_status_api:
-******
+.. _ref_status:
+
+
Status
-******
+======
-.. currentmodule:: ansys.mapdl.core
-These POST26 commands are for use with the STAT command.
+.. currentmodule:: ansys.mapdl.core._commands.post26.status
+
+.. autoclass:: ansys.mapdl.core._commands.post26.status.Status
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.define
- Mapdl.operate
- Mapdl.plotting
- Mapdl.print
+ Status.operate
+ Status.plotting
diff --git a/doc/source/mapdl_commands/reduced/generation.rst b/doc/source/mapdl_commands/reduced/generation.rst
deleted file mode 100644
index f58ef020d0f..00000000000
--- a/doc/source/mapdl_commands/reduced/generation.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _ref_generation_pass_api:
-
-***************
-Generation pass
-***************
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands are used to create a reduced order model.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.rmalist
- Mapdl.rmanl
- Mapdl.rmaster
- Mapdl.rmcap
- Mapdl.rmclist
- Mapdl.rmmlist
- Mapdl.rmmrange
- Mapdl.rmmselect
- Mapdl.rmporder
- Mapdl.rmrgenerate
- Mapdl.rmroptions
- Mapdl.rmrplot
- Mapdl.rmrstatus
- Mapdl.rmsmple
- Mapdl.rmxport
diff --git a/doc/source/mapdl_commands/reduced/preparation.rst b/doc/source/mapdl_commands/reduced/preparation.rst
deleted file mode 100644
index 4440cf01d9d..00000000000
--- a/doc/source/mapdl_commands/reduced/preparation.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _ref_preparation_api:
-
-***********
-Preparation
-***********
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands are used to create the input files for the ROM
-Generation Pass.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.rmndisp
- Mapdl.rmnevec
diff --git a/doc/source/mapdl_commands/reduced/setup.rst b/doc/source/mapdl_commands/reduced/setup.rst
deleted file mode 100644
index 4f6245126bc..00000000000
--- a/doc/source/mapdl_commands/reduced/setup.rst
+++ /dev/null
@@ -1,15 +0,0 @@
-.. _ref_reduced_setup_api:
-
-*****
-Setup
-*****
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands are used to save or resume the ROM database.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.rmresume
- Mapdl.rmsave
diff --git a/doc/source/mapdl_commands/reduced/use_pass.rst b/doc/source/mapdl_commands/reduced/use_pass.rst
deleted file mode 100644
index a327851fea9..00000000000
--- a/doc/source/mapdl_commands/reduced/use_pass.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _ref_use_pass_api:
-
-********
-Use pass
-********
-
-.. currentmodule:: ansys.mapdl.core
-
-These commands use the reduced order model in an analysis.
-
-.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.dcvswp
- Mapdl.rmlvscale
- Mapdl.rmuse
diff --git a/doc/source/mapdl_commands/session/files.rst b/doc/source/mapdl_commands/session/files.rst
index 9e65c19d571..bc00c7e9c95 100644
--- a/doc/source/mapdl_commands/session/files.rst
+++ b/doc/source/mapdl_commands/session/files.rst
@@ -1,25 +1,29 @@
-.. _ref_files_commands_api:
-*****
+.. _ref_files:
+
+
Files
-*****
+=====
+
-.. currentmodule:: ansys.mapdl.core
+.. currentmodule:: ansys.mapdl.core._commands.session.files
-These SESSION commands are for file operations, such as deleting,
-copying, and listing.
+.. autoclass:: ansys.mapdl.core._commands.session.files.Files
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.anstoaqwa
- Mapdl.anstoasas
- Mapdl.assign
- Mapdl.copy
- Mapdl.slashdelete
- Mapdl.fcomp
- Mapdl.lgwrite
- Mapdl.starlist
- Mapdl.slashclog
- Mapdl.slashfdele
- Mapdl.rename
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ Files.anstoaqwa
+ Files.anstoasas
+ Files.assign
+ Files.copy
+ Files.fclean
+ Files.fcomp
+ Files.lgwrite
+ Files.slashclog
+ Files.slashdelete
+ Files.slashfdele
+ Files.slashrename
+ Files.starlist
diff --git a/doc/source/mapdl_commands/session/index.rst b/doc/source/mapdl_commands/session/index.rst
new file mode 100644
index 00000000000..9218113b637
--- /dev/null
+++ b/doc/source/mapdl_commands/session/index.rst
@@ -0,0 +1,22 @@
+
+.. _ref_session:
+
+Session
+=======
+
+.. list-table::
+
+ * - :ref:`ref_files`
+ * - :ref:`ref_list_controls`
+ * - :ref:`ref_run_controls`
+ * - :ref:`ref_processor_entry`
+
+
+.. toctree::
+ :maxdepth: 1
+ :hidden:
+
+ files
+ list_controls
+ run_controls
+ processor_entry
diff --git a/doc/source/mapdl_commands/session/list_controls.rst b/doc/source/mapdl_commands/session/list_controls.rst
index d555443cd9f..56805db46fa 100644
--- a/doc/source/mapdl_commands/session/list_controls.rst
+++ b/doc/source/mapdl_commands/session/list_controls.rst
@@ -1,18 +1,23 @@
-.. _ref_list_controls_commands_api:
-*************
-List controls
-*************
+.. _ref_list_controls:
-.. currentmodule:: ansys.mapdl.core
-These SESSION commands are used to control listings and printed program output.
+ListControls
+============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.session.list_controls
+
+.. autoclass:: ansys.mapdl.core._commands.session.list_controls.ListControls
.. autosummary::
- :toctree: _autosummary/
+ :template: base.rst
+ :toctree: _autosummary
+
- Mapdl.com
- Mapdl.golist
- Mapdl.gopr
- Mapdl.nolist
- Mapdl.nopr
+ ListControls.com
+ ListControls.golist
+ ListControls.gopr
+ ListControls.nolist
+ ListControls.nopr
+ ListControls.slashgo
diff --git a/doc/source/mapdl_commands/session/processor_entry.rst b/doc/source/mapdl_commands/session/processor_entry.rst
index 0cb79b4962e..42810f8a076 100644
--- a/doc/source/mapdl_commands/session/processor_entry.rst
+++ b/doc/source/mapdl_commands/session/processor_entry.rst
@@ -1,24 +1,23 @@
-.. _ref_processor_entry_commands_api:
-***************
-Processor entry
-***************
+.. _ref_processor_entry:
-.. currentmodule:: ansys.mapdl.core
-These SESSION commands are used to enter and exit the various processors in the program.
+ProcessorEntry
+==============
+
+
+.. currentmodule:: ansys.mapdl.core._commands.session.processor_entry
+
+.. autoclass:: ansys.mapdl.core._commands.session.processor_entry.ProcessorEntry
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.aux2
- Mapdl.aux3
- Mapdl.aux12
- Mapdl.aux15
- Mapdl.finish
- Mapdl.map
- Mapdl.post1
- Mapdl.post26
- Mapdl.prep7
- Mapdl.quit
- Mapdl.slashsolu
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ ProcessorEntry.finish
+ ProcessorEntry.post1
+ ProcessorEntry.post26
+ ProcessorEntry.prep7
+ ProcessorEntry.quit
+ ProcessorEntry.slashsolu
diff --git a/doc/source/mapdl_commands/session/run_controls.rst b/doc/source/mapdl_commands/session/run_controls.rst
index 056810bc946..d3fe196843c 100644
--- a/doc/source/mapdl_commands/session/run_controls.rst
+++ b/doc/source/mapdl_commands/session/run_controls.rst
@@ -1,29 +1,34 @@
-.. _ref_run_controls_commands_api:
-************
-Run controls
-************
+.. _ref_run_controls:
-.. currentmodule:: ansys.mapdl.core
-These SESSION commands control the overall characteristics of the
-session, including the job name, Graphical User Interface behavior, and
-file switching.
+RunControls
+===========
+
+
+.. currentmodule:: ansys.mapdl.core._commands.session.run_controls
+
+.. autoclass:: ansys.mapdl.core._commands.session.run_controls.RunControls
.. autosummary::
- :toctree: _autosummary/
-
- Mapdl.config
- Mapdl.cwd
- Mapdl.exit
- Mapdl.filname
- Mapdl.input
- Mapdl.keyw
- Mapdl.memm
- Mapdl.nerr
- Mapdl.pause
- Mapdl.slashstatus
- Mapdl.starstatus
- Mapdl.syp
- Mapdl.sys
- Mapdl.unpause
+ :template: base.rst
+ :toctree: _autosummary
+
+
+ RunControls.config
+ RunControls.cwd
+ RunControls.filname
+ RunControls.input
+ RunControls.keyw
+ RunControls.memm
+ RunControls.menu
+ RunControls.mstart
+ RunControls.nerr
+ RunControls.output
+ RunControls.pause
+ RunControls.slashstatus
+ RunControls.syp
+ RunControls.sys
+ RunControls.ui
+ RunControls.uis
+ RunControls.unpause
diff --git a/doc/styles/config/vocabularies/ANSYS/accept.txt b/doc/styles/config/vocabularies/ANSYS/accept.txt
index b75472ead23..f6d8aa92471 100644
--- a/doc/styles/config/vocabularies/ANSYS/accept.txt
+++ b/doc/styles/config/vocabularies/ANSYS/accept.txt
@@ -87,6 +87,7 @@ Hashin
hexahedral
hostname
HTML
+Iges
Image[Mm]agick
imagin
importlib
diff --git a/pyproject.toml b/pyproject.toml
index 302eba1ec81..b6504d499ab 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -93,6 +93,7 @@ doc = [
"jupyter==1.1.1",
"jupyter_sphinx==0.5.3",
"jupyterlab>=3.2.8",
+ "linuxdoc==20240924",
"matplotlib==3.10.3",
"nbformat==5.10.4",
"numpydoc==1.9.0",
@@ -178,7 +179,7 @@ show_missing = true
ignore-regex = ".*codespell-ignore$|NORML|POIN"
ignore-words = "doc/styles/config/vocabularies/ANSYS/accept.txt"
quiet-level = 3
-skip = '*.pyc,*.txt,*.gif,*.png,*.jpg,*.js,*.html,*.doctree,*.ttf,*.woff,*.woff2,*.eot,*.mp4,*.inv,*.pickle,*.ipynb,flycheck*,./.git/*,./.hypothesis/*,*.yml,./doc/build/*,./doc/images/*,./dist/*,*~,.hypothesis*,./doc/source/examples/*,*cover,*.dat,*.mac,*.cdb,*.CDB,build,./docker/mapdl/v*,./factory/*,./ansys/mapdl/core/mapdl_functions.py,PKG-INFO,*.mypy_cache/*,./docker/mapdl/*,./_unused/*'
+skip = '*.pyc,*.txt,*.gif,*.png,*.jpg,*.js,*.html,*.doctree,*.ttf,*.woff,*.woff2,*.eot,*.mp4,*.inv,*.pickle,*.ipynb,flycheck*,./.git/*,./.hypothesis/*,*.yml,./doc/build/*,./doc/images/*,./dist/*,*~,.hypothesis*,./doc/source/examples/*,*cover,*.dat,*.mac,*.cdb,*.CDB,build,./docker/mapdl/v*,./factory/*,./ansys/mapdl/core/mapdl_functions.py,PKG-INFO,*.mypy_cache/*,./docker/mapdl/*,./_unused/*,src/ansys/mapdl/core/_commands/*'
[tool.numpydoc_validation]
checks = [
diff --git a/src/ansys/mapdl/core/_commands/apdl/__init__.py b/src/ansys/mapdl/core/_commands/apdl/__init__.py
index dfdea9c4571..0b2b9772bca 100644
--- a/src/ansys/mapdl/core/_commands/apdl/__init__.py
+++ b/src/ansys/mapdl/core/_commands/apdl/__init__.py
@@ -22,9 +22,10 @@
from . import (
abbreviations,
- array_param,
+ array_parameters,
+ encryption_decryption,
macro_files,
- matrix_op,
+ matrix_operations,
parameter_definition,
process_controls,
)
diff --git a/src/ansys/mapdl/core/_commands/apdl/abbreviations.py b/src/ansys/mapdl/core/_commands/apdl/abbreviations.py
index 9958ac932ab..e9736dc81a6 100644
--- a/src/ansys/mapdl/core/_commands/apdl/abbreviations.py
+++ b/src/ansys/mapdl/core/_commands/apdl/abbreviations.py
@@ -22,169 +22,262 @@
class Abbreviations:
- def abbr(self, abbr="", string="", **kwargs):
- """Defines an abbreviation.
- APDL Command: ``*ABBR``
+ def abbr(self, abbr: str = "", string: str = "", **kwargs):
+ r"""Defines an abbreviation.
+
+ Mechanical APDL Command: `\*ABBR `_
Parameters
----------
- abbr
- The abbreviation (up to 8 alphanumeric characters) used to
- represent the string String. If Abbr is the same as an existing
- ANSYS command, the abbreviation overrides. Avoid using an Abbr
- which is the same as an ANSYS command.
-
- string
- String of characters (60 maximum) represented by Abbr.
- Cannot include a $ or any of the commands ``C***``, /COM,
- /GOPR, /NOPR, /QUIT, /UI, or ``*END``.
-
- Use the ``*IF`` groups may not be abbreviated. If String
- is blank, the abbreviation is deleted. To abbreviate
- multiple commands, create an "unknown command" macro or
- define String to execute a macro file [``*USE``]
- containing the desired commands.
+ abbr : str
+ The abbreviation (up to 8 alphanumeric characters) used to represent the string ``String``. If
+ ``Abbr`` is the same as an existing Mechanical APDL command, the abbreviation overrides. Avoid
+ using an ``Abbr`` which is the same as an Mechanical APDL command.
+
+ string : str
+ String of characters (60 maximum) represented by ``Abbr``. Cannot include a $ or any of the
+ commands ``C***``, :ref:`com`, :ref:`gopr`, :ref:`nopr`, :ref:`quit`, :ref:`ui`, or :ref:`end`.
+ Parameter names and commands of the ``*DO`` and Use the ``*IF`` groups may not be abbreviated.
+ If ``String`` is blank, the abbreviation is deleted. To abbreviate multiple commands, create an
+ "unknown command" macro or define ``String`` to execute a macro file ( :ref:`use` ) containing
+ the desired commands.
Notes
-----
- Once the abbreviation Abbr is defined, you can issue it at the
- beginning of a command line and follow it with a blank (or with a comma
- and appended data), and the program will substitute the string String
- for Abbr as the line is executed. Up to 100 abbreviations may exist at
- any time and are available throughout the program. Abbreviations may be
- redefined or deleted at any time.
-
- Use ``*STATUS`` to display the current list of abbreviations. For
- abbreviations repeated with ``*REPEAT``, substitution occurs before the
- repeat increments are applied. There are a number of abbreviations that
- are predefined by the program (these can be deleted by using the blank
- String option described above). Note that String will be written to the
- File.LOG.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-ABBR_argdescript:
+
+ * ``abbr : str`` - The abbreviation (up to 8 alphanumeric characters) used to represent the string
+ ``String``. If ``Abbr`` is the same as an existing Mechanical APDL command, the abbreviation overrides.
+ Avoid using an ``Abbr`` which is the same as an Mechanical APDL command.
+
+ * ``string : str`` - String of characters (60 maximum) represented by ``Abbr``. Cannot include a $
+ or any of the commands ``C***``, :ref:`com`, :ref:`gopr`, :ref:`nopr`, :ref:`quit`, :ref:`ui`, or
+ :ref:`end`. Parameter names and commands of the ``*DO`` and Use the ``*IF`` groups may not be
+ abbreviated. If ``String`` is blank, the abbreviation is deleted. To abbreviate multiple commands,
+ create an "unknown command" macro or define ``String`` to execute a macro file ( :ref:`use` )
+ containing the desired commands.
+
+ .. _a-ABBR_notes:
+
+ Once the abbreviation ``Abbr`` is defined, you can issue it at the beginning of a command line and
+ follow it with a blank (or with a comma and appended data), and the program will substitute the
+ string ``String`` for ``Abbr`` as the line is executed. Up to 100 abbreviations may exist at any
+ time and are available throughout the program. Abbreviations may be redefined or deleted at any
+ time.
+
+ Use :ref:`starstatus` to display the current list of abbreviations. For abbreviations repeated with
+ ``*REPEAT``, substitution occurs before the repeat increments are applied. There are a number of
+ abbreviations that are predefined by the program (these can be deleted by using the blank ``String``
+ option described above). Note that ``String`` will be written to the :file:`FileLOG`.
This command is valid in any processor.
"""
command = f"*ABBR,{abbr},{string}"
return self.run(command, **kwargs)
- def abbres(self, lab="", fname="", ext="", **kwargs):
- """Reads abbreviations from a coded file.
+ def abbres(self, lab: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Reads abbreviations from a coded file.
- APDL Command: ABBRES
+ Mechanical APDL Command: `ABBRES `_
Parameters
----------
- lab
+ lab : str
Label that specifies the read operation:
- NEW
- Replace current abbreviation set with these abbreviations (default).
+ * ``NEW`` - Replace current abbreviation set with these abbreviations (default).
- CHANGE
- Extend current abbreviation set with these abbreviations, replacing any of the
- same name that already exist.
+ * ``CHANGE`` - Extend current abbreviation set with these abbreviations, replacing any of the same
+ name that already exist.
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
- ext
- Filename extension (eight-character maximum).
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to ABBR if ``Fname`` is
+ blank.
Notes
-----
- The abbreviation file may have been written with the ABBSAV command. Do
- not issue ABBRES,NEW while inside an executing abbreviation. Doing so
- will cause all data for the executing abbreviation to be deleted.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _pmabbresargdescript:
+
+ * ``lab : str`` - Label that specifies the read operation:
+
+ * ``NEW`` - Replace current abbreviation set with these abbreviations (default).
+
+ * ``CHANGE`` - Extend current abbreviation set with these abbreviations, replacing any of the same
+ name that already exist.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). The extension defaults to ABBR if
+ ``Fname`` is blank.
+
+ .. _abbres_notes:
+
+ The abbreviation file may have been written with the :ref:`abbsav` command. Do not issue
+ :ref:`abbres`,NEW while inside an executing abbreviation. Doing so will cause all data for the
+ executing abbreviation to be deleted.
This command is valid in any processor.
"""
command = f"ABBRES,{lab},{fname},{ext}"
return self.run(command, **kwargs)
- def abbsav(self, lab="", fname="", ext="", **kwargs):
- """Writes the current abbreviation set to a coded file.
+ def abbsav(self, lab: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Writes the current abbreviation set to a coded file.
- APDL Command: ABBSAV
+ Mechanical APDL Command: `ABBSAV `_
Parameters
----------
- lab
- Label that specifies the write operation.
+ lab : str
+ Label that specifies the write operation:
- ALL - Write all abbreviations (default).
+ * ``ALL`` - Write all abbreviations (default).
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
- The file name defaults to Jobname.
-
- ext
- Filename extension (eight-character maximum). The
- extension defaults to ABBR if Fname is blank.
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to ABBR if ``Fname`` is
+ blank.
Notes
-----
- Existing abbreviations on this file, if any, will be overwritten. The
- abbreviation file may be read with the ABBRES command.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _ABBSAV_argdescript:
+
+ * ``lab : str`` - Label that specifies the write operation:
+
+ * ``ALL`` - Write all abbreviations (default).
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). The extension defaults to ABBR if
+ ``Fname`` is blank.
+
+ .. _ABBSAV_notes:
+
+ Existing abbreviations on this file, if any, will be overwritten. The abbreviation file may be read
+ with the :ref:`abbres` command.
This command is valid in any processor.
"""
command = f"ABBSAV,{lab},{fname},{ext}"
return self.run(command, **kwargs)
- def ucmd(self, cmd="", srnum="", **kwargs):
- """Assigns a user-defined command name.
+ def ucmd(self, cmd: str = "", srnum: str = "", **kwargs):
+ r"""Assigns a user-defined command name.
- APDL Command: /UCMD
+ Mechanical APDL Command: `/UCMD `_
Parameters
----------
- cmd
- User-defined command name. Only the first four characters are
- significant. Must not conflict with any ANSYS command name or any
- user "unknown command" macro name.
-
- srnum
- User subroutine number (1 to 10) programmed for this command. For
- example, the command /UCMD,MYCMD,3 will execute subroutine USER03
- whenever the command MYCMD is entered. Use a blank command name to
- disassociate SRNUM from its command. For example, /UCMD,,3 removes
- MYCMD as a command.
+ cmd : str
+ User-defined command name. Only the first four characters are significant. Must not conflict
+ with any Mechanical APDL command name or any user unknown-command macro name.
+
+ srnum : str
+ User subroutine number (1 to 10) programmed for this command. For example, the command :ref:`ucmd`,MYCMD,3 will execute subroutine USER03 whenever the command **MYCMD** is entered. Use a blank command name to disassociate ``SRNUM`` from its command. For example, :ref:`ucmd` ,,3 removes **MYCMD** as a command.
Notes
-----
- Assigns a user-defined command name to a user-programmable (system-
- dependent) subroutine. This feature allows user-defined commands to be
- programmed into the ANSYS program. Once programmed, this command can
- be input to the program like other commands, and can also be included
- in the ANSYS start-up file. See ``*ULIB`` for another way of defining user
- commands.
-
- Up to 10 subroutines are available for user-defined commands (USER01 to
- USER10). Users must have system permission, system access, and
- knowledge to write, compile, and link the appropriate subprocessors
- into the ANSYS program at the site where it is to be run. All routines
- should be written in FORTRAN. For more information on FORTRAN compilers
- please refer to either the ANSYS, Inc. Windows Installation Guide or
- the ANSYS, Inc. Linux Installation Guide for details specific to your
- platform or operating system. The USER01 routine is commented and
- should be listed from the distribution media (system dependent) for
- more details. Issue /UCMD,STAT to list all user-defined command names.
- Since a user-programmed command is a nonstandard use of the program,
- the verification of any ANSYS run incorporating these commands is
- entirely up to the user. In any contact with ANSYS customer support
- regarding the performance of a custom version of the ANSYS program, you
- should explicitly state that a user programmable feature has been used.
- See the Advanced Analysis Guide for a general description of user-
- programmable features and Guide to User-Programmable Features for a
- detailed description of these features.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _s-UCMD_argdescript:
+
+ * ``cmd : str`` - User-defined command name. Only the first four characters are significant. Must
+ not conflict with any Mechanical APDL command name or any user unknown-command macro name.
+
+ * ``srnum : str`` - User subroutine number (1 to 10) programmed for this command. For example, the
+ command :ref:`ucmd`,MYCMD,3 will execute subroutine USER03 whenever the command **MYCMD** is
+ entered. Use a blank command name to disassociate ``SRNUM`` from its command. For example,
+ :ref:`ucmd`,,3 removes **MYCMD** as a command.
+
+ .. _s-UCMD_notes:
+
+ Assigns a user-defined command name to a user-programmable (system-dependent) subroutine. This
+ feature allows user-defined commands to be programmed into Mechanical APDL. Once programmed, this
+ command
+ can be input to the program like other commands, and can also be included in the Mechanical APDL
+ start-up
+ file.
+
+ Up to 10 subroutines are available for user-defined commands (USER01 to USER10). You must have
+ system permission, system access, and knowledge to write, compile, and link the appropriate
+ subprocessors into Mechanical APDL at your site.
+
+ All routines should be written in FORTRAN. For more information about FORTRAN compilers, refer to
+ either the `Ansys, Inc. Windows Installation Guide
+ `_ or
+ the `Ansys, Inc. Linux Installation Guide
+ `_
+ for details specific to your platform or operating
+ system.
+
+ The USER01 routine is commented and should be listed from the distribution media (system dependent)
+ for more details.
+
+ Issue :ref:`ucmd`,STAT to list all user-defined command names.
+
+ Because a user-programmed command is a nonstandard use of the program, the verification of any
+ Mechanical APDL run incorporating these commands is your responsibility. In any contact with
+ Mechanical APDL
+ customer support regarding the performance of a custom version of Mechanical APDL, explicitly state
+ that a
+ user-programmable feature has been used.
+
+ See `User-Programmable Features (UPFs)
+ `_
+ `Guide to User-Programmable Features
+ `_
+
+ See :ref:`ulib` for another way of defining user commands.
This command is valid only at the Begin Level.
"""
diff --git a/src/ansys/mapdl/core/_commands/apdl/array_param.py b/src/ansys/mapdl/core/_commands/apdl/array_param.py
deleted file mode 100644
index 31f255b8958..00000000000
--- a/src/ansys/mapdl/core/_commands/apdl/array_param.py
+++ /dev/null
@@ -1,1535 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class ArrayParam:
- def mfouri(self, oper="", coeff="", mode="", isym="", theta="", curve="", **kwargs):
- """Calculates the coefficients for, or evaluates, a Fourier series.
-
- APDL Command: ``*MFOURI``
-
- Parameters
- ----------
- oper
- Type of Fourier operation:
-
- FIT
- Calculate Fourier coefficients COEFF from MODE, ISYM,
- THETA, and CURVE.
-
- EVAL
- Evaluate the Fourier curve CURVE from
- COEFF, MODE, ISYM and THETA.
-
- coeff
- Name of the array parameter vector containing the Fourier
- coefficients (calculated if Oper = FIT, required as input if Oper =
- EVAL). See ``*SET`` for name restrictions.
-
- mode
- Name of the array parameter vector containing the mode numbers of
- the desired Fourier terms.
-
- isym
- Name of the array parameter vector containing the symmetry key for
- the corresponding Fourier terms. The vector should contain keys
- for each term as follows:
-
- 0 or 1
- Symmetric (cosine) term
-
- -1
- Antisymmetric (sine) term.
-
- theta, curve
- Names of the array parameter vectors containing the theta vs. curve
- description, respectively. Theta values should be input in
- degrees. If Oper = FIT, one curve value should be supplied with
- each theta value. If Oper = EVAL, one curve value will be
- calculated for each theta value.
-
- Notes
- -----
- Calculates the coefficients of a Fourier series for a given
- curve, or evaluates the Fourier curve from the given (or
- previously calculated) coefficients. The lengths of the
- COEFF, MODE, and ISYM vectors must be the same--typically two
- times the number of modes desired, since two terms (sine and
- cosine) are generally required for each mode. The lengths of
- the CURVE and THETA vectors should be the same or the smaller
- of the two will be used. There should be a sufficient number
- of points to adequately define the curve--at least two times
- the number of coefficients. A starting array element number
- (1) must be defined for each array parameter vector.
-
- The vector specifications ``*VLEN``, ``*VCOL``, ``*VABS``,
- ``*VFACT``, and ``*VCUM`` do not apply to this command. Array
- elements should not be skipped with the ``*VMASK`` and the
- NINC value of the ``*VLEN`` specifications. The vector being
- calculated (COEFF if Oper is FIT, or CURVE if Oper is EVAL)
- must exist as a dimensioned array [``*DIM``].
-
- This command is valid in any processor.
- """
- command = f"*MFOURI,{oper},{coeff},{mode},{isym},{theta},{curve}"
- return self.run(command, **kwargs)
-
- def mfun(self, parr="", func="", par1="", **kwargs):
- """Copies or transposes an array parameter matrix.
-
- APDL Command: ``*MFUN``
-
- Parameters
- ----------
- parr
- The name of the resulting array parameter matrix. See ``*SET`` for
- name restrictions.
-
- func
- Copy or transpose function:
-
- Par1 is copied to ParR - Par1 is transposed to ParR. Rows
- (m) and columns (n) of Par1 matrix are transposed to
- resulting ParR matrix of shape (n,m).
-
- par1
- Array parameter matrix input to the operation.
-
- Notes
- -----
- Operates on one input array parameter matrix and produces one output
- array parameter matrix according to:
-
- ParR = f(Par1)
-
- where the function (f) is either a copy or transpose, as described
- above.
-
- Functions are based on the standard FORTRAN definitions where
- possible. ParR may be the same as Par1. Starting array
- element numbers must be defined for each array parameter
- matrix if it does not start at the first location. For
- example, ``*MFUN,A(1,5),COPY,B(2,3)`` copies matrix B
- (starting at element (2,3)) to matrix A (starting at element
- (1,5)). The diagonal corner elements for each submatrix must
- be defined: the upper left corner by the array starting
- element (on this command), the lower right corner by the
- current values from the ``*VCOL`` and ``*VLEN`` commands. The
- default values are the (1,1) element and the last element in
- the matrix. No operations progress across matrix planes (in
- the 3rd dimension). Absolute values and scale factors may be
- applied to all parameters [``*VABS``, ``*VFACT``]. Results
- may be cumulative [``*VCUM``].
-
- Array elements should not be skipped with the ``*VMASK`` and the
- NINC value of the ``*VLEN`` specifications. The number of
- rows [``*VLEN``] applies to the Par1 array. See the
- ``*VOPER`` command for details.
-
- This command is valid in any processor.
- """
- command = f"*MFUN,{parr},{func},{par1}"
- return self.run(command, **kwargs)
-
- def moper(
- self,
- parr="",
- par1="",
- oper="",
- val1="",
- val2="",
- val3="",
- val4="",
- val5="",
- val6="",
- **kwargs,
- ):
- """Performs matrix operations on array parameter matrices.
-
- APDL Command: ``*MOPER``
-
- Parameters
- ----------
- parr
- The name of the resulting array parameter matrix. See ``*SET`` for
- name restrictions.
-
- par1
- First array parameter matrix input to the operation. For ``Oper =
- MAP``, this is an ``N`` x 3 array of coordinate locations at which to
- interpolate. ``ParR`` will then be an ``N(out)`` x ``M`` array containing the
- interpolated values.
-
- oper
- Matrix operations:
-
- * `INVERT`
- ``(*MOPER, ParR, Par1, INVERT)``
- Square matrix invert: Inverts the ``n`` x ``n`` matrix in ``Par1``
- into ``ParR``. The matrix must be well conditioned.
-
- .. warning::
-
- Non-independent or ill-conditioned equations can
- cause erroneous results.
-
- For large matrices, use the
- APDL Math operation ``*LSFACTOR`` for efficiency (see APDL
- Math).
-
- * `MULT`
- ``(*MOPER, ParR, Par1, MULT, Par2)``
- Matrix multiply: Multiplies ``Par1`` by ``Par2``. The number of
- rows of ``Par2`` must equal the number of columns of ``Par1`` for
- the operation. If ``Par2`` is input with a number of rows
- greater than the number of columns of ``Par1``, matrices are
- still multiplied. However, the operation only uses a
- number of rows of ``Par2`` equal to the number of columns of
- ``Par1``.
-
- * `COVAR`
- ``(*MOPER, ParR, Par1, COVAR, Par2)``
- Covariance: The measure of association between two columns
- of the input matrix (``Par1``). ``Par1``, of size m runs (rows)
- by ``n`` data (columns) is first processed to produce a row
- vector containing the mean of each column which is
- transposed to a column vector (``Par2``) of n array elements.
- The ``Par1`` and ``Par2`` operation then produces a resulting ``n`` x
- ``n`` matrix (``ParR``) of covariances (with the variances as the
- diagonal terms).
-
- * `CORR`
- ``(*MOPER, ParR, Par1, CORR, Par2)``
- Correlation: The correlation coefficient between two
- variables. The input matrix (``Par1``), of size m runs (rows)
- by n data (columns), is first processed to produce a row
- vector containing the mean of each column which is then
- transposed to a column vector (``Par2``) of n array elements.
- The ``Par1`` and ``Par2`` operation then produces a resulting ``n`` x
- ``n`` matrix (``ParR``) of correlation coefficients (with a value
- of 1.0 for the diagonal terms).
-
- * `SOLV`
- ``(*MOPER, ParR, Par1, SOLV, Par2)``
- Solution of simultaneous equations: Solves the set of ``n``
- equations of n terms of the form ``an_1 x_1 + an_2 x_2 + ... +
- an_n x_n = b_n`` where ``Par1`` contains the matrix of
- a-coefficients, ``Par2`` the vector(s) of b-values, and ``ParR``
- the vector(s) of x-results. ``Par1`` must be a square matrix.
- The equations must be linear, independent, and well
- conditioned.
-
- **Warning**: Non-independent or ill-conditioned equations can
- cause erroneous results. - For large matrices, use the
- APDL Math operation ``*LSFACTOR`` for efficiency (see APDL
- Math).
-
- * `SORT`
- ``(*MOPER, ParR, Par1, SORT, Par2, n1, n2, n3)``
- Matrix sort: Sorts matrix ``Par1`` according to sort vector
- ``Par2`` and places the result back in ``Par1``. Rows of ``Par1`` are
- moved to the corresponding positions indicated by the
- values of ``Par2``. ``Par2`` may be a column of ``Par1`` (in which
- case it will also be reordered). Alternatively, you may
- specify the column of ``Par1`` to sort using n1 (leaving ``Par2``
- blank). A secondary sort can be specified by column ``n2``,
- and a third sort using ``n3``. ``ParR`` is the vector of initial
- row positions (the permutation vector). Sorting ``Par1``
- according to ``ParR`` should reproduce the initial ordering.
-
- * `NNEAR`
- ``(*MOPER, ParR, Par1, NNEAR, Toler)``
- Nearest Node: Quickly determine all the nodes within a
- specified tolerance of a given array. ``ParR`` is a vector of
- the nearest selected nodes, or 0 if no nodes are nearer
- than ``Toler``. ``Par1`` is the ``n`` x 3 array of coordinate
- locations. ``Toler`` defaults to 1 and is limited to the
- maximum model size.
-
- * `ENEAR`
- ``(*MOPER, ``ParR``, ``Par1``, ENEAR, Toler)``
- Nearest Element: Quickly determine the elements with
- centroids that are within a specified tolerance of the
- points in a given array. - ``ParR`` is a vector of the nearest
- selected elements, or 0 if no element centroids are nearer
- than ``Toler``. ``Par1`` is the ``n`` x 3 array of coordinate
- locations.
-
- * `MAP`
- ``(*MOPER, ParR, Par1, MAP, Par2, Par3, kDim, --, kOut, LIMIT)``
- Maps the results from one set of points to another. For
- example, you can map pressures from a CFD analysis onto
- your model for a structural analysis.
-
- * ``Par1`` is the ``Nout`` x 3 array of points that will be mapped
- to. ``Par2`` is the ``Nin`` x ``M`` array that contains ``M`` values of
- data to be interpolated at each point and corresponds to
- the ``Nin`` x 3 points in ``Par3``. The resulting ``ParR`` is the ``Nout``
- x ``M`` array of mapped data points.
-
- For each point in the destination mesh, all possible
- triangles in the source mesh are searched to find the best
- triangle containing each point. It then does a linear
- interpolation inside this triangle. You should carefully
- specify your interpolation method and search criteria in
- order to provide faster and more accurate results (see
- ``LIMIT``, below).
-
- * ``kDim`` is the interpolation criteria. If ``kDim = 2 or 0``, two
- dimensional interpolation is applied (interpolate on a
- surface). If ``kDim = 3``, three dimensional interpolation is
- applied (interpolate on a volume).
-
- * ``kOut`` specified how points outside of the domain are
- handled. If ``kOut`` = 0, use the value(s) of the nearest
- region point for points outside of the region. If ```kOut``` =
- 1, set results outside of the region to zero.
-
- * `LIMIT` specifies the number of nearby points considered for
- interpolation. The default is 20, and the minimum is
- 5. Lower values will reduce processing time; however, some
- distorted or irregular sets of points will require a
- higher ``LIMIT`` value to encounter three nodes for
- triangulation.
-
- Output points are incorrect if they are not within the
- domain (area or volume) defined by the specified input
- points. Also, calculations for out-of-bound points require
- much more processing time than do points that are within
- bounds. Results mapping is available from the command line
- only.
-
- * `INTP`
- ``(*MOPER, ParR, Par1, INTP, Par2)``
- Finds the elements that contain each point in the array of
- ``n`` x 3 points in ``Par1``. ``Par2`` will contain the set of element
- ID numbers and ``ParR`` will contain their ``n`` x 3 set of
- natural element coordinates (values between -1 and
- 1). ``Par1`` must be in global Cartesian coordinates.
-
- * `SGET`
- ``(*MOPER, ParR, Par1, SGET, Par2, Label, Comp)``
- Gets the nodal solution item corresponding to Label and
- Comp (see the PLNSOL command) and interpolates it to the
- given element locations. ``Par1`` contains the ``n`` x 3 array of
- natural element coordinates (values between -1 and 1) of
- the ``n`` element ID numbers in ``Par2``. ``Par1`` and ``Par2`` are
- usually the output of the ``*MOPER,,,INTP`` operation. ``ParR``
- contains the ``n`` interpolated results.
-
- * ``Val1, Val2, ..., Val6``
- Additional input used in the operation. The meanings of
- ``Val1`` through ``Val6`` vary depending on the specified matrix
- operation. See the description of Oper for details.
- """
- command = (
- f"*MOPER,{parr},{par1},{oper},{val1},{val2},{val3},{val4},{val5},{val6}"
- )
- return self.run(command, **kwargs)
-
- def mwrite(
- self, parr="", fname="", ext="", label="", n1="", n2="", n3="", **kwargs
- ):
- """Writes a matrix to a file in a formatted sequence.
-
- APDL Command: ``*MWRITE``
-
- .. warning::
- This command cannot be run interactively. See
- :func:`non_interactive `.
-
- Parameters
- ----------
- parr
- The name of the array parameter. See ``*SET`` for name restrictions.
-
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
- Filename extension (eight-character maximum).
-
- label
- Can use a value of ``IJK``, ``IKJ``, ``JIK``, ``JKI``, ``KIJ``, ``KJI``, or blank (``JIK``).
-
- n1, n2, n3
- Write as ``(((ParR(i,j,k), k = 1,n1), i = 1, n2), j = 1, n3)`` for
- ``Label = KIJ``. ``n1``, ``n2``, and ``n3`` default to the corresponding dimensions
- of the array parameter ParR.
-
- Notes
- -----
- Writes a matrix or vector to a specified file in a formatted sequence.
- You can also use the ``*VWRITE`` command to write data to a specified file.
- Both commands contain format descriptors on the line immediately
- following the command. The format descriptors can be in either Fortran
- or C format.
-
- Fortran format descriptors are enclosed in parentheses. They must
- immediately follow the ``*MWRITE`` command on a separate line of the same
- input file. The word FORMAT should not be included. The format must
- specify the number of fields to be written per line, the field width,
- the placement of the decimal point, etc. There should be one field
- descriptor for each data item written. The write operation uses the
- available system FORTRAN FORMAT conventions (see your system FORTRAN
- manual). Any standard FORTRAN real format (such as (4F6.0),
- (E10.3,2X,D8.2), etc.) and character format (A) may be used. Integer
- (I) and list-directed (``*``) descriptors may not be used. Text may be
- included in the format as a quoted string. The FORTRAN descriptor must
- be enclosed in parentheses and the format must not exceed 80 characters
- (including parentheses).
-
- The "C" format descriptors are used if the first character of the
- format descriptor line is not a left parenthesis. "C" format
- descriptors may be up to 80 characters long, consisting of text strings
- and predefined "data descriptors" between the strings where numeric or
- alphanumeric character data are to be inserted. The normal descriptors
- are %I for integer data, %G for double precision data, %C for
- alphanumeric character data, and %/ for a line break. There must be one
- data descriptor for each specified value in the order of the specified
- values. The enhanced formats described in ``*MSG`` may also be used.
-
- The starting array element number must be defined. Looping continues in
- the directions indicated by the Label argument. The number of loops and
- loop skipping may also be controlled with the ``*VLEN`` and ``*VMASK``
- commands, which work in the n2 direction (by row on the output file),
- and by the ``*VCOL`` command, which works in the n1 direction (by column
- in the output file). The vector specifications ``*VABS`` and ``*VFACT`` apply
- to this command, while ``*VCUM`` does not apply to this command. See the
- ``*VOPER`` command for details. If you are in the GUI, the ``*MWRITE`` command
- must be contained in an externally prepared file and read into ANSYS
- (i.e., ``*USE``, ``/INPUT``, etc.).
-
- This command is valid in any processor.
- """
- command = f"*MWRITE,{parr},{fname},{ext},,{label},{n1},{n2},{n3}"
- return self.run(command, **kwargs)
-
- def starvput(
- self,
- parr="",
- entity="",
- entnum="",
- item1="",
- it1num="",
- item2="",
- it2num="",
- kloop="",
- **kwargs,
- ):
- """Restores array parameter values into the ANSYS database.
-
- APDL Command: ``*VPUT``
-
- Parameters
- ----------
- parr
- The name of the input vector array parameter. See ``*SET`` for name
- restrictions. The parameter must exist as a dimensioned array
- [``*DIM``] with data input.
-
- entity
- Entity keyword. Valid keywords are shown for Entity = in the table
- below.
-
- entnum
- The number of the entity (as shown for ENTNUM= in the table below).
-
- item1
- The name of a particular item for the given entity. Valid items
- are as shown in the Item1 columns of the table below.
-
- it1num
- The number (or label) for the specified Item1 (if any). Valid
- IT1NUM values are as shown in the IT1NUM columns of the table
- below. Some Item1 labels do not require an IT1NUM value.
-
- item2, it2num
- A second set of item labels and numbers to further qualify the item
- for which data is to be stored. Most items do not require this
- level of information.
-
- kloop
- Field to be looped on:
-
- Loop on the ENTNUM field (default). - Loop on the Item1 field.
-
- Loop on the IT1NUM field. Successive items are as shown with IT1NUM. - Loop on the Item2 field.
-
- Notes
- -----
- The ``*VPUT`` command is not supported for PowerGraphics
- displays. Inconsistent results may be obtained if this
- command is not used in /GRAPHICS, FULL.
-
- Plot and print operations entered via the GUI (Utility Menu>
- Pltcrtls, Utility Menu> Plot) incorporate the AVPRIN
- command. This means that the principal and equivalent values
- are recalculated. If you use ``*VPUT`` to put data back into
- the database, issue the plot commands from the command line to
- preserve your data.
-
- This operation is basically the inverse of the ``*VGET``
- operation. Vector items are put directly (without any
- coordinate system transformation) into the ANSYS database.
- Items can only replace existing items of the database and not
- create new items. Degree of freedom results that are replaced
- in the database are available for all subsequent
- postprocessing operations. Other results are changed
- temporarily and are available mainly for the immediately
- following print and display operations. The vector
- specification ``*VCUM`` does not apply to this command. The
- valid labels for the location fields (Entity, ENTNUM, Item1,
- and IT1NUM) are listed below. Item2 and IT2NUM are not
- currently used. Not all items from the ``*VGET`` list are
- allowed on ``*VPUT`` since putting values into some locations
- could cause the database to be inconsistent.
-
- This command is valid in any processor.
-
- """
- command = (
- f"*VPUT,{parr},{entity},{entnum},{item1},{it1num},{item2},{it2num},{kloop}"
- )
- return self.run(command, **kwargs)
-
- def sread(
- self,
- strarray="",
- fname="",
- ext="",
- nchar="",
- nskip="",
- nread="",
- **kwargs,
- ):
- """Reads a file into a string array parameter.
-
- APDL Command: ``*SREAD``
-
- Parameters
- ----------
- strarray
- Name of the "string array" parameter which will hold the read file.
- String array parameters are similar to character arrays, but each
- array element can be as long as 128 characters. If the string
- parameter does not exist, it will be created. The array will be
- created as: ``*DIM,StrArray,STRING,nChar,nRead```
-
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
- Filename extension (eight-character maximum).
-
- nchar
- Number of characters per line to read (default is length of the
- longest line in the file).
-
- nskip
- Number of lines to skip at the start of the file (default is 0).
-
- nread
- Number of lines to read from the file (default is the entire file).
-
- Notes
- -----
- The ``*SREAD`` command reads from a file into a string array
- parameter. The file must be an ASCII text file.
- """
- command = f"*SREAD,{strarray},{fname},{ext},,{nchar},{nskip},{nread}"
- return self.run(command, **kwargs)
-
- def toper(
- self,
- parr="",
- par1="",
- oper="",
- par2="",
- fact1="",
- fact2="",
- con1="",
- **kwargs,
- ):
- """Operates on table parameters.
-
- APDL Command: ``*TOPER``
-
- Parameters
- ----------
- parr
- Name of the resulting table parameter. The command will create a
- table array parameter with this name. Any existing parameter with
- this name will be overwritten.
-
- par1
- Name of the first table parameter.
-
- oper
- The operation to be performed: ``ADD``. The operation is:
- ``ParR(i,j,k) = FACT1*Par1(i,j,k) + FACT2 *Par2(i,j,k) +CON1``
-
- par2
- Name of the second table parameter.
-
- fact1
- The first table parameter multiplying constant. Defaults to 1.
-
- fact2
- The second table parameter multiplying constant. Defaults to 1.
-
- con1
- The constant increment for offset. Defaults to 0.
-
- Notes
- -----
- ``*TOPER`` operates on table parameters according to:
- ``ParR(i,j,k) = FACT1*Par1(i,j,k) + FACT2 *Par2(i,j,k) +CON1``
-
- Par1 and Par2 must have the same dimensions and the same variable names
- corresponding to those dimensions. Par1 and Par2 must also have
- identical index values for rows, columns, etc.
-
- If you want a local coordinate system for the resulting array, you must
- dimension it as such using the ``*DIM`` command before issuing ``*TOPER``.
-
- This command is valid in any processor.
- """
- command = f"*TOPER,{parr},{par1},{oper},{par2},{fact1},{fact2},{con1}"
- return self.run(command, **kwargs)
-
- def vabs(self, kabsr="", kabs1="", kabs2="", kabs3="", **kwargs):
- """Applies the absolute value function to array parameters.
-
- APDL Command: ``*VABS``
-
- Parameters
- ----------
- kabsr
- Absolute value of results parameter:
-
- Do not take absolute value of results parameter (``ParR``). - Take absolute value.
-
- kabs1
- Absolute value of first parameter:
-
- Do not take absolute value of first parameter (``Par1`` or ``ParI``). - Take absolute value.
-
- kabs2
- Absolute value of second parameter:
-
- Do not take absolute value of second parameter (``Par2`` or ``ParJ``). - Take absolute value.
-
- kabs3
- Absolute value of third parameter:
-
- Do not take absolute value of third parameter (``Par3`` or ``ParK``). - Take absolute value.
-
- Notes
- -----
- Applies an absolute value to parameters used in certain ``*VXX`` and ``*MXX``
- operations. Typical absolute value applications are of the form:
-
- ``ParR = |f(|Par1|)|``
-
- or
-
- ``ParR = |(|Par1| o |Par2|)|``
-
- The absolute values are applied to each input parameter value before
- the operation and to the result value after the operation. Absolute
- values are applied before the scale factors so that negative scale
- factors may be used. The absolute value settings are reset to the
- default (no absolute value) after each ``*VXX`` or ``*MXX`` operation. Use
- ``*VSTAT`` to list settings.
-
- This command is valid in any processor.
- """
- command = f"*VABS,{kabsr},{kabs1},{kabs2},{kabs3}"
- return self.run(command, **kwargs)
-
- def vcol(self, ncol1="", ncol2="", **kwargs):
- """Specifies the number of columns in matrix operations.
-
- APDL Command: ``*VCOL``
-
- Parameters
- ----------
- ncol1
- Number of columns to be used for Par1 with ``*MXX`` operations.
- Defaults to whatever is needed to fill the result array.
-
- ncol2
- Number of columns to be used for Par2 with ``*MXX`` operations.
- Defaults to whatever is needed to fill the result array.
-
- Notes
- -----
- Specifies the number of columns to be used in array parameter matrix
- operations. The size of the submatrix used is determined from the
- upper left starting array element (defined on the operation command) to
- the lower right array element (defined by the number of columns on this
- command and the number of rows on the ``*VLEN`` command).
-
- The default NCOL is calculated from the maximum number of columns of
- the result array (the ``*DIM`` column dimension) minus the starting
- location + 1. For example, ``*DIM,R,,1,10`` and a starting location of
- R(1,7) gives a default of 4 columns ( starting with R(1,7), R(1,8),
- R(1,9), and R(1,10)). Repeat operations automatically terminate at the
- last column of the result array. Existing values in the rows and
- columns of the results matrix remain unchanged where not overwritten by
- the requested input or operation values.
-
- The column control settings are reset to the defaults after each ``*MXX``
- operation. Use ``*VSTAT`` to list settings.
-
- This command is valid in any processor.
- """
- command = f"*VCOL,{ncol1},{ncol2}"
- return self.run(command, **kwargs)
-
- def vcum(self, key="", **kwargs):
- """Allows array parameter results to add to existing results.
-
- APDL Command: ``*VCUM``
-
- Parameters
- ----------
- key
- Accumulation key:
-
- Overwrite results. - Add results to the current value of the results parameter.
-
- Notes
- -----
- Allows results from certain ``*VXX`` and ``*MXX`` operations to overwrite or
- add to existing results. The cumulative operation is of the form:
-
- ``ParR = ParR + ParR(Previous)``
-
- The cumulative setting is reset to the default (overwrite) after each
- ``*VXX`` or ``*MXX`` operation. Use ``*VSTAT`` to list settings.
-
- This command is valid in any processor.
- """
- command = f"*VCUM,{key}"
- return self.run(command, **kwargs)
-
- def vfact(self, factr="", fact1="", fact2="", fact3="", **kwargs):
- """Applies a scale factor to array parameters.
-
- APDL Command: ``*VFACT``
-
- Parameters
- ----------
- factr
- Scale factor applied to results (``ParR``) parameter. Defaults to 1.0.
-
- fact1
- Scale factor applied to first parameter (``Par1`` or ``ParI``). Defaults
- to 1.0.
-
- fact2
- Scale factor applied to second parameter (``Par2`` or ``ParJ``). Defaults
- to 1.0.
-
- fact3
- Scale factor applied to third parameter (``Par3`` or ``ParK``). Defaults
- to 1.0.
-
- Notes
- -----
- Applies a scale factor to parameters used in certain ``*VXX`` and ``*MXX``
- operations. Typical scale factor applications are of the form:
-
- ``ParR = FACTR*f(FACT1*Par1)``
-
- or
-
- ``ParR = FACTR*((FACT1*Par1) o (FACT2*Par2))``
-
- The factors are applied to each input parameter value before the
- operation and to the result value after the operation. The scale
- factor settings are reset to the default (1.0) after each ``*VXX`` or ``*MXX``
- operation. Use ``*VSTAT`` to list settings.
-
- This command is valid in any processor.
- """
- command = f"*VFACT,{factr},{fact1},{fact2},{fact3}"
- return self.run(command, **kwargs)
-
- def vfun(self, parr="", func="", par1="", con1="", con2="", con3="", **kwargs):
- """Performs a function on a single array parameter.
-
- APDL Command: ``*VFUN``
-
- Parameters
- ----------
- parr
- The name of the resulting numeric array parameter vector. See ``*SET``
- for name restrictions.
-
- func
- Function to be performed:
-
- * ACOS
- Arccosine: ``ACOS(Par1)``.
-
- * ``ASIN``
- Arcsine: ``ASIN(Par1)``.
-
- * ``ASORT``
- ``Par1`` is sorted in ascending order. ``*VCOL``, ``*VMASK``,
- ``*VCUM``, and ``*VLEN,,NINC`` do not apply.
- ``*VLEN,NROW`` does apply.
-
- * ``ATAN``
- Arctangent: ``ATAN(Par1)``
-
- * ``COMP``
- Compress: Selectively compresses data set. "True"
- (``*VMASK``) values of ``Par1`` (or row positions to be considered
- according to the ``NINC`` value on the ``*VLEN`` command) are
- written in compressed form to ``ParR``, starting at the
- specified position.
-
- * ``COPY``
- Copy: ``Par1`` copied to ``ParR``.
-
- * ``COS``
- Cosine: ``COS(Par1)``.
-
- * ``COSH``
- Hyperbolic cosine: ``COSH(Par1)``.
-
- * ``DIRCOS``
- Direction cosines of the principal stresses (nX9). ``Par1``
- contains the nX6 component stresses for the ``n`` locations of
- the calculations.
-
- * ``DSORT``
- ``Par1`` is sorted in descending order.
- ``*VCOL``, ``*VMASK``, ``*VCUM``, and ``*VLEN,,NINC`` do not apply.
- ``*VLEN,NROW`` does apply.
-
- * ``EURLER``
- Euler angles of the principal stresses (nX3). ``Par1``
- contains the nX6 component stresses for the ``n`` locations of
- the calculations.
-
- * ``EXP``
- Exponential: ``EXP(Par1)``.
-
- * ``EXPA``
- Expand: Reverse of the COMP function. All elements of
- ``Par1`` (starting at the position specified) are written in
- expanded form to corresponding "true" (``*VMASK``) positions
- (or row positions to be considered according to the ``NINC``
- value on the ``*VLEN`` command) of ``ParR``.
-
- * ``LOG``
- Natural logarithm: ``LOG(Par1)``.
-
- * ``LOG10``
- Common logarithm: ``LOG10(Par1)``.
-
- * ``NINT``
- Nearest integer: 2.783 becomes 3.0, -1.75 becomes -2.0.
-
- * ``NOT``
- Logical complement: values 0.0 (false) become 1.0 (true).
- Values > 0.0 (true) become 0.0 (false).
-
- * ``PRIN``
- Principal stresses (nX5). ``Par1`` contains the ``nX6`` component stresses
- for the ``n`` locations of the calculations.
-
- * ``PWR``
- Power function: ``Par1**CON1``. Exponentiation of any negative
- number in the vector ``Par1`` to a non-integer power is
- performed by exponentiating the positive number and
- prepending the minus sign. For example, ``-4**2.3`` is
- ``-(4**2.3)``.
-
- * ``SIN``
- Sine: ``SIN(Par1)``
-
- * ``SINH``
- Hyperbolic sine: ``SINH(Par1)``.
-
- * ``SQRT``
- Square root: ``SQRT(Par1)``.
-
- * ``TAN``
- Tangent: ``TAN(Par1)``.
-
- * ``TANH``
- Hyperbolic tangent: ``TANH(Par1)``.
-
- * ``TANG``
- Tangent to a path at a point: the slope at a point is determined by linear interpolation half
- way between the previous and next points. Points are assumed to be in the global Cartesian
- coordinate system. Path points are specified in array ``Par1`` (having 3 consecutive columns
- of data, with the columns containing the ``x``, ``y``, and ``z`` coordinate locations, respectively, of
- the points). Only the starting row index and the column index for the x coordinates are
- specified, such as ``A(1,1)``. The y and z coordinates of the vector are assumed to begin in the
- corresponding next columns, such as ``A(1,2)`` and ``A(1,3)``. The tangent result, ``ParR``, must also
- have 3 consecutive columns of data and will contain the tangent direction vector (normalized
- to 1.0); such as 1,0,0 for an x-direction vector.
-
- * ``NORM``
- Normal to a path and an input vector at a point: determined from the cross-product of the
- calculated tangent vector (see ``TANG``) and the input direction vector (with the ``i``,
- ``j``, and ``k`` components input as ``CON1``, ``CON2``, and ``CON3``).
- Points are assumed to be in the global Cartesian coordinate system.
- Path points are specified in array ``Par1`` (having 3 consecutive
- columns of data, with the columns containing the ``x``, ``y``, and ``z``
- coordinate locations, respectively, of the points).
- Only the starting row index and the column index for the ``x`` coordinates
- are specified, such as ``A(1,1)``. The ``y`` and ``z`` coordinates of the vector are assumed to begin
- in the corresponding next columns, such as ``A(1,2)`` and ``A(1,3)``. The normal result, ``ParR``,
- must also have 3 consecutive columns of data and will contain the normal direction vector
- (normalized to 1.0); such as ``1,0,0`` for an x-direction vector
-
- * ``LOCAL``
- Transforms global Cartesian coordinates of a point to the coordinates of a specified system:
- points to be transformed are specified in array ``Par1`` (having 3 consecutive columns of
- data, with the columns containing the ``x``, ``y``, and ``z`` global Cartesian coordinate locations,
- respectively, of the points).
- Only the starting row index and the column index for the ``x``
- coordinates are specified, such as ``A(1,1)``.
- The y and z coordinates of the vector are assumed
- to begin in the corresponding next columns, such as ``A(1,2)`` and ``A(1,3)``.
- Results are transformed to coordinate system ``CON1`` (which may be any valid coordinate system number,
- such as 1,2,11,12, etc.). The transformed result, ``ParR``, must also have 3 consecutive columns
- of data and will contain the corresponding transformed coordinate locations.
-
- * ``GLOBAL``
- Transforms specified coordinates of a point to global Cartesian coordinates: points to be
- transformed are specified in array ``Par1`` (having 3 consecutive columns of data, with the
- columns containing the local coordinate locations (``x``, ``y``, ``z`` or ``r``, ``θ``, ``z``
- or etc.) of the points).
- Only the starting row index and the column index for the x coordinates are specified, such
- as ``A(1,1)``.
- The y and z coordinates (or ``θ`` and ``z``, or etc.) of the vector are assumed to begin
- in the corresponding next columns, such as ``A(1,2)`` and ``A(1,3)``.
- Local coordinate locations are assumed to be in coordinate system ``CON1``
- (which may be any valid coordinate system number, such as 1,2,11,12, etc.).
- The transformed result, ``ParR``, must also have 3 consecutive
- columns of data, with the columns containing the global Cartesian ``x``, y, and z coordinate
- locations, respectively.
-
- par1
- Array parameter vector in the operation.
-
- con1, con2, con3
- Constants (used only with the PWR, NORM, LOCAL, and GLOBAL
- functions).
-
- Notes
- -----
- Operates on one input array parameter vector and produces one output
- array parameter vector according to:
-
- ``ParR = f(Par1)``
-
- """
- command = f"*VFUN,{parr},{func},{par1},{con1},{con2},{con3}"
- return self.run(command, **kwargs)
-
- def vitrp(self, parr="", part="", pari="", parj="", park="", **kwargs):
- """Forms an array parameter by interpolation of a table.
-
- APDL Command: ``*VITRP``
-
- Parameters
- ----------
- parr
- The name of the resulting array parameter. See ``*SET`` for name
- restrictions.
-
- part
- The name of the TABLE array parameter. The parameter must exist as
- a dimensioned array of type TABLE [``*DIM``].
-
- pari
- Array parameter vector of I (row) index values for interpolation in
- ParT.
-
- parj
- Array parameter vector of J (column) index values for interpolation
- in ParT (which must be at least 2-D).
-
- park
- Array parameter vector of K (depth) index values for interpolation
- in ParT (which must be 3-D).
-
- Notes
- -----
- Forms an array parameter (of type ``ARRAY``) by interpolating values of an
- array parameter (of type ``TABLE``) at specified table index locations
- according to:
-
- ``ParR = f(ParT, Parl, ParJ, ParK)``
-
- where ``ParT`` is the type ``TABLE`` array parameter, and ``ParI``, ``ParJ``, ``ParK`` are
- the type ``ARRAY`` array parameter vectors of index values for
- interpolation in ``ParT``. See the ``*DIM`` command for ``TABLE`` and ``ARRAY``
- declaration types. Linear interpolation is used. The starting array
- element number for the ``TABLE`` array (``ParT``) is not used (but a value must
- be input). Starting array element numbers must be defined for each
- array parameter vector if it does not start at the first location. For
- example, ``*VITRP,R(5),TAB(1,1),X(2),Y(4)`` uses the second element of X
- and the fourth element of Y as index values (row and column) for a 2-D
- interpolation in ``TAB`` and stores the result in the fifth element of R.
- Operations continue on successive array elements ``[*VLEN, *VMASK]`` with
- the default being all successive elements. Absolute values and scale
- factors may be applied to the result parameter ``[*VABS, *VFACT]``.
- Results may be cumulative ``[*VCUM]``. See the ``*VOPER`` command for details.
-
- This command is valid in any processor.
- """
- command = f"*VITRP,{parr},{part},{pari},{parj},{park}"
- return self.run(command, **kwargs)
-
- def vlen(self, nrow="", ninc="", **kwargs):
- """Specifies the number of rows to be used in array parameter operations.
-
- APDL Command: ``*VLEN``
-
- Parameters
- ----------
- nrow
- Number of rows to be used with the ``*VXX`` or ``*MXX`` operations.
- Defaults to the number of rows needed to fill the result array.
-
- ninc
- Perform the operation on every NINC row (defaults to 1).
-
- Notes
- -----
- Specifies the number of rows to be used in array parameter operations.
- The size of the submatrix used is determined from the upper left
- starting array element (defined on the operation command) to the lower
- right array element (defined by the number of rows on this command and
- the number of columns on the ``*VCOL`` command). ``NINC`` allows skipping row
- operations for some operation commands. Skipped rows are included in
- the row count. The starting row number must be defined on the
- operation command for each parameter read and for the result written.
-
- The default ``NROW`` is calculated from the maximum number of rows of the
- result array (the ``*DIM`` row dimension) minus the starting location + 1.
- For example, ``*DIM,R,,10`` and a starting location of ``R(7)`` gives a default
- of 4 loops (filling ``R(7)``, ``R(8)``, ``R(9)``, and ``R(10)``). Repeat operations
- automatically terminate at the last row of the result array. Existing
- values in the rows and columns of the results matrix remain unchanged
- where not overwritten by the requested input or operation values.
-
- The stride (``NINC``) allows operations to be performed at regular
- intervals. It has no effect on the total number of row operations.
- Skipped operations retain the previous result. For example, ``*DIM,R,,6,``
- with a starting location of ``R(1)``, ``NROW = 10``, and ``NINC = 2`` calculates
- values for locations ``R(1)``, ``R(3)``, and ``R(5)`` and retains values for
- locations ``R(2)``, ``R(4)``, and ``R(6)``. A more general skip control may be
- done by masking ``[*VMASK]``. The row control settings are reset to the
- defaults after each ``*VXX`` or ``*MXX`` operation. Use ``*VSTAT`` to list
- settings.
-
- This command is valid in any processor.
- """
- command = f"*VLEN,{nrow},{ninc}"
- return self.run(command, **kwargs)
-
- def vmask(self, par="", **kwargs):
- """Specifies an array parameter as a masking vector.
-
- APDL Command: ``*VMASK``
-
- Parameters
- ----------
- par
- Name of the mask parameter. The starting subscript must also be
- specified.
-
- Notes
- -----
- Specifies the name of the parameter whose values are to be checked for
- each resulting row operation. The mask vector usually contains only 0
- (for false) and 1 (for true) values. For each row operation the
- corresponding mask vector value is checked. A true value allows the
- operation to be done. A false value skips the operation (and retains
- the previous results). A mask vector can be created from direct input,
- such as ``M(1) = 1,0,0,1,1,0,1``; or from the DATA function of the ``*VFILL``
- command. The NOT function of the ``*VFUN`` command can be used to reverse
- the logical sense of the mask vector. The logical compare operations
- (``LT``, ``LE``, ``EQ``, ``NE``, ``GE``, and ``GT``) of
- the ``*VOPER`` command also produce a mask
- vector by operating on two other vectors. Any numeric vector can be
- used as a mask vector since the actual interpretation assumes values
- less than 0.0 are 0.0 (false) and values greater than 0.0 are 1.0
- (true). If the mask vector is not specified (or has fewer values than
- the result vector), true (1.0) values are assumed for the unspecified
- values. Another skip control may be input with ``NINC`` on the ``*VLEN``
- command. If both are present, operations occur only when both are
- true. The mask setting is reset to the default (no mask) after each
- ``*VXX`` or ``*MXX`` operation. Use ``*VSTAT`` to list settings.
-
- This command is valid in any processor.
- """
- command = f"*VMASK,{par}"
- return self.run(command, **kwargs)
-
- def voper(self, parr="", par1="", oper="", par2="", con1="", con2="", **kwargs):
- """Operates on two array parameters.
-
- APDL Command: ``*VOPER``
-
- Parameters
- ----------
- PARR
- The name of the resulting array parameter vector. See ``*SET`` for
- name restrictions.
-
- PAR1
- First array parameter vector in the operation. May also be a
- scalar parameter or a literal constant.
-
- OPER
- Operations:
-
- * ``ADD``
- Addition: ``Par1+Par2``.
-
- * ``SUB``
- Subtraction: ``Par1-Par2``.
-
- * ``MULT``
- Multiplication: ``Par1*Par2``.
-
- * ``DIV``
- Division: ``Par1/Par2`` (a divide by zero results in a value of zero).
-
- * ``MIN``
- Minimum: minimum of ``Par1`` and ``Par2``.
-
- * ``MAX``
- Maximum: maximum of ``Par1`` and ``Par2``.
-
- * ``LT``
- Less than comparison: ``Par1= Par2`` gives 1.0 if
- true, 0.0 if false.
-
- * ``GT``
- Greater than comparison: ``Par1>Par2``
- gives 1.0 if true, 0.0 if false.
-
- * ``DER``
- First derivative:
-
- .. math::
-
- \\dfrac{\\mathrm{d}(\\mathrm{Par1})}{\\mathrm{d}(\\mathrm{Par2})}
-
- The derivative at a point is determined over points
- half way between the previous and next points
- (by linear interpolation).
- ``Par1`` must be a function (a unique ``Par1``
- value for each ``Par2``
- value) and ``Par2`` must be in ascending order.
-
- * ``DER2``
- Second derivative:
-
- .. math::
-
- \\dfrac{\\mathrm{d}^2(\\mathrm{Par1})}{\\mathrm{d}(\\mathrm{Par2})^2}
-
- See also ``DER1``.
-
- * ``INT1``
- Single integral:
-
- .. math::
-
- \\int Par1 \\, d(Par2)
-
- where ``CON1`` is the integration constant.
- The integral at a point is
- determined by using the single integration procedure
- described in the Mechanical APDL Theory Reference.
-
- * ``INT2``
- Double integral:
-
- .. math::
-
- \\iint Par1 \\, d(Par2)
-
- where ``CON1`` is the integration constant of the first
- integral and ``CON2`` is the integration constant
- of the second integral. If ``Par1``
- contains acceleration data, ``CON1`` is the initial velocity
- and ``CON2`` is the initial displacement. See also ``INT1``.
-
- * ``DOT``
- Dot product: ``Par1 . Par2``.
- ``Par1`` and ``Par2`` must each have
- three consecutive columns of data, with the columns
- containing the ``i``, ``j``, and ``k`` vector components,
- respectively. Only the starting row index and the column
- index for the ``i`` components are specified for ``Par1`` and
- ``Par2``, such as ``A(1,1)``. The ``j`` and ``k`` components of the
- vector are assumed to begin in the corresponding next
- columns, such as ``A(1,2)`` and ``A(1,3)``.
-
- * ``CROSS``
- Cross product: ``Par1 x Par2``.
- ``Par1``, ``Par2``, and ``ParR`` must each have 3 components,
- respectively. Only the starting row index and the column
- index for the i components are specified for ``Par1``, ``Par2``,
- and ``ParR``, such as ``A(1,1)``. The j and k components of the
- vector are assumed to begin in the corresponding next
- columns, such as ``A(1,2)`` and ``A(1,3)``.
-
- * ``GATH``
- Gather: For a vector of position numbers, ``Par2``, copy the
- value of ``Par1`` at each position number to ParR. Example:
- for ``Par1 = 10,20,30,40`` and ``Par2 = 2,4,1``; ``ParR =
- 20,40,10``.
-
- * ``SCAT``
- Scatter: Opposite of ``GATH`` operation. For a
- vector of position numbers, ``Par2``, copy the value of ``Par1``
- to that position number in ``ParR``. Example: for ``Par1 =
- 10,20,30,40,50`` and ``Par2 = 2,1,0,5,3``; ``ParR = 20,10,50,0,40``.
-
- * ``ATN2``
- Arctangent: arctangent of ``Par1/Par2`` with the sign of each
- component considered.
-
- * ``LOCAL``
- Transform the data in ``Par1`` from
- the global Cartesian coordinate system to the local
- coordinate system given in ``CON1``. ``Par1`` must be an ``N`` x 3
- (i.e., vector) or an ``N`` x 6 (i.e., stress or strain tensor)
- array. If the local coordinate system is a cylindrical,
- spherical, or toroidal system, then you must provide the
- global Cartesian coordinates in ``Par2`` as an ``N`` x 3 array.
- Set ``CON2 = 1`` if the data is strain data.
-
- * ``GLOBAL``
- Transform the data in ``Par1`` from the local coordinate system given in ``CON1`` to the global
- Cartesian coordinate system. ``Par1`` must be an ``N`` x 3 (that is, vector) or an ``N`` x 6 (that is,
- stress or strain tensor) array. If the local coordinate system is a cylindrical, spherical, or
- toroidal system, then you must provide the global Cartesian coordinates in ``Par2`` as an ``N``
- x 3 array. Set ``CON2 = 1`` if the data is strain data.
-
- PAR2
- Second array parameter vector in the operation. May also be a
- scalar parameter or a literal constant.
-
- CON1
- First constant (used only with the ``INT1`` and ``INT2`` operations).
-
- CON2
- Second constant (used only with the ``INT2`` operation).
-
- Notes
- -----
- Operates on two input array parameter vectors and produces one output
- array parameter vector according to:
-
- ``ParR = Par1 o Par2``
-
- where the operations (o) are described below. ParR may be the same as
- ``Par1`` or ``Par2``. Absolute values and scale factors may be applied to all
- parameters [``*VABS``, ``*VFACT``]. Results may be cumulative [``*VCUM``].
- Starting array element numbers must be defined for each array parameter
- vector if it does not start at the first location, such as
- ``*VOPER,A,B(5),ADD,C(3)`` which adds the third element of C to the fifth
- element of B and stores the result in the first element of A.
- Operations continue on successive array elements ``[*VLEN, *VMASK]`` with
- the default being all successive elements. Skipping array elements via
- ``*VMASK`` or ``*VLEN`` for the ``DER`` and ``INT`` functions skips only the writing
- of the results (skipped array element data are used in all
- calculations).
-
- Parameter functions and operations are available to operate on a scalar
- parameter or a single element of an array parameter, such as ``SQRT(B)`` or
- ``SQRT(A(4))``. See the ``*SET`` command for details. Operations on a
- sequence of array elements can be done by repeating the desired
- function or operation in a do-loop ``[*DO]``. The vector operations within
- the ANSYS program (``*VXX`` commands) are internally programmed do-loops
- that conveniently perform the indicated operation over a sequence of
- array elements. If the array is multidimensional, only the first
- subscript is incremented in the do-loop, that is, the operation repeats
- in column vector fashion "down" the array. For example, for ``A(1,5)``,
- ``A(2,5)``, ``A(3,5)``, etc. The starting location of the row index must be
- defined for each parameter read and for the result written.
-
- The default number of loops is from the starting result location to the
- last result location and can be altered with the ``*VLEN`` command. A
- logical mask vector may be defined to control at which locations the
- operations are to be skipped [``*VMASK``]. The default is to skip no
- locations. Repeat operations automatically terminate at the last array
- element of the result array column if the number of loops is undefined
- or if it exceeds the last result array element. Zeroes are used in
- operations for values read beyond the last array element of an input
- array column. Existing values in the rows and columns of the results
- matrix
- """
- command = f"*VOPER,{parr},{par1},{oper},{par2},{con1},{con2}"
- return self.run(command, **kwargs)
-
- def vscfun(self, parr="", func="", par1="", **kwargs):
- """Determines properties of an array parameter.
-
- APDL Command: ``*VSCFUN``
-
- Parameters
- ----------
- parr
- The name of the resulting scalar parameter. See ``*SET`` for name
- restrictions.
-
- func
- Functions:
-
- * ``MAX``
- Maximum: the maximum ``Par1`` array element value.
-
- * ``MIN``
- Minimum: the minimum ``Par1`` array element value.
-
- * ``LMAX``
- Index location of the maximum ``Par1`` array element value.
- Array ``Par1`` is searched starting from its specified
- index.
-
- * ``LMIN``
- Index location of the minimum ``Par1`` array element
- value. Array ``Par1`` is searched starting from its specified
- index.
-
- * ``FIRST``
- Index location of the first nonzero value in array ``Par1``.
- Array ``Par1`` is searched starting from its specified
- index.
-
- * ``LAST``
- Index location of the last nonzero value in array
- ``Par1``. Array ``Par1`` is searched starting from its specified
- index.
-
- * ``SUM``
- Sum: ``Par1`` (the summation of the ``Par1`` array element
- values).
-
- * ``MEDI``
- Median: value of ``Par1`` at which there are an
- equal number of values above and below.
-
- * ``MEAN``
- Mean: ``(σ Par1)/NUM``, where ``NUM`` is the number of summed
- values.
-
- * ``VARI``
- Variance: ``(σ ((Par1-MEAN)**2))/NUM``.
-
- * ``STDV``
- Standard deviation: square root of ``VARI``.
-
- * ``RMS``
- Root-mean-square: square root of ``(σ (Par1**2))/NUM``.
-
- * ``NUM``
- Number: the number of summed values (masked values are not counted).
-
- par1
- Array parameter vector in the operation.
-
- Notes
- -----
- Operates on one input array parameter vector and produces one output
- scalar parameter according to:
-
- ``ParR = f(Par1)``
-
- where the functions (f) are described below. The starting array element
- number must be defined for the array parameter vector. For example,
- ``*VSCFUN,MU,MEAN,A(1)`` finds the mean of the ``A`` vector values, starting
- from the first value and stores the result as parameter ``MU``. Operations
- use successive array elements ``[*VLEN, *VMASK]`` with the default being
- all successive array elements. Absolute values and scale factors may
- be applied to all parameters ``[*VABS, *VFACT]``. Results may be
- cumulative ``[*VCUM]``. See the ``*VOPER`` command for details.
-
- This command is valid in any processor.
- """
- command = f"*VSCFUN,{parr},{func},{par1}"
- return self.run(command, **kwargs)
-
- def vstat(self, **kwargs):
- """Lists the current specifications for the array parameters.
-
- APDL Command: ``*VSTAT``
-
- Notes
- -----
- Lists the current specifications for the ``*VABS``, ``*VCOL``,
- ``*VCUM``, ``*VFACT``, ``*VLEN``, and ``*VMASK`` commands.
-
- This command is valid in any processor.
- """
- command = f"*VSTAT,"
- return self.run(command, **kwargs)
-
- def vwrite(
- self,
- par1="",
- par2="",
- par3="",
- par4="",
- par5="",
- par6="",
- par7="",
- par8="",
- par9="",
- par10="",
- par11="",
- par12="",
- par13="",
- par14="",
- par15="",
- par16="",
- par17="",
- par18="",
- par19="",
- **kwargs,
- ):
- """Writes data to a file in a formatted sequence.
-
- APDL Command: ``*VWRITE``
-
- .. warning::
- This command cannot be run interactively. See
- :func:`non_interactive `.
-
- Parameters
- ----------
- par1, par2, par3, . . . , par19
- You can write up to 19 parameters (or constants) at a time. Any Par
- values after a blank Par value are ignored. If you leave them all
- blank, one line will be written (to write a title or a blank line).
- If you input the keyword SEQU, a sequence of numbers (starting from
- 1) will be written for that item.
-
- Notes
- -----
- You use ``*VWRITE`` to write data to a file in a formatted sequence. Data
- items (Par1, Par2, etc.) may be array parameters, scalar parameters,
- character parameters (scalar or array), or constants. You must
- evaluate expressions and functions in the data item fields before using
- the ``*VWRITE`` command, since initially they will be evaluated to a
- constant and remain constant throughout the operation. Unless a file
- is defined with the ``*CFOPEN`` command, data is written to the standard
- output file. Data written to the standard output file may be diverted
- to a different file by first switching the current output file with the
- /OUTPUT command. You can also use the ``*MWRITE`` command to write data to
- a specified file. Both commands contain format descriptors on the line
- immediately following the command. The format descriptors can be in
- either Fortran or C format.
-
- You must enclose Fortran format descriptors in parentheses. They must
- immediately follow the ``*VWRITE`` command on a separate line of the same
- input file. Do not include the word FORMAT. The format must specify
- the number of fields to be written per line, the field width, the
- placement of the decimal point, etc. You should use one field
- descriptor for each data item written. The write operation uses your
- system's available FORTRAN FORMAT conventions (see your system FORTRAN
- manual). You can use any standard FORTRAN real format (such as
- (4F6.0), (E10.3,2X,D8.2), etc.) and alphanumeric format (A).
- Alphanumeric strings are limited to a maximum of 8 characters for any
- field (A8) using the Fortran format. Use the "C" format for string
- arrays larger than 8 characters. Integer (I) and list-directed (*)
- descriptors may not be used. You can include text in the format as a
- quoted string. The parentheses must be included in the format and the
- format must not exceed 80 characters (including parentheses). The
- output line length is limited to 128 characters.
-
- The "C" format descriptors are used if the first character of the
- format descriptor line is not a left parenthesis. "C" format
- descriptors are up to 80 characters long, consisting of text strings
- and predefined "data descriptors" between the strings where numeric or
- alphanumeric character data will be inserted. The normal descriptors
- are %I for integer data, %G for double precision data, %C for
- alphanumeric character data, and %/ for a line break. There must be one
- data descriptor for each specified value (8 maximum) in the order of
- the specified values. The enhanced formats described in ``*MSG`` may also
- be used.
-
- For array parameter items, you must define the starting array
- element number. Looping continues (incrementing the vector
- index number of each array parameter by one) each time you
- output a line, until the maximum array vector element is
- written. For example, ``*VWRITE,A(1)`` followed by (F6.0)
- will write one value per output line, i.e., A(1), A(2), A(3),
- A(4), etc. You write constants and scalar parameters with the
- same values for each loop. You can also control the number of
- loops and loop skipping with the ``*VLEN`` and ``*VMASK``
- commands. The vector specifications ``*VABS``, ``*VFACT``,
- and ``*VCUM`` do not apply to this command. If looping
- continues beyond the supplied data array's length, zeros will
- be output for numeric array parameters and blanks for
- character array parameters. For multi-dimensioned array
- parameters, only the first (row) subscript is incremented.
- See the ``*VOPER`` command for details. If you are in the GUI,
- the ``*VWRITE`` command must be contained in an externally
- prepared file and read into ANSYS (i.e., ``*USE``, /INPUT, etc.).
-
- This command is valid in any processor.
-
- """
- command = f"*VWRITE,{par1},{par2},{par3},{par4},{par5},{par6},{par7},{par8},{par9},{par10},{par11},{par12},{par13},{par14},{par15},{par16},{par17},{par18},{par19}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/apdl/array_parameters.py b/src/ansys/mapdl/core/_commands/apdl/array_parameters.py
new file mode 100644
index 00000000000..fc901da7f31
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/apdl/array_parameters.py
@@ -0,0 +1,2579 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class ArrayParameters:
+
+ def mfouri(
+ self,
+ oper: str = "",
+ coeff: str = "",
+ mode: str = "",
+ isym: str = "",
+ theta: str = "",
+ curve: str = "",
+ **kwargs,
+ ):
+ r"""Calculates the coefficients for, or evaluates, a Fourier series.
+
+ Mechanical APDL Command: `\*MFOURI `_
+
+ Parameters
+ ----------
+ oper : str
+ Type of Fourier operation:
+
+ * ``FIT`` - Calculate Fourier coefficients ``COEFF`` from ``MODE``, ``ISYM``, ``THETA``, and
+ ``CURVE``.
+
+ * ``EVAL`` - Evaluate the Fourier curve ``CURVE`` from ``COEFF``, ``MODE``, ``ISYM`` and ``THETA``
+
+ coeff : str
+ Name of the array parameter vector containing the Fourier coefficients (calculated if ``Oper`` =
+ FIT, required as input if ``Oper`` = EVAL). See :ref:`starset` for name restrictions.
+
+ mode : str
+ Name of the array parameter vector containing the mode numbers of the desired Fourier terms.
+
+ isym : str
+ Name of the array parameter vector containing the symmetry key for the corresponding Fourier terms.
+ The vector should contain keys for each term as follows:
+
+ * ``0 or 1`` - Symmetric (cosine) term
+
+ * ``-1`` - Antisymmetric (sine) term.
+
+ theta : str
+ Names of the array parameter vectors containing the theta vs. curve description, respectively.
+ Theta values should be input in degrees. If ``Oper`` = FIT, one curve value should be supplied
+ with each theta value. If ``Oper`` = EVAL, one curve value will be calculated for each theta
+ value.
+
+ curve : str
+ Names of the array parameter vectors containing the theta vs. curve description, respectively.
+ Theta values should be input in degrees. If ``Oper`` = FIT, one curve value should be supplied
+ with each theta value. If ``Oper`` = EVAL, one curve value will be calculated for each theta
+ value.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MFOURI_argdescript:
+
+ * ``oper : str`` - Type of Fourier operation:
+
+ * ``FIT`` - Calculate Fourier coefficients ``COEFF`` from ``MODE``, ``ISYM``, ``THETA``, and
+ ``CURVE``.
+
+ * ``EVAL`` - Evaluate the Fourier curve ``CURVE`` from ``COEFF``, ``MODE``, ``ISYM`` and ``THETA``
+
+ * ``coeff : str`` - Name of the array parameter vector containing the Fourier coefficients
+ (calculated if ``Oper`` = FIT, required as input if ``Oper`` = EVAL). See :ref:`starset` for name
+ restrictions.
+
+ * ``mode : str`` - Name of the array parameter vector containing the mode numbers of the desired
+ Fourier terms.
+
+ * ``isym : str`` - Name of the array parameter vector containing the symmetry key for the
+ corresponding Fourier terms.
+ The vector should contain keys for each term as follows:
+
+ * ``0 or 1`` - Symmetric (cosine) term
+
+ * ``-1`` - Antisymmetric (sine) term.
+
+ * ``theta, curve : str`` - Names of the array parameter vectors containing the theta vs. curve
+ description, respectively. Theta values should be input in degrees. If ``Oper`` = FIT, one curve
+ value should be supplied with each theta value. If ``Oper`` = EVAL, one curve value will be
+ calculated for each theta value.
+
+ .. _a-MFOURI_notes:
+
+ Calculates the coefficients of a Fourier series for a given curve, or evaluates the Fourier curve
+ from the given (or previously calculated) coefficients. The lengths of the ``COEFF``, ``MODE``, and
+ ``ISYM`` vectors must be the same--typically two times the number of modes desired, since two terms
+ (sine and cosine) are generally required for each mode. The lengths of the ``CURVE`` and ``THETA``
+ vectors should be the same or the smaller of the two will be used. There should be a sufficient
+ number of points to adequately define the curve--at least two times the number of coefficients. A
+ starting array element number (1) must be defined for each array parameter vector. The vector
+ specifications :ref:`vlen`, :ref:`vcol`, :ref:`vabs`, :ref:`vfact`, and :ref:`vcum` do not apply to
+ this command. Array elements should not be skipped with the :ref:`vmask` and the ``NINC`` value of
+ the :ref:`vlen` specifications. The vector being calculated ( ``COEFF`` if ``Oper`` is FIT, or
+ ``CURVE`` if ``Oper`` is EVAL) must exist as a dimensioned array ( :ref:`dim` ).
+
+ This command is valid in any processor.
+ """
+ command = f"*MFOURI,{oper},{coeff},{mode},{isym},{theta},{curve}"
+ return self.run(command, **kwargs)
+
+ def mfun(self, parr: str = "", func: str = "", par1: str = "", **kwargs):
+ r"""Copies or transposes an array parameter matrix.
+
+ Mechanical APDL Command: `\*MFUN `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting array parameter matrix. See :ref:`starset` for name restrictions.
+
+ func : str
+ Copy or transpose function:
+
+ * ``COPY`` - ``Par1`` is copied to ``ParR``
+
+ * ``TRAN`` - ``Par1`` is transposed to ``ParR``. Rows (m) and columns (n) of ``Par1`` matrix are
+ transposed to resulting ``ParR`` matrix of shape (n,m).
+
+ par1 : str
+ Array parameter matrix input to the operation.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MFUN_argdescript:
+
+ * ``parr : str`` - The name of the resulting array parameter matrix. See :ref:`starset` for name
+ restrictions.
+
+ * ``func : str`` - Copy or transpose function:
+
+ * ``COPY`` - ``Par1`` is copied to ``ParR``
+
+ * ``TRAN`` - ``Par1`` is transposed to ``ParR``. Rows (m) and columns (n) of ``Par1`` matrix are
+ transposed to resulting ``ParR`` matrix of shape (n,m).
+
+ * ``par1 : str`` - Array parameter matrix input to the operation.
+
+ .. _a-MFUN_notes:
+
+ Operates on one input array parameter matrix and produces one output array parameter matrix
+ according to: ``ParR`` = f( ``Par1`` )
+
+ where the function (f) is either a copy or transpose, as described above.
+
+ Functions are based on the standard FORTRAN definitions where possible. ``ParR`` may be the same as
+ ``Par1``. Starting array element numbers must be defined for each array parameter matrix if it does
+ not start at the first location. For example, :ref:`mfun`,A(1,5),COPY,B(2,3) copies matrix B
+ (starting at element (2,3)) to matrix A (starting at element (1,5)). The diagonal corner elements
+ for each submatrix must be defined: the upper left corner by the array starting element (on this
+ command), the lower right corner by the current values from the :ref:`vcol` and :ref:`vlen`
+ commands. The default values are the (1,1) element and the last element in the matrix. No operations
+ progress across matrix planes (in the 3rd dimension). Absolute values and scale factors may be
+ applied to all parameters ( :ref:`vabs`, :ref:`vfact` ). Results may be cumulative ( :ref:`vcum` ).
+ Array elements should not be skipped with the :ref:`vmask` and the ``NINC`` value of the :ref:`vlen`
+ specifications. The number of rows ( :ref:`vlen` ) applies to the ``Par1`` array. See the
+ :ref:`voper` command for details.
+
+ This command is valid in any processor.
+ """
+ command = f"*MFUN,{parr},{func},{par1}"
+ return self.run(command, **kwargs)
+
+ def moper(
+ self,
+ parr: str = "",
+ par1: str = "",
+ oper: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ val6: str = "",
+ **kwargs,
+ ):
+ r"""Performs matrix operations on array parameter matrices.
+
+ Mechanical APDL Command: `\*MOPER `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting array parameter matrix. See :ref:`starset` for name restrictions.
+
+ par1 : str
+ First array parameter matrix input to the operation.
+
+ oper : str
+ Matrix operations. Usage of the ``Val1`` through ``Val6`` arguments varies for each operation, as
+ described below:
+
+ * ``INVERT`` - ( :ref:`moper`, ``ParR``, ``Par1``, INVERT)
+
+ Square matrix invert: Inverts the n x n matrix in Par1 into ParR. The matrix must be well
+ conditioned.
+
+ .. warning::
+
+ Non-independent or ill-conditioned equations can cause erroneous results.
+
+ For large matrices, use the APDL Math operation :ref:`lsfactor` for efficiency (see `APDL Math
+ `_
+
+ * ``MULT`` - ( :ref:`moper`, ``ParR``, ``Par1``, MULT, ``Par2`` )
+
+ Matrix multiply: Multiplies ``Par1`` by ``Par2``. The number of rows of ``Par2`` must equal the
+ number of columns of ``Par1`` for the operation. If ``Par2`` is input with a number of rows greater
+ than the number of columns of ``Par1``, matrices are still multiplied. However, the operation only
+ uses a number of rows of ``Par2`` equal to the number of columns of ``Par1``.
+
+ * ``COVAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, COVAR, ``Par2`` )
+
+ Covariance: The measure of association between columns of the ``Par1`` input matrix. ``Par1`` of
+ size m runs (rows) by n data (columns) is first processed to produce a row vector containing the
+ mean of each column, which is transposed to the output column vector ``Par2`` of n array elements.
+ The ``Par1`` and ``Par2`` operation then produces ``ParR``, a resulting n x n matrix of covariances
+ (with the variances as the diagonal terms).
+
+ * ``CORR`` - ( :ref:`moper`, ``ParR``, ``Par1``, CORR, ``Par2`` )
+
+ Correlation: The correlation coefficient between columns of the ``Par1`` input matrix. ``Par1`` of
+ size m runs (rows) by n data (columns) is first processed to produce a row vector containing the
+ mean of each column, which is then transposed to the output column vector ``Par2`` of n array
+ elements. The ``Par1`` and ``Par2`` operation then produces ``ParR``, a resulting n x n matrix of
+ correlation coefficients (with a value of 1.0 for the diagonal terms).
+
+ * ``SOLV`` - ( :ref:`moper`, ``ParR``, ``Par1``, SOLV, ``Par2`` )
+
+ Solution of simultaneous equations: Solves the set of ``n`` equations of ``n`` terms of the form
+ a:sub:`n1` x:sub:`1` + a:sub:`n2` x:sub:`2` + :sup:`...` + a:sub:`nn` x:sub:`n` = b:sub:`n` where
+ ``Par1`` contains the matrix of a-coefficients, ``Par2`` contains the vector(s) of b-values, and
+ ``ParR`` contains the vector(s) of x-results. ``Par1`` must be a square matrix. The equations must
+ be linear, independent, and well conditioned.
+
+ .. warning::
+
+ Non-independent or ill-conditioned equations can cause erroneous results.
+
+ For large matrices, use the APDL Math operation :ref:`lsfactor` for efficiency (see `APDL Math
+ `_
+
+ * ``SORT`` - ( :ref:`moper`, ``ParR``, ``Par1``, SORT, ``Par2``, ``n1``, ``n2``, ``n3`` )
+
+ Matrix sort: Sorts the columns of matrix ``Par1`` according to sort vector ``Par2`` and places the
+ result back into ``Par1``. Rows of ``Par1`` are moved to the corresponding positions indicated by
+ the values of ``Par2``. ``Par2`` may be a column of ``Par1`` (in which case it will also be
+ reordered). Alternatively, you may specify the column of ``Par1`` to sort using ``n1`` (leaving
+ ``Par2`` blank). A secondary sort can be specified by column ``n2``, and a third sort using column
+ ``n3``. ``ParR`` is the vector of initial row positions (the permutation vector). Sorting ``Par1``
+ according to ``ParR`` should reproduce the initial ordering.
+
+ * ``NNEAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, NNEAR, ``Toler`` )
+
+ Nearest Node: Finds the nodes nearest to the given set of points in ``Par1``, where ``Par1`` is an n
+ x 3 array of coordinate locations. ``ParR`` is a vector of the nearest selected nodes, or 0 if no
+ nodes are nearer than ``Toler``. ``Toler`` defaults to 1 and is limited to the maximum model size.
+
+ * ``ENEAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, ENEAR, ``Toler`` )
+
+ Nearest Element: Finds the elements nearest to the given set of points in ``Par1``, where ``Par1``
+ is an n x 3 array of coordinate locations. ``ParR`` is a vector of the nearest selected elements, or
+ 0 if no element centroids are nearer than ``Toler``. ``Toler`` defaults to 1 and is limited to the
+ maximum model size.
+
+ * ``MAP`` - ( :ref:`moper`, ``ParR``, ``Par1``, MAP, ``Par2``, ``Par3``, ``kDim``, ``--``, ``kOut``,
+ ``LIMIT`` )
+
+ Maps the results from one set of points to another. For example, you can map pressures from a CFD
+ analysis onto your model for a structural analysis.
+
+ ``Par1`` is the Nout x 3 array of points that will be mapped to. ``Par2`` is the Nin x M array that
+ contains M values of data to be interpolated at each point and corresponds to the Nin x 3 points in
+ ``Par3``. The resulting ``ParR`` is the Nout x M array of mapped data points.
+
+ For each point in the destination mesh, all possible triangles in the source mesh are searched to
+ find the best triangle containing each point. It then does a linear interpolation inside this
+ triangle. You should carefully specify your interpolation method and search criteria in order to
+ provide faster and more accurate results (see ``LIMIT``, below).
+
+ ``kDim`` is the interpolation criteria. If ``kDim`` = 2 or 0, two dimensional interpolation is
+ applied (interpolate on a surface). If ``kDim`` = 3, three dimensional interpolation is applied
+ (interpolate on a volume).
+
+ ``kOut`` specified how points outside of the domain are handled. If ``kOut`` = 0, use the value(s)
+ of the nearest region point for points outside of the region. If ``kOut`` = 1, set results outside
+ of the region to zero.
+
+ ``LIMIT`` specifies the number of nearby points considered for interpolation. The default is 20, and
+ the minimum is 5. Lower values will reduce processing time; however, some distorted or irregular
+ sets of points will require a higher ``LIMIT`` value to encounter three nodes for triangulation.
+
+ Output points are incorrect if they are not within the domain (area or volume) defined by the
+ specified input points. Also, calculations for out-of-bound points require much more processing time
+ than do points that are within bounds. Results mapping is available from the command line only.
+
+ * ``INTP`` - ( :ref:`moper`, ``ParR``, ``Par1``, INTP, ``Par2`` )
+
+ Finds the elements that contain each point in the array of n x 3 points in ``Par1``. ``Par2`` will
+ contain the set of element ID numbers and ``ParR`` will contain their n x 3 set of natural element
+ coordinates (values between -1 and 1). ``Par1`` must be in global Cartesian coordinates.
+
+ * ``SGET`` - ( :ref:`moper`, ``ParR``, ``Par1``, SGET, ``Par2``, ``Label``, ``Comp`` )
+
+ Gets the nodal solution item corresponding to ``Label`` and ``Comp`` (see the :ref:`plnsol` command)
+ and interpolates it to the given element locations. ``Par1`` contains the n x 3 array of natural
+ element coordinates (values between -1 and 1) of the n element ID numbers in ``Par2``. ``Par1`` and
+ ``Par2`` are usually the output of the :ref:`moper`,,,INTP operation. ``ParR`` contains the n
+ interpolated results.
+
+ val1 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ val2 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ val3 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ val4 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ val5 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ val6 : str
+ Additional input used in the operation. The meanings of ``Val1`` through ``Val6`` vary depending
+ on the specified matrix operation. See the description of ``Oper`` for details.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MOPER_argdescript:
+
+ * ``parr : str`` - The name of the resulting array parameter matrix. See :ref:`starset` for name
+ restrictions.
+
+ * ``par1 : str`` - First array parameter matrix input to the operation.
+
+ * ``oper : str`` - Matrix operations. Usage of the ``Val1`` through ``Val6`` arguments varies for
+ each operation, as
+ described below:
+
+ * ``INVERT`` - ( :ref:`moper`, ``ParR``, ``Par1``, INVERT)
+
+ Square matrix invert: Inverts the n x n matrix in Par1 into ParR. The matrix must be well
+ conditioned.
+
+ .. warning::
+
+ Non-independent or ill-conditioned equations can cause erroneous results.
+
+ For large matrices, use the APDL Math operation :ref:`lsfactor` for efficiency (see `APDL Math
+ `_
+
+ * ``MULT`` - ( :ref:`moper`, ``ParR``, ``Par1``, MULT, ``Par2`` )
+
+ Matrix multiply: Multiplies ``Par1`` by ``Par2``. The number of rows of ``Par2`` must equal the
+ number of columns of ``Par1`` for the operation. If ``Par2`` is input with a number of rows greater
+ than the number of columns of ``Par1``, matrices are still multiplied. However, the operation only
+ uses a number of rows of ``Par2`` equal to the number of columns of ``Par1``.
+
+ * ``COVAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, COVAR, ``Par2`` )
+
+ Covariance: The measure of association between columns of the ``Par1`` input matrix. ``Par1`` of
+ size m runs (rows) by n data (columns) is first processed to produce a row vector containing the
+ mean of each column, which is transposed to the output column vector ``Par2`` of n array elements.
+ The ``Par1`` and ``Par2`` operation then produces ``ParR``, a resulting n x n matrix of covariances
+ (with the variances as the diagonal terms).
+
+ * ``CORR`` - ( :ref:`moper`, ``ParR``, ``Par1``, CORR, ``Par2`` )
+
+ Correlation: The correlation coefficient between columns of the ``Par1`` input matrix. ``Par1`` of
+ size m runs (rows) by n data (columns) is first processed to produce a row vector containing the
+ mean of each column, which is then transposed to the output column vector ``Par2`` of n array
+ elements. The ``Par1`` and ``Par2`` operation then produces ``ParR``, a resulting n x n matrix of
+ correlation coefficients (with a value of 1.0 for the diagonal terms).
+
+ * ``SOLV`` - ( :ref:`moper`, ``ParR``, ``Par1``, SOLV, ``Par2`` )
+
+ Solution of simultaneous equations: Solves the set of ``n`` equations of ``n`` terms of the form
+ a:sub:`n1` x:sub:`1` + a:sub:`n2` x:sub:`2` + :sup:`...` + a:sub:`nn` x:sub:`n` = b:sub:`n` where
+ ``Par1`` contains the matrix of a-coefficients, ``Par2`` contains the vector(s) of b-values, and
+ ``ParR`` contains the vector(s) of x-results. ``Par1`` must be a square matrix. The equations must
+ be linear, independent, and well conditioned.
+
+ .. warning::
+
+ Non-independent or ill-conditioned equations can cause erroneous results.
+
+ For large matrices, use the APDL Math operation :ref:`lsfactor` for efficiency (see `APDL Math
+ `_
+
+ * ``SORT`` - ( :ref:`moper`, ``ParR``, ``Par1``, SORT, ``Par2``, ``n1``, ``n2``, ``n3`` )
+
+ Matrix sort: Sorts the columns of matrix ``Par1`` according to sort vector ``Par2`` and places the
+ result back into ``Par1``. Rows of ``Par1`` are moved to the corresponding positions indicated by
+ the values of ``Par2``. ``Par2`` may be a column of ``Par1`` (in which case it will also be
+ reordered). Alternatively, you may specify the column of ``Par1`` to sort using ``n1`` (leaving
+ ``Par2`` blank). A secondary sort can be specified by column ``n2``, and a third sort using column
+ ``n3``. ``ParR`` is the vector of initial row positions (the permutation vector). Sorting ``Par1``
+ according to ``ParR`` should reproduce the initial ordering.
+
+ * ``NNEAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, NNEAR, ``Toler`` )
+
+ Nearest Node: Finds the nodes nearest to the given set of points in ``Par1``, where ``Par1`` is an n
+ x 3 array of coordinate locations. ``ParR`` is a vector of the nearest selected nodes, or 0 if no
+ nodes are nearer than ``Toler``. ``Toler`` defaults to 1 and is limited to the maximum model size.
+
+ * ``ENEAR`` - ( :ref:`moper`, ``ParR``, ``Par1``, ENEAR, ``Toler`` )
+
+ Nearest Element: Finds the elements nearest to the given set of points in ``Par1``, where ``Par1``
+ is an n x 3 array of coordinate locations. ``ParR`` is a vector of the nearest selected elements, or
+ 0 if no element centroids are nearer than ``Toler``. ``Toler`` defaults to 1 and is limited to the
+ maximum model size.
+
+ * ``MAP`` - ( :ref:`moper`, ``ParR``, ``Par1``, MAP, ``Par2``, ``Par3``, ``kDim``, ``--``, ``kOut``,
+ ``LIMIT`` )
+
+ Maps the results from one set of points to another. For example, you can map pressures from a CFD
+ analysis onto your model for a structural analysis.
+
+ ``Par1`` is the Nout x 3 array of points that will be mapped to. ``Par2`` is the Nin x M array that
+ contains M values of data to be interpolated at each point and corresponds to the Nin x 3 points in
+ ``Par3``. The resulting ``ParR`` is the Nout x M array of mapped data points.
+
+ For each point in the destination mesh, all possible triangles in the source mesh are searched to
+ find the best triangle containing each point. It then does a linear interpolation inside this
+ triangle. You should carefully specify your interpolation method and search criteria in order to
+ provide faster and more accurate results (see ``LIMIT``, below).
+
+ ``kDim`` is the interpolation criteria. If ``kDim`` = 2 or 0, two dimensional interpolation is
+ applied (interpolate on a surface). If ``kDim`` = 3, three dimensional interpolation is applied
+ (interpolate on a volume).
+
+ ``kOut`` specified how points outside of the domain are handled. If ``kOut`` = 0, use the value(s)
+ of the nearest region point for points outside of the region. If ``kOut`` = 1, set results outside
+ of the region to zero.
+
+ ``LIMIT`` specifies the number of nearby points considered for interpolation. The default is 20, and
+ the minimum is 5. Lower values will reduce processing time; however, some distorted or irregular
+ sets of points will require a higher ``LIMIT`` value to encounter three nodes for triangulation.
+
+ Output points are incorrect if they are not within the domain (area or volume) defined by the
+ specified input points. Also, calculations for out-of-bound points require much more processing time
+ than do points that are within bounds. Results mapping is available from the command line only.
+
+ * ``INTP`` - ( :ref:`moper`, ``ParR``, ``Par1``, INTP, ``Par2`` )
+
+ Finds the elements that contain each point in the array of n x 3 points in ``Par1``. ``Par2`` will
+ contain the set of element ID numbers and ``ParR`` will contain their n x 3 set of natural element
+ coordinates (values between -1 and 1). ``Par1`` must be in global Cartesian coordinates.
+
+ * ``SGET`` - ( :ref:`moper`, ``ParR``, ``Par1``, SGET, ``Par2``, ``Label``, ``Comp`` )
+
+ Gets the nodal solution item corresponding to ``Label`` and ``Comp`` (see the :ref:`plnsol` command)
+ and interpolates it to the given element locations. ``Par1`` contains the n x 3 array of natural
+ element coordinates (values between -1 and 1) of the n element ID numbers in ``Par2``. ``Par1`` and
+ ``Par2`` are usually the output of the :ref:`moper`,,,INTP operation. ``ParR`` contains the n
+ interpolated results.
+
+ * ``val1, val2,..., val6 : str`` - Additional input used in the operation. The meanings of ``Val1``
+ through ``Val6`` vary depending on the specified matrix operation. See the description of ``Oper``
+ for details.
+
+ .. _a-MOPER_notes:
+
+ Each starting array element number must be defined for each array parameter matrix if it does not
+ start at the first location. For example, :ref:`moper`,A(2,3),B(1,4),MULT,C(1,5) multiplies
+ submatrix B (starting at element (1,4)) by submatrix C (starting at element (1,5)) and puts the
+ result in matrix A (starting at element (2,3)).
+
+ The diagonal corner elements for each submatrix must be defined: the upper left corner by the array
+ starting element (on this command), the lower right corner by the current values from the
+ :ref:`vcol` and :ref:`vlen` commands. The default values are the (1,1) element and the last element
+ in the matrix. No operations progress across matrix planes (in the 3rd dimension). Absolute values
+ and scale factors may be applied to all parameters ( :ref:`vabs`, :ref:`vfact` ). Results may be
+ cumulative ( :ref:`vcum` ). Array elements should not be skipped with the :ref:`vmask` and the
+ ``NINC`` value of the :ref:`vlen` specifications. See the :ref:`voper` command for details.
+
+ This command is valid in any processor.
+ """
+ command = (
+ f"*MOPER,{parr},{par1},{oper},{val1},{val2},{val3},{val4},{val5},{val6}"
+ )
+ return self.run(command, **kwargs)
+
+ def mwrite(
+ self,
+ parr: str = "",
+ fname: str = "",
+ ext: str = "",
+ label: str = "",
+ n1: str = "",
+ n2: str = "",
+ n3: str = "",
+ **kwargs,
+ ):
+ r"""Writes a matrix to a file in a formatted sequence.
+
+ Mechanical APDL Command: `\*MWRITE `_
+
+ .. warning::
+
+ This command must be run using :func:`non_interactive `.
+ Please visit `Unsupported Interactive Commands `_
+ for further information.
+
+ Parameters
+ ----------
+ parr : str
+ The name of the array parameter. See :ref:`starset` for name restrictions.
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. If the file name fields are left blank, the
+ default file is the current output file.
+
+ ext : str
+ Filename extension (eight-character maximum).
+
+ label : str
+ Can use a value of IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (JIK).
+
+ n1 : str
+ Write as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n1,``
+ ``n2,`` and ``n3`` default to the corresponding dimensions of the array parameter ParR.
+
+ n2 : str
+ Write as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n1,``
+ ``n2,`` and ``n3`` default to the corresponding dimensions of the array parameter ParR.
+
+ n3 : str
+ Write as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n1,``
+ ``n2,`` and ``n3`` default to the corresponding dimensions of the array parameter ParR.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MWRITE_argdescript:
+
+ * ``parr : str`` - The name of the array parameter. See :ref:`starset` for name restrictions.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. If the file name fields are left blank, the default
+ file is the
+ current output file.
+
+ * ``ext : str`` - Filename extension (eight-character maximum).
+ * ``label : str`` - Can use a value of IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (JIK).
+
+ * ``n1, n2, n3 : str`` - Write as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for
+ ``Label`` = KIJ. ``n1,`` ``n2,`` and ``n3`` default to the corresponding dimensions of the array
+ parameter ParR.
+
+ .. _a-MWRITE_notes:
+
+ Writes a matrix or vector to a specified file in a formatted sequence. You can also use the
+ :ref:`vwrite` command to write data to a specified file. Both commands contain format descriptors on
+ the line immediately following the command. The format descriptors can be in either FORTRAN or C
+ format.
+
+ FORTRAN format descriptors are enclosed in parentheses. They must immediately follow the
+ :ref:`mwrite` command on a separate line of the same input file. The word FORMAT should not be
+ included. The format must specify the number of fields to be written per line, the field width, the
+ placement of the decimal point, etc. There should be one field descriptor for each data item
+ written. The write operation uses the available system FORTRAN FORMAT conventions (see your system
+ FORTRAN manual). Any standard FORTRAN real format (such as (4F6.0), (E10.3,2X,D8.2), etc.) and
+ character format (A) may be used. Integer (I) and list-directed (\2) descriptors may not be used.
+ Text may be included in the format as a quoted string. The FORTRAN descriptor must be enclosed in
+ parentheses and the format must not exceed 80 characters (including parentheses).
+
+ The "C" format descriptors are used if the first character of the format descriptor line is not a
+ left parenthesis. "C" format descriptors may be up to 80 characters long, consisting of text strings
+ and predefined "data descriptors" between the strings where numeric or alphanumeric character data
+ are to be inserted. The normal descriptors are %I for integer data, %G for double precision data, %C
+ for alphanumeric character data, and %/ for a line break. There must be one data descriptor for each
+ specified value in the order of the specified values. The enhanced formats described in :ref:`msg`
+ can also be used.
+
+ The starting array element number must be defined. Looping continues in the directions indicated by
+ the Label argument. The number of loops and loop skipping may also be controlled via :ref:`vlen` and
+ :ref:`vmask`, which work in the ``n2`` direction (by row on the output file), and by :ref:`vcol`,
+ which works in the ``n1`` direction (by column in the output file). The vector specifications
+ :ref:`vabs` and :ref:`vfact` apply to this command, while :ref:`vcum` does not apply to this
+ command. See :ref:`voper` for details. If you are in the GUI, the :ref:`mwrite` command must be
+ contained in an externally prepared file and read into Mechanical APDL (that is, :ref:`use`,
+ :ref:`input`,
+ etc.).
+
+ This command is valid in any processor.
+ """
+ command = f"*MWRITE,{parr},{fname},{ext},,{label},{n1},{n2},{n3}"
+ return self.run(command, **kwargs)
+
+ def sread(
+ self,
+ strarray: str = "",
+ fname: str = "",
+ ext: str = "",
+ nchar: str = "",
+ nskip: str = "",
+ nread: str = "",
+ **kwargs,
+ ):
+ r"""Reads a file into a string array parameter.
+
+ Mechanical APDL Command: `\*SREAD `_
+
+ Parameters
+ ----------
+ strarray : str
+ Name of the string array parameter which will hold the read file. String array parameters are
+ similar to character arrays, but each array element can be as long as 248 characters. If the
+ string parameter does not exist, it will be created. The array will be created as:
+ \*DIM,StrArray,STRING,nChar,nRead
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name.
+
+ ext : str
+ Filename extension (eight-character maximum).
+
+ nchar : str
+ Number of characters per line to read (default is length of the longest line in the file).
+
+ nskip : str
+ Number of lines to skip at the start of the file (default is 0).
+
+ nread : str
+ Number of lines to read from the file (default is the entire file).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-SREAD_argdescript:
+
+ * ``strarray : str`` - Name of the string array parameter which will hold the read file. String
+ array parameters are similar to character arrays, but each array element can be as long as 248
+ characters. If the string parameter does not exist, it will be created. The array will be created
+ as: \*DIM,StrArray,STRING,nChar,nRead
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name.
+ * ``ext : str`` - Filename extension (eight-character maximum).
+ * ``nchar : str`` - Number of characters per line to read (default is length of the longest line in
+ the file).
+
+ * ``nskip : str`` - Number of lines to skip at the start of the file (default is 0).
+
+ * ``nread : str`` - Number of lines to read from the file (default is the entire file).
+
+ .. _a-SREAD_notes:
+
+ The :ref:`sread` command reads from a file into a string array parameter. The file must be an ASCII
+ text file.
+ """
+ command = f"*SREAD,{strarray},{fname},{ext},,{nchar},{nskip},{nread}"
+ return self.run(command, **kwargs)
+
+ def starvplot(
+ self,
+ parx: str = "",
+ pary: str = "",
+ y2: str = "",
+ y3: str = "",
+ y4: str = "",
+ y5: str = "",
+ y6: str = "",
+ y7: str = "",
+ y8: str = "",
+ **kwargs,
+ ):
+ r"""Graphs columns (vectors) of array parameters.
+
+ Mechanical APDL Command: `\*VPLOT `_
+
+ Parameters
+ ----------
+ parx : str
+ Name of the array parameter whose column vector values will be the abscissa of the graph. If
+ blank, row subscript numbers are used instead. ``ParX`` is not sorted by the program.
+
+ pary : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y2 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y3 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y4 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y5 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y6 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y7 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ y8 : str
+ Additional column subscript of the ``ParY`` array parameter whose values are to be graphed
+ against the ``ParX`` values.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VPLOT_argdescript:
+
+ * ``parx : str`` - Name of the array parameter whose column vector values will be the abscissa of
+ the graph. If blank, row subscript numbers are used instead. ``ParX`` is not sorted by the program.
+
+ * ``pary : str`` - Name of the array parameter whose column vector values will be graphed against
+ the ``ParX`` values.
+
+ * ``y2, y3, y4,..., y8 : str`` - Additional column subscript of the ``ParY`` array parameter
+ whose values are to be graphed against the ``ParX`` values.
+
+ .. _a-VPLOT_notes:
+
+ The column to be graphed and the starting row for each array parameter must be specified as
+ subscripts. Additional columns of the ``ParY`` array parameter may be graphed by specifying column
+ numbers for ``Y2``, ``Y3``,..., ``Y8``. For example, :ref:`starvplot`,TIME (4,6), DISP (8,1),2,3
+ specifies that the 1st, 2nd, and 3rd columns of array parameter DISP (all starting at row 8) are to
+ be graphed against the 6th column of array parameter TIME (starting at row 4). The columns are
+ graphed from the starting row to their maximum extent. See the :ref:`vlen` and :ref:`vmask` commands
+ to limit or skip data to be graphed. The array parameters specified on the :ref:`starvplot` command
+ must be of the same type (type ARRAY or TABLE; ( :ref:`dim` ). Arrays of type TABLE are graphed as
+ continuous curves. Arrays of type ARRAY is displayed in bar chart fashion.
+
+ The normal curve labeling scheme for :ref:`starvplot` is to label curve 1 "COL 1", curve 2 "COL 2"
+ and so on. You can use the :ref:`gcolumn` command to apply user-specified labels (8 characters
+ maximum) to your curves. See `Modifying Curve Labels
+ `_
+ in the `Ansys Parametric Design Language Guide
+ `_ for more
+ information on using :ref:`gcolumn`.
+
+
+ When a graph plot reaches minimum or maximum y-axis limits, the program indicates the condition by
+ clipping the graph. The clip appears as a horizontal magenta line. Mechanical APDL calculates y-axis
+ limits
+ automatically; however, you can modify the (YMIN and YMAX) limits via the :ref:`yrange` command.
+
+ This command is valid in any processor.
+ """
+ command = f"*VPLOT,{parx},{pary},{y2},{y3},{y4},{y5},{y6},{y7},{y8}"
+ return self.run(command, **kwargs)
+
+ def starvput(
+ self,
+ parr: str = "",
+ entity: str = "",
+ entnum: str = "",
+ item1: str = "",
+ it1num: str = "",
+ item2: str = "",
+ it2num: str = "",
+ kloop: str = "",
+ **kwargs,
+ ):
+ r"""Restores array parameter values into the Mechanical APDL database.
+
+ Mechanical APDL Command: `\*VPUT `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the input vector array parameter. See :ref:`starset` for name restrictions. The
+ parameter must exist as a dimensioned array ( :ref:`dim` ) with data input.
+
+ entity : str
+ Entity keyword. Valid keywords are shown for ``Entity`` = in the table below.
+
+ entnum : str
+ The number of the entity (as shown for ``ENTNUM`` = in the table below).
+
+ item1 : str
+ The name of a particular item for the given entity. Valid items are as shown in the ``Item1``
+ columns of the table below.
+
+ it1num : str
+ The number (or label) for the specified ``Item1`` (if any). Valid ``IT1NUM`` values are as shown
+ in the ``IT1NUM`` columns of the table below. Some ``Item1`` labels do not require an ``IT1NUM``
+ value.
+
+ item2 : str
+ A second set of item labels and numbers to further qualify the item for which data is to be
+ stored. Most items do not require this level of information.
+
+ it2num : str
+ A second set of item labels and numbers to further qualify the item for which data is to be
+ stored. Most items do not require this level of information.
+
+ kloop : str
+ Field to be looped on:
+
+ * ``0 or 2`` - Loop on the ``ENTNUM`` field (default).
+
+ * ``3`` - Loop on the ``Item1`` field.
+
+ * ``4`` - Loop on the ``IT1NUM`` field. Successive items are as shown with ``IT1NUM``.
+
+ * ``5`` - Loop on the ``Item2`` field.
+
+ * ``6`` - Loop on the ``IT2NUM`` field. Successive items are as shown with ``IT2NUM``.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VPUT_argdescript:
+
+ * ``parr : str`` - The name of the input vector array parameter. See :ref:`starset` for name
+ restrictions. The parameter must exist as a dimensioned array ( :ref:`dim` ) with data input.
+
+ * ``entity : str`` - Entity keyword. Valid keywords are shown for ``Entity`` = in the table below.
+
+ * ``entnum : str`` - The number of the entity (as shown for ``ENTNUM`` = in the table below).
+
+ * ``item1 : str`` - The name of a particular item for the given entity. Valid items are as shown in
+ the ``Item1`` columns of the table below.
+
+ * ``it1num : str`` - The number (or label) for the specified ``Item1`` (if any). Valid ``IT1NUM``
+ values are as shown in the ``IT1NUM`` columns of the table below. Some ``Item1`` labels do not
+ require an ``IT1NUM`` value.
+
+ * ``item2, it2num : str`` - A second set of item labels and numbers to further qualify the item for
+ which data is to be stored. Most items do not require this level of information.
+
+ * ``kloop : str`` - Field to be looped on:
+
+ * ``0 or 2`` - Loop on the ``ENTNUM`` field (default).
+
+ * ``3`` - Loop on the ``Item1`` field.
+
+ * ``4`` - Loop on the ``IT1NUM`` field. Successive items are as shown with ``IT1NUM``.
+
+ * ``5`` - Loop on the ``Item2`` field.
+
+ * ``6`` - Loop on the ``IT2NUM`` field. Successive items are as shown with ``IT2NUM``.
+
+ .. _a-VPUT_notes:
+
+ The :ref:`starvput` command is not supported for PowerGraphics displays. Inconsistent results may be
+ obtained if this command is not used in :ref:`graphics`, FULL.
+
+ Plot and print operations entered via the GUI ( Utility Menu> Pltcrtls, Utility Menu> Plot )
+ incorporate the :ref:`avprin` command. This means that the principal and equivalent values are
+ recalculated. If you use :ref:`starvput` to put data back into the database, issue the plot commands
+ from the command line to preserve your data.
+
+ This operation is basically the inverse of the :ref:`starvget` operation. Vector items are put
+ directly (without any coordinate system transformation) into the Mechanical APDL database. Items can
+ only
+ replace existing items of the database and not create new items. Degree of freedom results that are
+ replaced in the database are available for all subsequent postprocessing operations. Other results
+ are changed temporarily and are available mainly for the immediately following print and display
+ operations. The vector specification :ref:`vcum` does not apply to this command. The valid labels
+ for the location fields ( ``Entity``, ``ENTNUM``, ``Item1``, and ``IT1NUM`` ) are listed below.
+ ``Item2`` and ``IT2NUM`` are not currently used. Not all items from the :ref:`starvget` list are
+ allowed on :ref:`starvput`, as putting values into some locations could cause the database to be
+ inconsistent.
+
+ This command is valid in any processor.
+
+ .. _vput_tab_1:
+
+ \*VPUT - POST1 Items
+ ********************
+
+ .. flat-table:: ``Entity`` = NODE, ``ENTNUM`` = ``n`` (node number)
+ :header-rows: 1
+
+ * - Item1
+ - IT1NUM
+ - Description
+ * - Valid labels for nodal degree of freedom results are:
+ * - U
+ - X, Y, Z
+ - X, Y, or Z structural displacement.
+ * - ROT
+ - X, Y, Z
+ - X, Y, or Z structural rotation.
+ * - TEMP
+ -
+ - Temperature. For ``SHELL131`` and ``SHELL132`` elements with KEYOPT(3) = 0 or 1, use TBOT, TE2, TE3,..., TTOP instead of TEMP. Alternative get functions: TEMP(N), TBOT(N), TE2(N), etc.
+ * - PRES
+ -
+ - Pressure.
+ * - VOLT
+ -
+ - Electric potential.
+ * - MAG
+ -
+ - Magnetic scalar potential.
+ * - V
+ - X, Y, Z
+ - X, Y, or Z fluid velocity. X, Y, or Z nodal velocity in a transient structural analysis (analysis with :ref:`antype`,TRANS).
+ * - A
+ - X, Y, Z
+ - X, Y, or Z magnetic vector potential. X, Y, or Z nodal acceleration in a transient structural analysis (analysis with :ref:`antype`,TRANS).
+ * - CONC
+ -
+ - Concentration.
+ * - CURR
+ -
+ - Current.
+ * - EMF
+ -
+ - Electromotive force drop.
+ * - Valid labels for element nodal results are:
+ * - Item1
+ - IT1NUM
+ - Description
+ * - S
+ - X, Y, Z, XY, YZ, XZ
+ - Component stress.
+ * - "
+ - 1, 2, 3
+ - Principal stress.
+ * - "
+ - INT, EQV
+ - Stress intensity or equivalent stress.
+ * - EPTO
+ - X, Y, Z, XY, YZ, XZ
+ - Component total strain (EPEL + EPPL + EPCR).
+ * - "
+ - 1,2,3
+ - Principal total strain.
+ * - "
+ - INT, EQV
+ - Total strain intensity or total equivalent strain.
+ * - EPEL
+ - X, Y, Z, XY, YZ, XZ
+ - Component elastic strain.
+ * - "
+ - 1, 2, 3
+ - Principal elastic strain.
+ * - "
+ - INT, EQV
+ - Elastic strain intensity or elastic equivalent strain.
+ * - EPPL
+ - X, Y, Z, XY, YZ, XZ
+ - Component plastic strain.
+ * - "
+ - 1,2,3
+ - Principal plastic strain.
+ * - "
+ - INT, EQV
+ - Plastic strain intensity or plastic equivalent strain.
+ * - EPCR
+ - X, Y, Z, XY, YZ, XZ
+ - Component creep strain.
+ * - "
+ - 1, 2, 3
+ - Principal creep strain.
+ * - "
+ - INT, EQV
+ - Creep strain intensity or creep equivalent strain.
+ * - EPTH
+ - X, Y, Z, XY, YZ, XZ
+ - Component thermal strain.
+ * - "
+ - 1, 2, 3
+ - Principal thermal strain.
+ * - "
+ - INT, EQV
+ - Thermal strain intensity or thermal equivalent strain.
+ * - EPSW
+ -
+ - Swelling strain.
+ * - NL
+ - SEPL
+ - Equivalent stress (from stress-strain curve).
+ * - "
+ - SRAT
+ - Stress state ratio.
+ * - "
+ - HPRES
+ - Hydrostatic pressure.
+ * - "
+ - EPEQ
+ - Accumulated equivalent plastic strain.
+ * - "
+ - PSV
+ - Plastic state variable.
+ * - "
+ - PLWK
+ - Plastic work/volume.
+ * - TG
+ - X, Y, Z
+ - Component thermal gradient.
+ * - TF
+ - X, Y, Z
+ - Component thermal flux.
+ * - PG
+ - X, Y, Z
+ - Component pressure gradient.
+ * - EF
+ - X, Y, Z
+ - Component electric field.
+ * - D
+ - X, Y, Z
+ - Component electric flux density.
+ * - H
+ - X, Y, Z
+ - Component magnetic field intensity.
+ * - B
+ - X, Y, Z
+ - Component magnetic flux density.
+ * - FMAG
+ - X, Y, Z
+ - Component electromagnetic force.
+ * - **Entity= ELEM,** ``ENTNUM`` = ``n`` (element number)
+ * - Valid labels for element results are:
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ETAB
+ - Lab
+ - Any user-defined element table label ( :ref:`etable` ).
+
+ """
+ command = (
+ f"*VPUT,{parr},{entity},{entnum},{item1},{it1num},{item2},{it2num},{kloop}"
+ )
+ return self.run(command, **kwargs)
+
+ def toper(
+ self,
+ parr: str = "",
+ par1: str = "",
+ oper: str = "",
+ par2: str = "",
+ fact1: str = "",
+ fact2: str = "",
+ con1: str = "",
+ **kwargs,
+ ):
+ r"""Operates on table parameters.
+
+ Mechanical APDL Command: `\*TOPER `_
+
+ Parameters
+ ----------
+ parr : str
+ Name of the resulting table parameter. The command will create a table array parameter with this
+ name. Any existing parameter with this name will be overwritten.
+
+ par1 : str
+ Name of the first table parameter.
+
+ oper : str
+ The operation to be performed: ADD. The operation is: ParR(i,j,k) = FACT1\2Par1(i,j,k) + FACT2
+ *Par2(i,j,k) +CON1
+
+ par2 : str
+ Name of the second table parameter.
+
+ fact1 : str
+ The first table parameter multiplying constant. Defaults to 1.
+
+ fact2 : str
+ The second table parameter multiplying constant. Defaults to 1.
+
+ con1 : str
+ The constant increment for offset. Defaults to 0.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _TOPER_argdescript:
+
+ * ``parr : str`` - Name of the resulting table parameter. The command will create a table array
+ parameter with this name. Any existing parameter with this name will be overwritten.
+
+ * ``par1 : str`` - Name of the first table parameter.
+
+ * ``oper : str`` - The operation to be performed: ADD. The operation is: ParR(i,j,k) =
+ FACT1\2Par1(i,j,k) + FACT2 *Par2(i,j,k) +CON1
+
+ * ``par2 : str`` - Name of the second table parameter.
+
+ * ``fact1 : str`` - The first table parameter multiplying constant. Defaults to 1.
+
+ * ``fact2 : str`` - The second table parameter multiplying constant. Defaults to 1.
+
+ * ``con1 : str`` - The constant increment for offset. Defaults to 0.
+
+ .. _TOPER_notes:
+
+ :ref:`toper` operates on table parameters according to: ParR(i,j,k) = FACT1\2Par1(i,j,k) + FACT2
+ *Par2(i,j,k) +CON1
+
+ Par1 and Par2 must have the same dimensions and the same variable names corresponding to those
+ dimensions. Par1 and Par2 must also have identical index values for rows, columns, etc.
+
+ If you want a local coordinate system for the resulting array, you must dimension it as such using
+ the :ref:`dim` command before issuing :ref:`toper`.
+
+ This command is valid in any processor.
+ """
+ command = f"*TOPER,{parr},{par1},{oper},{par2},{fact1},{fact2},{con1}"
+ return self.run(command, **kwargs)
+
+ def vabs(
+ self,
+ kabsr: str = "",
+ kabs1: str = "",
+ kabs2: str = "",
+ kabs3: str = "",
+ **kwargs,
+ ):
+ r"""Applies the absolute value function to array parameters.
+
+ Mechanical APDL Command: `\*VABS `_
+
+ Parameters
+ ----------
+ kabsr : str
+ Absolute value of results parameter:
+
+ * ``0`` - Do not take absolute value of results parameter (ParR).
+
+ * ``1`` - Take absolute value.
+
+ kabs1 : str
+ Absolute value of first parameter:
+
+ * ``0`` - Do not take absolute value of first parameter (Par1 or ParI).
+
+ * ``1`` - Take absolute value.
+
+ kabs2 : str
+ Absolute value of second parameter:
+
+ * ``0`` - Do not take absolute value of second parameter (Par2 or ParJ).
+
+ * ``1`` - Take absolute value.
+
+ kabs3 : str
+ Absolute value of third parameter:
+
+ * ``0`` - Do not take absolute value of third parameter (Par3 or ParK).
+
+ * ``1`` - Take absolute value.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VABS_argdescript:
+
+ * ``kabsr : str`` - Absolute value of results parameter:
+
+ * ``0`` - Do not take absolute value of results parameter (ParR).
+
+ * ``1`` - Take absolute value.
+
+ * ``kabs1 : str`` - Absolute value of first parameter:
+
+ * ``0`` - Do not take absolute value of first parameter (Par1 or ParI).
+
+ * ``1`` - Take absolute value.
+
+ * ``kabs2 : str`` - Absolute value of second parameter:
+
+ * ``0`` - Do not take absolute value of second parameter (Par2 or ParJ).
+
+ * ``1`` - Take absolute value.
+
+ * ``kabs3 : str`` - Absolute value of third parameter:
+
+ * ``0`` - Do not take absolute value of third parameter (Par3 or ParK).
+
+ * ``1`` - Take absolute value.
+
+ .. _a-VABS_notes:
+
+ Applies an absolute value to parameters used in certain **\*V** ``XX`` and **\*M** ``XX``
+ operations. Typical absolute value applications are of the form: ParR = \|f(\|Par1\|)\|
+
+ or
+
+ ParR = \|(\|Par1\| o \|Par2\|)\|
+
+ The absolute values are applied to each input parameter value before the operation and to the result
+ value after the operation. Absolute values are applied before the scale factors so that negative
+ scale factors may be used. The absolute value settings are reset to the default (no absolute value)
+ after each **\*V** ``XX`` or **\*M** ``XX`` operation. Use :ref:`vstat` to list settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VABS,{kabsr},{kabs1},{kabs2},{kabs3}"
+ return self.run(command, **kwargs)
+
+ def vcol(self, ncol1: str = "", ncol2: str = "", **kwargs):
+ r"""Specifies the number of columns in matrix operations.
+
+ Mechanical APDL Command: `\*VCOL `_
+
+ Parameters
+ ----------
+ ncol1 : str
+ Number of columns to be used for Par1 with **\*M** ``XX`` operations. Defaults to whatever is needed to fill the result array.
+
+ ncol2 : str
+ Number of columns to be used for Par2 with **\*M** ``XX`` operations. Defaults to whatever is needed to fill the result array.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VCOL_argdescript:
+
+ * ``ncol1 : str`` - Number of columns to be used for Par1 with **\*M** ``XX`` operations. Defaults
+ to whatever is needed to fill the result array.
+
+ * ``ncol2 : str`` - Number of columns to be used for Par2 with **\*M** ``XX`` operations. Defaults
+ to whatever is needed to fill the result array.
+
+ .. _a-VCOL_notes:
+
+ Specifies the number of columns to be used in array parameter matrix operations. The size of the
+ submatrix used is determined from the upper left starting array element (defined on the operation
+ command) to the lower right array element (defined by the number of columns on this command and the
+ number of rows on the :ref:`vlen` command).
+
+ The default ``NCOL`` is calculated from the maximum number of columns of the result array (the
+ :ref:`dim` column dimension) minus the starting location + 1. For example, :ref:`dim`,R,,1,10 and a
+ starting location of R(1,7) gives a default of 4 columns ( starting with R(1,7), R(1,8), R(1,9), and
+ R(1,10)). Repeat operations automatically terminate at the last column of the result array. Existing
+ values in the rows and columns of the results matrix remain unchanged where not overwritten by the
+ requested input or operation values.
+
+ The column control settings are reset to the defaults after each **\*M** ``XX`` operation. Use
+ :ref:`vstat` to list settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VCOL,{ncol1},{ncol2}"
+ return self.run(command, **kwargs)
+
+ def vcum(self, key: str = "", **kwargs):
+ r"""Allows array parameter results to add to existing results.
+
+ Mechanical APDL Command: `\*VCUM `_
+
+ Parameters
+ ----------
+ key : str
+ Accumulation key:
+
+ * ``0`` - Overwrite results.
+
+ * ``1`` - Add results to the current value of the results parameter.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VCUM_argdescript:
+
+ * ``key : str`` - Accumulation key:
+
+ * ``0`` - Overwrite results.
+
+ * ``1`` - Add results to the current value of the results parameter.
+
+ .. _a-VCUM_notes:
+
+ Allows results from certain **\*V** ``XX`` and **\*M** ``XX`` operations to overwrite or add to
+ existing results. The cumulative operation is of the form: ParR = ParR + ParR(Previous)
+
+ The cumulative setting is reset to the default (overwrite) after each **\*V** ``XX`` or **\*M**
+ ``XX`` operation. Use :ref:`vstat` to list settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VCUM,{key}"
+ return self.run(command, **kwargs)
+
+ def vfact(
+ self,
+ factr: str = "",
+ fact1: str = "",
+ fact2: str = "",
+ fact3: str = "",
+ **kwargs,
+ ):
+ r"""Applies a scale factor to array parameters.
+
+ Mechanical APDL Command: `\*VFACT `_
+
+ Parameters
+ ----------
+ factr : str
+ Scale factor applied to results (ParR) parameter. Defaults to 1.0.
+
+ fact1 : str
+ Scale factor applied to first parameter (Par1 or ParI). Defaults to 1.0.
+
+ fact2 : str
+ Scale factor applied to second parameter (Par2 or ParJ). Defaults to 1.0.
+
+ fact3 : str
+ Scale factor applied to third parameter (Par3 or ParK). Defaults to 1.0.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VFACT_argdescript:
+
+ * ``factr : str`` - Scale factor applied to results (ParR) parameter. Defaults to 1.0.
+
+ * ``fact1 : str`` - Scale factor applied to first parameter (Par1 or ParI). Defaults to 1.0.
+
+ * ``fact2 : str`` - Scale factor applied to second parameter (Par2 or ParJ). Defaults to 1.0.
+
+ * ``fact3 : str`` - Scale factor applied to third parameter (Par3 or ParK). Defaults to 1.0.
+
+ .. _a-VFACT_notes:
+
+ Applies a scale factor to parameters used in certain **\*V** ``XX`` and **\*M** ``XX`` operations.
+ Typical scale factor applications are of the form: ParR = ``FACTR`` \*f( ``FACT1`` \*Par1)
+
+ or
+
+ ParR = ``FACTR`` \*(( ``FACT1`` \*Par1) o ( ``FACT2`` \*Par2))
+
+ The factors are applied to each input parameter value before the operation and to the result value
+ after the operation. The scale factor settings are reset to the default (1.0) after each **\*V**
+ ``XX`` or **\*M** ``XX`` operation. Use :ref:`vstat` to list settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VFACT,{factr},{fact1},{fact2},{fact3}"
+ return self.run(command, **kwargs)
+
+ def vfun(
+ self,
+ parr: str = "",
+ func: str = "",
+ par1: str = "",
+ con1: str = "",
+ con2: str = "",
+ con3: str = "",
+ **kwargs,
+ ):
+ r"""Performs a function on a single array parameter.
+
+ Mechanical APDL Command: `\*VFUN `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting numeric array parameter vector. See :ref:`starset` for name
+ restrictions.
+
+ func : str
+ Function to be performed:
+
+ * ``ACOS`` - Arccosine: ACOS( ``Par1`` ).
+
+ * ``ASIN`` - Arcsine: ASIN( ``Par1`` ).
+
+ * ``ASORT`` - Par1 is sorted in ascending order. :ref:`vcol`, :ref:`vmask`, :ref:`vcum`, and
+ :ref:`vlen`,,NINC do not apply. :ref:`vlen`,NROW does apply.
+
+ * ``ATAN`` - Arctangent: ATAN( ``Par1`` ).
+
+ * ``COMP`` - Compress: Selectively compresses data set. "True" ( :ref:`vmask` ) values of ``Par1``
+ (or row positions to be considered according to the ``NINC`` value on the :ref:`vlen` command) are
+ written in compressed form to ``ParR``, starting at the specified position.
+
+ * ``COPY`` - Copy: ``Par1`` copied to ``ParR``.
+
+ * ``COS`` - Cosine: COS( ``Par1`` ).
+
+ * ``COSH`` - Hyperbolic cosine: COSH( ``Par1`` ).
+
+ * ``DIRCOS`` - Direction cosines of the principal stresses ( ``n`` X9). ``Par1`` contains the ``n``
+ X6 component stresses for the ``n`` locations of the calculations.
+
+ * ``DSORT`` - ``Par1`` is sorted in descending order. :ref:`vcol`, :ref:`vmask`, :ref:`vcum`, and
+ :ref:`vlen`,,NINC do not apply. :ref:`vlen`,NROW does apply.
+
+ * ``EULER`` - Euler angles of the principal stresses ( ``n`` X3). ``Par1`` contains the ``n`` X6
+ component stresses for the ``n`` locations of the calculations.
+
+ * ``EXP`` - Exponential: EXP( ``Par1`` ).
+
+ * ``EXPA`` - Expand: Reverse of the COMP function. All elements of ``Par1`` (starting at the
+ position specified) are written in expanded form to corresponding "true" ( :ref:`vmask` ) positions
+ (or row positions to be considered according to the ``NINC`` value on the :ref:`vlen` command) of
+ ``ParR``.
+
+ * ``LOG`` - Natural logarithm: LOG( ``Par1`` ).
+
+ * ``LOG10`` - Common logarithm: LOG10( ``Par1`` ).
+
+ * ``NINT`` - Nearest integer: 2.783 becomes 3.0, -1.75 becomes -2.0.
+
+ * ``NOT`` - Logical complement: values :math:`equation not available` 0.0 (false) become 1.0
+ (true). Values > 0.0 (true) become0.0 (false).
+
+ * ``PRIN`` - Principal stresses ( ``n`` X5). ``Par1`` contains the ``n`` X6 component stresses for
+ the ``n`` locations of the calculations.
+
+ * ``PWR`` - Power function: ``Par1`` \*\* ``CON1`` . Exponentiation of any negative number in the vector ``Par1`` to a non-integer power is performed by exponentiating the positive number and prepending the minus sign. For example, -4\*\*2.3 is -(4\*\*2.3).
+
+ * ``SIN`` - Sine: SIN( ``Par1`` ).
+
+ * ``SINH`` - Hyperbolic sine: SINH( ``Par1`` ).
+
+ * ``SQRT`` - Square root: SQRT( ``Par1`` ).
+
+ * ``TAN`` - Tangent: TAN( ``Par1`` ).
+
+ * ``TANH`` - Hyperbolic tangent: TANH( ``Par1`` ).
+
+ * ``TANG`` - Tangent to a path at a point: the slope at a point is determined by linear
+ interpolation half way between the previous and next points. Points are assumed to be in the global
+ Cartesian coordinate system. Path points are specified in array ``Par1`` (having 3 consecutive
+ columns of data, with the columns containing the x, y, and z coordinate locations, respectively, of
+ the points). Only the starting row index and the column index for the x coordinates are specified,
+ such as A(1,1). The y and z coordinates of the vector are assumed to begin in the corresponding next
+ columns, such as A(1,2) and A(1,3). The tangent result, ``ParR``, must also have 3 consecutive
+ columns of data and will contain the tangent direction vector (normalized to 1.0); such as 1,0,0 for
+ an x-direction vector.
+
+ * ``NORM`` - Normal to a path and an input vector at a point: determined from the cross-product of
+ the calculated tangent vector (see TANG) and the input direction vector (with the i, j, and k
+ components input as ``CON1``, ``CON2``, and ``CON3`` ). Points are assumed to be in the global
+ Cartesian coordinate system. Path points are specified in array ``Par1`` (having 3 consecutive
+ columns of data, with the columns containing the x, y, and z coordinate locations, respectively, of
+ the points). Only the starting row index and the column index for the x coordinates are specified,
+ such as A(1,1). The y and z coordinates of the vector are assumed to begin in the corresponding next
+ columns, such as A(1,2) and A(1,3). The normal result, ``ParR``, must also have 3 consecutive
+ columns of data and will contain the normal direction vector (normalized to 1.0); such as 1,0,0 for
+ an x-direction vector.
+
+ * ``LOCAL`` - Transforms global Cartesian coordinates of a point to the coordinates of a specified
+ system: points to be transformed are specified in array ``Par1`` (having 3 consecutive columns of
+ data, with the columns containing the x, y, and z global Cartesian coordinate locations,
+ respectively, of the points). Only the starting row index and the column index for the x coordinates
+ are specified, such as A(1,1). The y and z coordinates of the vector are assumed to begin in the
+ corresponding next columns, such as A(1,2) and A(1,3). Results are transformed to coordinate system
+ ``CON1`` (which may be any valid coordinate system number, such as 1,2,11,12, etc.). The transformed
+ result, ``ParR``, must also have 3 consecutive columns of data and will contain the corresponding
+ transformed coordinate locations.
+
+ * ``GLOBAL`` - Transforms specified coordinates of a point to global Cartesian coordinates: points
+ to be transformed are specified in array ``Par1`` (having 3 consecutive columns of data, with the
+ columns containing the local coordinate locations (x, y, z or r, θ, z or etc.) of the
+ points). Only the starting row index and the column index for the x coordinates are specified, such
+ as A(1,1). The y and z coordinates (or θ and z, or etc.) of the vector are assumed to begin
+ in the corresponding next columns, such as A(1,2) and A(1,3). Local coordinate locations are assumed
+ to be in coordinate system ``CON1`` (which may be any valid coordinate system number, such as
+ 1,2,11,12, etc.). The transformed result, ``ParR``, must also have 3 consecutive columns of data,
+ with the columns containing the global Cartesian x, y, and z coordinate locations, respectively.
+
+ par1 : str
+ Array parameter vector in the operation.
+
+ con1 : str
+ Constants (used only with the PWR, NORM, LOCAL, and GLOBAL functions).
+
+ con2 : str
+ Constants (used only with the PWR, NORM, LOCAL, and GLOBAL functions).
+
+ con3 : str
+ Constants (used only with the PWR, NORM, LOCAL, and GLOBAL functions).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VFUN_argdescript:
+
+ * ``parr : str`` - The name of the resulting numeric array parameter vector. See :ref:`starset` for
+ name restrictions.
+
+ * ``func : str`` - Function to be performed:
+
+ * ``ACOS`` - Arccosine: ACOS( ``Par1`` ).
+
+ * ``ASIN`` - Arcsine: ASIN( ``Par1`` ).
+
+ * ``ASORT`` - Par1 is sorted in ascending order. :ref:`vcol`, :ref:`vmask`, :ref:`vcum`, and
+ :ref:`vlen`,,NINC do not apply. :ref:`vlen`,NROW does apply.
+
+ * ``ATAN`` - Arctangent: ATAN( ``Par1`` ).
+
+ * ``COMP`` - Compress: Selectively compresses data set. "True" ( :ref:`vmask` ) values of ``Par1``
+ (or row positions to be considered according to the ``NINC`` value on the :ref:`vlen` command) are
+ written in compressed form to ``ParR``, starting at the specified position.
+
+ * ``COPY`` - Copy: ``Par1`` copied to ``ParR``.
+
+ * ``COS`` - Cosine: COS( ``Par1`` ).
+
+ * ``COSH`` - Hyperbolic cosine: COSH( ``Par1`` ).
+
+ * ``DIRCOS`` - Direction cosines of the principal stresses ( ``n`` X9). ``Par1`` contains the ``n``
+ X6 component stresses for the ``n`` locations of the calculations.
+
+ * ``DSORT`` - ``Par1`` is sorted in descending order. :ref:`vcol`, :ref:`vmask`, :ref:`vcum`, and
+ :ref:`vlen`,,NINC do not apply. :ref:`vlen`,NROW does apply.
+
+ * ``EULER`` - Euler angles of the principal stresses ( ``n`` X3). ``Par1`` contains the ``n`` X6
+ component stresses for the ``n`` locations of the calculations.
+
+ * ``EXP`` - Exponential: EXP( ``Par1`` ).
+
+ * ``EXPA`` - Expand: Reverse of the COMP function. All elements of ``Par1`` (starting at the
+ position specified) are written in expanded form to corresponding "true" ( :ref:`vmask` ) positions
+ (or row positions to be considered according to the ``NINC`` value on the :ref:`vlen` command) of
+ ``ParR``.
+
+ * ``LOG`` - Natural logarithm: LOG( ``Par1`` ).
+
+ * ``LOG10`` - Common logarithm: LOG10( ``Par1`` ).
+
+ * ``NINT`` - Nearest integer: 2.783 becomes 3.0, -1.75 becomes -2.0.
+
+ * ``NOT`` - Logical complement: values :math:`equation not available` 0.0 (false) become 1.0
+ (true). Values > 0.0 (true) become0.0 (false).
+
+ * ``PRIN`` - Principal stresses ( ``n`` X5). ``Par1`` contains the ``n`` X6 component stresses for
+ the ``n`` locations of the calculations.
+
+ * ``PWR`` - Power function: ``Par1`` \*\* ``CON1`` . Exponentiation of any negative number in the vector ``Par1`` to a non-integer power is performed by exponentiating the positive number and prepending the minus sign. For example, -4\*\*2.3 is -(4\*\*2.3).
+
+ * ``SIN`` - Sine: SIN( ``Par1`` ).
+
+ * ``SINH`` - Hyperbolic sine: SINH( ``Par1`` ).
+
+ * ``SQRT`` - Square root: SQRT( ``Par1`` ).
+
+ * ``TAN`` - Tangent: TAN( ``Par1`` ).
+
+ * ``TANH`` - Hyperbolic tangent: TANH( ``Par1`` ).
+
+ * ``TANG`` - Tangent to a path at a point: the slope at a point is determined by linear
+ interpolation half way between the previous and next points. Points are assumed to be in the global
+ Cartesian coordinate system. Path points are specified in array ``Par1`` (having 3 consecutive
+ columns of data, with the columns containing the x, y, and z coordinate locations, respectively, of
+ the points). Only the starting row index and the column index for the x coordinates are specified,
+ such as A(1,1). The y and z coordinates of the vector are assumed to begin in the corresponding next
+ columns, such as A(1,2) and A(1,3). The tangent result, ``ParR``, must also have 3 consecutive
+ columns of data and will contain the tangent direction vector (normalized to 1.0); such as 1,0,0 for
+ an x-direction vector.
+
+ * ``NORM`` - Normal to a path and an input vector at a point: determined from the cross-product of
+ the calculated tangent vector (see TANG) and the input direction vector (with the i, j, and k
+ components input as ``CON1``, ``CON2``, and ``CON3`` ). Points are assumed to be in the global
+ Cartesian coordinate system. Path points are specified in array ``Par1`` (having 3 consecutive
+ columns of data, with the columns containing the x, y, and z coordinate locations, respectively, of
+ the points). Only the starting row index and the column index for the x coordinates are specified,
+ such as A(1,1). The y and z coordinates of the vector are assumed to begin in the corresponding next
+ columns, such as A(1,2) and A(1,3). The normal result, ``ParR``, must also have 3 consecutive
+ columns of data and will contain the normal direction vector (normalized to 1.0); such as 1,0,0 for
+ an x-direction vector.
+
+ * ``LOCAL`` - Transforms global Cartesian coordinates of a point to the coordinates of a specified
+ system: points to be transformed are specified in array ``Par1`` (having 3 consecutive columns of
+ data, with the columns containing the x, y, and z global Cartesian coordinate locations,
+ respectively, of the points). Only the starting row index and the column index for the x coordinates
+ are specified, such as A(1,1). The y and z coordinates of the vector are assumed to begin in the
+ corresponding next columns, such as A(1,2) and A(1,3). Results are transformed to coordinate system
+ ``CON1`` (which may be any valid coordinate system number, such as 1,2,11,12, etc.). The transformed
+ result, ``ParR``, must also have 3 consecutive columns of data and will contain the corresponding
+ transformed coordinate locations.
+
+ * ``GLOBAL`` - Transforms specified coordinates of a point to global Cartesian coordinates: points
+ to be transformed are specified in array ``Par1`` (having 3 consecutive columns of data, with the
+ columns containing the local coordinate locations (x, y, z or r, θ, z or etc.) of the
+ points). Only the starting row index and the column index for the x coordinates are specified, such
+ as A(1,1). The y and z coordinates (or θ and z, or etc.) of the vector are assumed to begin
+ in the corresponding next columns, such as A(1,2) and A(1,3). Local coordinate locations are assumed
+ to be in coordinate system ``CON1`` (which may be any valid coordinate system number, such as
+ 1,2,11,12, etc.). The transformed result, ``ParR``, must also have 3 consecutive columns of data,
+ with the columns containing the global Cartesian x, y, and z coordinate locations, respectively.
+
+ * ``par1 : str`` - Array parameter vector in the operation.
+
+ * ``con1, con2, con3 : str`` - Constants (used only with the PWR, NORM, LOCAL, and GLOBAL
+ functions).
+
+ .. _a-VFUN_notes:
+
+ Operates on one input array parameter vector and produces one output array parameter vector
+ according to: ``ParR`` = f( ``Par1`` )
+
+ where the functions (f) are described below. Functions are based on the standard FORTRAN definitions
+ where possible. Out-of-range function results (or results with exponents whose magnitudes are
+ approximately greater than 32 or less than -32) produce a zero value. Input and output for angular
+ functions may be radians (default) or degrees ( :ref:`afun` ). ``ParR`` may be the same as ``Par1``.
+ Starting array element numbers must be defined for each array parameter vector if it does not start
+ at the first location. For example, :ref:`vfun`,A,SQRT,B(5) takes the square root of the fifth
+ element of B and stores the result in the first element of A. Operations continue on successive
+ array elements ( :ref:`vlen`, :ref:`vmask` ) with the default being all successive elements.
+ Absolute values and scale factors may be applied to all parameters ( :ref:`vabs`, :ref:`vfact` ).
+ Results may be cumulative ( :ref:`vcum` ). Skipping array elements via :ref:`vmask` or :ref:`vlen`
+ for the TANG and NORM functions skips only the writing of the results (skipped array element data
+ are used in all calculations). See the :ref:`voper` command for details.
+
+ This command is valid in any processor.
+ """
+ command = f"*VFUN,{parr},{func},{par1},{con1},{con2},{con3}"
+ return self.run(command, **kwargs)
+
+ def vitrp(
+ self,
+ parr: str = "",
+ part: str = "",
+ pari: str = "",
+ parj: str = "",
+ park: str = "",
+ **kwargs,
+ ):
+ r"""Forms an array parameter by interpolation of a table.
+
+ Mechanical APDL Command: `\*VITRP `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting array parameter. See :ref:`starset` for name restrictions.
+
+ part : str
+ The name of the TABLE array parameter. The parameter must exist as a dimensioned array of type
+ TABLE ( :ref:`dim` ).
+
+ pari : str
+ Array parameter vector of I (row) index values for interpolation in ``ParT``.
+
+ parj : str
+ Array parameter vector of J (column) index values for interpolation in ``ParT`` (which must be
+ at least 2D).
+
+ park : str
+ Array parameter vector of K (depth) index values for interpolation in ``ParT`` (which must be
+ 3D).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VITRP_argdescript:
+
+ * ``parr : str`` - The name of the resulting array parameter. See :ref:`starset` for name
+ restrictions.
+
+ * ``part : str`` - The name of the TABLE array parameter. The parameter must exist as a dimensioned
+ array of type TABLE ( :ref:`dim` ).
+
+ * ``pari : str`` - Array parameter vector of I (row) index values for interpolation in ``ParT``.
+
+ * ``parj : str`` - Array parameter vector of J (column) index values for interpolation in ``ParT``
+ (which must be at least 2D).
+
+ * ``park : str`` - Array parameter vector of K (depth) index values for interpolation in ``ParT``
+ (which must be 3D).
+
+ .. _a-VITRP_notes:
+
+ Forms an array parameter (of type ARRAY) by interpolating values of an array parameter (of type
+ TABLE) at specified table index locations according to: ``ParR`` = f( ``ParT``, ``Parl``, ``ParJ``,
+ ``ParK`` )
+
+ where ``ParT`` is the type TABLE array parameter, and ``ParI``, ``ParJ``, ``ParK`` are the type
+ ARRAY array parameter vectors of index values for interpolation in ``ParT``. See the :ref:`dim`
+ command for TABLE and ARRAY declaration types. Linear interpolation is used. The starting array
+ element number for the TABLE array ( ``ParT`` ) is not used (but a value must be input). Starting
+ array element numbers must be defined for each array parameter vector if it does not start at the
+ first location. For example, :ref:`vitrp`,R(5),TAB(1,1),X(2),Y(4) uses the second element of X and
+ the fourth element of Y as index values (row and column) for a 2D interpolation in TAB and stores
+ the result in the fifth element of R. Operations continue on successive array elements (
+ :ref:`vlen`, :ref:`vmask` ) with the default being all successive elements. Absolute values and
+ scale factors may be applied to the result parameter ( :ref:`vabs`, :ref:`vfact` ). Results may be
+ cumulative ( :ref:`vcum` ). See the :ref:`voper` command for details.
+
+ This command is valid in any processor.
+ """
+ command = f"*VITRP,{parr},{part},{pari},{parj},{park}"
+ return self.run(command, **kwargs)
+
+ def vlen(self, nrow: str = "", ninc: str = "", **kwargs):
+ r"""Specifies the number of rows to be used in array parameter operations.
+
+ Mechanical APDL Command: `\*VLEN `_
+
+ Parameters
+ ----------
+ nrow : str
+ Number of rows to be used with the **\*V** ``XX`` or **\*M** ``XX`` operations. Defaults to the number of rows needed to fill the result array.
+
+ ninc : str
+ Perform the operation on every ``NINC`` row (defaults to 1).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VLEN_argdescript:
+
+ * ``nrow : str`` - Number of rows to be used with the **\*V** ``XX`` or **\*M** ``XX`` operations.
+ Defaults to the number of rows needed to fill the result array.
+
+ * ``ninc : str`` - Perform the operation on every ``NINC`` row (defaults to 1).
+
+ .. _a-VLEN_notes:
+
+ Specifies the number of rows to be used in array parameter operations. The size of the submatrix
+ used is determined from the upper left starting array element (defined on the operation command) to
+ the lower right array element (defined by the number of rows on this command and the number of
+ columns on the :ref:`vcol` command). ``NINC`` allows skipping row operations for some operation
+ commands. Skipped rows are included in the row count. The starting row number must be defined on the
+ operation command for each parameter read and for the result written.
+
+ The default ``NROW`` is calculated from the maximum number of rows of the result array (the
+ :ref:`dim` row dimension) minus the starting location + 1. For example, :ref:`dim`,R,,10 and a
+ starting location of R(7) gives a default of 4 loops (filling R(7), R(8), R(9), and R(10)). Repeat
+ operations automatically terminate at the last row of the result array. Existing values in the rows
+ and columns of the results matrix remain unchanged where not overwritten by the requested input or
+ operation values.
+
+ The stride ( ``NINC`` ) allows operations to be performed at regular intervals. It has no effect on
+ the total number of row operations. Skipped operations retain the previous result. For example,
+ :ref:`dim`,R,,6, with a starting location of R(1), ``NROW`` = 10, and ``NINC`` = 2 calculates values
+ for locations R(1), R(3), and R(5) and retains values for locations R(2), R(4), and R(6). A more
+ general skip control may be done by masking ( :ref:`vmask` ). The row control settings are reset to
+ the defaults after each **\*V** ``XX`` or **\*M** ``XX`` operation. Use :ref:`vstat` to list
+ settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VLEN,{nrow},{ninc}"
+ return self.run(command, **kwargs)
+
+ def vmask(self, par: str = "", **kwargs):
+ r"""Specifies an array parameter as a masking vector.
+
+ Mechanical APDL Command: `\*VMASK `_
+
+ Parameters
+ ----------
+ par : str
+ Name of the mask parameter. The starting subscript must also be specified.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VMASK_argdescript:
+
+ * ``par : str`` - Name of the mask parameter. The starting subscript must also be specified.
+
+ .. _a-VMASK_notes:
+
+ Specifies the name of the parameter whose values are to be checked for each resulting row operation.
+ The mask vector usually contains only 0 (for false) and 1 (for true) values. For each row operation
+ the corresponding mask vector value is checked. A true value allows the operation to be done. A
+ false value skips the operation (and retains the previous results). A mask vector can be created
+ from direct input, such as M(1) = 1,0,0,1,1,0,1; or from the DATA function of the :ref:`vfill`
+ command. The NOT function of the :ref:`vfun` command can be used to reverse the logical sense of the
+ mask vector. The logical compare operations (LT, LE, EQ, NE, GE, and GT) of the :ref:`voper` command
+ also produce a mask vector by operating on two other vectors. Any numeric vector can be used as a
+ mask vector since the actual interpretation assumes values less than 0.0 are 0.0 (false) and values
+ greater than 0.0 are 1.0 (true). If the mask vector is not specified (or has fewer values than the
+ result vector), true (1.0) values are assumed for the unspecified values. Another skip control may
+ be input with ``NINC`` on the :ref:`vlen` command. If both are present, operations occur only when
+ both are true. The mask setting is reset to the default (no mask) after each **\*V** ``XX`` or
+ **\*M** ``XX`` operation. Use :ref:`vstat` to list settings.
+
+ This command is valid in any processor.
+ """
+ command = f"*VMASK,{par}"
+ return self.run(command, **kwargs)
+
+ def voper(
+ self,
+ parr: str = "",
+ par1: str = "",
+ oper: str = "",
+ par2: str = "",
+ con1: str = "",
+ con2: str = "",
+ **kwargs,
+ ):
+ r"""Operates on two array parameters.
+
+ Mechanical APDL Command: `\*VOPER `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting array parameter vector. See :ref:`starset` for name restrictions.
+
+ par1 : str
+ First array parameter vector in the operation. May also be a scalar parameter or a literal
+ constant.
+
+ oper : str
+ Operations:
+
+ * ``ADD`` - Addition: ``Par1`` + ``Par2``.
+
+ * ``SUB`` - Subtraction: ``Par1`` - ``Par2``.
+
+ * ``MULT`` - Multiplication: ``Par1`` \* ``Par2`` .
+
+ * ``DIV`` - Division: ``Par1`` / ``Par2`` (a divide by zero results in a value of zero).
+
+ * ``MIN`` - Minimum: minimum of ``Par1`` and ``Par2``.
+
+ * ``MAX`` - Maximum: maximum of ``Par1`` and ``Par2``.
+
+ * ``LT`` - Less than comparison: ``Par1`` < ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``LE`` - Less than or equal comparison: ``Par1`` :math:`equation not available` ``Par2`` gives
+ 1.0 if true, 0.0 if false.
+
+ * ``EQ`` - Equal comparison: ``Par1`` = ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``NE`` - Not equal comparison: ``Par1`` ≠ ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``GE`` - Greater than or equal comparison: ``Par1`` :math:`equation not available` Par2 gives 1.0
+ if true, 0.0 if false.
+
+ * ``GT`` - Greater than comparison: ``Par1`` > ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``DER1`` - First derivative: d( ``Par1`` )/d( ``Par2`` ). The derivative at a point is determined
+ over points half way between the previous and next points (by linear interpolation). ``Par1`` must
+ be a function (a unique ``Par1`` value for each ``Par2`` value) and ``Par2`` must be in ascending
+ order.
+
+ * ``DER2`` - Second derivative: d :sup:`2` ( ``Par1`` )/d( ``Par2`` ) :sup:`2`. See also DER1.
+
+ * ``INT1`` - Single integral: ``Par1`` d( ``Par2`` ), where ``CON1`` is the integration constant.
+ The integral at a point is determined by using the single integration procedure described in the
+ `Mechanical APDL Theory Reference `_.
+
+ * ``INT2`` - Double integral: ``Par1`` d( ``Par2`` ), where ``CON1`` is the integration constant
+ of the first integral and ``CON2`` is the integration constant of the second integral. If ``Par1``
+ contains acceleration data, ``CON1`` is the initial velocity and ``CON2`` is the initial
+ displacement. See also INT1.
+
+ * ``DOT`` - Dot product: ``Par1``. ``Par2``. ``Par1`` and ``Par2`` must each have three consecutive
+ columns of data, with the columns containing the i, j, and k vector components, respectively. Only
+ the starting row index and the column index for the i components are specified for ``Par1`` and
+ ``Par2``, such as A(1,1). The j and k components of the vector are assumed to begin in the
+ corresponding next columns, such as A(1,2) and A(1,3).
+
+ * ``CROSS`` - Cross product: ``Par1`` x ``Par2``. ``Par1``, ``Par2``, and ``ParR`` must each have 3
+ components, respectively. Only the starting row index and the column index for the i components are
+ specified for ``Par1``, ``Par2``, and ``ParR``, such as A(1,1). The j and k components of the vector
+ are assumed to begin in the corresponding next columns, such as A(1,2) and A(1,3).
+
+ * ``GATH`` - Gather: For a vector of position numbers, ``Par2``, copy the value of ``Par1`` at each
+ position number to ``ParR``. Example: for ``Par1`` = 10,20,30,40 and ``Par2`` = 2,4,1; ``ParR`` =
+ 20,40,10.
+
+ * ``SCAT`` - Scatter: Opposite of GATH operation. For a vector of position numbers, ``Par2``, copy
+ the value of ``Par1`` to that position number in ``ParR``. Example: for ``Par1`` = 10,20,30,40,50
+ and ``Par2`` = 2,1,0,5,3; ``ParR`` = 20,10,50,0,40.
+
+ * ``ATN2`` - Arctangent: arctangent of ``Par1`` / ``Par2`` with the sign of each component
+ considered.
+
+ * ``LOCAL`` - Transform the data in ``Par1`` from the global Cartesian coordinate system to the
+ local coordinate system given in ``CON1``. ``Par1`` must be an N x 3 (that is, vector) or an N x 6
+ (that is, stress or strain tensor) array. If the local coordinate system is a cylindrical,
+ spherical, or toroidal system, then you must provide the global Cartesian coordinates in ``Par2`` as
+ an N x 3 array. Set ``CON2`` = 1 if the data is strain data.
+
+ * ``GLOBAL`` - Transform the data in ``Par1`` from the local coordinate system given in ``CON1`` to
+ the global Cartesian coordinate system. ``Par1`` must be an N x 3 (that is, vector) or an N x 6
+ (that is, stress or strain tensor) array. If the local coordinate system is a cylindrical,
+ spherical, or toroidal system, then you must provide the global Cartesian coordinates in ``Par2`` as
+ an N x 3 array. Set ``CON2`` = 1 if the data is strain data.
+
+ par2 : str
+ Second array parameter vector in the operation. May also be a scalar parameter or a literal
+ constant.
+
+ con1 : str
+ First constant (used only with the INT1 and INT2 operations).
+
+ con2 : str
+ Second constant (used only with the INT2 operation).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VOPER_argdescript:
+
+ * ``parr : str`` - The name of the resulting array parameter vector. See :ref:`starset` for name
+ restrictions.
+
+ * ``par1 : str`` - First array parameter vector in the operation. May also be a scalar parameter or
+ a literal constant.
+
+ * ``oper : str`` - Operations:
+
+ * ``ADD`` - Addition: ``Par1`` + ``Par2``.
+
+ * ``SUB`` - Subtraction: ``Par1`` - ``Par2``.
+
+ * ``MULT`` - Multiplication: ``Par1`` \* ``Par2`` .
+
+ * ``DIV`` - Division: ``Par1`` / ``Par2`` (a divide by zero results in a value of zero).
+
+ * ``MIN`` - Minimum: minimum of ``Par1`` and ``Par2``.
+
+ * ``MAX`` - Maximum: maximum of ``Par1`` and ``Par2``.
+
+ * ``LT`` - Less than comparison: ``Par1`` < ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``LE`` - Less than or equal comparison: ``Par1`` :math:`equation not available` ``Par2`` gives
+ 1.0 if true, 0.0 if false.
+
+ * ``EQ`` - Equal comparison: ``Par1`` = ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``NE`` - Not equal comparison: ``Par1`` ≠ ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``GE`` - Greater than or equal comparison: ``Par1`` :math:`equation not available` Par2 gives 1.0
+ if true, 0.0 if false.
+
+ * ``GT`` - Greater than comparison: ``Par1`` > ``Par2`` gives 1.0 if true, 0.0 if false.
+
+ * ``DER1`` - First derivative: d( ``Par1`` )/d( ``Par2`` ). The derivative at a point is determined
+ over points half way between the previous and next points (by linear interpolation). ``Par1`` must
+ be a function (a unique ``Par1`` value for each ``Par2`` value) and ``Par2`` must be in ascending
+ order.
+
+ * ``DER2`` - Second derivative: d :sup:`2` ( ``Par1`` )/d( ``Par2`` ) :sup:`2`. See also DER1.
+
+ * ``INT1`` - Single integral: ``Par1`` d( ``Par2`` ), where ``CON1`` is the integration constant.
+ The integral at a point is determined by using the single integration procedure described in the
+ `Mechanical APDL Theory Reference `_.
+
+ * ``INT2`` - Double integral: ``Par1`` d( ``Par2`` ), where ``CON1`` is the integration constant
+ of the first integral and ``CON2`` is the integration constant of the second integral. If ``Par1``
+ contains acceleration data, ``CON1`` is the initial velocity and ``CON2`` is the initial
+ displacement. See also INT1.
+
+ * ``DOT`` - Dot product: ``Par1``. ``Par2``. ``Par1`` and ``Par2`` must each have three consecutive
+ columns of data, with the columns containing the i, j, and k vector components, respectively. Only
+ the starting row index and the column index for the i components are specified for ``Par1`` and
+ ``Par2``, such as A(1,1). The j and k components of the vector are assumed to begin in the
+ corresponding next columns, such as A(1,2) and A(1,3).
+
+ * ``CROSS`` - Cross product: ``Par1`` x ``Par2``. ``Par1``, ``Par2``, and ``ParR`` must each have 3
+ components, respectively. Only the starting row index and the column index for the i components are
+ specified for ``Par1``, ``Par2``, and ``ParR``, such as A(1,1). The j and k components of the vector
+ are assumed to begin in the corresponding next columns, such as A(1,2) and A(1,3).
+
+ * ``GATH`` - Gather: For a vector of position numbers, ``Par2``, copy the value of ``Par1`` at each
+ position number to ``ParR``. Example: for ``Par1`` = 10,20,30,40 and ``Par2`` = 2,4,1; ``ParR`` =
+ 20,40,10.
+
+ * ``SCAT`` - Scatter: Opposite of GATH operation. For a vector of position numbers, ``Par2``, copy
+ the value of ``Par1`` to that position number in ``ParR``. Example: for ``Par1`` = 10,20,30,40,50
+ and ``Par2`` = 2,1,0,5,3; ``ParR`` = 20,10,50,0,40.
+
+ * ``ATN2`` - Arctangent: arctangent of ``Par1`` / ``Par2`` with the sign of each component
+ considered.
+
+ * ``LOCAL`` - Transform the data in ``Par1`` from the global Cartesian coordinate system to the
+ local coordinate system given in ``CON1``. ``Par1`` must be an N x 3 (that is, vector) or an N x 6
+ (that is, stress or strain tensor) array. If the local coordinate system is a cylindrical,
+ spherical, or toroidal system, then you must provide the global Cartesian coordinates in ``Par2`` as
+ an N x 3 array. Set ``CON2`` = 1 if the data is strain data.
+
+ * ``GLOBAL`` - Transform the data in ``Par1`` from the local coordinate system given in ``CON1`` to
+ the global Cartesian coordinate system. ``Par1`` must be an N x 3 (that is, vector) or an N x 6
+ (that is, stress or strain tensor) array. If the local coordinate system is a cylindrical,
+ spherical, or toroidal system, then you must provide the global Cartesian coordinates in ``Par2`` as
+ an N x 3 array. Set ``CON2`` = 1 if the data is strain data.
+
+ * ``par2 : str`` - Second array parameter vector in the operation. May also be a scalar parameter or
+ a literal constant.
+
+ * ``con1 : str`` - First constant (used only with the INT1 and INT2 operations).
+
+ * ``con2 : str`` - Second constant (used only with the INT2 operation).
+
+ .. _a-VOPER_notes:
+
+ Operates on two input array parameter vectors and produces one output array parameter vector
+ according to: ``ParR`` = ``Par1`` o ``Par2``
+
+ where the operations (o) are described below. ``ParR`` can be the same as ``Par1`` or ``Par2``.
+
+ Absolute values and scale factors can be applied to all parameters ( :ref:`vabs`, :ref:`vfact` ).
+ Results can be cumulative ( :ref:`vcum` ).
+
+ Starting array element numbers must be defined for each array parameter vector if it does not start
+ at the first location, such as :ref:`voper`,A,B(5),ADD,C(3) which adds the third element of C to the
+ fifth element of B and stores the result in the first element of A.
+
+ Operations continue on successive array elements ( :ref:`vlen`, :ref:`vmask` ) with the default
+ being all successive elements.
+
+ Skipping array elements via :ref:`vmask` or :ref:`vlen` for the DER and INT functions skips only
+ the writing of the results (skipped array element data are used in all calculations).
+
+ Parameter functions and operations are available to operate on a scalar parameter or a single
+ element of an array parameter, such as SQRT(B) or SQRT(A(4)). (See :ref:`starset` for more
+ information.)
+
+ Operations on a sequence of array elements can be performed by repeating the desired function or
+ operation in a do-loop ( ``*DO`` ). The vector operations within Mechanical APDLm ( **\*V** ``XX``
+ commands) are internally programmed do-loops that conveniently perform the indicated operation over
+ a sequence of array elements. If the array is multidimensional, only the first subscript is
+ incremented in the do-loop; that is, the operation repeats in column vector fashion down the array.
+ For example, for A(1,5), A(2,5), A(3,5), etc. The starting location of the row index must be defined
+ for each parameter read and for the result written.
+
+ The default number of loops is from the starting result location to the last result location and can
+ be altered via :ref:`vlen`.
+
+ A logical mask vector can be defined to control at which locations the operations are to be skipped
+ ( :ref:`vmask` ). The default is to skip no locations.
+
+ Repeat operations automatically terminate at the last array element of the result array column if
+ the number of loops is undefined or if it exceeds the last result array element.
+
+ Zeroes are used in operations for values read beyond the last array element of an input array
+ column. Existing values in the rows and columns of the results matrix remain unchanged where not
+ changed by the requested operation values.
+
+ The result array column may be the same as the input array column, as results in progress are stored
+ in a temporary array until being moved to the results array at the end of the operation. Results may
+ be overwritten or accumulated with the existing results ( :ref:`vcum` ). The default is to overwrite
+ results.
+
+ The absolute value can be used for each parameter read or written ( :ref:`vabs` ). A scale factor
+ (defaulting to 1.0) is also applied to each parameter read and written ( :ref:`vfact` ).
+
+ This command is valid in any processor.
+ """
+ command = f"*VOPER,{parr},{par1},{oper},{par2},{con1},{con2}"
+ return self.run(command, **kwargs)
+
+ def vscfun(self, parr: str = "", func: str = "", par1: str = "", **kwargs):
+ r"""Determines properties of an array parameter.
+
+ Mechanical APDL Command: `\*VSCFUN `_
+
+ Parameters
+ ----------
+ parr : str
+ The name of the resulting scalar parameter. See :ref:`starset` for name restrictions.
+
+ func : str
+ Functions:
+
+ * ``MAX`` - Maximum: the maximum ``Par1`` array element value.
+
+ * ``MIN`` - Minimum: the minimum ``Par1`` array element value.
+
+ * ``LMAX`` - Index location of the maximum ``Par1`` array element value. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``LMIN`` - Index location of the minimum ``Par1`` array element value. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``FIRST`` - Index location of the first nonzero value in array ``Par1``. Array ``Par1`` is
+ searched starting from its specified index.
+
+ * ``LAST`` - Index location of the last nonzero value in array ``Par1``. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``SUM`` - Sum: ``Par1`` (the summation of the ``Par1`` array element values).
+
+ * ``MEDI`` - Median: value of ``Par1`` at which there are an equal number of values above and below.
+
+ * ``MEAN`` - Mean: (σ Par1)/NUM, where NUM is the number of summed values.
+
+ * ``VARI`` - Variance: (σ (( ``Par1`` -MEAN)\*\*2))/NUM.
+
+ * ``STDV`` - Standard deviation: square root of VARI.
+
+ * ``RMS`` - Root-mean-square: square root of (σ ( ``Par1`` \*\*2))/NUM.
+
+ * ``NUM`` - Number: the number of summed values (masked values are not counted).
+
+ par1 : str
+ Array parameter vector in the operation.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VSCFUN_argdescript:
+
+ * ``parr : str`` - The name of the resulting scalar parameter. See :ref:`starset` for name
+ restrictions.
+
+ * ``func : str`` - Functions:
+
+ * ``MAX`` - Maximum: the maximum ``Par1`` array element value.
+
+ * ``MIN`` - Minimum: the minimum ``Par1`` array element value.
+
+ * ``LMAX`` - Index location of the maximum ``Par1`` array element value. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``LMIN`` - Index location of the minimum ``Par1`` array element value. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``FIRST`` - Index location of the first nonzero value in array ``Par1``. Array ``Par1`` is
+ searched starting from its specified index.
+
+ * ``LAST`` - Index location of the last nonzero value in array ``Par1``. Array ``Par1`` is searched
+ starting from its specified index.
+
+ * ``SUM`` - Sum: ``Par1`` (the summation of the ``Par1`` array element values).
+
+ * ``MEDI`` - Median: value of ``Par1`` at which there are an equal number of values above and below.
+
+ * ``MEAN`` - Mean: (σ Par1)/NUM, where NUM is the number of summed values.
+
+ * ``VARI`` - Variance: (σ (( ``Par1`` -MEAN)\*\*2))/NUM.
+
+ * ``STDV`` - Standard deviation: square root of VARI.
+
+ * ``RMS`` - Root-mean-square: square root of (σ ( ``Par1`` \*\*2))/NUM.
+
+ * ``NUM`` - Number: the number of summed values (masked values are not counted).
+
+ * ``par1 : str`` - Array parameter vector in the operation.
+
+ .. _a-VSCFUN_notes:
+
+ Operates on one input array parameter vector and produces one output scalar parameter according to:
+ ``ParR`` = f( ``Par1`` )
+
+ where the functions (f) are described below. The starting array element number must be defined for
+ the array parameter vector. For example, :ref:`vscfun`,MU,MEAN,A(1) finds the mean of the A vector
+ values, starting from the first value and stores the result as parameter MU. Operations use
+ successive array elements ( :ref:`vlen`, :ref:`vmask` ) with the default being all successive array
+ elements. Absolute values and scale factors may be applied to all parameters ( :ref:`vabs`,
+ :ref:`vfact` ). Results may be cumulative ( :ref:`vcum` ). See the :ref:`voper` command for details.
+
+ This command is valid in any processor.
+ """
+ command = f"*VSCFUN,{parr},{func},{par1}"
+ return self.run(command, **kwargs)
+
+ def vstat(self, **kwargs):
+ r"""Lists the current specifications for the array parameters.
+
+ Mechanical APDL Command: `\*VSTAT `_
+
+ Notes
+ -----
+
+ .. _a-VSTAT_notes:
+
+ Lists the current specifications for the :ref:`vabs`, :ref:`vcol`, :ref:`vcum`, :ref:`vfact`,
+ :ref:`vlen`, and :ref:`vmask` commands.
+
+ This command is valid in any processor.
+ """
+ command = "*VSTAT"
+ return self.run(command, **kwargs)
+
+ def vwrite(
+ self,
+ par1: str = "",
+ par2: str = "",
+ par3: str = "",
+ par4: str = "",
+ par5: str = "",
+ par6: str = "",
+ par7: str = "",
+ par8: str = "",
+ par9: str = "",
+ par10: str = "",
+ par11: str = "",
+ par12: str = "",
+ par13: str = "",
+ par14: str = "",
+ par15: str = "",
+ par16: str = "",
+ par17: str = "",
+ par18: str = "",
+ par19: str = "",
+ **kwargs,
+ ):
+ r"""Writes data to a file in a formatted sequence.
+
+ Mechanical APDL Command: `\*VWRITE `_
+
+ .. warning::
+
+ This command must be run using :func:`non_interactive `.
+ Please visit `Unsupported Interactive Commands `_
+ for further information.
+
+ Parameters
+ ----------
+ par1 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par2 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par3 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par4 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par5 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par6 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par7 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par8 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par9 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par10 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par11 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par12 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par13 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par14 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par15 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par16 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par17 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par18 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ par19 : str
+ You can write up to 19 parameters (or constants) at a time. Any Par values after a blank Par
+ value are ignored. If you leave them all blank, one line will be written (to write a title or a
+ blank line). If you input the keyword SEQU, a sequence of numbers (starting from 1) will be
+ written for that item.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VWRITE_argdescript:
+
+ * ``par1, par2, par3,..., par19 : str`` - You can write up to 19 parameters (or constants) at a
+ time. Any Par values after a blank Par value are ignored. If you leave them all blank, one line will
+ be written (to write a title or a blank line). If you input the keyword SEQU, a sequence of numbers
+ (starting from 1) will be written for that item.
+
+ .. _a-VWRITE_notes:
+
+ You use :ref:`vwrite` to write data to a file in a formatted sequence. Data items ( ``Par1``,
+ ``Par2``, etc.) may be array parameters, scalar parameters, character parameters (scalar or array),
+ or constants. You must evaluate expressions and functions in the data item fields before using the
+ :ref:`vwrite` command, since initially they will be evaluated to a constant and remain constant
+ throughout the operation. Unless a file is defined with the :ref:`cfopen` command, data is written
+ to the standard output file. Data written to the standard output file may be diverted to a different
+ file by first switching the current output file with the :ref:`output` command. You can also use the
+ :ref:`mwrite` command to write data to a specified file. Both commands contain format descriptors on
+ the line immediately following the command. The format descriptors can be in either FORTRAN or C
+ format.
+
+ You must enclose FORTRAN format descriptors in parentheses. They must immediately follow the
+ :ref:`vwrite` command on a separate line of the same input file. Do not include the word FORMAT. The
+ format must specify the number of fields to be written per line, the field width, the placement of
+ the decimal point, etc. You should use one field descriptor for each data item written. The write
+ operation uses your system's available FORTRAN FORMAT conventions (see your system FORTRAN manual).
+ You can use any standard FORTRAN real format (such as (4F6.0), (E10.3,2X,D8.2), etc.) and
+ alphanumeric format (A). Alphanumeric strings are limited to a maximum of 8 characters for any field
+ (A8) using the FORTRAN format. Use the "C" format for string arrays larger than 8 characters.
+ Integer (I) and list-directed (\2) descriptors may not be used. You can include text in the format as
+ a quoted string. The parentheses must be included in the format and the format must not exceed 80
+ characters (including parentheses). The output line length is limited to 128 characters.
+
+ The "C" format descriptors are used if the first character of the format descriptor line is not a
+ left parenthesis. "C" format descriptors are up to 80 characters long, consisting of text strings
+ and predefined "data descriptors" between the strings where numeric or alphanumeric character data
+ will be inserted. The normal descriptors are %I for integer data, %G for double precision data, %C
+ for alphanumeric character data, and %/ for a line break. There must be one data descriptor for each
+ specified value (8 maximum) in the order of the specified values. The enhanced formats described in
+ :ref:`msg` may also be used.
+
+ For array parameter items, you must define the starting array element number. Looping continues
+ (incrementing the vector index number of each array parameter by one) each time you output a line,
+ until the maximum array vector element is written. For example, :ref:`vwrite`,A(1) followed by
+ (F6.0) will write one value per output line, that is, A(1), A(2), A(3), A(4), etc. You write
+ constants and scalar parameters with the same values for each loop. You can also control the number
+ of loops and loop skipping with the :ref:`vlen` and :ref:`vmask` commands. The vector specifications
+ :ref:`vabs`, :ref:`vfact`, and :ref:`vcum` do not apply to this command. If looping continues beyond
+ the supplied data array's length, zeros will be output for numeric array parameters and blanks for
+ character array parameters. For multi-dimensioned array parameters, only the first (row) subscript
+ is incremented. See the :ref:`voper` command for details. If you are in the GUI, the :ref:`vwrite`
+ command must be contained in an externally prepared file and read into Mechanical APDL (that is,
+ :ref:`use`, :ref:`input`, etc.).
+
+ If ``Par`` is a table array name, the subscripts refer to the index numbers of the table and not the
+ index values of its primary variables. See :ref:`starset` if you want to evaluate a table array at
+ certain values of its primary variables for writing.
+
+ This command is valid in any processor.
+ """
+ command = f"*VWRITE,{par1},{par2},{par3},{par4},{par5},{par6},{par7},{par8},{par9},{par10},{par11},{par12},{par13},{par14},{par15},{par16},{par17},{par18},{par19}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/apdl/encryption_decryption.py b/src/ansys/mapdl/core/_commands/apdl/encryption_decryption.py
new file mode 100644
index 00000000000..578572b6b9a
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/apdl/encryption_decryption.py
@@ -0,0 +1,233 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class EncryptionDecryption:
+
+ def dbdecrypt(
+ self,
+ keya: str = "",
+ keyb: str = "",
+ datatype: str = "",
+ num1: str = "",
+ num2: str = "",
+ inc: str = "",
+ **kwargs,
+ ):
+ r"""Controls decryption of material data in the database file.
+
+ Mechanical APDL Command: `/DBDECRYPT `_
+
+ Parameters
+ ----------
+ keya : str
+ Decryption key A (32-character maximum). This key is used to decrypt the data in a one-level
+ encryption or to control access to the data in a two-level encryption. Leave this field blank if
+ you do not have key A.
+
+ keyb : str
+ Decryption key B (32-character maximum). This key is used to decrypt the data in a two-level
+ encryption. Leave this field blank if the database file is encrypted with one-level encryption.
+
+ datatype : str
+ Type of data to decrypt. Must be set to MAT for material data.
+
+ num1 : str
+ Decrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ num2 : str
+ Decrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ inc : str
+ Decrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ Notes
+ -----
+
+ .. _s-DBDECRYPT_notes:
+
+ This command decrypts data in the database file. It must be issued before resuming the database file
+ ( :ref:`resume` command). Only ``KeyA`` is required for a one-level encryption. For a `two-level
+ encryption
+ `_,
+ inputting ``KeyB`` gives you partial access to the data. Inputting both ``KeyA`` and ``KeyB`` gives
+ you full access.
+
+ For more information about using :ref:`dbdecrypt` in the encryption/decryption procedure, see
+ `Encrypting Material Data
+ `_
+ :ref:`dbencrypt` command.
+
+ This command is valid in any processor.
+ """
+ command = f"/DBDECRYPT,{keya},{keyb},{datatype},{num1},{num2},{inc}"
+ return self.run(command, **kwargs)
+
+ def dbencrypt(
+ self,
+ keya: str = "",
+ keyb: str = "",
+ datatype: str = "",
+ num1: str = "",
+ num2: str = "",
+ inc: str = "",
+ **kwargs,
+ ):
+ r"""Controls encryption of material data in the database file.
+
+ Mechanical APDL Command: `/DBENCRYPT `_
+
+ Parameters
+ ----------
+ keya : str
+ Encryption key A (32-character maximum). This key is used to encrypt the data in a one-level
+ encryption or to control access to the data in a two-level encryption.
+
+ keyb : str
+ Encryption key B (32-character maximum). This key is used to encrypt the data in a two-level
+ encryption. If ``KeyB`` is not specified, a one-level encryption is used to encrypt the data.
+
+ datatype : str
+ Type of data to encrypt. Must be set to MAT for material data.
+
+ num1 : str
+ Encrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ num2 : str
+ Encrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ inc : str
+ Encrypt materials from material number ``NUM1`` to ``NUM2`` (defaults to ``NUM1`` ) in steps of
+ ``INC`` (defaults to 1). If ``NUM1`` = ALL (default), ``NUM2`` and ``INC`` are ignored.
+
+ Notes
+ -----
+
+ .. _s-DBENCRYPT_notes:
+
+ This command encrypts data in the database file. It must be issued before saving the database file (
+ :ref:`save` command).
+
+ For a one-level encryption, specify only ``KeyA`` and set ``NUM1`` to ALL. ( ``NUM2`` and ``INC``
+ are not used.)
+
+ For a `two-level encryption
+ `_,
+ specify both ``KeyA`` and ``KeyB``. Also specify ``NUM1``, ``NUM2``, and ``INC`` as needed.
+
+ For more information about using :ref:`dbencrypt` in the encryption/decryption procedure, see
+ `Encrypting Material Data
+ `_
+ :ref:`dbdecrypt` command.
+
+ This command is valid in any processor.
+ """
+ command = f"/DBENCRYPT,{keya},{keyb},{datatype},{num1},{num2},{inc}"
+ return self.run(command, **kwargs)
+
+ def decrypt(self, key1: str = "", key2: str = "", **kwargs):
+ r"""Controls decryption of command input.
+
+ Mechanical APDL Command: `/DECRYPT `_
+
+ Parameters
+ ----------
+ key1 : str
+ Key to decrypt the encrypted input created by :ref:`encrypt`. The only valid label is PASSWORD.
+
+ key2 : str
+ Key to decrypt the encrypted input or to set the global encryption key. The following are valid
+ inputs:
+
+ * If ``Key2`` = OPENSSL or is blank, then decryption commences and the previously set global
+ encryption key is used for decryption.
+
+ * If ``Key2`` has a value, then that value is set as the global encryption key.
+
+ * If ``Key2`` = OFF, then the global encryption password previously set by the command
+ :ref:`decrypt`,PASSWORD, ``Key2`` is reset.
+
+ Notes
+ -----
+
+ .. _s-DECRYPT_notes:
+
+ When decrypting an encrypted input, ``/DECRYPT,PASSWORD,OPENSSL`` must appear as the first line of
+ the encrypted file. The line is inserted automatically when you issue :ref:`encrypt` to create the
+ encrypted file.
+
+ To read an encrypted file, enter :ref:`decrypt`,PASSWORD, ``Key2`` anywhere in the standard input
+ file to set the global encryption key. The encryption key must be set before reading in the
+ encrypted input.
+
+ :ref:`decrypt` is also valid when entered in the Command Input Window of the Mechanical APDL user
+ interface.
+
+ See `Encrypting Command Input and Other Data
+ `_
+ :ref:`decrypt` and performing encryption and decryption.
+ """
+ command = f"/DECRYPT,{key1},{key2}"
+ return self.run(command, **kwargs)
+
+ def encrypt(self, key: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Controls encryption of command input.
+
+ Mechanical APDL Command: `/ENCRYPT `_
+
+ Parameters
+ ----------
+ key : str
+ Encryption key used to encrypt the data (32-character maximum). A character parameter may be
+ used. If the key is unspecified, encryption is turned off.
+
+ fname : str
+ Name of file (including directory path) where the encrypted commands are written (248-character
+ maximum for both file name and directory). An unspecified directory path defaults to the working
+ directory; in this case, you can use all 248 characters for the file name.
+
+ ext : str
+ File name extension (eight-character maximum).
+
+ Notes
+ -----
+
+ .. _s-ENCRYPT_notes:
+
+ This command opens the encrypted file specified by ``Fname`` and ``Ext`` for writing encrypted input
+ commands.
+
+ Issuing this command results in a new file that overwrites any data in an existing file by the same
+ name. When the encrypted file is written, the first line in the file is
+ ``/DECRYPT``,PASSWORD,OPENSSL and the last line is ``/DECRYPT``.
+
+ See `Encrypting Command Input and Other Data
+ `_
+ :ref:`encrypt` and performing encryption and decryption.
+ """
+ command = f"/ENCRYPT,{key},{fname},{ext}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/apdl/macro_files.py b/src/ansys/mapdl/core/_commands/apdl/macro_files.py
index 3c26402ca1a..9de669016b0 100644
--- a/src/ansys/mapdl/core/_commands/apdl/macro_files.py
+++ b/src/ansys/mapdl/core/_commands/apdl/macro_files.py
@@ -22,442 +22,674 @@
class MacroFiles:
+
def cfclos(self, **kwargs):
- """Closes the "command" file.
+ r"""Closes the "command" file.
- APDL Command: ``*CFCLOS``
+ Mechanical APDL Command: `\*CFCLOS `_
Notes
-----
+
+ .. _a-CFCLOS_notes:
+
This command is valid in any processor.
"""
- command = f"*CFCLOS,"
+ command = "*CFCLOS"
return self.run(command, **kwargs)
- def cfopen(self, fname="", ext="", loc="", **kwargs):
- """Opens a "command" file.
+ def cfopen(self, fname: str = "", ext: str = "", loc: str = "", **kwargs):
+ r"""Opens a "command" file.
- APDL Command: ``*CFOPEN``
-
- .. warning::
- This command must be run using :func:`non_interactive
- `
+ Mechanical APDL Command: `\*CFOPEN `_
Parameters
----------
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
-
- ext
- Filename extension (eight-character maximum).
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to CMD if ``Fname`` is
+ blank.
- loc
+ loc : str
Determines whether existing file will be overwritten or appended:
- (blank) : The existing file will be overwritten.
- APPEND : The file will be appended to the existing file.
+ * ``(blank)`` - The existing file will be overwritten.
+
+ * ``APPEND`` - The file will be appended to the existing file.
Notes
-----
- Data processed with the ``*VWRITE`` command will also be written to this
- file if the file is open when the ``*VWRITE`` command is issued.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-CFOPEN_argdescript:
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). The extension defaults to CMD if
+ ``Fname`` is blank.
+
+ * ``loc : str`` - Determines whether existing file will be overwritten or appended:
+
+ * ``(blank)`` - The existing file will be overwritten.
+
+ * ``APPEND`` - The file will be appended to the existing file.
+
+ .. _a-CFOPEN_notes:
+
+ Mechanical APDL commands specified by the :ref:`cfwrite` command are written to the file opened by
+ :ref:`cfopen`. Data processed with the :ref:`vwrite` command are also written to this file if the
+ file is open when the :ref:`vwrite` command is issued.
+
+ Issue the :ref:`cfclos` command to close the command file.
This command is valid in any processor.
"""
- return self.run(f"*CFOPEN,{fname},{ext},,{loc}", **kwargs)
+ command = f"*CFOPEN,{fname},{ext},,{loc}"
+ return self.run(command, **kwargs)
- def cfwrite(self, command="", **kwargs):
- """Writes an ANSYS command (or similar string) to a "command" file.
+ def cfwrite(self, command: str = "", **kwargs):
+ r"""Writes a Mechanical APDL command (or similar string) to a "command" file.
- APDL Command: ``*CFWRITE``
+ Mechanical APDL Command: `\*CFWRITE `_
Parameters
----------
- command
- Command or string to be written. The standard command form of a
- label followed by arguments separated by commas is assumed.
- Command may be a parameter assignment (e.g., ``*CFWRITE, A = 5``).
+ command : str
+ Command or string to be written. The standard command form of a label followed by arguments
+ separated by commas is assumed. ``Command`` may be a parameter assignment (for example,
+ :ref:`cfwrite`, A = 5).
Notes
-----
- Writes an ANSYS command (or similar string) to the file opened
- with ``*CFOPEN``. The Command string is not executed (except
- that numeric and character parameter substitution and
- operations (with embedded ``*``, /, >,$ etc. characters) are
- performed before writing). When used with ``*GET`` results
- and parameter substitution, an ANSYS command can be created
- from results and then read back into the ANSYS program (or
- used elsewhere). For example, if the command
- ``*CFWRITE,BF,NNUM,TEMP,TVAL`` is used in a do-loop, where
- TVAL is a parameter value returned from the ``*GET`` operation
- and NNUM is a specified or returned parameter value, a series
- of BF commands, with numerical values substituted for the two
- parameters, will be written. To create a file without
- parameter substitution, use ``*CREATE``.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-CFWRITE_argdescript:
+
+ * ``command : str`` - Command or string to be written. The standard command form of a label followed
+ by arguments separated by commas is assumed. ``Command`` may be a parameter assignment (for example,
+ :ref:`cfwrite`, A = 5).
+
+ .. _a-CFWRITE_notes:
+
+ Writes a Mechanical APDL command (or similar string) to the file opened via :ref:`cfopen`. The
+ ``Command``
+ string is not executed (except that numeric and character parameter substitution and operations
+ (with imbedded \*, /, >, etc. characters) are performed before writing).
+
+ When used with :ref:`get` results and parameter substitution, a command can be created from results
+ and then read back into the Mechanical APDL program (or used elsewhere). For example, if the command
+ :ref:`cfwrite`,BF,NNUM,TEMP,TVAL is used in a do-loop, where TVAL is a parameter value returned from
+ the :ref:`get` operation and NNUM is a specified or returned parameter value, a series of :ref:`bf`
+ commands, with numerical values substituted for the two parameters, will be written.
+
+ To create a file without parameter substitution, issue :ref:`create`.
This command is valid in any processor.
"""
command = f"*CFWRITE,{command}"
return self.run(command, **kwargs)
- def create(self, fname="", ext="", **kwargs):
- """Opens (creates) a macro file.
+ def create(self, fname: str = "", ext: str = "", **kwargs):
+ r"""Opens (creates) a macro file.
- APDL Command: ``*CREATE``
+ Mechanical APDL Command: `\*CREATE `_
.. warning::
- This command must be run using :func:`non_interactive
- `
+
+ This command must be run using :func:`non_interactive `.
+ Please visit `Unsupported Interactive Commands `_
+ for further information.
Parameters
----------
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. Do not use a directory path if file is to be
+ read with the macro ``Name`` option of the :ref:`use` command.
- ext
- Filename extension (eight-character maximum).
+ ext : str
+ Filename extension (eight-character maximum). ``Ext`` should not be used if file is to be read
+ with the macro ``Name`` option of the :ref:`use` command.
Notes
-----
- See the ``*USE`` command for a discussion of macros. All
- commands following the ``*CREATE`` command, up to the ``*END``
- command, are written to the specified file without being
- executed. An existing file of the same name, if any, will be
- overwritten. Parameter values are not substituted for
- parameter names in the commands when the commands are written
- to the file. Use ``*CFWRITE`` to create a file if this is
- desired. The resulting macro may be executed with a ``*USE``
- command (which also allows parameters to be passed into the
- macro) or a /INPUT command (which does not allow parameters to
- be passed in). Several macros may be stacked into a library
- file ``[*ULIB]``. You cannot use ``*CREATE`` within a DO loop.
- This command is valid in any processor.
- """
- return self.run(f"*CREATE,{fname},{ext}", **kwargs)
+ .. warning::
- def dflab(self, dof="", displab="", forcelab="", **kwargs):
- """Changes degree-of-freedom labels for user custom elements.
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
- APDL Command: /DFLAB
+ **Argument Descriptions**
- Parameters
- ----------
- dof
- Number between 1 and 32 indicating which degree of freedom is to
- have its labels changed. For a list of these quantities, see the
- degree-of-freedom table in the echprm.inc file. The first few
- quantities follow:
+ .. _a-CREATE_argdescript:
- displab
- New label (four-character maximum) for the displacement label. The
- prior label is no longer valid.
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. Do not use a directory path if file is to be read with
+ the macro
+ ``Name`` option of the :ref:`use` command.
- forcelab
- New label (four-character maximum) for the force label for this
- degree of freedom. The prior label is no longer valid.
+ * ``ext : str`` - Filename extension (eight-character maximum). ``Ext`` should not be used if file
+ is to be read with the macro
+ ``Name`` option of the :ref:`use` command.
- Notes
- -----
- The /DFLAB command is rarely used. Use it if you are writing a custom
- element and want to use degrees of freedom that are not part of the
- standard element set.
+ .. _a-CREATE_notes:
+
+ See the :ref:`use` command for a discussion of macros. All commands following the :ref:`create`
+ command, up to the :ref:`end` command, are written to the specified file without being executed. An
+ existing file of the same name, if any, will be overwritten. Parameter values are not substituted
+ for parameter names in the commands when the commands are written to the file. Use :ref:`cfwrite` to
+ create a file if this is desired. The resulting macro may be executed with a :ref:`use` command
+ (which also allows parameters to be passed into the macro) or a :ref:`input` command (which does not
+ allow parameters to be passed in). Several macros may be stacked into a library file ( :ref:`ulib`
+ ). You cannot use :ref:`create` within a DO loop.
+
+ This command is valid in any processor.
"""
- command = f"/DFLAB,{dof},{displab},{forcelab}"
+ command = f"*CREATE,{fname},{ext}"
return self.run(command, **kwargs)
def end(self, **kwargs):
- """Closes a macro file.
+ r"""Closes a macro file.
- APDL Command: ``*END``
+ Mechanical APDL Command: `\*END `_
Notes
-----
- Closes a file opened with ``*CREATE``. The ``*END`` command is an 8-character
- command (to differentiate it from ``*ENDIF``). If you add commented text
- on that same line but do not allow enough spaces between ``*END`` and the
- "!" that indicates the comment text, the ``*END`` will attempt to interpret
- the "!" as the 8th character and will fail.
+
+ .. _a-END_notes:
+
+ Closes a file opened with :ref:`create`. The :ref:`end` command is an 8-character command (to
+ differentiate it from ``*ENDIF`` ). If you add commented text on that same line but do not allow
+ enough spaces between :ref:`end` and the "!" that indicates the comment text, the :ref:`end` will
+ attempt to interpret the "!" as the 8th character and will fail.
This command is valid in any processor.
"""
- command = f"*END,"
+ command = "*END"
return self.run(command, **kwargs)
- def mkdir(self, dir_="", **kwargs):
- """Creates a directory.
+ def mkdir(self, dir_: str = "", **kwargs):
+ r"""Creates a directory.
- APDL Command: /MKDIR
+ Mechanical APDL Command: `/MKDIR `_
Parameters
----------
- dir_
- The directory to create (248 characters maximum on Linux;
- 233 on Windows). If no path is provided, it will be
- created in the current working directory. Must be a valid
- name (and path) for the system you are working on.
+ dir_ : str
+ The directory to create (248 characters maximum on Linux; 233 on Windows). If no path is
+ provided, it will be created in the current working directory. Must be a valid name (and path)
+ for the system you are working on.
Notes
-----
- It is recommended to just use ``os.mkdir``
- Creates a directory on the computer ANSYS is currently running on.
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+ * ``Dir`` - The directory to create (248 characters maximum on Linux; 233 on Windows). If no path is
+ provided, it will be created in the current working directory. Must be a valid name (and path) for
+ the system you are working on.
+
+ Creates a directory on the computer Mechanical APDL is currently running on.
"""
command = f"/MKDIR,{dir_}"
return self.run(command, **kwargs)
def msg(
self,
- lab="",
- val1="",
- val2="",
- val3="",
- val4="",
- val5="",
- val6="",
- val7="",
- val8="",
+ lab: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ val6: str = "",
+ val7: str = "",
+ val8: str = "",
**kwargs,
):
- """Writes an output message via the ANSYS message subroutine.
+ r"""Writes an output message via the Mechanical APDL message subroutine.
- APDL Command: ``*MSG``
+ Mechanical APDL Command: `\*MSG `_
Parameters
----------
- lab
+ lab : str
Label for output and termination control:
- Writes the message with no heading (default). - Writes the
- message with a "NOTE" heading.
+ * ``INFO`` - Writes the message with no heading (default).
+
+ * ``NOTE`` - Writes the message with a "NOTE" heading.
+
+ * ``WARN`` - Writes the message with a "WARNING" heading. Also writes the message to the errors
+ file, :file:`JobnameERR`.
- Writes the message with a "WARNING" heading. Also writes
- the message to the errors file, Jobname.ERR. - Writes the
- message with a "ERROR" heading and causes run termination
- (if batch) at earliest "clean exit" point. Also writes
- the message to the errors file, Jobname.ERR.
+ * ``ERROR`` - Writes the message with a "ERROR" heading and causes run termination (if batch) at
+ earliest "clean exit" point. Also writes the message to the errors file, :file:`JobnameERR`.
- Writes the message with a "FATAL ERROR" heading and causes
- run termination immediately. Also writes the message to
- the errors file, Jobname.ERR. - Writes the message with a
- "NOTE" heading and displays it in the message dialog box.
- This option is most useful in GUI mode.
+ * ``FATAL`` - Writes the message with a "FATAL ERROR" heading and causes run termination
+ immediately. Also writes the message to the errors file, :file:`JobnameERR`.
- val1, val2, val3, . . . , val8
- Numeric or alphanumeric character values to be included in message.
- Values may be the results of parameter evaluations. All numeric
- values are assumed to be double precision. The FORTRAN nearest
- integer (NINT) function is used to form integers for the %I
- specifier.
+ * ``UI`` - Writes the message with a "NOTE" heading and displays it in the message dialog box. This
+ option is most useful in GUI mode.
+
+ val1 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val2 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val3 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val4 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val5 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val6 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val7 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
+
+ val8 : str
+ Numeric or alphanumeric character values to be included in message. Values may be the results of
+ parameter evaluations. All numeric values are assumed to be double precision. The FORTRAN
+ nearest integer (NINT) function is used to form integers for the %I specifier.
Notes
-----
- Allows writing an output message via the ANSYS message subroutine.
- Also allows run termination control. This command is used only when
- contained in a prepared file read into the ANSYS program (i.e.,
- ``*USE,/INPUT``, etc.). A message format must immediately follow the ``*MSG``
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MSG_argdescript:
+
+ * ``lab : str`` - Label for output and termination control:
+
+ * ``INFO`` - Writes the message with no heading (default).
+
+ * ``NOTE`` - Writes the message with a "NOTE" heading.
+
+ * ``WARN`` - Writes the message with a "WARNING" heading. Also writes the message to the errors
+ file, :file:`JobnameERR`.
+
+ * ``ERROR`` - Writes the message with a "ERROR" heading and causes run termination (if batch) at
+ earliest "clean exit" point. Also writes the message to the errors file, :file:`JobnameERR`.
+
+ * ``FATAL`` - Writes the message with a "FATAL ERROR" heading and causes run termination
+ immediately. Also writes the message to the errors file, :file:`JobnameERR`.
+
+ * ``UI`` - Writes the message with a "NOTE" heading and displays it in the message dialog box. This
+ option is most useful in GUI mode.
+
+ * ``val1, val2, val3,..., val8 : str`` - Numeric or alphanumeric character values to be included
+ in message. Values may be the results of parameter evaluations. All numeric values are assumed to be
+ double precision. The FORTRAN nearest integer (NINT) function is used to form integers for the %I
+ specifier.
+
+ .. _a-MSG_notes:
+
+ Allows writing an output message via the Mechanical APDL message subroutine. Also allows run
+ termination
+ control. This command is used only when contained in a prepared file read into the Mechanical APDL
+ program
+ (that is, :ref:`use`, :ref:`input`, etc.). A message format must immediately follow the :ref:`msg`
command (on a separate line, without parentheses, as described below).
- The message format may be up to 80 characters long, consisting of text
- strings and predefined "data descriptors" between the strings where
- numeric or alphanumeric character data are to be inserted. The normal
- descriptors are %I for integer data, %G for double precision data, %C
- for alphanumeric character data, and %/ for a line break. The
- corresponding FORTRAN data descriptors are I9, 1PG16.9 and A8,
- respectively. Each descriptor must be preceded by a blank. There must
- be one data descriptor for each specified value (8 maximum) in the
- order of the specified values.
-
- Enhanced descriptions may also be used:
-
- Do not begin ``*MSG`` format lines with ``*IF``, ``*ELSE`` ,
- ``*ELSEIF``, or ``*ENDIF`` . If the last nonblank character
- of the message format is an ampersand (&), a second line will
- also be read as a continuation of the format. Up to nine
- continuations (ten total lines) may be read. If normal
- descriptions are used, then consecutive blanks are condensed
- into one blank upon output, and a period is appended. Up to
- ten lines of output of 72 characters each may be produced
- (using the %/ descriptor). Two examples follow.
-
- Here is an example of the ``*MSG`` command and a format to print a message
- with two integer values and one real value:
+ The message format may be up to 80 characters long, consisting of text strings and predefined "data
+ descriptors" between the strings where numeric or alphanumeric character data are to be inserted.
+ The normal descriptors are %I for integer data, %G for double precision data, %C for alphanumeric
+ character data, and %/ for a line break. The corresponding FORTRAN data descriptors are I9, 1PG16.9
+ and A8, respectively. Each descriptor must be preceded by a blank. There must be one data descriptor
+ for each specified value (8 maximum) in the order of the specified values.
+
+ Enhanced descriptions may also be used: This command contains some tables and extra information
+ which can be inspected in the original documentation pointed above.
+
+ Do not begin :ref:`msg` format lines with ``*IF``, ``*ELSE``, ``*ELSEIF``, or ``*ENDIF``. If the
+ last nonblank character of the message format is an ampersand (&), a second line will also be read
+ as a continuation of the format. Up to nine continuations (ten total lines) may be read. If normal
+ descriptions are used, then consecutive blanks are condensed into one blank upon output, and a
+ period is appended. Up to ten lines of output of 72 characters each may be produced (using the %/
+ descriptor). Two examples follow.
+
+ Here is an example of the :ref:`msg` command and a format to print a message with two integer values
+ and one real value:
+
+ .. code:: apdl
+
+ *MSG, INFO, 'Inner',25,1.2,148
+ Radius ( %C) = %I, Thick = %G, Length = %I
The output line is:
- Here is an example illustrating multiline displays in GUI message
- windows:
+ .. code:: apdl
- Note:: : The /UIS,MSGPOP command controls which messages are displayed
- in the message dialog box when the GUI is active. All messages
- produced by the ``*MSG`` command are subject to the /UIS specification,
- with one exception, If Lab = UI, the message will be displayed in the
- dialog box regardless of the /UIS specification.
+ Radius (Inner) = 25, Thick = 1.2, Length = 148.
- This command is valid in any processor.
+ Here is an example illustrating multiline displays in GUI message windows:
+
+ .. code:: apdl
+
+ *MSG,UI,Vcoilrms,THTAv,Icoilrms,THTAi,Papprnt,Pelec,PF,indctnc
+ Coil RMS voltage, RMS current, apparent pwr, actual pwr, pwr factor: %/&
+ Vcoil = %G V (electrical angle = %G DEG) %/&
+ Icoil = %G A (electrical angle = %G DEG) %/&
+ APPARENT POWER = %G W %/&
+ ACTUAL POWER = %G W %/&
+ Power factor: %G %/&
+ Inductance = %G %/&
+ VALUES ARE FOR ENTIRE COIL (NOT JUST THE MODELED SECTOR)
+ The :ref:`uis`,MSGPOP command controls which messages are displayed in the message dialog box when
+ the GUI is active. All messages produced by the :ref:`msg` command are subject to the :ref:`uis`
+ specification, with one exception, If ``Lab`` = UI, the message will be displayed in the dialog box
+ regardless of the :ref:`uis` specification.
+
+ This command is valid in any processor.
"""
command = f"*MSG,{lab},{val1},{val2},{val3},{val4},{val5},{val6},{val7},{val8}"
return self.run(command, **kwargs)
def pmacro(self, **kwargs):
- """Specifies that macro contents be written to the session log file.
+ r"""Specifies that macro contents be written to the session log file.
- APDL Command: /PMACRO
+ Mechanical APDL Command: `/PMACRO `_
Notes
-----
- This command forces the contents of a macro or other input file to be
- written to Jobname.LOG. It is valid only within a macro or input file,
- and should be placed at the top of the file. /PMACRO should be
- included in any macro or input file that calls GUI functions.
+
+ .. _s-PMACRO_notes:
+
+ This command forces the contents of a macro or other input file to be written to
+ :file:`Jobname.LOG`. It is valid only within a macro or input file, and should be placed at the top
+ of the file. :ref:`pmacro` should be included in any macro or input file that calls GUI
+ functions.
"""
- command = f"/PMACRO,"
+ command = "/PMACRO"
return self.run(command, **kwargs)
- def psearch(self, pname="", **kwargs):
- """Specifies a directory to be searched for "unknown command" macro files.
+ def psearch(self, pname: str = "", **kwargs):
+ r"""Specifies a directory to be searched for "unknown command" macro files.
- APDL Command: /PSEARCH
+ Mechanical APDL Command: `/PSEARCH `_
Parameters
----------
- pname
- Path name (64 characters maximum, and must include the final
- delimiter) of the middle directory to be searched. Defaults to the
- user home directory. If Pname = OFF, search only the ANSYS and
- current working directories. If Pname = STAT, list the current
- middle directory and show the ANSYS_MACROLIB setting.
+ pname : str
+ Path name (64 characters maximum, and must include the final delimiter) of the middle directory
+ to be searched. Defaults to the user home directory. If ``Pname`` = OFF, search only the program
+ and current working directories. If ``Pname`` = STAT, list the current middle directory and show
+ the ANSYS_MACROLIB setting.
Notes
-----
- Specifies the pathname of a directory for file searches when reading
- "unknown command" macro files. The search for the files is typically
- from the ANSYS directory, then from the user home directory, and then
- from the current working directory. This command allows the middle
- directory searched to be other than the user home directory.
- This command is valid only at the Begin Level.
+ .. _s-PSEARCH_notes:
+
+ Specifies the pathname of a directory for file searches when reading unknown-command macro files.
+
+ The search for the files is typically from the program directory, then from the user home directory,
+ and then from the current working directory. The command allows the middle directory searched to be
+ other than the user home directory.
+
+ This command is valid only at the Begin level.
"""
command = f"/PSEARCH,{pname}"
return self.run(command, **kwargs)
- def rmdir(self, dir_="", **kwargs):
- """Removes (deletes) a directory.
+ def rmdir(self, dir_: str = "", **kwargs):
+ r"""Removes (deletes) a directory.
- APDL Command: /RMDIR
+ Mechanical APDL Command: `/RMDIR `_
Parameters
----------
- dir\\_
- The directory to remove. If no path is provided, it will be assumed
- to be in the current working directory. All files in the directory
- are also removed.
+ dir_ : str
+ The directory to remove. If no path is provided, it will be assumed to be in the current working
+ directory. All files in the directory are also removed.
Notes
-----
- Removes a directory on the computer ANSYS is currently running on. No
- warning or prompt is given, so use with extreme caution.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+ * ``Dir`` - The directory to remove. If no path is provided, it will be assumed to be in the current
+ working directory. All files in the directory are also removed.
+
+ Removes a directory on the computer on which Mechanical APDL is currently running. No warning or
+ prompt is
+ given, so use with extreme caution.
"""
command = f"/RMDIR,{dir_}"
return self.run(command, **kwargs)
- def tee(self, label="", fname="", ext="", **kwargs):
- """Writes a list of commands to a specified file at the same time that the
+ def slashtee(self, label: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Writes a list of commands to a specified file at the same time that the commands are being executed.
- APDL Command: /TEE
- commands are being executed.
+ Mechanical APDL Command: `/TEE `_
Parameters
----------
- label
- Indicates how ANSYS is to interpret this /TEE command:
-
- Signals the beginning of the command text that is to be
- written to Fname. If Fname already exists, specifying NEW
- causes the contents of Fname to be overwritten. -
- Indicates that you want to append to Fname the command
- text that follows.
-
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
- Filename extension (eight-character maximum).
+ label : str
+ Specifies how Mechanical APDL is to interpret this :ref:`slashtee` command:
+
+ * ``NEW`` - Signals the beginning of the command text that is to be written to ``Fname``. If
+ ``Fname`` already exists, specifying NEW causes the contents of ``Fname`` to be overwritten.
+
+ * ``APPEND`` - Indicates that you want to append to ``Fname`` the command text that follows.
+
+ * ``END`` - Signals the end of the command text that is to be written to or appended to ``Fname``.
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name.
+
+ ext : str
+ Filename extension (eight-character maximum). If you plan to execute the file as if it were a
+ Mechanical APDL command, use the extension ``.mac``.
Notes
-----
- You can use the /TEE command to record a macro to a specified file at
- the same time that the macro is being executed. It is similar to the
- Linux tee command.
- For more information about the /TEE command, see the Introducing APDL
- of the ANSYS Parametric Design Language Guide.
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
- The following example illustrates the use of the /TEE command. If you
- issue these commands:
+ .. _pmTEEsargdescript:
- the content of myfile.mac is:
+ * ``label : str`` - Specifies how Mechanical APDL is to interpret this :ref:`slashtee` command:
- This command is valid in any processor, but only during an interactive
- run.
+ * ``NEW`` - Signals the beginning of the command text that is to be written to ``Fname``. If
+ ``Fname`` already exists, specifying NEW causes the contents of ``Fname`` to be overwritten.
+
+ * ``APPEND`` - Indicates that you want to append to ``Fname`` the command text that follows.
+
+ * ``END`` - Signals the end of the command text that is to be written to or appended to ``Fname``.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name.
+ * ``ext : str`` - Filename extension (eight-character maximum). If you plan to execute the file as
+ if it were a Mechanical APDL command, use
+ the extension ``.mac``.
+
+ .. _s-TEE_notes:
+
+ You can use the :ref:`slashtee` command to record a macro to a specified file at the same time that
+ the macro is being executed. It is similar to the Linux **tee** command.
+
+ For more information about the :ref:`slashtee` command, see the of the `Ansys Parametric Design
+ Language Guide `_.
+
+ The following example illustrates the use of the :ref:`slashtee` command. If you issue these
+ commands:
+
+ .. code:: apdl
+
+ /tee,new,myfile,mac
+ et,1,42,0,0,1
+ ex,1,3e7
+ /tee,end
+ /tee,append,myfile,mac
+ n,1,8
+ n,5,11
+ fill
+ ngen,5,5,1,5,1,0,1
+ /tee,end
+
+ the content of **myfile.mac** is:
+
+ .. code:: apdl
+
+ et,1,42,0,0,1
+ ex,1,3e7
+ n,1,8
+ n,5,11
+ fill
+ ngen,5,5,1,5,1,0,1
+
+ This command is valid in any processor, but only during an interactive run.
"""
command = f"/TEE,{label},{fname},{ext}"
return self.run(command, **kwargs)
- def ulib(self, fname="", ext="", **kwargs):
- """Identifies a macro library file.
+ def ulib(self, fname: str = "", ext: str = "", **kwargs):
+ r"""Identifies a macro library file.
- APDL Command: ``*ULIB``
+ Mechanical APDL Command: `\*ULIB `_
Parameters
----------
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name.
- ext
+ ext : str
Filename extension (eight-character maximum).
Notes
-----
- Identifies a macro library file for the ``*USE`` command. A
- library of macros allows blocks of often used ANSYS commands
- to be stacked and executed from a single file. The macro
- blocks must be enclosed within block identifier and terminator
- lines as shown in the example below. If you want to add
- comment lines to a macro block, you may place them anywhere
- within the macro block. (This includes placing them directly
- on the lines where the macro block identifier and the macro
- block terminator appear, as shown in the example.) Do not
- place comment lines (or any other lines) outside of a macro
- block.
-
- The name of the macro library file is identified for reading
- on the ``*ULIB`` command. The name of the macro block is
- identified on the ``*USE`` command. The commands within the macro
- block are copied to a temporary file (of the macro block name)
- during the ``*USE`` operation and executed as if a macro file of
- that name had been created by the user. The temporary file is
- deleted after it has been used. Macro block names should be
- acceptable filenames (system dependent) and should not match
- user created macro file names, since the user macro file will
- be used first (if it exists) before the library file is
- searched. Macro blocks may be stacked in any order.
- Branching [``*GO`` or ``*IF``] external to the macro block is not
- allowed.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-ULIB_argdescript:
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the directory path). An unspecified directory path defaults to the working directory; in
+ this case, you can use all 248 characters for the file name.
+
+ * ``ext : str`` - Filename extension (eight-character maximum).
+
+ .. _a-ULIB_notes:
+
+ Identifies a macro library file for the :ref:`use` command.
+
+ A library of macros allows blocks of often-used commands to be stacked and executed from a single
+ file. The macro blocks must be enclosed within block identifier and terminator lines as shown in
+ this example: **Example: Macro Blocks**
+
+ .. code:: apdl
+
+ ABC! Any valid alphanumeric name (32 characters maximum)
+ ! identifying this data block
+ ---! Mechanical APDL data-input commands
+ ---
+ ---
+ /EOF! Terminator for this data block
+ XYZ! Identify another data block (if desired)
+ ---! Mechanical APDL data-input commands
+ ---
+ ---
+ /EOF! Terminator for this data block
+ (etc.)
+
+ To add comment lines to a macro block, place them anywhere within the macro block, including
+ directly on the lines where the macro block identifier and the macro block terminator appear as
+ shown in the example. Do not place comment lines (or any other lines) outside of a macro block.
+
+ The name of the macro library file is identified for reading via :ref:`ulib`. The name of the macro
+ block is identified via :ref:`use`.
+
+ Commands within the macro block are copied to a temporary file (of the macro block name) during the
+ :ref:`use` operation and executed as if a macro file of that name had been created. The temporary
+ file is deleted after it has been used.
+
+ Macro block names should be acceptable file names (system-dependent) and should not match user-
+ created macro file names, as the user-created macro file is used first (if it exists) before the
+ library file is searched.
+
+ Macro blocks may be stacked in any order. Branching ( ``*GO`` or ``*IF`` ) external to the macro
+ block is not allowed.
This command is valid in any processor.
"""
@@ -466,124 +698,228 @@ def ulib(self, fname="", ext="", **kwargs):
def use(
self,
- name="",
- arg1="",
- arg2="",
- arg3="",
- arg4="",
- arg5="",
- arg6="",
- arg7="",
- arg8="",
- arg9="",
- ar10="",
- ar11="",
- ar12="",
- ar13="",
- ar14="",
- ag15="",
- ar16="",
- ar17="",
- ar18="",
+ name: str = "",
+ arg1: str = "",
+ arg2: str = "",
+ arg3: str = "",
+ arg4: str = "",
+ arg5: str = "",
+ arg6: str = "",
+ arg7: str = "",
+ arg8: str = "",
+ arg9: str = "",
+ ar10: str = "",
+ ar11: str = "",
+ ar12: str = "",
+ ar13: str = "",
+ ar14: str = "",
+ ag15: str = "",
+ ar16: str = "",
+ ar17: str = "",
+ ar18: str = "",
**kwargs,
):
- """Executes a macro file.
+ r"""Executes a macro file.
- APDL Command: ``*USE``
+ Mechanical APDL Command: `\*USE `_
Parameters
----------
- name
- Name (32 characters maximum, beginning with a letter) identifying
- the macro file or a macro block on a macro library file.
-
- arg1, arg2, arg3, . . . , ar18
- Values passed into the file or block where the parameters ARG1
- through ARG9 and AR10 through AR18 are referenced. Values may be
- numbers, alphanumeric character strings (up to 32 characters
- enclosed in single quotes), parameters (numeric or character) or
- parametric expressions. See below for additional details.
+ name : str
+ Name (32 characters maximum, beginning with a letter) identifying the macro file or a macro
+ block on a macro library file.
+
+ arg1 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg2 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg3 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg4 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg5 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg6 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg7 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg8 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ arg9 : str
+ Values passed into the file or block where the parameters ARG1 through ARG9 and AR10 through
+ AR18 are referenced. Values may be numbers, alphanumeric character strings (up to 32 characters
+ enclosed in single quotes), parameters (numeric or character) or parametric expressions. See
+ below for additional details.
+
+ ar10 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar11 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar12 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar13 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar14 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ag15 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar16 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar17 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
+
+ ar18 : str
+ The description of the argument is missing in the Python function. Please, refer to the `command
+ documentation `_
+ for further information.
Notes
-----
- Causes execution of a macro file called Name, or, if not found, a macro
- block "Name" on the macro library file [``*ULIB``]. Argument values
- (numeric or character) are passed into the file or block and
- substituted for local parameters ARG1, ARG2, ..., AR18. The file Name
- may also be executed as an "unknown command" (i.e., without the ``*USE``
- command name) as described below.
-
- A macro is a sequence of ANSYS commands (as many as needed) recorded in
- a file or in a macro block in a library file (specified with the ``*ULIB``
- command). The file or block is typically executed with the ``*USE``
- command. In addition to command, numerical and alphanumeric data, the
- macro may include parameters which will be assigned numerical or
- alphanumerical character values when the macro is used. Use of the
- macro may be repeated (within a do-loop, for example) with the
- parameters incremented. A macro is defined within a run by "enclosing"
- a sequence of data input commands between a ``*CREATE`` and a ``*END``
- command. The data input commands are passive (not executed) while
- being written to the macro file. The macro file (without ``*CREATE`` and
- ``*END`` ) can also be created external to ANSYS.
-
- Up to 99 specially named scalar parameters called ARG1 to AR99 are
- locally available to each macro. Note that the prefix for the first 9
- parameters is "ARG," while the prefix for the last 90 is "AR." A local
- parameter is one which is not affected by, nor does it affect, other
- parameters, even those of the same name, which are used outside of the
- macro. The only way a local parameter can affect, or be affected by,
- parameters outside the macro is if values are passed out of, or into,
- the macro by an argument list. Parameters ARG1 through AR18 can have
- their values (numeric or character) passed via the argument list on the
- ``*USE`` command (ARG1 through AR19 can be passed as arguments on the
- "unknown command" macro). Parameters AR19 through AR99 (AR20 through
- AR99 in the "unknown command" macro) are available solely for use
- within the macro; they cannot be passed via an argument list. Local
- parameters are available to do-loops and to /INPUT files processed
- within the macro. In addition to an ARG1--AR99 set for each macro,
- another ARG1--AR99 set is available external to all macros, local to
- "non-macro" space.
-
- A macro is exited after its last line is executed. Macros may be
- nested (such as a ``*USE`` or an "unknown command" within a macro). Each
- nested macro has its own set of 99 local parameters. Only one set of
- local parameters can be active at a time and that is the set
- corresponding to the macro currently being executed or to the set
- external to all macros (if any). When a nested macro completes
- execution, the previous set of local parameters once again becomes
- available. Use ``*STATUS,ARGX`` to view current macro parameter values.
-
- An alternate way of executing a macro file is via the "unknown command"
- route. If a command unknown to the ANSYS program is entered, a search
- for a file of that name (plus a .MAC suffix) is made. If the file
- exists, it is executed, if not, the "unknown command" message is
- output. Thus, users can write their own commands in terms of other
- ANSYS commands. The procedure is similar to issuing the ``*USE`` command
- with the unknown command in the Name field. For example, the command
- CMD,10,20,30 is internally similar to ``*USE,CMD,10,20,30``. The macro
- file named CMD.MAC will be executed with the three parameters. The
- ``*USE`` macro description also applies to the "unknown command" macro,
- except that various directories are searched and a suffix (.MAC) is
- assumed. Also, a macro library file is not searched.
-
- A three-level directory search for the "unknown command" macro file may
- be available (see the Operations Guide). The search order may be: 1) a
- high-level system directory, 2) the login directory, and 3) the local
- (working) directory. Use the /PSEARCH command to change the directory
- search path. For an "unknown command" CMD, the first file named
- CMD.MAC found to exist in the search order will be executed. The
- command may be input as upper or lower case, however, it is converted
- to upper case before the file name search occurs. On systems that
- uniquely support both upper and lower case file names, the file with
- the matching lower case name will be used if it exists, otherwise, the
- file with the matching upper case name will be used. All macro files
- placed in the apdl directory must be upper case.
-
- Note, since undocumented commands exist in the ANSYS program, the user
- should issue the command intended for the macro file name to be sure
- the "unknown command" message is output in the processor where it's to
- be used. If the macro is to be used in other processors, the other
- processors must also be checked.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-USE_argdescript:
+
+ * ``name : str`` - Name (32 characters maximum, beginning with a letter) identifying the macro file
+ or a macro block on a macro library file.
+
+ * ``arg1, arg2, arg3,..., ar18 : str`` - Values passed into the file or block where the
+ parameters ARG1 through ARG9 and AR10 through AR18 are referenced. Values may be numbers,
+ alphanumeric character strings (up to 32 characters enclosed in single quotes), parameters (numeric
+ or character) or parametric expressions. See below for additional details.
+
+ .. _a-USE_notes:
+
+ Causes execution of a macro file called ``Name``, or, if not found, a macro block " ``Name`` " on
+ the macro library file ( :ref:`ulib` ). Argument values (numeric or character) are passed into the
+ file or block and substituted for local parameters ARG1, ARG2,..., AR18. The file ``Name`` may also
+ be executed as an "unknown command" (that is, without the :ref:`use` command name) as described
+ below.
+
+ A macro is a sequence of Mechanical APDL commands (as many as needed) recorded in a file or in a
+ macro
+ block in a library file (specified with the :ref:`ulib` command). The file or block is typically
+ executed via :ref:`use`. In addition to command, numerical and alphanumeric data, the macro can
+ include parameters which will be assigned numerical or alphanumerical character values when the
+ macro is used. Use of the macro can be repeated (within a do-loop, for example) with the parameters
+ incremented.
+
+ A macro is defined within a run by enclosing a sequence of data input commands between :ref:`create`
+ and :ref:`end` commands. The data input commands are passive (not executed) while being written to
+ the macro file. The macro file (without :ref:`create` and :ref:`end` ) can also be created external
+ to Mechanical APDL.
+
+ Up to 99 specially named scalar parameters, ARG1 to AR99, are locally available to each macro:
+
+ * The prefix for the first nine parameters is ARG, and the prefix for the remaining 90 parameters is
+ AR.
+
+ * A local parameter is not affected by, nor does it affect, other parameters, even those of the same
+ name, which are used outside of the macro. The only way a local parameter can affect, or be
+ affected by, parameters outside the macro is if values are passed out of, or into, the macro by an
+ argument list.
+
+ * Parameters ARG1 through AR18 can have their values (numeric or character) passed via the argument
+ list on :ref:`use`. (ARG1 through AR19 can be passed as arguments on the unknown-command macro.)
+ Parameters AR19 through AR99 (AR20 through AR99 in the unknown-command macro) are available solely
+ for use within the macro; they cannot be passed via an argument list.
+
+ * Local parameters are available to do-loops and to :ref:`input` files processed within the macro.
+ In addition to an ARG1--AR99 set for each macro, another ARG1--AR99 set is available external to
+ all macros, local to "non-macro" space.
+
+ A macro is exited after its last line is executed. Macros may be nested (such as a :ref:`use` or an
+ unknown command within a macro). Each nested macro has its own set of 99 local parameters. Only one
+ set of local parameters can be active at a time and that is the set corresponding to the macro
+ currently being executed or to the set external to all macros (if any). When a nested macro
+ completes execution, the previous set of local parameters once again becomes available. Issue
+ :ref:`starstatus`,ARGX to view current macro parameter values.
+
+ An alternate way of executing a macro file is via the unknown-command route. If a command unknown to
+ Mechanical APDL is entered, a search for a file of that name (plus a :file:`.MAC` suffix) is made.
+ If the file exists, it is executed, if not, the "unknown command" message is output. Thus, you can
+ write your own commands in terms of other Mechanical APDL commands. The procedure is similar to
+ issuing :ref:`use` with the unknown command in the ``Name`` field. For example, the command **CMD**
+ ,10,20,30 is internally similar to :ref:`use`,CMD,10,20,30. The macro file named :file:`CMD.MAC` is
+ executed with the three parameters. The :ref:`use` macro description also applies to the unknown-
+ command macro, except that various directories are searched and a suffix ( :file:`.MAC` ) is
+ assumed. Also, a macro library file is not searched.
+
+ A three-level directory search for the unknown-command macro file may be available. The search order
+ may be: 1) a high-level system directory, 2) the log-in directory, and 3) the local (working)
+ directory. Issue :ref:`psearch` to change the directory search path. For an unknown command **CMD**,
+ the first file named :file:`CMD.MAC` found to exist in the search order is executed. The command can
+ be input in lower-, upper-, or mixed-case; however, it converts to uppercase automatically before
+ the file name search occurs. On systems that preserve the case as it was input, a file matching the
+ upper-case name is used first, followed by a file with the matching the lower-case name, and finally
+ a file matching the mixed-case name. All macro files placed in the :file:`apdl` directory must be
+ upper-case.
+
+ Because undocumented commands exist in Mechanical APDL, you should issue the command intended for
+ the macro
+ file name to ensure that the unknown-command message is output in the processor where it is to be
+ used. If the macro is to be used in other processors, the other processors must also be checked.
This command is valid in any processor.
"""
diff --git a/src/ansys/mapdl/core/_commands/apdl/matrix_op.py b/src/ansys/mapdl/core/_commands/apdl/matrix_op.py
deleted file mode 100644
index 35ae6eaa2bd..00000000000
--- a/src/ansys/mapdl/core/_commands/apdl/matrix_op.py
+++ /dev/null
@@ -1,999 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class MatrixOP:
- def axpy(self, vr="", vi="", m1="", wr="", wi="", m2="", **kwargs):
- """Performs the matrix operation ``M2= v*M1 + w*M2``.
-
- APDL Command: ``*AXPY``
-
- Parameters
- ----------
- vr, vi
- The real and imaginary parts of the scalar v. Default value is 0.
-
- m1
- Name of matrix M1. If not specified, the operation ``M2 = w*M2`` will
- be performed.
-
- wr, wi
- The real and imaginary parts of the scalar w. Default value is 0.
-
- m2
- Name of matrix M2. Must be specified.
-
- Notes
- -----
- The matrices M1 and M2 must have the same dimensions and same type
- (dense or sparse). If M2 is real, vi and wi are ignored.
- """
- command = f"*AXPY,{vr},{vi},{m1},{wr},{wi},{m2}"
- return self.run(command, **kwargs)
-
- def comp(self, matrix="", algorithm="", threshold="", **kwargs):
- """Compresses the columns of a matrix using a specified algorithm.
-
- APDL Command: ``*COMP``
-
- Parameters
- ----------
- matrix
- Name of the matrix to compress.
-
- algorithm
- Algorithm to use:
-
- Singular value decomposition algorithm (default). - Modified Gram-Schmidt algorithm.
-
- threshold
- Numerical threshold value used to manage the compression. Default
- value for SVD is 1E-7; default value for MGS is 1E-14.
-
- Notes
- -----
- The algorithms available through this command are only applicable to
- dense matrices that were created using the ``*DMAT`` command.
-
- Columns which are linearly dependent on others are removed, leaving the
- independent or basis vectors. The matrix is resized according to the
- new size determined by the algorithm.
- """
- command = f"*COMP,{matrix},{algorithm},{threshold}"
- return self.run(command, **kwargs)
-
- def dmat(
- self,
- matrix="",
- type_="",
- method="",
- val1="",
- val2="",
- val3="",
- val4="",
- val5="",
- **kwargs,
- ):
- """Creates a dense matrix.
-
- APDL Command: ``*DMAT``
-
- Parameters
- ----------
- matrix
- Name used to identify the matrix. Must be specified.
-
- type\\_
- Matrix type:
-
- Double precision real values (default). - Complex double precision values.
-
- method
- Method used to create the matrix:
-
- Allocate space for a matrix (default). - Resize an
- existing matrix to new row and column dimensions. Values
- are kept from the original matrix. If the dimensions
- specified by Val1 (rows) and Val2 (columns) are greater
- than the original matrix size, the additional entries are
- assigned a value of zero.
-
- Copy an existing matrix. - Link to an existing matrix. The
- memory will be shared between the original matrix and the
- new matrix. This is useful for manipulating a submatrix of
- a larger matrix. The Val1 through Val5 arguments will be
- used to specify the lower and upper bounds of row and
- column numbers from the original matrix.
-
- val1, val2, val3, val4, val5
- Additional input. The meaning of Val1 through Val5 will vary
- depending on the specified Method. See details below.
-
- Notes
- -----
- This command allows you to create a dense matrix. To create a sparse
- matrix, use the ``*SMAT`` command. ``*SMAT`` is recommended for large matrices
- obtained from the .FULL or .HBMAT file. Refer to the HBMAT command
- documentation for more information about .FULL file contents.
-
- Use the ``*VEC`` command to create a vector.
-
- For very large matrices, use the OUTOFCORE option (Method = ALLOC or
- COPY) to keep some of the matrix on disk if there is insufficient
- memory.
-
- When importing a dense matrix from a DMIG file, you can define the
- formatting of the file using the Val3 and Val4 fields.
-
- """
- command = f"*DMAT,{matrix},{type_},{method},{val1},{val2},{val3},{val4},{val5}"
- return self.run(command, **kwargs)
-
- def dot(self, vector1="", vector2="", par_real="", par_imag="", **kwargs):
- """Computes the dot (or inner) product of two vectors.
-
- APDL Command: ``*DOT``
-
- Parameters
- ----------
- vector1
- Name of first vector; must have been previously specified by a ``*VEC``
- command.
-
- vector2
- Name of second vector; must have been previously specified by a
- ``*VEC`` command.
-
- par_real
- Parameter name that contains the result.
-
- par_imag
- Parameter name that contains the imaginary part of the result (used
- only for complex vectors).
-
- Notes
- -----
- If Vector1 and Vector2 are complex, the complex conjugate of Vector1 is
- used to compute the result (Par_Real, Par_Imag).
- """
- command = f"*DOT,{vector1},{vector2},{par_real},{par_imag}"
- return self.run(command, **kwargs)
-
- def eigen(self, kmatrix="", mmatrix="", cmatrix="", evals="", evects="", **kwargs):
- """Performs a modal solution with unsymmetric or damping matrices.
-
- APDL Command: ``*EIGEN``
-
- Parameters
- ----------
- kmatrix
- Name of the stiffness matrix. May be a real or complex-valued
- matrix.
-
- mmatrix
- Name of the mass matrix.
-
- cmatrix
- Name of the damping matrix (used only for MODOPT,DAMP).
-
- evals
- Name of the output eigenvalues vector. It will be an m-long ``*VEC``
- vector of complex values, where m is the number of eigenvalues
- requested (MODOPT).
-
- evects
- Name of the output eigenvector matrix. It will be a n x m ``*DMAT``
- (dense) matrix of complex values, where n is the size of the matrix
- and m is the number of eigenvalues requested (MODOPT).
-
- Notes
- -----
- Use the command ANTYPE,MODAL and the MODOPT command to specify the
- modal solution options. Only MODOPT,DAMP, MODOPT,UNSYM, MODOPT,LANB,
- and MODOPT,SUBSP are supported.
-
- ``*EIGEN`` with Block Lanczos (LANB) only supports sparse matrices.
-
- Distributed ANSYS Restriction: This command is not supported in
- Distributed ANSYS.
- """
- command = f"*EIGEN,{kmatrix},{mmatrix},{cmatrix},{evals},{evects}"
- return self.run(command, **kwargs)
-
- def export(
- self,
- matrix="",
- format_="",
- fname="",
- val1="",
- val2="",
- val3="",
- **kwargs,
- ):
- """Exports a matrix to a file in the specified format.
-
- APDL Command: ``*EXPORT``
-
- Parameters
- ----------
- matrix
- Name of the matrix to export (must be a matrix previously created
- with ``*DMAT`` or ``*SMAT``, or a vector previously created with ``*VEC``).
-
- format\\_
- Format of the output file:
-
- Export the matrix in the Matrix Market Format. - Export
- the matrix in the SUB file format.
-
- Export the matrix in the Harwell-Boeing file format. -
- Export the matrix in a native format, to be re-imported
- using the ``*DMAT`` or ``*SMAT`` command.
-
- Export the matrix to an existing EMAT file. - Export the
- matrix to an APDL array parameter.
-
- Export the matrix profile to a Postscript file. - Export
- the matrix in the DMIG file format.
-
- fname
- Name of the file, or name of the array parameter if Format = APDL.
-
- val1, val2, val3
- Additional input. The meaning of Val1 through Val3 will vary
- depending on the specified Format. See table below for details.
-
- Notes
- -----
- Only sparse matrices can be exported to Postscript files. This option
- plots the matrix profile as a series of dots.
-
- If you want to create a .SUB file from several matrices, you need to
- set Val3 = WAIT for all matrices but the last, and Val3 = DONE for the
- last one. The export will be effective at the last ``*EXPORT`` command.
-
- To create a .SUB file or .DMIG file from scratch, you must supply the
- row information array. (Specify this array in the Val2 field for .SUB
- or in the Val1 field for .DMIG.) This must be an m x 2 array, where m
- is the size of the matrix. The first column is the node number and the
- second column is the DOF number corresponding to each row of the
- matrix.
-
- The ``*EXPORT`` command is not applicable to sparse matrices initialized
- from .FULL files by means of the NOD2BCS option on the ``*SMAT`` command
- (i.e., ``*SMAT,,,IMPORT,FULL,,NOD2BCS``).
- """
- command = f"*EXPORT,{matrix},{format_},{fname},{val1},{val2},{val3}"
- return self.run(command, **kwargs)
-
- def fft(
- self,
- type_="",
- inputdata="",
- outputdata="",
- dim1="",
- dim2="",
- resultformat="",
- **kwargs,
- ):
- """Computes the fast Fourier transformation of a specified matrix or
-
- APDL Command: ``*FFT``
- vector.
-
- Parameters
- ----------
- type\\_
- Type of FFT transformation:
-
- Forward FFT computation (default). - Backward FFT computation.
-
- inputdata
- Name of matrix or vector for which the FFT will be computed. This
- can be a dense matrix (created by the ``*DMAT`` command) or a vector
- (created by the ``*VEC`` command). Data can be real or complex values.
- There is no default value for this argument.
-
- outputdata
- Name of matrix or vector where the FFT results will be stored. The
- type of this argument must be consistent with InputData (see table
- below). There is no default value for this argument.
-
- dim1
- The number of terms to consider for a vector, or the number of rows
- for a matrix. Defaults to the whole input vector or all the rows of
- the matrix.
-
- dim2
- The number of columns to consider for a matrix. Defaults to all the
- columns of the matrix. (Valid only for matrices.)
-
- resultformat
- Specifies the result format:
-
- Returns the full result. That is, the result matches the
- dimension specified on this command (DIM1, DIM2). -
- Returns partial results. For real input data, there is a
- symmetry in the results of the Fourier transform as some
- coefficients are conjugated. The partial format uses this
- symmetry to optimize the storage of the results. (Valid
- only for real data.)
-
- Notes
- -----
- In the example that follows, the fast Fourier transformation is used to
- filter frequencies from a noisy input signal.
- """
- command = f"*FFT,{type_},{inputdata},{outputdata},{dim1},{dim2},{resultformat}"
- return self.run(command, **kwargs)
-
- def free(self, name="", **kwargs):
- """Deletes a matrix or a solver object and frees its memory allocation.
-
- APDL Command: ``*FREE``
-
- Parameters
- ----------
- name
- Name of the matrix or solver object to delete. Use Name = ALL to
- delete all APDL Math matrices and solver objects. Use Name = WRK
- to delete all APDL Math matrices and solver objects that belong to
- a given workspace.
-
- val1
- If Name = WRK, Val1 is to set the memory workspace number.
-
- Notes
- -----
- A /CLEAR command will automatically delete all the current APDL Math
- objects.
- """
- command = f"*FREE,{name}"
- return self.run(command, **kwargs)
-
- def init(self, name="", method="", val1="", val2="", val3="", **kwargs):
- """Initializes a vector or dense matrix.
-
- APDL Command: ``*INIT``
-
- Parameters
- ----------
- name
- Vector or matrix which will be initialized. This can be a vector
- (created by the ``*VEC`` command) or a dense matrix (created by the
- ``*DMAT`` command).
-
- method
- Initialization method to use:
-
- Fill the vector/matrix with zeros (default). - Fill the vector/matrix with a constant value.
-
- Fill the vector/matrix with random values. - Fill the nth diagonal of the matrix with a constant value. Other values are not
- overwritten.
-
- val1, val2, val3
- Additional input. The meaning of Val1 through Val3 will vary
- depending on the specified Method. See details below.
-
- Notes
- -----
- This command initializes a previously defined vector (``*VEC``) or dense
- matrix (``*DMAT``).
- """
- command = f"*INIT,{name},{method},{val1},{val2},{val3}"
- return self.run(command, **kwargs)
-
- def itengine(
- self,
- type_="",
- enginename="",
- precondname="",
- matrix="",
- rhsvector="",
- solvector="",
- maxiter="",
- toler="",
- **kwargs,
- ):
- """Performs a solution using an iterative solver.
-
- APDL Command: ``*ITENGINE``
-
- Parameters
- ----------
- type\\_
- Specifies the algorithm to be used:
-
- enginename
- Name used to identify this iterative solver engine. Must be
- specified.
-
- precondname
- Linear solver engine name (``*LSENGINE``) identifying the factored
- matrix to be used as the preconditioner.
-
- matrix
- Name of the matrix to solve.
-
- rhsvector
- Matrix (load vector) name.
-
- solvector
- Solution vector name. If non-zero, it will be taken as the initial
- vector for the iterative process.
-
- maxiter
- Maximum number of iterations allowed. Default is 2 times the number
- of rows in the matrix.
-
- toler
- Convergence tolerance. Default is 1.0E-8.
-
- Notes
- -----
- This command solves Ax = b using a preconditioned conjugate gradient
- algorithm. It uses an existing factored system as the preconditioner.
- This solution method is useful if an existing matrix has been solved
- and minor changes have been made to the matrix.
- """
- command = f"*ITENGINE,{type_},{enginename},{precondname},{matrix},{rhsvector},{solvector},{maxiter},{toler}"
- return self.run(command, **kwargs)
-
- def lsbac(self, enginename="", rhsvector="", solvector="", **kwargs):
- """Performs the solve (forward/backward substitution) of a
- factorized linear system.
-
- APDL Command: ``*LSBAC``
-
- Parameters
- ----------
- enginename
- Name used to identify this engine. Must have been previously
- created using ``*LSENGINE`` and factorized using ``*LSFACTOR``.
-
- rhsvector
- Name of vector containing the right-hand side (load) vectors as
- input. Must have been previously defined as a ``*VEC`` vector or a
- ``*DMAT`` matrix.
-
- solvector
- Name of vector that will contain the solution vectors upon
- completion. Must be predefined as a ``*VEC`` vector or ``*DMAT`` matrix.
-
- Notes
- -----
- This command performs forward and back substitution to obtain the
- solution to the linear matrix equation Ax = b. The matrix engine must
- have been previously defined using ``*LSENGINE``, and the matrix factored
- using ``*LSFACTOR``.
-
- You can use the ``*DMAT,,,COPY`` (or ``*VEC,,,COPY``) command to copy the load
- vector to the solution vector in order to predefine it with the
- appropriate size.
- """
- command = f"*LSBAC,{enginename},{rhsvector},{solvector}"
- return self.run(command, **kwargs)
-
- def lsdump(self, enginename="", filename="", **kwargs):
- """Dumps a linear solver engine to a binary File.
-
- APDL Command: ``*LSDUMP``
-
- Parameters
- ----------
- enginename
- Name used to identify this engine. Must have been previously
- created using ``*LSENGINE`` and factorized using ``*LSFACTOR``.
-
- filename
- Name of the file to create.
-
- Notes
- -----
- Dumps a previously factorized linear solver system to a binary file.
- Only LAPACK and BCS linear solvers can be used with this feature. The
- Linear Solver can later be restored with the ``*LSRESTORE`` command.
-
- A BCS Sparse Solver can be dumped only if uses the INCORE memory option
- (see BCSOPTION).
- """
- command = f"*LSDUMP,{enginename},{filename}"
- return self.run(command, **kwargs)
-
- def lsengine(self, type_="", enginename="", matrix="", option="", **kwargs):
- """Creates a linear solver engine.
-
- APDL Command: ``*LSENGINE``
-
- Parameters
- ----------
- type_
- Specifies the algorithm to be used:
-
- * ``"BCS"`` - Boeing sparse solver (default if applied to
- sparse matrices).
-
- * ``"DSS"`` : MKL sparse linear solver (Intel Windows and
- Linux systems only).
-
- * ``"LAPACK"`` : LAPACK dense matrix linear solver (default if
- applied to dense matrices).
-
- * ``"DSP"`` : Distributed sparse solver.
-
- enginename
- Name used to identify this engine. Must be specified.
-
- matrix
- Name of the matrix to solve.
-
- option
- Option to control the memory mode of the DSS solver (used only
- if ``type='dss'``):
-
- * ``"INCORE"`` : In-core memory mode
-
- * ``"OUTOFCORE"`` : Out-of-core memory mode
-
- Notes
- -----
- This command creates a linear solver engine.
-
- The BCS, DSS, and DSP solvers can only be used with sparse matrices.
- For dense matrices, use the LAPACK solver.
- """
- command = f"*LSENGINE,{type_},{enginename},{matrix},{option}"
- return self.run(command, **kwargs)
-
- def lsfactor(self, enginename="", option="", **kwargs):
- """Performs the numerical factorization of a linear solver system.
-
- APDL Command: ``*LSFACTOR``
-
- Parameters
- ----------
- enginename
- Name used to identify this engine. Must have been previously
- created using ``*LSENGINE``.
-
- option
- Option to invert the matrix, used only with an LAPACK engine
- (``*LSENGINE,LAPACK``):
-
- Notes
- -----
- Performs the computationally intensive, memory intensive factorization
- of a matrix specified by ``*LSENGINE``, using the solver engine also
- specified by ``*LSENGINE``.
- """
- command = f"*LSFACTOR,{enginename},{option}"
- return self.run(command, **kwargs)
-
- def lsrestore(self, enginename="", filename="", **kwargs):
- """Restores a linear solver engine from a binary file.
-
- APDL Command: ``*LSRESTORE``
-
- Parameters
- ----------
- enginename
- Name used to identify this engine.
-
- filename
- Name of the file to read from.
-
- Notes
- -----
- Restores a previously dumped Linear Solver (see the ``*LSDUMP`` command).
- This Linear Solver can be used to solve a linear system using the
- ``*LSBAC`` command.
- """
- command = "*LSRESTORE,%s,%s" % (str(enginename), str(filename))
- return self.run(command, **kwargs)
-
- def merge(self, name1="", name2="", val1="", val2="", **kwargs):
- """Merges two dense matrices or vectors into one.
-
- APDL Command: ``*MERGE``
-
- Parameters
- ----------
- name1
- Name of the matrix or vector to extend.
-
- name2
- Name of the matrix or vector to be merged into ``name1``.
-
- val1
- If ``name1`` refers to a dense matrix created by the ``*DMAT``
- command then the column or row number indicating where the new values
- are to be inserted into the Name1 matrix.
-
- If ``name` refers to a vector created by ``*VEC`` then this is the
- row number indicating where the new values are to be inserted
- into the ``name1`` vector.
-
- val2
- Specifies how the ``name2`` matrix or vector is copied into
- the ``name1`` matrix.
-
- * ``"COL"`` : Insert the new values at the column location
- specified by ``val1`` (default).
- * ``"row"`` : Insert the new values at the row location
- specified by ``val1``.
-
- Notes
- -----
- ``merge`` can be used to add new columns or rows to a dense matrix
- that was created by the ``*DMAT`` command. In this case, ``name1`` must
- be the name of the dense matrix and ``name2`` must refer to a vector
- or another dense matrix.
-
- ``*MERGE`` can also be used to add new rows to a vector that was
- created by the ``*VEC`` command. In this case, ``name1`` and
- ``name2`` must both refer to vectors.
-
- In all cases, the values of the original matrix or vector are
- retained, and the matrix or vector is resized to accommodate the
- additional rows or columns.
- """
- return self.run(f"MERGE,{name1},{name2},{val1},{val2}", **kwargs)
-
- def mult(self, m1="", t1="", m2="", t2="", m3="", **kwargs):
- """Performs the matrix multiplication ``M3 = M1(T1)*M2(T2)``.
-
- APDL Command: ``*MULT``
-
- Parameters
- ----------
- m1
- Name of matrix M1. Must have been previously specified by a ``*DMAT``
- or ``*SMAT`` command.
-
- t1
- Transpose key. Set T1 = TRANS to use the transpose of M1. If blank,
- transpose will not be used.
-
- m2
- Name of matrix M2. Must have been previously specified by a ``*DMAT``
- command.
-
- t2
- Transpose key. Set T2 = TRANS to use the transpose of M2. If blank,
- transpose will not be used.
-
- m3
- Name of resulting matrix, M3. Must be specified.
-
- Notes
- -----
- The matrices must be dimensionally consistent such that the number of
- columns of M1 (or the transposed matrix, if requested) is equal to the
- number of rows of M2 (or the transposed matrix, if requested).
-
- You cannot multiply two sparse matrices with this command (that is, M1
- and M2 cannot both be sparse). The resulting matrix, M3, will always be
- a dense matrix, no matter what combination of input matrices is used
- (dense*sparse, sparse*dense, or dense*dense).
- """
- command = f"*MULT,{m1},{t1},{m2},{t2},{m3}"
- return self.run(command, **kwargs)
-
- def nrm(self, name="", normtype="", parr="", normalize="", **kwargs):
- """Computes the norm of the specified matrix or vector.
-
- APDL Command: ``*NRM``
-
- Parameters
- ----------
- name
- Matrix or vector for which the norm will be computed. This
- can be a dense matrix (created by the ``*DMAT`` command),
- a sparse matrix (created by the ``*SMAT`` command) or a
- vector (created by the ``*VEC`` command)
-
- normtype
- Mathematical norm to use:
-
- - L2 (Euclidean or SRSS) norm (default).
- - L1 (absolute sum) norm (vectors only).
-
- parr
- Parameter name that contains the result.
-
- normalize
- Normalization key; to be used only for vectors created by ``*VEC``:
-
- Normalize the vector such that the norm is 1.0. - Do not
- normalize the vector (default).
-
- Notes
- -----
- The NRM2 option corresponds to the Euclidean or L2 norm and is
- applicable to either vectors or matrices. The NRM1 option corresponds
- to the L1 norm and is applicable to vectors only. The NRMINF option is
- the maximum norm and is applicable to either vectors or matrices.
- """
- command = f"*NRM,{name},{normtype},{parr},{normalize}"
- return self.run(command, **kwargs)
-
- def remove(self, name="", val1="", val2="", val3="", **kwargs):
- """Suppresses rows or columns of a dense matrix or a vector.
-
- APDL Command: ``*REMOVE``
-
- Parameters
- ----------
- name
- Name of the matrix or vector to be revised.
-
- val1
- First row or column number to suppress if ``name`` is a dense
- matrix. First value index to suppress if ``name`` is a
- vector.
-
- Val2
- Last row or column number to suppress if ``name`` is a dense
- matrix. Last value index to suppress if ``name`` is a
- vector.
-
- Val3
- Specifies what to remove if ``name`` is a dense matrix.
-
- * ``"COL"`` : Remove columns of the matrix (default).
-
- * ``"ROW"`` : Remove rows of the matrix.
-
- Notes
- -----
- The values of the original matrix or vector specified by Name are
- retained. The matrix or vector is resized to the new number of
- rows and columns.
- """
- return self.run(f"REMOVE,{name},{val1},{val2},{val3}", **kwargs)
-
- def scal(self, name="", val1="", val2="", **kwargs):
- """Scales a vector or matrix by a constant or a vector.
-
- APDL Command: ``*SCAL``
-
- Parameters
- ----------
- name
- Name used to identify the vector or matrix to be scaled. Must
- be specified.
-
- val1
- When scaling a matrix or a vector by a scalar value, Val1 is
- the real part of the constant to use (default = 1).
-
- When scaling a matrix or a vector by a vector, Val1 is the
- name of the vector used for the scaling operation.
-
- val2
- The imaginary part of the constant to use (default = 0).
- This value is used only if the vector or matrix specified by
- Name is complex.
-
- val2 is only valid for scaling by a constant. It is not
- used when scaling by a vector.
-
- Notes
- -----
- This command can be applied to vectors and matrices created by the
- ``*VEC``, ``*DMAT`` and ``*SMAT`` commands.
-
- Data types must be consistent between the vectors and matrices
- being scaled and the scaling vector (or constant value).
-
- When scaling a matrix with a vector, the matrix must be square
- and the scaling vector must be the same size.
-
- Scaling a matrix with a vector, is available only on
- MAPDL V23.2 and greater.
-
- """
- return self.run(f"*SCAL,{name},{val1},{val2}", **kwargs)
-
- def smat(
- self,
- matrix="",
- type_="",
- method="",
- val1="",
- val2="",
- val3="",
- val4="",
- **kwargs,
- ):
- """Creates a sparse matrix.
-
- APDL Command: ``*SMAT``
-
- Parameters
- ----------
- matrix
- Name used to identify the matrix. Must be specified.
-
- type\\_
- Matrix type:
-
- Double precision real values (default). - Complex double precision values.
-
- method
- Method used to create the matrix:
-
- Copy an existing matrix. - Import the matrix from a file.
-
- val1, val2, val3, val4
- Additional input. The meaning of Val1 through Val3 will
- vary depending on the specified Method. See in your ansys
- documentation.
-
- Notes
- -----
- Use the ``*DMAT`` command to create a dense matrix.
-
- Unlike the ``*DMAT`` command, the ``*SMAT`` command cannot be used to allocate
- a sparse matrix.
-
- For more information on the NOD2BCS and USR2BCS mapping vectors, see
- Degree of Freedom Ordering in the ANSYS Parametric Design Language
- Guide.
-
- For more information about .FULL file contents, see the HBMAT in the
- Command Reference.
- """
- command = f"*SMAT,{matrix},{type_},{method},{val1},{val2},{val3},{val4}"
- return self.run(command, **kwargs)
-
- def starprint(self, matrix="", fname="", **kwargs):
- """Prints the matrix values to a file.
-
- APDL Command: ``*PRINT``
-
- Parameters
- ----------
- matrix
- Name of matrix or vector to print. Must be specified.
-
- fname
- File name. If blank, matrix is written to the output file.
-
- Notes
- -----
- The matrix may be a dense matrix (``*DMAT``), a sparse matrix
- (``*SMAT``), or a vector (``*VEC``). Only the non-zero entries
- of the matrix are printed.
- """
- command = f"*PRINT,{matrix},{fname}"
- return self.run(command, **kwargs)
-
- def sort(self, **kwargs):
- """Specifies "Sort settings" as the subsequent status topic.
-
- APDL Command: SORT
-
- Notes
- -----
- This is a status [STAT] topic command. Status topic commands are
- generated by the GUI and will appear in the log file (Jobname.LOG) if
- status is requested for some items under Utility Menu> List> Status.
- This command will be immediately followed by a STAT command, which will
- report the status for the specified topic.
-
- If entered directly into the program, the STAT command should
- immediately follow this command.
- """
- command = f"SORT,"
- return self.run(command, **kwargs)
-
- def vec(
- self,
- vector="",
- type_="",
- method="",
- val1="",
- val2="",
- val3="",
- val4="",
- **kwargs,
- ):
- """Creates a vector.
-
- APDL Command: ``*VEC``
-
- Parameters
- ----------
- vector
- Name used to identify the vector. Must be specified.
-
- type_
- Vector type:
-
- * ``"D"`` : Double precision real values (default).
-
- * ``"Z"`` : Complex double precision values.
-
- * ``"I"`` : Integer values.
-
- method
- Method used to create the vector:
-
- * ``"ALLOC"`` : Allocate space for a vector (default).
-
- * ``"RESIZE"`` : Resize an existing vector to a new
- length. Values are kept from the original vector. If the
- length specified by Val1 is greater than the original vector
- length, the additional rows are assigned a value of zero.
-
- * ``"COPY"`` : Copy an existing vector.
-
- * ``"IMPORT"`` : Import the vector from a file.
-
- * ``"LINK"`` : Link to a column of an existing dense ``*DMAT``
- matrix and use it in subsequent vector calculations. Any
- changes to the vector are also made to the corresponding
- matrix column (memory is shared).
-
- Copy an existing vector. - Import the vector from a file.
-
- val1, val2, val3, val4, val5
- Additional input. The meaning of ``val1`` through ``val5`` will vary
- depending on the specified Method. See:
- https://www.mm.bme.hu/~gyebro/files/ans_help_v182/ans_cmd/Hlp_C_VEC.html
-
- Notes
- -----
- Use the ``*DMAT`` command to create a matrix.
-
- For more information on the BACK and FORWARD nodal mapping vectors, see
- Degree of Freedom Ordering in the ANSYS Parametric Design Language
- Guide.
- """
- command = f"*VEC,{vector},{type_},{method},{val1},{val2},{val3},{val4}"
- return self.run(command, **kwargs)
-
- def wrk(self, num="", **kwargs):
- """Sets the active workspace number.
-
- APDL Command: ``*WRK``
-
- Parameters
- ----------
- num
- Number of the active memory workspace for APDLMath vector and
- matrices. All the following APDLMath vectors and matrices will
- belong to this memory workspace, until the next call to the ``*WRK``
- command. By default, all the APDLMath objects belong to workspace
- number 1.
-
- Notes
- -----
- This feature enables you to associate a set of vector and matrices in a
- given memory workspace, so that you can easily manage the free step:
-
- This feature can be useful to free all the temporary APDLMath variables
- inside a MACRO in one call.
- """
- command = "*WRK,%s" % (str(num))
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/apdl/matrix_operations.py b/src/ansys/mapdl/core/_commands/apdl/matrix_operations.py
new file mode 100644
index 00000000000..85fe9654caf
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/apdl/matrix_operations.py
@@ -0,0 +1,2401 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class MatrixOperations:
+
+ def axpy(
+ self,
+ vr: str = "",
+ vi: str = "",
+ m1: str = "",
+ wr: str = "",
+ wi: str = "",
+ m2: str = "",
+ **kwargs,
+ ):
+ r"""Performs the matrix operation M2= v\2M1 + w\2M2.
+
+ Mechanical APDL Command: `\*AXPY `_
+
+ Parameters
+ ----------
+ vr : str
+ The real and imaginary parts of the scalar ``v``. Default value is 0.
+
+ vi : str
+ The real and imaginary parts of the scalar ``v``. Default value is 0.
+
+ m1 : str
+ Name of matrix ``M1``. If not specified, the operation M2 = w\*M2 will be performed.
+
+ wr : str
+ The real and imaginary parts of the scalar ``w``. Default value is 0.
+
+ wi : str
+ The real and imaginary parts of the scalar ``w``. Default value is 0.
+
+ m2 : str
+ Name of matrix ``M2``. Must be specified.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-AXPY_argdescript:
+
+ * ``vr, vi : str`` - The real and imaginary parts of the scalar ``v``. Default value is 0.
+
+ * ``m1 : str`` - Name of matrix ``M1``. If not specified, the operation M2 = w\*M2 will be
+ performed.
+
+ * ``wr, wi : str`` - The real and imaginary parts of the scalar ``w``. Default value is 0.
+
+ * ``m2 : str`` - Name of matrix ``M2``. Must be specified.
+
+ .. _a-AXPY_notes:
+
+ The matrices ``M1`` and ``M2`` must have the same dimensions and same type (dense or sparse). If
+ ``M2`` is real, ``vi`` and ``wi`` are ignored.
+ """
+ command = f"*AXPY,{vr},{vi},{m1},{wr},{wi},{m2}"
+ return self.run(command, **kwargs)
+
+ def comp(
+ self,
+ matrix: str = "",
+ algorithm: str = "",
+ threshold: str = "",
+ val1: str = "",
+ val2: str = "",
+ **kwargs,
+ ):
+ r"""Compresses a matrix using a specified algorithm.
+
+ Mechanical APDL Command: `\*COMP `_
+
+ Parameters
+ ----------
+ matrix : str
+ Name of the matrix to compress.
+
+ algorithm : str
+ Algorithm or method to use:
+
+ * ``SVD`` - Singular value decomposition algorithm (default).
+
+ * ``MGS`` - Modified Gram-Schmidt algorithm.
+
+ * ``SPARSE`` - Compress a sparse matrix based on the threshold value.
+
+ threshold : str
+ Numerical threshold value used to manage the compression. The default value depends on the
+ method of compression: 1E-7 for SVD; 1E-14 for MGS; 1E-16 for SPARSE.
+
+ val1 : str
+ Name of the vector used to store the :math:`equation not available` values (see
+ :ref:`a-COMP_notes` below). This argument is optional.
+
+ val2 : str
+ Name of the dense matrix used to store the :math:`equation not available` output matrix (see
+ :ref:`a-COMP_notes` below). This argument is optional.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-COMP_argdescript:
+
+ * ``matrix : str`` - Name of the matrix to compress.
+
+ * ``algorithm : str`` - Algorithm or method to use:
+
+ * ``SVD`` - Singular value decomposition algorithm (default).
+
+ * ``MGS`` - Modified Gram-Schmidt algorithm.
+
+ * ``SPARSE`` - Compress a sparse matrix based on the threshold value.
+
+ * ``threshold : str`` - Numerical threshold value used to manage the compression. The default value
+ depends on the method of compression: 1E-7 for SVD; 1E-14 for MGS; 1E-16 for SPARSE.
+
+ ``Val1`` and ``Val2`` are additional input used only for the SVD algorithm:
+
+ * ``val1 : str`` - Name of the vector used to store the :math:`equation not available` values (see
+ :ref:`a-COMP_notes` below). This argument is optional.
+
+ * ``val2 : str`` - Name of the dense matrix used to store the :math:`equation not available` output
+ matrix (see :ref:`a-COMP_notes` below). This argument is optional.
+
+ .. _a-COMP_notes:
+
+ The SVD and MGS algorithms are only applicable to dense matrices that were created using the
+ :ref:`dmat` command. Columns that are linearly dependent on others are removed, leaving the
+ independent or basis vectors. The matrix is resized according to the new size determined by the
+ algorithm.
+
+ For the SVD algorithm, the singular value decomposition of an input matrix :math:`equation not
+ available` is a factorization of the form:
+
+ .. math::
+
+ equation not available
+
+ Here, the :math:`equation not available` matrix is replaced by the :math:`equation not available`
+ matrix, according to the specified threshold.
+
+ The SPARSE compression method is only applicable to sparse matrices that were created using the
+ :ref:`smat` command. All terms that have an absolute value below the specified threshold, relative
+ to the maximum value in the matrix, are removed from the original matrix. For example, given a
+ sparse matrix having 100 as the largest term and ``THRESHOLD`` = 0.5, all terms having an absolute
+ value below 0.5\*100 = 50 are removed.
+ """
+ command = f"*COMP,{matrix},{algorithm},{threshold},{val1},{val2}"
+ return self.run(command, **kwargs)
+
+ def dmat(
+ self,
+ matrix: str = "",
+ type_: str = "",
+ method: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ **kwargs,
+ ):
+ r"""Creates a dense matrix.
+
+ Mechanical APDL Command: `\*DMAT `_
+
+ Parameters
+ ----------
+ matrix : str
+ Name used to identify the matrix. Must be specified.
+
+ type_ : str
+ Matrix type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ * ``I`` - Integer values.
+
+ method : str
+ Method used to create the matrix:
+
+ * ``ALLOC`` - Allocate space for a matrix (default).
+
+ * ``RESIZE`` - Resize an existing matrix to new row and column dimensions. Values are kept from the
+ original matrix. If the dimensions specified by ``Val1`` (rows) and ``Val2`` (columns) are greater
+ than the original matrix size, the additional entries are assigned a value of zero.
+
+ * ``COPY`` - Copy an existing matrix.
+
+ * ``LINK`` - Link to an existing matrix. The memory will be shared between the original matrix and
+ the new matrix. This is useful for manipulating a submatrix of a larger matrix. The ``Val1`` through
+ ``Val5`` arguments will be used to specify the lower and upper bounds of row and column numbers from
+ the original matrix.
+
+ * ``IMPORT`` - Import the matrix from a file.
+
+ val1 : str
+ Name of the original matrix.
+
+ val2 : str
+ First column number (defaults to 1).
+
+ val3 : str
+ Last column number (defaults to the maximum column number of the original matrix).
+
+ val4 : str
+ First row number (defaults to 1).
+
+ val5 : str
+ Last row number (defaults to the maximum row number of the original matrix).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-DMAT_argdescript:
+
+ * ``matrix : str`` - Name used to identify the matrix. Must be specified.
+
+ * ``type_ : str`` - Matrix type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ * ``I`` - Integer values.
+
+ * ``method : str`` - Method used to create the matrix:
+
+ * ``ALLOC`` - Allocate space for a matrix (default).
+
+ * ``RESIZE`` - Resize an existing matrix to new row and column dimensions. Values are kept from the
+ original matrix. If the dimensions specified by ``Val1`` (rows) and ``Val2`` (columns) are greater
+ than the original matrix size, the additional entries are assigned a value of zero.
+
+ * ``COPY`` - Copy an existing matrix.
+
+ * ``LINK`` - Link to an existing matrix. The memory will be shared between the original matrix and
+ the new matrix. This is useful for manipulating a submatrix of a larger matrix. The ``Val1`` through
+ ``Val5`` arguments will be used to specify the lower and upper bounds of row and column numbers from
+ the original matrix.
+
+ * ``IMPORT`` - Import the matrix from a file.
+
+ * ``val1, val2, val3, val4, val5 : str`` - Additional input. The meaning of ``Val1`` through
+ ``Val5`` will vary depending on the specified ``Method``. See details below.
+
+ **The following** ``Valx`` fields are used with ``Method`` = ALLOC or ``Method`` = RESIZE:
+
+ * ``val1 : str`` - Number of rows in the matrix.
+
+ * ``val2 : str`` - Number of columns in the matrix.
+
+ * ``val3 : str`` - Memory allocation type (used only with ``Method`` = ALLOC):
+
+ * ``INCORE`` - In-core memory allocation (default).
+
+ * ``OUTOFCORE`` - Out-of-core memory allocation.
+
+ **The following** ``Valx`` fields are used with ``Method`` = COPY:
+
+ * ``val1 : str`` - Name of the matrix to copy.
+
+ * ``val2 : str`` - Method used for copying the matrix:
+
+ * ``TRANS`` - Transpose the original matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``REAL`` - Copy the real part to the output matrix. This option only applies when copying a
+ complex value matrix to a real value matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``IMAG`` - Copy the imaginary part to the output matrix. This option only applies when copying a
+ complex value matrix to a real value matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``EXTRACT`` - Extract a submatrix based on row and column numbers specified by ``Val3`` and
+ ``Val4``.
+
+ * ``val3 : str`` - Name of integer vector ( :ref:`vec` ) containing row numbers. If no vector is
+ specified, defaults to all rows.
+
+ * ``val4 : str`` - Name of integer vector ( :ref:`vec` ) containing column numbers. If no vector is
+ specified, defaults to all columns.
+
+ **The following** ``Valx`` fields are used with ``Method`` = LINK:
+
+ * ``val1 : str`` - Name of the original matrix.
+
+ * ``val2 : str`` - First column number (defaults to 1).
+
+ * ``val3 : str`` - Last column number (defaults to the maximum column number of the original
+ matrix).
+
+ * ``val4 : str`` - First row number (defaults to 1).
+
+ * ``val5 : str`` - Last row number (defaults to the maximum row number of the original matrix).
+
+ **The following table describes the** ``Valx`` fields used with ``Method`` = IMPORT:
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ .. _a-DMAT_notes:
+
+ This command allows you to create a dense matrix. To create a sparse matrix, use the :ref:`smat`
+ command. :ref:`smat` is recommended for large matrices obtained from the :file:`.FULL` or
+ :file:`.HBMAT` file. Refer to the :ref:`hbmat` command documentation for more information about
+ :file:`.FULL` file contents.
+
+ Use the :ref:`vec` command to create a vector.
+
+ For very large matrices, use the OUTOFCORE option ( ``Method`` = ALLOC or COPY) to keep some of the
+ matrix on disk if there is insufficient memory.
+
+ When importing a dense matrix from a **DMIG** file, you can define the formatting of the file using
+ the ``Val3`` and ``Val4`` fields. Here are a few different example of formats:
+
+ * A LARGE field format file (using ``Val3`` = ``LARGE``):
+
+ .. code:: apdl
+
+ ... DMIG* KAAX 21 2 * 21
+ 1-2.261491337E+08...
+
+ * A FREE field format file with blank separators (using ``Val4`` = ``S``):
+
+ .. code:: apdl
+
+ ... DMIG stiff 1 2 1 2 29988. 1 6 149940. 2 2 -29988. 2 6 149940....
+
+ * A FREE field format file with a comma separator (using ``Val4`` = ``,``):
+
+ .. code:: apdl
+
+ ... DMIG,KF,22321,3,,22321,2,-5.00E+6 DMIG,KF,22320,3,,22320,2,-5.00E+6...
+
+ **Requirement when importing matrices from a Nastran DMIG file:** To ensure that the :file:`.sub`
+ file is properly generated from matrices imported from Nastran **DMIG** file, the generalized
+ coordinates for a CMS superelement (SPOINTS in Nastran) must appear last (have
+ highest ID number).
+
+ **Example Usage**
+ `APDL Math Examples
+ `_
+ """
+ command = f"*DMAT,{matrix},{type_},{method},{val1},{val2},{val3},{val4},{val5}"
+ return self.run(command, **kwargs)
+
+ def dot(
+ self,
+ vector1: str = "",
+ vector2: str = "",
+ par_real: str = "",
+ par_imag: str = "",
+ conj: str = "",
+ **kwargs,
+ ):
+ r"""Computes the dot (or inner) product of two vectors.
+
+ Mechanical APDL Command: `\*DOT `_
+
+ Parameters
+ ----------
+ vector1 : str
+ Name of first vector; must have been previously specified by a :ref:`vec` command.
+
+ vector2 : str
+ Name of second vector; must have been previously specified by a :ref:`vec` command.
+
+ par_real : str
+ Parameter name that contains the result.
+
+ par_imag : str
+ Parameter name that contains the imaginary part of the result (used only for complex vectors).
+
+ conj : str
+ Key to specify use of the conjugate of ``Vector1`` when the vectors are complex:
+
+ * ``TRUE`` - Use the conjugate of ``Vector1`` (default).
+
+ * ``FALSE`` - Do not use the conjugate of ``Vector1``.
+
+ Notes
+ -----
+
+ .. _a-DOT_notes:
+
+ If ``Vector1`` and ``Vector2`` are complex, the complex conjugate of ``Vector1`` is used to compute
+ the result ( ``Par_Real``, ``Par_Imag`` ). Therefore, **\*DOT** applied to complex vectors performs
+ the operation:
+
+ .. math::
+
+ equation not available
+
+ Set ``Conj`` = FALSE if you do not want to use the conjugate of ``Vector1``. In this case, the
+ operation is:
+
+ .. math::
+
+ equation not available
+ """
+ command = f"*DOT,{vector1},{vector2},{par_real},{par_imag},{conj}"
+ return self.run(command, **kwargs)
+
+ def eigen(
+ self,
+ kmatrix: str = "",
+ mmatrix: str = "",
+ cmatrix: str = "",
+ evals: str = "",
+ evects: str = "",
+ **kwargs,
+ ):
+ r"""Performs a modal solution with unsymmetric or damping matrices.
+
+ Mechanical APDL Command: `\*EIGEN `_
+
+ Parameters
+ ----------
+ kmatrix : str
+ Name of the stiffness matrix. May be a real or complex-valued matrix.
+
+ mmatrix : str
+ Name of the mass matrix.
+
+ cmatrix : str
+ Name of the damping matrix (used only for :ref:`modopt`,DAMP).
+
+ evals : str
+ Name of the output eigenvalues vector. It will be an ``m`` -long :ref:`vec` vector of complex
+ values, where ``m`` is the number of eigenvalues requested ( :ref:`modopt` ).
+
+ evects : str
+ Name of the output eigenvector matrix. It will be a ``n`` x ``m`` :ref:`dmat` (dense) matrix of
+ complex values, where ``n`` is the size of the matrix and ``m`` is the number of eigenvalues
+ requested ( :ref:`modopt` ).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-EIGEN_argdescript:
+
+ * ``kmatrix : str`` - Name of the stiffness matrix. May be a real or complex-valued matrix.
+
+ * ``mmatrix : str`` - Name of the mass matrix.
+
+ * ``cmatrix : str`` - Name of the damping matrix (used only for :ref:`modopt`,DAMP).
+
+ * ``evals : str`` - Name of the output eigenvalues vector. It will be an ``m`` -long :ref:`vec`
+ vector of complex values, where ``m`` is the number of eigenvalues requested ( :ref:`modopt` ).
+
+ * ``evects : str`` - Name of the output eigenvector matrix. It will be a ``n`` x ``m`` :ref:`dmat`
+ (dense) matrix of complex values, where ``n`` is the size of the matrix and ``m`` is the number of
+ eigenvalues requested ( :ref:`modopt` ).
+
+ .. _a-EIGEN_notes:
+
+ Use the command :ref:`antype`,MODAL and the :ref:`modopt` command to specify the modal solution
+ options. Only :ref:`modopt` ,DAMP, :ref:`modopt`,UNSYM, :ref:`modopt`,LANB, and
+ :ref:`modopt`,SUBSP are supported.
+
+ :ref:`eigen` with Block Lanczos (LANB) only supports sparse matrices. Distributed-Memory Parallel
+ (DMP) Restriction This command is not supported in a DMP solution.
+ """
+ command = f"*EIGEN,{kmatrix},{mmatrix},{cmatrix},{evals},{evects}"
+ return self.run(command, **kwargs)
+
+ def export(
+ self,
+ matrix: str = "",
+ format_: str = "",
+ fname: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ **kwargs,
+ ):
+ r"""Exports a matrix to a file in the specified format.
+
+ Mechanical APDL Command: `\*EXPORT `_
+
+ Parameters
+ ----------
+ matrix : str
+ Name of the matrix to export (must be a matrix previously created with :ref:`dmat` or
+ :ref:`smat`, or a vector previously created with :ref:`vec` ).
+
+ format_ : str
+ Format of the output file:
+
+ * ``MMF`` - Export the matrix in the Matrix Market Format.
+
+ * ``SUB`` - Export the matrix in the :file:`SUB` file format.
+
+ * ``HBMAT`` - Export the matrix in the Harwell-Boeing file format.
+
+ * ``MAT`` - Export the matrix in a native format, to be re-imported using the :ref:`dmat` or
+ :ref:`smat` command.
+
+ * ``EMAT`` - Export the matrix to an existing :file:`EMAT` file.
+
+ * ``APDL`` - Export the matrix to an APDL array parameter.
+
+ * ``PS`` - Export the matrix profile to a Postscript file.
+
+ * ``DMIG`` - Export the matrix in the :file:`DMIG` file format.
+
+ * ``CSV`` - Export the matrix to an ASCII CSV (comma-separated values) file.
+
+ fname : str
+ Name of the file (case-sensitive, 32-character maximum), or name of the array parameter if
+ ``Format`` = APDL (no default).
+
+ val1 : str
+ Additional input. The meaning of ``Val1`` through ``Val3`` will vary depending on the specified
+ ``Format``. See table below for details.
+
+ val2 : str
+ Additional input. The meaning of ``Val1`` through ``Val3`` will vary depending on the specified
+ ``Format``. See table below for details.
+
+ val3 : str
+ Additional input. The meaning of ``Val1`` through ``Val3`` will vary depending on the specified
+ ``Format``. See table below for details.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-EXPORT_argdescript:
+
+ * ``matrix : str`` - Name of the matrix to export (must be a matrix previously created with
+ :ref:`dmat` or :ref:`smat`, or a vector previously created with :ref:`vec` ).
+
+ * ``format : str`` - Format of the output file:
+
+ * ``MMF`` - Export the matrix in the Matrix Market Format.
+
+ * ``SUB`` - Export the matrix in the :file:`SUB` file format.
+
+ * ``HBMAT`` - Export the matrix in the Harwell-Boeing file format.
+
+ * ``MAT`` - Export the matrix in a native format, to be re-imported using the :ref:`dmat` or
+ :ref:`smat` command.
+
+ * ``EMAT`` - Export the matrix to an existing :file:`EMAT` file.
+
+ * ``APDL`` - Export the matrix to an APDL array parameter.
+
+ * ``PS`` - Export the matrix profile to a Postscript file.
+
+ * ``DMIG`` - Export the matrix in the :file:`DMIG` file format.
+
+ * ``CSV`` - Export the matrix to an ASCII CSV (comma-separated values) file.
+
+ * ``fname : str`` - Name of the file (case-sensitive, 32-character maximum), or name of the array
+ parameter if ``Format`` = APDL (no default).
+
+ * ``val1, val2, val3 : str`` - Additional input. The meaning of ``Val1`` through ``Val3`` will vary
+ depending on the specified ``Format``. See table below for details.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ .. _a-EXPORT_notes:
+
+ Only sparse matrices can be exported to Postscript files. This option plots the matrix profile as a
+ series of dots.
+
+ If you want to create a :file:`.SUB` file from several matrices, you need to set ``Val3`` = WAIT for
+ all matrices but the last, and ``Val3`` = DONE for the last one. The export will be effective at the
+ last :ref:`export` command.
+
+ To create a :file:`.SUB` file or :file:`.DMIG` file from scratch, you must supply the row
+ information array. (Specify this array in the ``Val2`` field for :file:`.SUB` or in the ``Val1``
+ field for :file:`.DMIG`.) This must be an ``m`` x 2 array, where ``m`` is the size of the matrix.
+ The first column is the node number and the second column is the DOF number corresponding to each
+ row of the matrix.
+
+ When exporting an HBMAT file in ASCII format, you can include the matrix type in the header of the
+ file by specifying the matrix type in the ``Val2`` field. The matrix type is not included in the
+ header if ``Val2`` is empty. If ``Val1`` = BINARY, ``Val2`` is not used.
+
+ The :ref:`export` command is not applicable to sparse matrices initialized from :file:`.FULL` files
+ by means of the NOD2SOLV option on the :ref:`smat` command (that is,
+ :ref:`smat`,,,IMPORT,FULL,,NOD2SOLV).
+
+ The :file:`.CSV` file format does not support sparse matrices.
+ """
+ command = f"*EXPORT,{matrix},{format_},{fname},{val1},{val2},{val3}"
+ return self.run(command, **kwargs)
+
+ def fft(
+ self,
+ type_: str = "",
+ inputdata: str = "",
+ outputdata: str = "",
+ dim1: str = "",
+ dim2: str = "",
+ resultformat: str = "",
+ **kwargs,
+ ):
+ r"""Computes the fast Fourier transformation of a specified matrix or vector.
+
+ Mechanical APDL Command: `\*FFT `_
+
+ Parameters
+ ----------
+ type_ : str
+ Type of FFT transformation:
+
+ * ``FORW`` - Forward FFT computation (default).
+
+ * ``BACK`` - Backward FFT computation.
+
+ inputdata : str
+ Name of matrix or vector for which the FFT will be computed. This can be a dense matrix (created
+ by the :ref:`dmat` command) or a vector (created by the :ref:`vec` command). Data can be real or
+ complex values. There is no default value for this argument.
+
+ outputdata : str
+ Name of matrix or vector where the FFT results will be stored. The type of this argument must be
+ consistent with ``InputData`` (see table below). There is no default value for this argument.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ dim1 : str
+ The number of terms to consider for a vector, or the number of rows for a matrix. Defaults to
+ the whole input vector or all the rows of the matrix.
+
+ dim2 : str
+ The number of columns to consider for a matrix. Defaults to all the columns of the matrix.
+ (Valid only for matrices.)
+
+ resultformat : str
+ Specifies the result format:
+
+ * ``FULL`` - Returns the full result. That is, the result matches the dimension specified on this
+ command ( ``DIM1``, ``DIM2`` ).
+
+ * ``PART`` - Returns partial results. For real input data, there is a symmetry in the results of the
+ Fourier transform as some coefficients are conjugated. The partial format uses this symmetry to
+ optimize the storage of the results. (Valid only for real data.)
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-FFT_argdescript:
+
+ * ``type_ : str`` - Type of FFT transformation:
+
+ * ``FORW`` - Forward FFT computation (default).
+
+ * ``BACK`` - Backward FFT computation.
+
+ * ``inputdata : str`` - Name of matrix or vector for which the FFT will be computed. This can be a
+ dense matrix (created by the :ref:`dmat` command) or a vector (created by the :ref:`vec` command).
+ Data can be real or complex values. There is no default value for this argument.
+
+ * ``outputdata : str`` - Name of matrix or vector where the FFT results will be stored. The type of
+ this argument must be consistent with ``InputData`` (see table below). There is no default value for
+ this argument.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+ * ``dim1 : str`` - The number of terms to consider for a vector, or the number of rows for a matrix.
+ Defaults to the whole input vector or all the rows of the matrix.
+
+ * ``dim2 : str`` - The number of columns to consider for a matrix. Defaults to all the columns of
+ the matrix. (Valid only for matrices.)
+
+ * ``resultformat : str`` - Specifies the result format:
+
+ * ``FULL`` - Returns the full result. That is, the result matches the dimension specified on this
+ command ( ``DIM1``, ``DIM2`` ).
+
+ * ``PART`` - Returns partial results. For real input data, there is a symmetry in the results of the
+ Fourier transform as some coefficients are conjugated. The partial format uses this symmetry to
+ optimize the storage of the results. (Valid only for real data.)
+
+ .. _a-FFT_notes:
+
+ In the example that follows, the fast Fourier transformation is used to filter frequencies from a
+ noisy input signal.
+
+ **Example Usage**
+
+ .. _a-FFT_example:
+
+ The fast Fourier transformation can be used to create a filter to remove noise from a noisy input
+ signal.
+
+ .. figure::../../../images/_commands/gFFT1.PNG
+
+ Input Signal
+
+ The input signal is decomposed in the Fourier space using the :ref:`fft`, ``FORW`` command so that
+ the frequencies that compose the signal can be observed.
+
+ .. figure::../../../images/_commands/gFFT2.PNG
+
+ Amplitude Spectrum of the FFT
+
+ The filter applies a threshold on the Fourier coefficients. Fourier coefficients of small amplitude
+ are the result of the noise in the input signal. Only coefficients of a large amplitude are
+ significant. The inversion of the :ref:`fft` command ( :ref:`fft`, ``BACK`` command) rebuilds the
+ signal from the remaining coefficients.
+
+ .. figure::../../../images/_commands/gFFT3.PNG
+
+ Signal Obtained with the Filter
+
+ Example input demonstrating :ref:`fft` usage is provided below:
+
+ .. code:: apdl
+
+ /com,*************************************************
+ /com,* Usage example of the *FFT APDLMath command. *
+ /com,* Use FFT to filter a noisy sinusoidal signal. *
+ /com,*************************************************
+ /verify
+ /nopr
+
+ /post26
+
+ /gopr
+ /com, *** Definition of the parameters for the signal
+
+ pi = acos(-1)
+ periode1 = 2\2pi/40.0
+ phase1 = 4.0
+ amplitude1 = 2.5
+ periode2 = 2\2pi/150.0
+ phase2 = 0.0
+ amplitude2 = 2.0
+ periode3 = 2\2pi/140.0
+ phase3 = 0.0
+ amplitude3 = 1.5
+ amplitudenoise = 6.0
+ n = 400 !number of points in the sampling input signal
+ tbegin = 0.0 !start time for the signal
+ dt = 0.001 !time step
+ tend = tbegin + (n-1)\2dt
+
+ /com, *** Definition of the parameters
+
+ threshold = 150.0
+ FFTmethod = 1 !0 = FFT giving partial results, 1 = FFT giving full results
+
+ /com, *** Create a signal from two sinus and add noise
+
+ *dim,signal,array,n
+ *dim,t,array,n
+ *dim,noise,array,n
+ *vfill,noise,rand
+
+ omega1 = (2.0\2pi) / periode1
+ omega2 = (2.0\2pi) / periode2
+ omega3 = (2.0\2pi) / periode3
+
+ *do,ii,1,n
+ noisec = amplitudenoise * noise(ii)
+ tc = tbegin + (ii-1)\2dt
+ t(ii) = tc
+
+ signal(ii) = amplitude1\2sin(omega1*tc+phase1) + amplitude2\2sin(omega2*tc+phase2) +
+ amplitude3\2sin(omega3*tc+phase3) + noisec *enddo /com, *** Display the input signal
+ *dim,signaldisp,table,n *dim,tdisp,table,n *do,ii,1,n
+ tdisp(ii)=t(ii) signaldisp(ii)=signal(ii) *enddo /show,png /AXLAB,X,TIME /AXLAB,Y,SIGNAL
+ /color,curve,BLUE /color,grbak,WHIT /color,wbak,WHIT /color,axes,BLAC /color,axlab,BLAC
+ /color,axnum,blac /GROPT,FILL,OFF *vplot,tdisp,signaldisp /com, *** Copy signal in an APDLMath
+ vector *vec,sigvec,d,alloc,n,1 *do,ii,1,n sigvec(ii) = signal(ii) *enddo /com, *** Perform a Fast
+ Fourier Transform *vec,VFFT,Z,ALLOC,n,1 *if,FFTmethod,eq,0,then \*FFT,FORW,sigvec,VFFT,,,PART
+ !partial FFT (use symmetry properties) *else \*FFT,FORW,sigvec,VFFT,,,FULL !full FFT *endif /com, ***
+ Determine the real part and the imaginary part of the Fourier's coefficients *vec,VFFTI,Z,COPY,VFFT
+ \*AXPY,,,,0.,-1.,VFFTI *vec,VI,D,COPY,VFFTI *vec,VR,D,COPY,VFFT /com, *** Compute the modulus of the
+ Fourier's coeff \*EXPORT,VR,APDL,fftr \*EXPORT,VI,APDL,ffti sizeVR = VR_rowDim *if,FFTmethod,eq,0,then
+ sizeVR = sizeVR/2 *endif *dim,ind,table,sizeVR *dim,modfft,array,sizeVR *do,ii,1,sizeVR ind(ii) = ii
+ modfft(ii)= sqrt( fftr(ii)\2fftr(ii) + ffti(ii)\2ffti(ii) ) *enddo /com,*** Display the Amplitude
+ spectrum of the FFT *dim,modfftdisp,table,sizeVR *do,ii,1,sizeVR modfftdisp(ii) = modfft(ii) *enddo
+ /show,png /AXLAB,X,Amplitude spectrum of the FFT /AXLAB,Y, *vplot,ind,modfftdisp fini /com, ***
+ Threshold on Fourier coefficients *print,VR *do,ii,1,sizeVR module = modfft(ii)
+ *if,module,lt,threshold,then VR(ii) = 0.0 VI(ii) = 0.0 *endif *enddo /com, *** Invert Fourier
+ Transform *vec,VIFT,Z,COPY,VR \*AXPY,0.0,1.0,VI,1.0,0.0,VIFT *vec,VFILTER,D,ALLOC,VR_DIM
+ \*FFT,BACK,VIFT,VFILTER /com, *** Display the filtered signal \*EXPORT,VFILTER,APDL,filterSignal
+ *dim,fsignal,table,sizeVR *do,ii,1,sizeVR fsignal(ii) = filterSignal(ii) *enddo /show,png
+ /AXLAB,X,TIME /AXLAB,Y,SIGNAL *vplot,tdisp,fsignal fini /com, *** Free the APDLMath objects
+ *free,all
+ """
+ command = f"*FFT,{type_},{inputdata},{outputdata},{dim1},{dim2},{resultformat}"
+ return self.run(command, **kwargs)
+
+ def free(self, name: str = "", val1: str = "", **kwargs):
+ r"""Deletes a matrix or a solver object and frees its memory allocation.
+
+ Mechanical APDL Command: `\*FREE `_
+
+ Parameters
+ ----------
+ name : str
+ Name of the matrix or solver object to delete. Use ``Name`` = ALL to delete all APDL Math
+ matrices and solver objects. Use ``Name`` = WRK to delete all APDL Math matrices and solver
+ objects that belong to a given workspace.
+
+ val1 : str
+ If ``Name`` = WRK, ``Val1`` is the memory workspace number.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-FREE_argdescript:
+
+ * ``name : str`` - Name of the matrix or solver object to delete. Use ``Name`` = ALL to delete all
+ APDL Math matrices and solver objects. Use ``Name`` = WRK to delete all APDL Math matrices and
+ solver objects that belong to a given workspace.
+
+ * ``val1 : str`` - If ``Name`` = WRK, ``Val1`` is the memory workspace number.
+
+ .. _a-FREE_notes:
+
+ A ``/CLEAR`` command will automatically delete all the current APDL Math objects.
+ """
+ command = f"*FREE,{name},{val1}"
+ return self.run(command, **kwargs)
+
+ def hprod(self, a: str = "", b: str = "", c: str = "", **kwargs):
+ r"""Performs a Hadamard vector product (C = A∘B).
+
+ Mechanical APDL Command: `\*HPROD `_
+
+ Parameters
+ ----------
+ a : str
+ Name of vector A. Must have been previously created by a :ref:`vec` command.
+
+ b : str
+ Name of vector B. Must have been previously created by a :ref:`vec` command.
+
+ c : str
+ Name of vector C. Must be specified (no default).
+
+ Notes
+ -----
+
+ .. _a-HPROD_notes:
+
+ For two vectors ``A`` and ``B`` of the same dimension ``n``, the Hadamard product (A∘B) is a vector
+ of the same dimension as the operands, with elements given by:
+
+ .. math::
+
+ equation not available
+
+ This command is limited to vector operands.
+ """
+ command = f"*HPROD,{a},{b},{c}"
+ return self.run(command, **kwargs)
+
+ def init(
+ self,
+ name: str = "",
+ method: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ **kwargs,
+ ):
+ r"""Initializes a vector or matrix.
+
+ Mechanical APDL Command: `\*INIT `_
+
+ Parameters
+ ----------
+ name : str
+ Vector or matrix which will be initialized. This can be a vector (created by the :ref:`vec`
+ command), a dense matrix (created by the :ref:`dmat` command), or a sparse matrix (created by
+ the :ref:`smat` command).
+
+ method : str
+ Initialization method to use:
+
+ * ``ZERO`` - Fill the vector/matrix with zeros (default).
+
+ * ``CONST`` - Fill the vector/matrix with a constant value.
+
+ * ``RAND`` - Fill the vector/matrix with random values.
+
+ * ``DIAG`` - Fill the ``n`` th diagonal of the matrix with a constant value. Other values are not
+ overwritten. For this option, ``Name`` must be a dense matrix.
+
+ * ``ADIAG`` - Fill the ``n`` th anti-diagonal of the matrix with a constant value. Other values are
+ not overwritten. For this option, ``Name`` must be a dense matrix.
+
+ * ``CONJ`` - Take the complex conjugate of the values in the vector/matrix (no change for non-
+ complex values).
+
+ * ``FILTER`` - Initialize a subset of values of a vector using a filtering vector. For this option,
+ ``Name`` must be a vector.
+
+ val1 : str
+ The name of an existing integer vector (created by :ref:`vec` ) to be used as the filter vector.
+ The values in this vector indicate the locations in the ``Name`` vector that are to be
+ initialized to ``Val2`` (real value) and ``Val3`` (imaginary value, if applicable). Location
+ values higher than the dimension of the original vector are ignored.
+
+ val2 : str
+ The real part of the value used for initialization (default = 0).
+
+ val3 : str
+ The imaginary part of the value used for initialization (default = 0); applicable only if the
+ ``Name`` vector contains complex values.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-INIT_argdescript:
+
+ * ``name : str`` - Vector or matrix which will be initialized. This can be a vector (created by the
+ :ref:`vec` command), a dense matrix (created by the :ref:`dmat` command), or a sparse matrix
+ (created by the :ref:`smat` command).
+
+ * ``method : str`` - Initialization method to use:
+
+ * ``ZERO`` - Fill the vector/matrix with zeros (default).
+
+ * ``CONST`` - Fill the vector/matrix with a constant value.
+
+ * ``RAND`` - Fill the vector/matrix with random values.
+
+ * ``DIAG`` - Fill the ``n`` th diagonal of the matrix with a constant value. Other values are not
+ overwritten. For this option, ``Name`` must be a dense matrix.
+
+ * ``ADIAG`` - Fill the ``n`` th anti-diagonal of the matrix with a constant value. Other values are
+ not overwritten. For this option, ``Name`` must be a dense matrix.
+
+ * ``CONJ`` - Take the complex conjugate of the values in the vector/matrix (no change for non-
+ complex values).
+
+ * ``FILTER`` - Initialize a subset of values of a vector using a filtering vector. For this option,
+ ``Name`` must be a vector.
+
+ * ``val1, val2, val3 : str`` - Additional input. The meaning of ``Val1`` through ``Val3`` will vary
+ depending on the specified ``Method``. See details below.
+
+ **The following** ``Valx`` fields are used with ``Method`` = CONST:
+
+ * ``val1 : str`` - The real part of the constant value to use (default = 0).
+
+ * ``val2 : str`` - The imaginary part of the constant value to use (default = 0). Required only for
+ a complex vector/matrix.
+
+ **The following** ``Valx`` fields are used with ``Method`` = DIAG or ``Method`` = ADIAG:
+
+ * ``val1 : str`` - The number of the diagonal to fill. A zero value (which is the default) indicates
+ the main diagonal (or main anti-diagonal). A positive value indicates an upper diagonal; a negative
+ value indicates a lower diagonal.
+
+ * ``val2 : str`` - The real part of the constant value to use (default = 1).
+
+ * ``val3 : str`` - The imaginary part of the constant value to use (default = 0). Required only for
+ a complex matrix.
+
+ The following example demonstrates ``Method`` = DIAG:
+
+ .. figure::../../../images/_commands/gINIT1.svg
+
+ **The following** ``Valx`` fields are used with ``Method`` = FILTER:
+
+ * ``val1 : str`` - The name of an existing integer vector (created by :ref:`vec` ) to be used as the
+ filter vector. The values in this vector indicate the locations in the ``Name`` vector that are to
+ be initialized to ``Val2`` (real value) and ``Val3`` (imaginary value, if applicable). Location
+ values higher than the dimension of the original vector are ignored.
+
+ * ``val2 : str`` - The real part of the value used for initialization (default = 0).
+
+ * ``val3 : str`` - The imaginary part of the value used for initialization (default = 0); applicable
+ only if the ``Name`` vector contains complex values.
+
+ .. _a-INIT_notes:
+
+ This command initializes a previously defined vector ( :ref:`vec` ), dense matrix ( :ref:`dmat` ),
+ or sparse matrix ( :ref:`smat` ).
+ """
+ command = f"*INIT,{name},{method},{val1},{val2},{val3}"
+ return self.run(command, **kwargs)
+
+ def itengine(
+ self,
+ type_: str = "",
+ enginename: str = "",
+ precondname: str = "",
+ matrix: str = "",
+ rhsvector: str = "",
+ solvector: str = "",
+ maxiter: str = "",
+ toler: str = "",
+ **kwargs,
+ ):
+ r"""Performs a solution using an iterative solver.
+
+ Mechanical APDL Command: `\*ITENGINE `_
+
+ Parameters
+ ----------
+ type_ : str
+ Specifies the algorithm to be used:
+
+ * ``PCG`` - Preconditioned conjugate gradient (default).
+
+ enginename : str
+ Name used to identify this iterative solver engine. Must be specified.
+
+ precondname : str
+ Linear solver engine name ( :ref:`lsengine` ) identifying the factored matrix to be used as the
+ preconditioner.
+
+ matrix : str
+ Name of the matrix to solve.
+
+ rhsvector : str
+ Matrix (load vector) name.
+
+ solvector : str
+ Solution vector name. If non-zero, it will be taken as the initial vector for the iterative
+ process.
+
+ maxiter : str
+ Maximum number of iterations allowed. Default is 2 times the number of rows in the matrix.
+
+ toler : str
+ Convergence tolerance. Default is 1.0E-8.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-ITENGINE_argdescript:
+
+ * ``type_ : str`` - Specifies the algorithm to be used:
+
+ * ``PCG`` - Preconditioned conjugate gradient (default).
+
+ * ``enginename : str`` - Name used to identify this iterative solver engine. Must be specified.
+
+ * ``precondname : str`` - Linear solver engine name ( :ref:`lsengine` ) identifying the factored
+ matrix to be used as the preconditioner.
+
+ * ``matrix : str`` - Name of the matrix to solve.
+
+ * ``rhsvector : str`` - Matrix (load vector) name.
+
+ * ``solvector : str`` - Solution vector name. If non-zero, it will be taken as the initial vector
+ for the iterative process.
+
+ * ``maxiter : str`` - Maximum number of iterations allowed. Default is 2 times the number of rows in
+ the matrix.
+
+ * ``toler : str`` - Convergence tolerance. Default is 1.0E-8.
+
+ .. _a-ITENGINE_notes:
+
+ This command solves Ax = b using a preconditioned conjugate gradient algorithm. It uses an existing
+ factored system as the preconditioner. This solution method is useful if an existing matrix has been
+ solved and minor changes have been made to the matrix.
+ """
+ command = f"*ITENGINE,{type_},{enginename},{precondname},{matrix},{rhsvector},{solvector},{maxiter},{toler}"
+ return self.run(command, **kwargs)
+
+ def lsbac(
+ self,
+ enginename: str = "",
+ rhsvector: str = "",
+ solvector: str = "",
+ transkey: str = "",
+ **kwargs,
+ ):
+ r"""Performs the solve (forward/backward substitution) of a factorized linear system.
+
+ Mechanical APDL Command: `\*LSBAC `_
+
+ Parameters
+ ----------
+ enginename : str
+ Name used to identify this engine. Must have been previously created using :ref:`lsengine` and
+ factorized using :ref:`lsfactor`.
+
+ rhsvector : str
+ Name of vector containing the right-hand side (load) vectors as input. Must have been previously
+ defined as a :ref:`vec` vector or a :ref:`dmat` matrix.
+
+ solvector : str
+ Name of vector that will contain the solution vectors upon completion. Must be predefined as a
+ :ref:`vec` vector or :ref:`dmat` matrix.
+
+ transkey : str
+ Transpose key. Set ``TransKey`` = TRANS to solve the transposed linear system. If blank,
+ transpose will not be used.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-LSBAC_argdescript:
+
+ * ``enginename : str`` - Name used to identify this engine. Must have been previously created using
+ :ref:`lsengine` and factorized using :ref:`lsfactor`.
+
+ * ``rhsvector : str`` - Name of vector containing the right-hand side (load) vectors as input. Must
+ have been previously defined as a :ref:`vec` vector or a :ref:`dmat` matrix.
+
+ * ``solvector : str`` - Name of vector that will contain the solution vectors upon completion. Must
+ be predefined as a :ref:`vec` vector or :ref:`dmat` matrix.
+
+ * ``transkey : str`` - Transpose key. Set ``TransKey`` = TRANS to solve the transposed linear
+ system. If blank, transpose will not be used.
+
+ .. _a-LSBAC_notes:
+
+ This command performs forward and back substitution to obtain the solution to the linear matrix
+ equation Ax = b (or A :sup:`T` x = b if ``TransKey`` = TRANS). The matrix engine must have been
+ previously defined using :ref:`lsengine`, and the matrix factored using :ref:`lsfactor`.
+
+ You can use the :ref:`dmat`,,,COPY (or :ref:`vec`,,,COPY) command to copy the load vector to the
+ solution vector in order to predefine it with the appropriate size.
+ """
+ command = f"*LSBAC,{enginename},{rhsvector},{solvector},{transkey}"
+ return self.run(command, **kwargs)
+
+ def lsdump(self, enginename: str = "", filename: str = "", **kwargs):
+ r"""Dumps a linear solver engine to a binary File.
+
+ Mechanical APDL Command: `\*LSDUMP `_
+
+ Parameters
+ ----------
+ enginename : str
+ Name used to identify this engine. Must have been previously created using :ref:`lsengine` and
+ factorized using :ref:`lsfactor`.
+
+ filename : str
+ Name of the file to create.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-LSDUMP_argdescript:
+
+ * ``enginename : str`` - Name used to identify this engine. Must have been previously created using
+ :ref:`lsengine` and factorized using :ref:`lsfactor`.
+
+ * ``filename : str`` - Name of the file to create.
+
+ .. _a-LSDUMP_notes:
+
+ Dumps a previously factorized linear solver system to a binary file. Only LAPACK and BCS linear
+ solvers can be used with this feature. The Linear Solver can later be restored with the
+ :ref:`lsrestore` command.
+
+ A BCS Sparse Solver can be dumped only if uses the ``INCORE`` memory option (see :ref:`bcsoption` ).
+
+
+ """
+ command = f"*LSDUMP,{enginename},{filename}"
+ return self.run(command, **kwargs)
+
+ def lsengine(
+ self,
+ type_: str = "",
+ enginename: str = "",
+ matrix: str = "",
+ option: str = "",
+ **kwargs,
+ ):
+ r"""Creates a linear solver engine.
+
+ Mechanical APDL Command: `\*LSENGINE `_
+
+ Parameters
+ ----------
+ type_ : str
+ Specifies the algorithm to be used:
+
+ * ``DSS`` - MKL sparse linear solver.
+
+ * ``LAPACK`` - LAPACK dense matrix linear solver (default if applied to dense matrices).
+
+ * ``DSP`` - Distributed sparse solver (default for sparse matrices).
+
+ enginename : str
+ Name used to identify this engine. Must be specified.
+
+ matrix : str
+ Name of the matrix to solve.
+
+ option : str
+ Option to control the memory mode of the DSS solver (used only if ``Type`` = DSS):
+
+ * ``INCORE`` - In-core memory mode.
+
+ * ``OUTOFCORE`` - Out-of-core memory mode.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-LSENGINE_argdescript:
+
+ * ``type_ : str`` - Specifies the algorithm to be used:
+
+ * ``DSS`` - MKL sparse linear solver.
+
+ * ``LAPACK`` - LAPACK dense matrix linear solver (default if applied to dense matrices).
+
+ * ``DSP`` - Distributed sparse solver (default for sparse matrices).
+
+ * ``enginename : str`` - Name used to identify this engine. Must be specified.
+
+ * ``matrix : str`` - Name of the matrix to solve.
+
+ * ``option : str`` - Option to control the memory mode of the DSS solver (used only if ``Type`` =
+ DSS):
+
+ * ``INCORE`` - In-core memory mode.
+
+ * ``OUTOFCORE`` - Out-of-core memory mode.
+
+ .. _a-LSENGINE_notes:
+
+ This command creates a linear solver engine.
+
+ The DSS and DSP solvers can only be used with sparse matrices. For dense matrices, use the LAPACK
+ solver.
+ """
+ command = f"*LSENGINE,{type_},{enginename},{matrix},{option}"
+ return self.run(command, **kwargs)
+
+ def lsfactor(self, enginename: str = "", option: str = "", **kwargs):
+ r"""Performs the numerical factorization of a linear solver system.
+
+ Mechanical APDL Command: `\*LSFACTOR `_
+
+ Parameters
+ ----------
+ enginename : str
+ Name used to identify this engine. Must have been previously created using :ref:`lsengine`.
+
+ option : str
+ Option to invert the matrix, used only with an LAPACK engine ( :ref:`lsengine`,LAPACK):
+
+ * ``INVERT`` - Invert the matrix.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-LSFACTOR_argdescript:
+
+ * ``enginename : str`` - Name used to identify this engine. Must have been previously created using
+ :ref:`lsengine`.
+
+ * ``option : str`` - Option to invert the matrix, used only with an LAPACK engine (
+ :ref:`lsengine`,LAPACK):
+
+ * ``INVERT`` - Invert the matrix.
+
+ .. _a-LSFACTOR_notes:
+
+ Performs the computationally intensive, memory intensive factorization of a matrix specified by
+ :ref:`lsengine`, using the solver engine also specified by :ref:`lsengine`.
+ """
+ command = f"*LSFACTOR,{enginename},{option}"
+ return self.run(command, **kwargs)
+
+ def lsrestore(self, enginename: str = "", filename: str = "", **kwargs):
+ r"""Restores a linear solver engine from a binary file.
+
+ Mechanical APDL Command: `\*LSRESTORE `_
+
+ Parameters
+ ----------
+ enginename : str
+ Name used to identify this engine.
+
+ filename : str
+ Name of the file to read from.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-LSRESTORE_argdescript:
+
+ * ``enginename : str`` - Name used to identify this engine.
+
+ * ``filename : str`` - Name of the file to read from.
+
+ .. _a-LSRESTORE_notes:
+
+ Restores a previously dumped Linear Solver (see the :ref:`lsdump` command). This Linear Solver can
+ be used to solve a linear system using the :ref:`lsbac` command.
+
+
+ """
+ command = f"*LSRESTORE,{enginename},{filename}"
+ return self.run(command, **kwargs)
+
+ def merge(
+ self, name1: str = "", name2: str = "", val1: str = "", val2: str = "", **kwargs
+ ):
+ r"""Merges two dense matrices or vectors into one.
+
+ Mechanical APDL Command: `\*MERGE `_
+
+ Parameters
+ ----------
+ name1 : str
+ Name of the matrix or vector to extend.
+
+ name2 : str
+ Name of the matrix or vector to be merged into ``Name1``.
+
+ val1 : str
+ Row number indicating where the new values are to be inserted into the ``Name1`` vector.
+
+ val2 : str
+ Specifies how the ``Name2`` matrix or vector is copied into the ``Name1`` matrix.
+
+ * ``COL`` - Insert the new values at the column location specified by ``Val1`` (default).
+
+ * ``ROW`` - Insert the new values at the row location specified by ``Val1``.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MERGE_argdescript:
+
+ * ``name1 : str`` - Name of the matrix or vector to extend.
+
+ * ``name2 : str`` - Name of the matrix or vector to be merged into ``Name1``.
+
+ * ``val1, val2 : str`` - Additional input. The meaning of ``Val1`` and ``Val2`` varies depending on
+ the entity type (matrix or vector). See details below.
+
+ **The following** ``Val1`` and ``Val2`` fields are used if ``Name1`` refers to a dense matrix
+ created by the :ref:`dmat` command:
+
+ * ``val1 : str`` - Column or row number indicating where the new values are to be inserted into the
+ ``Name1`` matrix.
+
+ * ``val2 : str`` - Specifies how the ``Name2`` matrix or vector is copied into the ``Name1`` matrix.
+
+ * ``COL`` - Insert the new values at the column location specified by ``Val1`` (default).
+
+ * ``ROW`` - Insert the new values at the row location specified by ``Val1``.
+
+ **The following** ``Val1`` field is used if ``Name1`` refers to a vector created by the :ref:`vec`
+ command:
+
+ * ``val1 : str`` - Row number indicating where the new values are to be inserted into the ``Name1``
+ vector.
+
+ .. _a-MERGE_notes:
+
+ :ref:`merge` can be used to add new columns or rows to a dense matrix that was created by the
+ :ref:`dmat` command. In this case, ``Name1`` must be the name of the dense matrix and ``Name2`` must
+ refer to a vector or another dense matrix.
+
+ The following two examples demonstrate merging columns into a dense matrix.
+
+ .. figure::../../../images/_commands/gMERGE1.png
+
+ The following example demonstrates merging rows into a dense matrix.
+
+ .. figure::../../../images/_commands/gMERGE3.png
+
+ :ref:`merge` can also be used to add new rows to a vector that was created by the :ref:`vec`
+ command. In this case, ``Name1`` and ``Name2`` must both refer to vectors, as demonstrated in the
+ example below.
+
+ .. figure::../../../images/_commands/gMERGE2.png
+
+ In all cases, the values of the original matrix or vector are retained, and the matrix or vector is
+ resized to accommodate the additional rows or columns.
+ """
+ command = f"*MERGE,{name1},{name2},{val1},{val2}"
+ return self.run(command, **kwargs)
+
+ def mult(
+ self,
+ m1: str = "",
+ t1: str = "",
+ m2: str = "",
+ t2: str = "",
+ m3: str = "",
+ **kwargs,
+ ):
+ r"""Performs the matrix multiplication M3 = M1 :sup:`(T1)` *M2 :sup:`(T2)`.
+
+ Mechanical APDL Command: `\*MULT `_
+
+ Parameters
+ ----------
+ m1 : str
+ Name of matrix ``M1``. Must have been previously specified by a :ref:`dmat` or :ref:`smat`
+ command.
+
+ t1 : str
+ Transpose key. Set ``T1`` = TRANS to use the non-conjugate transpose of ``M1``. Set ``T1`` =
+ CTRANS to use the conjugate transpose of ``M1``. CTRANS is only applicable when the ``M1``
+ matrix is complex. If blank, transpose will not be used.
+
+ m2 : str
+ Name of matrix ``M2``. Must have been previously specified by a :ref:`dmat` command.
+
+ t2 : str
+ Transpose key. Set ``T2`` = TRANS to use the non-conjugate transpose of ``M2``. Set ``T2`` =
+ CTRANS to use the conjugate transpose of ``M2``. CTRANS is only applicable when the ``M2``
+ matrix is complex. If blank, transpose will not be used.
+
+ m3 : str
+ Name of resulting matrix, ``M3``. Must be specified.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-MULT_argdescript:
+
+ * ``m1 : str`` - Name of matrix ``M1``. Must have been previously specified by a :ref:`dmat` or
+ :ref:`smat` command.
+
+ * ``t1 : str`` - Transpose key. Set ``T1`` = TRANS to use the non-conjugate transpose of ``M1``. Set
+ ``T1`` = CTRANS to use the conjugate transpose of ``M1``. CTRANS is only applicable when the ``M1``
+ matrix is complex. If blank, transpose will not be used.
+
+ * ``m2 : str`` - Name of matrix ``M2``. Must have been previously specified by a :ref:`dmat`
+ command.
+
+ * ``t2 : str`` - Transpose key. Set ``T2`` = TRANS to use the non-conjugate transpose of ``M2``. Set
+ ``T2`` = CTRANS to use the conjugate transpose of ``M2``. CTRANS is only applicable when the ``M2``
+ matrix is complex. If blank, transpose will not be used.
+
+ * ``m3 : str`` - Name of resulting matrix, ``M3``. Must be specified.
+
+ .. _a-MULT_notes:
+
+ The matrices must be dimensionally consistent such that the number of columns of ``M1`` (or the
+ transposed matrix, if requested) is equal to the number of rows of ``M2`` (or the transposed matrix,
+ if requested).
+
+ You cannot multiply two sparse matrices with this command (that is, ``M1`` and ``M2`` cannot both be
+ sparse). The resulting matrix, ``M3``, will always be a dense matrix, no matter what combination of
+ input matrices is used (dense\*sparse, sparse\*dense, or dense\*dense).
+ """
+ command = f"*MULT,{m1},{t1},{m2},{t2},{m3}"
+ return self.run(command, **kwargs)
+
+ def nrm(
+ self,
+ name: str = "",
+ normtype: str = "",
+ parr: str = "",
+ normalize: str = "",
+ **kwargs,
+ ):
+ r"""Computes the norm of the specified matrix or vector.
+
+ Mechanical APDL Command: `\*NRM `_
+
+ Parameters
+ ----------
+ name : str
+ Matrix or vector for which the norm will be computed. This can be a dense matrix (created by the
+ :ref:`dmat` command), a sparse matrix (created by the :ref:`smat` command) or a vector (created
+ by the :ref:`vec` command)
+
+ normtype : str
+ Mathematical norm to use:
+
+ * ``NRM2`` - L2 (Euclidian or SRSS) norm (default).
+
+ * ``NRM1`` - L1 (absolute sum) norm (vectors and dense matrices only).
+
+ * ``NRMINF`` - Maximum norm.
+
+ parr : str
+ Parameter name that contains the result.
+
+ normalize : str
+ Normalization key; to be used only for vectors created by :ref:`vec` :
+
+ * ``YES`` - Normalize the vector such that the norm is 1.0.
+
+ * ``NO`` - Do not normalize the vector (default).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-NRM_argdescript:
+
+ * ``name : str`` - Matrix or vector for which the norm will be computed. This can be a dense matrix
+ (created by the :ref:`dmat` command), a sparse matrix (created by the :ref:`smat` command) or a
+ vector (created by the :ref:`vec` command)
+
+ * ``normtype : str`` - Mathematical norm to use:
+
+ * ``NRM2`` - L2 (Euclidian or SRSS) norm (default).
+
+ * ``NRM1`` - L1 (absolute sum) norm (vectors and dense matrices only).
+
+ * ``NRMINF`` - Maximum norm.
+
+ * ``parr : str`` - Parameter name that contains the result.
+
+ * ``normalize : str`` - Normalization key; to be used only for vectors created by :ref:`vec` :
+
+ * ``YES`` - Normalize the vector such that the norm is 1.0.
+
+ * ``NO`` - Do not normalize the vector (default).
+
+ .. _a-NRM_notes:
+
+ The NRM2 option corresponds to the Euclidian or L2 norm and is applicable to either vectors or
+ matrices:
+
+ :math:`equation not available`, :math:`equation not available`
+
+ :math:`equation not available`, :math:`equation not available` where :math:`equation not
+ available` is the complex conjugate of :math:`equation not available`
+
+ :math:`equation not available`, :math:`equation not available` = largest eigenvalue of
+ :math:`equation not available`
+
+ The NRM1 option corresponds to the L1 norm and is applicable to vectors and dense matrices:
+
+ :math:`equation not available` or :math:`equation not available`, :math:`equation not available`
+
+ :math:`equation not available` or :math:`equation not available`, :math:`equation not available`
+
+ The NRMINF option is the maximum norm and is applicable to either vectors or matrices:
+
+ :math:`equation not available` or :math:`equation not available`, :math:`equation not available`
+
+ :math:`equation not available` or :math:`equation not available`, :math:`equation not available`
+ """
+ command = f"*NRM,{name},{normtype},{parr},{normalize}"
+ return self.run(command, **kwargs)
+
+ def remove(
+ self, name: str = "", val1: str = "", val2: str = "", val3: str = "", **kwargs
+ ):
+ r"""Suppresses rows or columns of a dense matrix or a vector.
+
+ Mechanical APDL Command: `\*REMOVE `_
+
+ Parameters
+ ----------
+ name : str
+ Name of the matrix or vector to be revised.
+
+ val1 : str
+ First value index to suppress.
+
+ val2 : str
+ Last value index to suppress.
+
+ val3 : str
+ Specifies what to remove:
+
+ * ``COL`` - Remove columns of the matrix (default).
+
+ * ``ROW`` - Remove rows of the matrix.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-REMOVE_argdescript:
+
+ * ``name : str`` - Name of the matrix or vector to be revised.
+
+ * ``val1, val2, val3 : str`` - Additional input. The meaning of ``Val1`` to ``Val3`` varies
+ depending on the entity type (matrix or vector). See details below.
+
+ **The following** ``Val1`` through ``Val3`` fields are used if ``Name`` refers to a dense matrix
+ created by the :ref:`dmat` command:
+
+ * ``val1 : str`` - First row or column number to suppress.
+
+ * ``val2 : str`` - Last row or column number to suppress.
+
+ * ``val3 : str`` - Specifies what to remove:
+
+ * ``COL`` - Remove columns of the matrix (default).
+
+ * ``ROW`` - Remove rows of the matrix.
+
+ **The following** ``Val1`` and ``Val2`` fields are used if ``Name`` refers to a vector created by
+ the :ref:`vec` command:
+
+ * ``val1 : str`` - First value index to suppress.
+
+ * ``val2 : str`` - Last value index to suppress.
+
+ .. _a-REMOVE_notes:
+
+ The values of the original matrix or vector specified by ``Name`` are retained. The matrix or vector
+ is resized to the new number of rows and columns.
+ """
+ command = f"*REMOVE,{name},{val1},{val2},{val3}"
+ return self.run(command, **kwargs)
+
+ def scal(self, name: str = "", val1: str = "", val2: str = "", **kwargs):
+ r"""Scales a vector or matrix by a constant.
+
+ Mechanical APDL Command: `\*SCAL `_
+
+ Parameters
+ ----------
+ name : str
+ Name used to identify the vector or matrix to be scaled. Must be specified.
+
+ val1 : str
+ The real part of the constant to use (default = 1).
+
+ val2 : str
+ The imaginary part of the constant to use (default = 0). This value is used only if the vector
+ or matrix specified by ``Name`` is complex.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-SCAL_argdescript:
+
+ * ``name : str`` - Name used to identify the vector or matrix to be scaled. Must be specified.
+
+ * ``val1 : str`` - The real part of the constant to use (default = 1).
+
+ * ``val2 : str`` - The imaginary part of the constant to use (default = 0). This value is used only
+ if the vector or matrix specified by ``Name`` is complex.
+
+ .. _a-SCAL_notes:
+
+ This command can be applied to vectors and matrices created by the :ref:`vec`, :ref:`dmat` and
+ :ref:`smat` commands.
+ """
+ command = f"*SCAL,{name},{val1},{val2}"
+ return self.run(command, **kwargs)
+
+ def smat(
+ self,
+ matrix: str = "",
+ type_: str = "",
+ method: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ **kwargs,
+ ):
+ r"""Creates a sparse matrix.
+
+ Mechanical APDL Command: `\*SMAT `_
+
+ Parameters
+ ----------
+ matrix : str
+ Name used to identify the matrix. Must be specified.
+
+ type_ : str
+ Matrix type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ method : str
+ Method used to create the matrix:
+
+ * ``ALLOC`` - Allocate a new matrix.
+
+ * ``COPY`` - Copy an existing matrix.
+
+ * ``IMPORT`` - Import the matrix from a file.
+
+ val1 : str
+ Name of the matrix to copy (can be either a dense or a sparse matrix).
+
+ val2 : str
+ Method used for copying the matrix:
+
+ * ``DIAG`` - Copy only the diagonal of the matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``TRANS`` - Transpose the original matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``EXTRACT`` - Extract a submatrix based on row and column numbers specified by ``Val3`` and
+ ``Val4``.
+
+ val3 : str
+ Name of integer vector ( :ref:`vec` ) containing row numbers. If no vector is specified,
+ defaults to all rows.
+
+ val4 : str
+ Name of integer vector ( :ref:`vec` ) containing column numbers. If no vector is specified,
+ defaults to all columns.
+
+ val5 : str
+ Additional input. The meaning of ``Val1`` through ``Val5`` will vary depending on the specified
+ ``Method``. See details below.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-SMAT_argdescript:
+
+ * ``matrix : str`` - Name used to identify the matrix. Must be specified.
+
+ * ``type_ : str`` - Matrix type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ * ``method : str`` - Method used to create the matrix:
+
+ * ``ALLOC`` - Allocate a new matrix.
+
+ * ``COPY`` - Copy an existing matrix.
+
+ * ``IMPORT`` - Import the matrix from a file.
+
+ * ``val1, val2, val3, val4, val5 : str`` - Additional input. The meaning of ``Val1`` through
+ ``Val5`` will vary depending on the specified ``Method``. See details below.
+
+ **The following** ``Valx`` fields are used with ``Method`` = ALLOC.
+
+ * ``val1 : str`` - Method used to create the matrix:
+
+ * ``DIAG`` - Allocate a diagonal square matrix. ``Val2`` is used; ``Val3``, ``Val4``, and ``Val5`` are ignored.
+
+ * ``Val2`` - Matrix size.
+
+ * ``CSR`` - Create a square sparse matrix based on Compressed Sparse Row (CSR) format description vectors. This
+ format requires 3 input vectors specified as ``Val2``, ``Val3`` and ``Val4``.
+
+ * ``Val2, Val3, Val4`` - Names of required row_ptr, col_ind and val vectors. These vectors must
+ be created using the :ref:`vec` command.
+
+ row_ptr is a long integer vector (use of L instead of I as the scalar type in the :ref:`vec` call);
+ col_ind is an integer vector. Val can be a real of complex values vector, according to the matrix
+ type.
+
+ * ``Val5`` - Specifies whether the matrix is symmetric (TRUE) or unsymmetric (FALSE). Default =
+ TRUE.
+
+ **The following** ``Valx`` fields are used with ``Method`` = COPY.
+
+ * ``val1 : str`` - Name of the matrix to copy (can be either a dense or a sparse matrix).
+
+ * ``val2 : str`` - Method used for copying the matrix:
+
+ * ``DIAG`` - Copy only the diagonal of the matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``TRANS`` - Transpose the original matrix. ``Val3`` and ``Val4`` are ignored.
+
+ * ``EXTRACT`` - Extract a submatrix based on row and column numbers specified by ``Val3`` and
+ ``Val4``.
+
+ * ``val3 : str`` - Name of integer vector ( :ref:`vec` ) containing row numbers. If no vector is
+ specified, defaults to all rows.
+
+ * ``val4 : str`` - Name of integer vector ( :ref:`vec` ) containing column numbers. If no vector is
+ specified, defaults to all columns.
+
+ **The following table describes the** ``Valx`` fields used with ``Method`` = IMPORT.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ .. _a-SMAT_notes:
+
+ Use the :ref:`dmat` command to create a dense matrix.
+
+ For more information on the CSR format, see `Creating a Sparse Matrix Using the CSR Format
+ `_
+
+ For more information on the NOD2SOLV and USR2SOLV mapping vectors, see.
+
+ For more information about :file:`.FULL` file contents, see the :ref:`hbmat` in the `Command
+ Reference `_.
+ """
+ command = f"*SMAT,{matrix},{type_},{method},{val1},{val2},{val3},{val4},{val5}"
+ return self.run(command, **kwargs)
+
+ def starinquire(self, obj: str = "", property_: str = "", var1: str = "", **kwargs):
+ r"""Retrieves properties of an existing APDL Math object.
+
+ Mechanical APDL Command: `\*INQUIRE `_
+
+ Parameters
+ ----------
+ obj : str
+ Name of the vector or matrix of interest.
+
+ property_ : str
+ Object property to get:
+
+ * ``DIM1`` - First dimension of a matrix, or size of a vector.
+
+ * ``DIM2`` - Second dimension of a matrix.
+
+ var1 : str
+ Name of the resulting parameter that contains the property value.
+
+ Notes
+ -----
+
+ .. _a-INQUIRE_notes:
+
+ The following example demonstrates using :ref:`starinquire` to get the number of rows and columns of
+ an existing matrix.
+
+ .. code:: apdl
+
+ *SMAT,K,D,IMPORT,FULL,file.full,STIFF ! Import the stiffness matrix from an existing FULL file
+ *INQUIRE,K,DIM1,NROW ! Get the first dimension of the stiffness matrix
+ *INQUIRE,K,DIM2,NCOL ! Get the second dimension of the stiffness matrix
+ /COM, K matrix size: %NROW% x %NCOL%
+ """
+ command = f"*INQUIRE,{obj},{property_},{var1}"
+ return self.run(command, **kwargs)
+
+ def starprint(self, matrix: str = "", fname: str = "", **kwargs):
+ r"""Prints the matrix values to a file.
+
+ Mechanical APDL Command: `\*PRINT `_
+
+ Parameters
+ ----------
+ matrix : str
+ Name of matrix or vector to print. Must be specified.
+
+ fname : str
+ File name (case-sensitive, 32-character maximum). If blank, matrix is written to the output
+ file.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-PRINT_argdescript:
+
+ * ``matrix : str`` - Name of matrix or vector to print. Must be specified.
+
+ * ``fname : str`` - File name (case-sensitive, 32-character maximum). If blank, matrix is written to
+ the output file.
+
+ .. _a-PRINT_notes:
+
+ The matrix may be a dense matrix ( :ref:`dmat` ), a sparse matrix ( :ref:`smat` ), or a vector (
+ :ref:`vec` ). Only the non-zero entries of the matrix are printed.
+ """
+ command = f"*PRINT,{matrix},{fname}"
+ return self.run(command, **kwargs)
+
+ def starrename(self, oldname: str = "", newname: str = "", **kwargs):
+ r"""Renames an existing vector or matrix.
+
+ Mechanical APDL Command: `\*RENAME `_
+
+ Parameters
+ ----------
+ oldname : str
+ Name of the existing vector or matrix to be renamed.
+
+ newname : str
+ New name for the vector or matrix.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-RENAME_argdescript:
+
+ * ``oldname : str`` - Name of the existing vector or matrix to be renamed.
+
+ * ``newname : str`` - New name for the vector or matrix.
+
+ .. _a-RENAME_notes:
+
+ The :ref:`starrename` command is used to rename `APDL Math
+ `_ objects.
+ """
+ command = f"*RENAME,{oldname},{newname}"
+ return self.run(command, **kwargs)
+
+ def starsort(
+ self,
+ name: str = "",
+ sorttype: str = "",
+ val1: str = "",
+ val2: str = "",
+ **kwargs,
+ ):
+ r"""Sorts the values of the specified vector.
+
+ Mechanical APDL Command: `\*SORT `_
+
+ Parameters
+ ----------
+ name : str
+ Name of the vector to be sorted. This vector can contain real or complex values.
+
+ sorttype : str
+ Criteria used to sort the values:
+
+ * ``VALUE`` - Values are sorted based on their real value (default).
+
+ * ``ABS`` - Values are sorted based on their absolute value.
+
+ * ``PERM`` - Values are sorted based on the input permutation vector ( ``Val1`` ).
+
+ val1 : str
+ Name of the permutation vector used to sort the values. This must be a vector of integer values
+ that was created with the :ref:`vec` command. The size of this permutation vector must be
+ identical to the size of the vector to be sorted.
+
+ This permutation vector is required when using ``Method`` = PERM.
+
+ val2 : str
+ Order of the sort operation:
+
+ * ``0`` - Increasing order (default).
+
+ * ``1`` - Decreasing order.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-SORT_argdescript:
+
+ * ``name : str`` - Name of the vector to be sorted. This vector can contain real or complex values.
+
+ * ``sorttype : str`` - Criteria used to sort the values:
+
+ * ``VALUE`` - Values are sorted based on their real value (default).
+
+ * ``ABS`` - Values are sorted based on their absolute value.
+
+ * ``PERM`` - Values are sorted based on the input permutation vector ( ``Val1`` ).
+
+ * ``val1, val2 : str`` - Additional input. The meaning of ``Val1``, ``Val2`` varies depending on the
+ specified ``SortType``. See below for details.
+
+ **The following** ``Valx`` fields are used with ``SortType`` = VALUE or ABS:
+
+ * ``val1 : str`` - Name of the vector in which permutation values will be saved (optional). This
+ should be an empty vector of type integer that was created with the :ref:`vec` command. The size of
+ this permutation vector must be identical to the size of the vector to be sorted. After the sort,
+ this vector contains the permutation used to sort the values.
+
+ * ``val2 : str`` - Order of the sort operation:
+
+ * ``0`` - Increasing order (default).
+
+ * ``1`` - Decreasing order.
+
+ **The following** ``Valx`` fields are used with ``Method`` = PERM:
+
+ * ``val1 : str`` - Name of the permutation vector used to sort the values. This must be a vector of
+ integer values that was created with the :ref:`vec` command. The size of this permutation vector
+ must be identical to the size of the vector to be sorted.
+
+ This permutation vector is required when using ``Method`` = PERM.
+
+ .. _a-SORT_notes:
+
+ The examples below demonstrate using :ref:`starsort` to sort the values of an input vector.
+
+ The following input:
+
+ .. code:: apdl
+
+ *VEC,V,I,ALLOC,5
+ V(1)=5,-3,2,0,-1
+ *SORT,V,VALUE
+ *PRINT,V
+
+ generates this output:
+
+ .. code:: apdl
+
+ -3 -1 0 2 5
+
+ To reverse the order, this input:
+
+ .. code:: apdl
+
+ *SORT,V,VALUE,,1
+ *PRINT,V
+
+ generates this output:
+
+ .. code:: apdl
+
+ 5 2 0 -1 -3
+ """
+ command = f"*SORT,{name},{sorttype},{val1},{val2}"
+ return self.run(command, **kwargs)
+
+ def vec(
+ self,
+ vector: str = "",
+ type_: str = "",
+ method: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ **kwargs,
+ ):
+ r"""Creates a vector.
+
+ Mechanical APDL Command: `\*VEC `_
+
+ Parameters
+ ----------
+ vector : str
+ Name used to identify the vector. Must be specified.
+
+ type_ : str
+ Vector type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ * ``I`` - Integer values.
+
+ method : str
+ Method used to create the vector:
+
+ * ``ALLOC`` - Allocate space for a vector (default).
+
+ * ``RESIZE`` - Resize an existing vector to a new length. Values are kept from the original vector.
+ If the length specified by ``Val1`` is greater than the original vector length, the additional rows
+ are assigned a value of zero.
+
+ * ``COPY`` - Copy an existing vector.
+
+ * ``IMPORT`` - Import the vector from a file.
+
+ * ``LINK`` - Link to a column of an existing dense :ref:`dmat` matrix and use it in subsequent
+ vector calculations. Any changes to the vector are also made to the corresponding matrix column
+ (memory is shared).
+
+ val1 : str
+ Name of the :ref:`dmat` matrix.
+
+ val2 : str
+ Column number of the matrix to link to.
+
+ val3 : str
+ Additional input. The meaning of ``Val1`` through ``Val5`` will vary depending on the specified
+ ``Method``. See details below.
+
+ val4 : str
+ Additional input. The meaning of ``Val1`` through ``Val5`` will vary depending on the specified
+ ``Method``. See details below.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VEC_argdescript:
+
+ * ``vector : str`` - Name used to identify the vector. Must be specified.
+
+ * ``type_ : str`` - Vector type:
+
+ * ``D`` - Double precision real values (default).
+
+ * ``Z`` - Complex double precision values.
+
+ * ``I`` - Integer values.
+
+ * ``method : str`` - Method used to create the vector:
+
+ * ``ALLOC`` - Allocate space for a vector (default).
+
+ * ``RESIZE`` - Resize an existing vector to a new length. Values are kept from the original vector.
+ If the length specified by ``Val1`` is greater than the original vector length, the additional rows
+ are assigned a value of zero.
+
+ * ``COPY`` - Copy an existing vector.
+
+ * ``IMPORT`` - Import the vector from a file.
+
+ * ``LINK`` - Link to a column of an existing dense :ref:`dmat` matrix and use it in subsequent
+ vector calculations. Any changes to the vector are also made to the corresponding matrix column
+ (memory is shared).
+
+ * ``val1, val2, val3, val4, val5 : str`` - Additional input. The meaning of ``Val1`` through
+ ``Val5`` will vary depending on the specified ``Method``. See details below.
+
+ **The following** ``Valx`` field is used with ``Method`` = ALLOC or ``Method`` = RESIZE:
+
+ * ``val1 : str`` - Number of rows in the vector.
+
+ **The following** ``Valx`` field is used with ``Method`` = COPY:
+
+ * ``val1 : str`` - Name of the vector to copy.
+
+ * ``val2 : str`` - Optional argument to specify either the real or the imaginary part of the values
+ to be copied. This
+ option only applies when copying a complex value vector to a real value vector.
+
+ * ``REAL`` - Copy the real part of the vector to the output vector.
+
+ * ``IMAG`` - Copy the imaginary part of the vector to the output vector.
+
+ **The following table describes the** ``Valx`` fields used with ``Method`` = IMPORT.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ **The following** ``Valx`` fields are used with ``Method`` = LINK:
+
+ * ``val1 : str`` - Name of the :ref:`dmat` matrix.
+
+ * ``val2 : str`` - Column number of the matrix to link to.
+
+ .. _a-VEC_notes:
+
+ Use the :ref:`dmat` command to create a matrix.
+
+ For more information on the BACK and FORWARD nodal mapping vectors, see in the `Ansys Parametric
+ Design Language Guide
+ `_.
+ """
+ command = f"*VEC,{vector},{type_},{method},{val1},{val2},{val3},{val4}"
+ return self.run(command, **kwargs)
+
+ def wrk(self, num: str = "", **kwargs):
+ r"""Sets the active workspace number.
+
+ Mechanical APDL Command: `\*WRK `_
+
+ Parameters
+ ----------
+ num : str
+ Number of the active memory workspace for APDLMath vector and matrices. All the following
+ APDLMath vectors and matrices will belong to this memory workspace, until the next call to the
+ :ref:`wrk` command. By default, all the APDLMath objects belong to workspace number 1.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-WRK_argdescript:
+
+ * ``num : str`` - Number of the active memory workspace for APDLMath vector and matrices. All the
+ following APDLMath vectors and matrices will belong to this memory workspace, until the next call to
+ the :ref:`wrk` command. By default, all the APDLMath objects belong to workspace number 1.
+
+ .. _a-WRK_notes:
+
+ This feature enables you to associate a set of vector and matrices in a given memory workspace, so
+ that you can easily manage the free step:
+
+ .. code:: apdl
+
+ *VEC,V,D,ALLOC,5 ! V belongs to the default Workspace 1
+
+ \*WRK,2 ! Set the active workspace as the number 2
+
+ \*VEC,W,D,IMPORT,FULL,file.full,RHS ! W belongs to the Workspace 2
+ \*SMAT,K,D,IMPORT,FULL,file.full,STIFF ! K belongs to the Workspace 2
+ \*DMAT,M,ALLOC,10,10 ! M belongs to the Workspace 2
+ ...
+ \*FREE,WRK,2 ! W, K and M are deleted, but not V
+
+ \*PRINT,V
+
+ This feature can be useful to free all the temporary APDLMath variables inside a MACRO in one call.
+ """
+ command = f"*WRK,{num}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/apdl/parameter_definition.py b/src/ansys/mapdl/core/_commands/apdl/parameter_definition.py
index 37e27f1f203..c46b22225b4 100644
--- a/src/ansys/mapdl/core/_commands/apdl/parameter_definition.py
+++ b/src/ansys/mapdl/core/_commands/apdl/parameter_definition.py
@@ -22,825 +22,4751 @@
class ParameterDefinition:
- def afun(self, lab="", **kwargs):
- """Specifies units for angular functions in parameter expressions.
- APDL Command: ``*AFUN``
+ def afun(self, lab: str = "", **kwargs):
+ r"""Specifies units for angular functions in parameter expressions.
+
+ Mechanical APDL Command: `\*AFUN `_
Parameters
----------
- lab
+ lab : str
Specifies the units to be used:
- Use radians for input and output of parameter angular functions (default). - Use degrees for input and output of parameter angular functions.
+ * ``RAD`` - Use radians for input and output of parameter angular functions (default).
+
+ * ``DEG`` - Use degrees for input and output of parameter angular functions.
+
+ * ``STAT`` - Show current setting (DEG or RAD) for this command.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-AFUN_argdescript:
+
+ * ``lab : str`` - Specifies the units to be used:
+
+ * ``RAD`` - Use radians for input and output of parameter angular functions (default).
+
+ * ``DEG`` - Use degrees for input and output of parameter angular functions.
+
+ * ``STAT`` - Show current setting (DEG or RAD) for this command.
+
+ .. _a-AFUN_default:
+
+ Use radians for input or output of parameter angular functions.
+
+ .. _a-AFUN_notes:
+
+ Only the SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, ANGLEK, and ANGLEN functions ( :ref:`starset`,
+ :ref:`vfun` ) are affected by this command.
+ """
+ command = f"*AFUN,{lab}"
+ return self.run(command, **kwargs)
+
+ def dim(
+ self,
+ par: str = "",
+ type_: str = "",
+ imax: str = "",
+ jmax: str = "",
+ kmax: str = "",
+ var1: str = "",
+ var2: str = "",
+ var3: str = "",
+ csysid: str = "",
+ **kwargs,
+ ):
+ r"""Defines an array parameter and its dimensions.
+
+ Mechanical APDL Command: `\*DIM `_
+
+ Parameters
+ ----------
+ par : str
+ Name of parameter to be dimensioned. See :ref:`starset` for name restrictions.
+
+ type_ : str
+ Array type:
+
+ * ``ARRAY`` - Arrays are similar to standard FORTRAN arrays (indices are integers) (default). Index
+ numbers for the rows, columns, and planes are sequential values beginning with one. Used for 1-, 2-,
+ or 3D arrays.
+
+ * ``ARR4`` - Same as ARRAY, but used to specify 4-D arrays.
+
+ * ``ARR5`` - Same as ARRAY, but used to specify 5-D arrays.
+
+ * ``CHAR`` - Array entries are character strings (up to 8 characters each). Index numbers for rows,
+ columns, and planes are sequential values beginning with one.
+
+ * ``TABLE`` - Array indices are real (non-integer) numbers which must be defined when filling the
+ table. Index numbers for the rows and columns are stored in the zero column and row "array elements"
+ and are initially assigned a near-zero value. Index numbers must be in ascending order and are used
+ only for retrieving an array element. When retrieving an array element with a real index that does
+ not match a specified index, linear interpolation is done among the nearest indices and the
+ corresponding array element values ( :ref:`starset` ). Used for 1-, 2-, or 3D tables.
+
+ * ``TAB4`` - Same as TABLE, but used to specify 4-D tables.
+
+ * ``TAB5`` - Same as TABLE, but used to specify 5-D tables.
+
+ * ``STRING`` - Array entries are character strings (up to IMAX each). Index numbers for columns and
+ planes are sequential values beginning with 1. Row index is character position in string.
+
+ imax : str
+ Extent of first dimension (row). (For ``Type`` = STRING, ``IMAX`` is rounded up to the next
+ multiple of eight and has a limit of 248). Default = 1.
+
+ jmax : str
+ Extent of second dimension (column). Default = 1.
+
+ kmax : str
+ Extent of third dimension (plane). Default = 1.
+
+ var1 : str
+ Variable name corresponding to the first dimension (row) for ``Type`` = TABLE, TAB4, or TAB5.
+ Default = Row.
+
+ var2 : str
+ Variable name corresponding to the second dimension (column) for ``Type`` = TABLE, TAB4, or
+ TAB5. Default = Column.
+
+ var3 : str
+ Variable name corresponding to the third dimension (plane) for ``Type`` = TABLE, TAB4, TAB5.
+ Default = Plane.
+
+ csysid : str
+ An integer corresponding to the coordinate system ID number. Default = 0 (global Cartesian).
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-DIM_argdescript:
+
+ * ``par : str`` - Name of parameter to be dimensioned. See :ref:`starset` for name restrictions.
+
+ * ``type_ : str`` - Array type:
+
+ * ``ARRAY`` - Arrays are similar to standard FORTRAN arrays (indices are integers) (default). Index
+ numbers for the rows, columns, and planes are sequential values beginning with one. Used for 1-, 2-,
+ or 3D arrays.
+
+ * ``ARR4`` - Same as ARRAY, but used to specify 4-D arrays.
+
+ * ``ARR5`` - Same as ARRAY, but used to specify 5-D arrays.
+
+ * ``CHAR`` - Array entries are character strings (up to 8 characters each). Index numbers for rows,
+ columns, and planes are sequential values beginning with one.
+
+ * ``TABLE`` - Array indices are real (non-integer) numbers which must be defined when filling the
+ table. Index numbers for the rows and columns are stored in the zero column and row "array elements"
+ and are initially assigned a near-zero value. Index numbers must be in ascending order and are used
+ only for retrieving an array element. When retrieving an array element with a real index that does
+ not match a specified index, linear interpolation is done among the nearest indices and the
+ corresponding array element values ( :ref:`starset` ). Used for 1-, 2-, or 3D tables.
+
+ * ``TAB4`` - Same as TABLE, but used to specify 4-D tables.
+
+ * ``TAB5`` - Same as TABLE, but used to specify 5-D tables.
+
+ * ``STRING`` - Array entries are character strings (up to IMAX each). Index numbers for columns and
+ planes are sequential values beginning with 1. Row index is character position in string.
+
+ * ``imax : str`` - Extent of first dimension (row). (For ``Type`` = STRING, ``IMAX`` is rounded up
+ to the next multiple of eight and has a limit of 248). Default = 1.
+
+ * ``jmax : str`` - Extent of second dimension (column). Default = 1.
+
+ * ``kmax : str`` - Extent of third dimension (plane). Default = 1.
+
+ * ``var1 : str`` - Variable name corresponding to the first dimension (row) for ``Type`` = TABLE,
+ TAB4, or TAB5. Default = Row.
+
+ * ``var2 : str`` - Variable name corresponding to the second dimension (column) for ``Type`` =
+ TABLE, TAB4, or TAB5. Default = Column.
+
+ * ``var3 : str`` - Variable name corresponding to the third dimension (plane) for ``Type`` = TABLE,
+ TAB4, TAB5. Default = Plane.
+
+ * ``csysid : str`` - An integer corresponding to the coordinate system ID number. Default = 0
+ (global Cartesian).
+
+ .. _a-DIM_notes:
+
+ Up to three dimensions (row, column, and plane) may be defined using ARRAY and TABLE. Use ARR4,
+ ARR5, TAB4, and TAB5 to define up to five dimensions (row, column, plane, book, and shelf). An index
+ number is associated with each row, column, and plane. For array and table type parameters, element
+ values are initialized to zero. For character and string parameters, element values are initialized
+ to (blank). A defined parameter must be deleted ( :ref:`starset` ) before its dimensions can be
+ changed. Scalar (single valued) parameters should not be dimensioned. :ref:`dim`,A,,3 defines a
+ vector array with elements A(1), A(2), and A(3). :ref:`dim`,B,,2,3 defines a 2x3 array with elements
+ B(1,1), B(2,1), B(1,2), B(2,2), B(1,3), and B(2,3). Use :ref:`starstatus`, ``Par`` to display
+ elements of array ``Par``. You can write formatted data files (tabular formatting) from data held in
+ arrays through the :ref:`vwrite` command.
+
+ If you use table parameters to define boundary conditions, then ``Var1``, ``Var2``, and/or ``Var3``
+ can either specify a primary variable (listed in :ref:`a-DIM_tab_1` ) or can be an independent
+ parameter. If specifying an independent parameter, then you must define an additional table for the
+ independent parameter. The additional table must have the same name as the independent parameter and
+ may be a function of one or more primary variables or another independent parameter. All independent
+ parameters must relate to a primary variable.
+
+ Tabular load arrays can be defined in both global Cartesian (default), cylindrical, spherical, or
+ local (see below) coordinate systems by specifying ``CSYSID``, as defined in :ref:`local`.
+ Coordinate system ``CSYSID`` must exist prior to issuing the :ref:`dim` command.
+
+ **The following constraints apply when specifying a local coordinate system for your tabular
+ loads:**
+
+ * Only Cartesian, cylindrical and spherical coordinate systems are supported
+
+ * Angle values for Y in cylindrical or spherical coordinate systems must be input in degrees and
+ must be positive values between 0 and 360 degrees (0 :math:`equation not available` Y
+ :math:`equation not available` 360)
+
+ * Angle values for Z in spherical coordinate system must be input in degrees and must be positive
+ values between -90 and +90 ( -90 :math:`equation not available` Z :math:`equation not available`
+ 90)
+
+ If specifying a 4- or 5-D array or table, four additional fields ( ``LMAX``, ``MMAX``, ``Var4``, and
+ ``Var5`` ) are available. Thus, for a 4-D table, the command syntax would be:
+
+ .. code:: apdl
+
+ *DIM,Par,Type,IMAX,JMAX,KMAX,LMAX,Var1,Var2,Var3,Var4,CSYSID
+
+ For a 5-D table, the command syntax is:
+
+ .. code:: apdl
+
+ *DIM,Par,Type,IMAX,JMAX,KMAX,LMAX,MMAX,Var1,Var2,Var3,Var4,Var5,CSYSID
+
+ You cannot create or edit 4- or 5-D arrays or tables via the GUI.
+
+ For more information, see `Array Parameters
+ `_
+
+ .. _a-DIM_tab_1:
+
+ \*DIM - Primary Variables
+ *************************
+
+ .. flat-table::
+ :header-rows: 1
+
+ * - Primary Variable
+ - Label for ``Var1, Var2, Var3, Var4, Var5``
+ * - Time
+ - TIME
+ * - Frequency
+ - FREQ
+ * - X-coordinate location
+ - X
+ * - Y-coordinate location
+ - Y
+ * - Z-coordinate location
+ - Z
+ * - Temperature
+ - TEMP
+ * - Velocity
+ - VELOCITY
+ * - Pressure
+ - PRESSURE [ :ref:`cmddimvarnote1` ]
+ * - Geometric gap/penetration
+ - GAP
+ * - Cyclic sector number
+ - SECTOR
+ * - Amplitude of the rotational velocity vector
+ - OMEGS
+ * - Eccentricity
+ - ECCENT
+ * - Phase shift
+ - THETA
+ * - Element number
+ - ELEM
+ * - Node number
+ - NODE
+ * - Concentration
+ - CONC
+
+
+ .. _cmddimvarnote1:
+
+ Specify PRESSURE as the independent variable (not PRES).
+
+ The X, Y, and Z coordinate locations listed above are valid in global Cartesian, or local
+ (Cartesian, cylindrical and spherical) coordinate systems. The VELOCITY label is applicable only to
+ the calculated fluid velocity in element ``FLUID116``.
+
+ When using PRESSURE as a primary variable, the underlying element must have the pressure DOF
+ associated with it, or it must be a supported contact element.
+
+ The gap/penetration label (GAP) is only used for defining certain contact element real constants.
+
+ The frequency label (FREQ) is valid for harmonic analyses only.
+
+ The node and element labels (NODE and ELEM) allow you to use node and element numbers as primary
+ variables, and their axis values should be integers.
+
+ The OMEGS, ECCENT, and THETA primary variables only apply to the ``COMBI214`` element. The amplitude
+ of the rotational velocity (OMEGS) is an absolute value, so only positive values of OMEGS are valid.
+ The eccentricity (ECCENT) and phase shift (THETA) labels are only valid for nonlinear analyses.
+
+ If you use table parameters to define boundary conditions, the table names ( ``Par`` ) must not
+ exceed 32 characters.
+
+ In thermal analyses, if you apply tabular loads as a function of temperature but the rest of the
+ model is linear (for example, includes no temperature-dependent material properties or radiation ),
+ you should turn on Newton-Raphson iterations ( :ref:`nropt`,FULL) to evaluate the temperature-
+ dependent tabular boundary conditions correctly.
+
+ This command is valid in any processor.
+ """
+ command = (
+ f"*DIM,{par},{type_},{imax},{jmax},{kmax},{var1},{var2},{var3},{csysid}"
+ )
+ return self.run(command, **kwargs)
+
+ def get(
+ self,
+ par: str = "",
+ entity: str = "",
+ entnum: str = "",
+ item1: str = "",
+ it1num: str = "",
+ item2: str = "",
+ it2num: str = "",
+ **kwargs,
+ ):
+ r"""Retrieves a value and stores it as a scalar parameter or part of an array parameter.
+
+ Mechanical APDL Command: `\*GET `_
+
+ Parameters
+ ----------
+ par : str
+ The name of the resulting parameter. See :ref:`starset` for name restrictions.
+
+ entity : str
+ Entity keyword. Valid keywords are NODE, ELEM, KP, LINE, AREA, VOLU, etc., as shown for
+ ``Entity`` = in the tables below.
+
+ entnum : str
+ The number or label for the entity (as shown for ``ENTNUM`` = in the tables below). In some
+ cases, a zero (or blank) ``ENTNUM`` represents all entities of the set.
+
+ item1 : str
+ The name of a particular item for the given entity. Valid items are as shown in the ``Item1``
+ columns of the tables below.
+
+ it1num : str
+ The number (or label) for the specified ``Item1`` (if any). Valid ``IT1NUM`` values are as shown
+ in the ``IT1NUM`` columns of the tables below. Some ``Item1`` labels do not require an
+ ``IT1NUM`` value.
+
+ item2 : str
+ A second set of item labels and numbers to further qualify the item for which data are to be
+ retrieved. Most items do not require this level of information.
+
+ it2num : str
+ A second set of item labels and numbers to further qualify the item for which data are to be
+ retrieved. Most items do not require this level of information.
+
+ Notes
+ -----
+
+ .. _GET_notes:
+
+ :ref:`get` retrieves a value for a specified item and stores the value as a scalar parameter, or as
+ a value in a user-named array parameter. An item is identified by various keyword, label, and number
+ combinations. Usage is similar to the :ref:`starset` command except that the parameter values are
+ retrieved from previously input or calculated results.
+
+ Example: :ref:`get` Usage
+
+ :ref:`get`,A,ELEM,5,CENT,X returns the centroid x location of element 5 and stores the result as
+ parameter A.
+
+ :ref:`get` command operations, and corresponding get functions, return values in the active
+ coordinate system ( :ref:`csys` for input data or :ref:`rsys` for results data) unless stated
+ otherwise.
+
+ A get function is an alternative in-line function that can be used instead of the :ref:`get` command
+ to retrieve a value. For more information, see.
+
+ Both :ref:`get` and :ref:`starvget` retrieve information from the active data stored in memory. The
+ database is often the source, and sometimes the information is retrieved from common memory blocks
+ that the program uses to manipulate information. Although POST1 and POST26 operations use a
+ :file:`\*.rst` file, :ref:`get` data is accessed from the database or from the common blocks. Get
+ operations do not access the :file:`\*.rst` file directly. For repeated gets of sequential items,
+ such as from a series of elements, see the :ref:`starvget` command.
+
+ Most items are stored in the database after they are calculated and are available anytime
+ thereafter. Items are grouped according to where they are usually first defined or calculated.
+ Preprocessing data will often not reflect the calculated values generated from section data. Do not
+ use :ref:`get` to obtain data from elements that use calculated section data, such as beams or
+ shells.
+
+ When the value retrieved by :ref:`get` is a component name, the resulting character parameter is
+ limited to 32 characters. If the component name is longer than 32 characters, the remaining
+ characters are ignored.
+
+ Most of the general items listed below are available from all modules. Each of the sections for
+ accessing :ref:`get` parameters are shown in the following order:
+
+ * :ref:`gettabgen`
+
+ * :ref:`gettabprep`
+
+ * :ref:`gettabsol`
+
+ * :ref:`gettabpost`
+
+ The :ref:`get` command is valid in any processor.
+
+ **General Items**
+
+ .. _gettabgen:
+
+ \*GET General Entity Items
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`get_gen_act`
+
+ * :ref:`get_gen_cmd`
+
+ * :ref:`get_gen_comp`
+
+ * :ref:`get_gen_graph`
+
+ * :ref:`get_gen_parm`
+
+ * :ref:`get_gen_tbtype`
+
+ .. _get_gen_act:
+
+ \*GET General Items, Entity = ACTIVE
+ ************************************
+
+ .. flat-table:: ``Entity`` = ACTIVE, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, Par, ACTIVE, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - INT
+ -
+ - Current interactive key: 0=off, 2=on.
+ * - IMME
+ -
+ - Current immediate key: 0=off, 1=on.
+ * - MENU
+ -
+ - Current menu key: 0=off, 1=on.
+ * - PRKEY
+ -
+ - Printout suppression status: 0= :ref:`nopr`, 1= :ref:`gopr` or :ref:`slashgo`
+ * - UNITS
+ -
+ - Units specified by :ref:`units` command: 0 = USER, 1 = SI, 2 = CGS, 3 = BFT, 4 = BIN, 5 = MKS, 6 = MPA, 7 = uMKS.
+ * - ROUT
+ -
+ - Current routine: 0 = Begin level, 17 = PREP7, 21 = SOLUTION, 31 = POST1, 36 = POST26, 52 = AUX2, 53 = AUX3, 62 = AUX12, 65 = AUX15.
+ * - TIME
+ - WALL,CPU
+ - Current wall clock or CPU time. Current wall clock will continue to accumulate during a run and is not reset to zero at midnight.
+ * - DBASE
+ - LDATE
+ - Date of first modification of any database quantity required for POST1 operation. The parameter returned is ``Par`` = YEAR\*10000 + MONTH\*100 + DAY.
+ * - DBASE
+ - LTIME
+ - Time of last modification of any database quantity required for POST1 operation. The parameter returned is ``Par`` = HOURS\*10000 + MINUTES\*100 + SECONDS.
+ * - REV
+ -
+ - Minor release revision number (5.6, 5.7, 6.0 etc.). Letter notation (for example, 5.0A) is not included.
+ * - TITLE
+ - 0,1,2,3,4
+ - **Item2:** START **IT2NUM:** ``N`` Current title string of the main title ( ``IT1NUM`` =0 or blank) or subtitle 1, 2, 3, or 4 ( ``IT1NUM`` =1,2,3, or 4). A character parameter of up to 8 characters, starting at position ``N``, is returned.
+ * - JOBNAM
+ -
+ - **Item2:** START **IT2NUM:** ``N`` Current Jobname. A character parameter of up to 8 characters, starting at position ``N``, is returned. Use :ref:`dim` and ``*DO`` to get all 32 characters.
+ * - PLATFORM
+ -
+ - The current platform.
+ * - NPROC
+ - CURR, MAX, MAXP
+ - The number of processors being used for the current session, or the maximum total number of processors (physical and virtual) available on the machine, or the maximum number of physical processors available on the machine. This only applies to shared-memory parallelism.
+ * - NUMCPU
+ -
+ - Number of distributed processes being used (distributed-memory parallel solution).
+
+
+ .. _get_gen_cmd:
+
+ \*GET General Items, Entity = CMD
+ *********************************
+
+ .. flat-table:: ``Entity`` = CMD, ``ENTNUM`` = 0 (or blank) The following items are valid for all commands except star (\2) commands and non-graphics slash (/) commands.
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CMD, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - STAT
+ -
+ - Status of previous command: 0=found, 1=not found (unknown).
+ * - NARGS
+ -
+ - Field number of last nonblank field on the previous command.
+ * - FIELD
+ - 2,3... ``N``
+ - Numerical value of the ``N`` th field on the previous command. Field 1 is the command name (not available)
+
+
+ .. _get_gen_comp:
+
+ \*GET General Items, Entity = COMP
+ **********************************
+
+ .. flat-table:: ``Entity`` = COMP, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, COMP, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NCOMP
+ -
+ - Total number of components and assemblies currently defined.
+
+
+ .. _get_gen_graph:
+
+ \*GET General Items, Entity = GRAPH
+ ***********************************
+
+ .. flat-table:: ``Entity`` =GRAPH, ``ENTNUM`` = N (window number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, GRAPH, N, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ACTIVE
+ -
+ - :ref:`window` status: 0=off, 1=on.
+ * - ANGLE
+ -
+ - :ref:`angle` ``THETA`` angle.
+ * - CONTOUR
+ - ``Name``
+ - :ref:`contour` value for ``Name``, where ``Name`` = VMIN, VINC, or NCONT.
+ * - DIST
+ -
+ - :ref:`dist` ``DVAL`` value.
+ * - DSCALE
+ - DMULT
+ - :ref:`slashdscale` ``DMULT`` value.
+ * - EDGE
+ -
+ - :ref:`edge` ``KEY`` value.
+ * - FOCUS
+ - X, Y, Z
+ - :ref:`focus` ``CIN``, ``YF``, or ``ZF`` value.
+ * - GLINE
+ -
+ - :ref:`gline` ``STYLE`` value.
+ * - MODE
+ -
+ - :ref:`user` or :ref:`auto` setting: 0=user, 1=auto.
+ * - NORMAL
+ -
+ - :ref:`normal` ``KEY`` value.
+ * - RANGE
+ - XMIN, XMAX, YMIN, YMAX
+ - :ref:`window` ``XMIN``, ``XMAX``, ``YMIN``, or ``YMAX`` screen coordinates.
+ * - RATIO
+ - X, Y
+ - :ref:`ratio` ``RATOX`` or ``RATOY`` value.
+ * - SSCALE
+ - SMULT
+ - :ref:`sscale` ``SMULT`` value.
+ * - TYPE
+ -
+ - :ref:`slashtype` ``Type`` value.
+ * - VCONE
+ - ANGLE
+ - :ref:`vcone` ``PHI`` angle.
+ * - VIEW
+ - X, Y, Z
+ - :ref:`view` ``XV``, ``YV``, or ``ZV`` value.
+ * - VSCALE
+ - VRATIO
+ - :ref:`vscale` ``VRATIO`` value.
+
+
+ .. _get_gen_parm:
+
+ \*GET General Items, Entity = PARM
+ **********************************
+
+ .. flat-table:: ``Entity`` = PARM, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PARM, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MAX
+ -
+ - Total number of parameters currently defined.
+ * - BASIC
+ -
+ - Number of scalar parameters (excluding parameters beginning with an underscore _, array parameters, and character parameters).
+ * - LOC
+ - ``Num``
+ - Name of the parameter at the ``Num`` location in the parameter table. A character parameter is returned.
+
+
+ .. _get_gen_tbtype:
+
+ \*GET General Items, Entity = TBTYPE
+ ************************************
+
+ .. flat-table:: ``Entity`` = ``TBTYPE``, ``ENTNUM`` = ``MatID`` (where TBTYPE is the material table type as defined via the :ref:`tb` command, such (ELASTIC, CTE, etc.), and ``MatID`` is the material ID) **Evaluates a material property coefficient for a given set of input field variables.**
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, **TBTYPE**, ``MatID``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``Fld1``, ``Fld2``,...
+ * - Item1
+ - IT1NUM
+ - Description
+ * - :rspan:`2` TBEV: Material table evaluation for query at a given field variable
+ - :rspan:`2` ``SINDEX`` = Subtable index (1 - max number of subtables)
+ - **Item2** : ``CINDEX`` = Coefficient index
+ * - **IT2NUM** : ``N`` = Number of field variables input
+ * - ``Fld1``, ``Fld2``, ..., : ``Val`` = Value of the field variable(s), entered in the same order specified via the :ref:`tbfield` command(s)
+
+ **Preprocessing Items**
+
+ .. _gettabprep:
+
+ \*GET Preprocessing Entity Items
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`get_prep_act`
+
+ * :ref:`get_prep_area`
+
+ * :ref:`get_prep_axis`
+
+ * :ref:`get_prep_cdsy`
+
+ * :ref:`get_prep_ce`
+
+ * :ref:`get_prep_cmpb`
+
+ * :ref:`get_prep_cp`
+
+ * :ref:`get_prep_csec`
+
+ * :ref:`get_prep_elem`
+
+ * :ref:`get_prep_etyp`
+
+ * :ref:`get_prep_gcn`
+
+ * :ref:`get_prep_genb`
+
+ * :ref:`get_prep_gens`
+
+ * :ref:`get_prep_kp`
+
+ * :ref:`get_prep_line`
+
+ * :ref:`get_prep_link`
+
+ * :ref:`get_prep_mat`
+
+ * :ref:`get_prep_mplab`
+
+ * :ref:`get_prep_node`
+
+ * :ref:`get_prep_ocean`
+
+ * :ref:`get_prep_oczone`
+
+ * :ref:`get_prep_part`
+
+ * :ref:`get_prep_pipe`
+
+ * :ref:`get_prep_rcon`
+
+ * :ref:`get_prep_rein`
+
+ * :ref:`get_prep_sctn`
+
+ * :ref:`get_prep_secp`
+
+ * :ref:`get_prep_shel`
+
+ * :ref:`get_prep_tbft1`
+
+ * :ref:`get_prep_tblab`
+
+ * :ref:`get_prep_volu`
+
+ .. _get_prep_act:
+
+ \*GET Preprocessing Items, Entity = ACTIVE
+ ******************************************
+
+ .. flat-table:: ``Entity`` = ACTIVE, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ACTIVE, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - SEG
+ -
+ - Segment capability of graphics driver: 0=no segments available, 1=erasable segments available, 2=non-erasable segments available.
+ * - CSYS
+ -
+ - Active coordinate system.
+ * - DSYS
+ -
+ - Active display coordinate system.
+ * - MAT
+ -
+ - Active material.
+ * - TYPE
+ -
+ - Active element type.
+ * - REAL
+ -
+ - Active real constant set.
+ * - ESYS
+ -
+ - Active element coordinate system.
+ * - SECT
+ -
+ - Active section.
+ * - CP
+ -
+ - Maximum coupled node set number in the model (includes merged and deleted sets until compressed out).
+ * - CE
+ -
+ - Maximum constraint equation set number in the model (includes merged and deleted sets until compressed out).
+
+
+ .. _get_prep_area:
+
+ \*GET Preprocessing items, Entity = AREA
+ ****************************************
+
+ .. flat-table:: ``Entity`` = AREA, ``ENTNUM`` = ``N`` (area number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, AREA, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute, ``Name``, where ``Name`` =MAT, TYPE, REAL, ESYS, KB,KE,SECN, NNOD, NELM, or ESIZ. (NNOD=number of nodes, NELM=number of elements, ESIZ=element size.)
+ * - ASEL
+ -
+ - Select status of area ``N`` : -1=unselected, 0=undefined, 1=selected. Alternative get function: ASEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher area number above ``N`` in selected set (or zero if none found).
+ * - NXTL
+ -
+ - Next lower area number below ``N`` in selected set (or zero if none found).
+ * - AREA
+ -
+ - Area of area ``N``. ( :ref:`asum` or :ref:`gsum` must have been performed sometime previously with at least this area ``N`` selected).
+ * - LOOP
+ - 1,2,..., ``I``
+ - ``Item2`` : LINE, ``IT2NUM`` : 1,2,..., ``p`` Line number of position ``p`` of loop ``I``
+
+
+ .. _get_prep_axis:
+
+ \*GET Preprocessing Items, Entity = AXIS
+ ****************************************
+
+ .. flat-table:: ``Entity`` = AXIS, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, AXIS, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ - --
+ - Number of defined sections.
+ * - NUM
+ - MAX
+ - Largest section number defined.
+
+
+ .. _get_prep_cdsy:
+
+ \*GET Preprocessing Items, Entity = CDSY
+ ****************************************
+
+ .. flat-table:: ``Entity`` = CDSY, ``ENTNUM`` = ``N`` (coordinate system number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CDSY, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, or Z origin location in global Cartesian system.
+ * - ANG
+ - XY, YZ, ZX
+ - THXY, THYZ, or THZX rotation angle (in degrees) relative to the global Cartesian coordinate system.
+ * - ATTR
+ - ``Name``
+ - Number assigned to ``Name``, where ``Name`` =KCS, KTHET, KPHI, PAR1, or PAR2. The value -1.0 is returned for KCS if the coordinate system is undefined.
+ * - NUM
+ - MAX
+ - The maximum coordinate system number
+
+
+ .. _get_prep_ce:
+
+ \*GET Preprocessing Items, Entity = CE
+ **************************************
+
+ .. flat-table:: ``Entity`` = CE, ``ENTNUM`` = ``N`` (constraint equation set)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CE, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - If N = 0, then
+ * - MAX
+ -
+ - Maximum constraint equation number
+ * - NUM
+ -
+ - Number of constraint equations
+ * - If N > 0, then
+ * - NTERM
+ -
+ - Number of terms in this constraint equation
+ * - CONST
+ -
+ - Constant term for this constraint equation
+ * - TERM
+ - number
+ - Item2 = NODE: Gives the node for this position in the constraint equation. Item2 = DOF: Gives the DOF number for this position in the constraint equation. (1-UX, 2-UY, 3-UZ, 4-ROTX, etc.) Item2 = COEF: Gives the coefficient for this position in the constraint equation.
+
+
+ .. _get_prep_cmpb:
+
+ \*GET Preprocessing Items, Entity = CMPB
+ ****************************************
+
+ .. flat-table:: ``Entity`` = CMPB, ``ENTNUM`` = ``N`` (composite beam section identification number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CMPB, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ -
+ - Number of defined sections. If Item1 = COUNT, then N is blank.
+ * - NUM
+ - MAX
+ - Largest section number defined. If IT1NUM = MAX, then N is blank.
+ * - EXIS
+ -
+ - Returns a 1 if the section exists and if it is a CMPB section.
+ * - NAME
+ -
+ - The 8-character section name defined via the :ref:`sectype` command.
+ * - One of the following: * CBMX * CBTE * CBMD
+ -
+ - Item2 = NTEM (the number of temperatures for :ref:`cbmx`, :ref:`cbte`, or :ref:`cbmd` data).
+ * - One of the following: * CBMX * CBTE * CBMD
+ -
+ - Item2 = TVAL; IT2NUM = ``nnn`` where ``nnn`` is the temperature value (< = NTEM).
+ * - One of the following: * CBMX * CBTE * CBMD
+ - ``nnn``
+ - Item2 = TEMP; IT2NUM = ``tval`` Where ``nnn`` is the location in the :ref:`cbmx`, :ref:`cbte`, or :ref:`cbmd` command for the given coefficient number, and ``tval`` is the temperature value.
+
+
+ .. _get_prep_cp:
+
+ \*GET Preprocessing Items, Entity = CP
+ **************************************
+
+ .. flat-table:: ``Entity`` = CP, ``ENTNUM`` = ``N`` (coupled node set)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CP, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - If N = 0, then
+ * - MAX
+ -
+ - Maximum coupled set number
+ * - NUM
+ -
+ - Number of coupled sets
+ * - If N > 0, then
+ * - DOF
+ -
+ - The degree of freedom for this set (1-UX, 2-UY, 3-UZ, 4-ROTX, etc.)
+ * - NTERM
+ -
+ - Number of nodes in this set.
+ * - TERM
+ - number
+ - Item2 = NODE: Gives the node for this position number in the coupled set.
+
+
+ .. _get_prep_csec:
+
+ \*GET Preprocessing Items, Entity = CSEC
+ ****************************************
+
+ .. flat-table:: ``Entity`` = CSEC, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CSEC, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ - --
+ - Number of defined sections.
+ * - NUM
+ - MAX
+ - Largest section number defined.
+
+
+ .. _get_prep_elem:
+
+ \*GET Preprocessing Items, Entity = ELEM
+ ****************************************
+
+ .. flat-table:: ``Entity`` = ELEM, ``ENTNUM`` = ``N`` (element number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ELEM, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NODE
+ - 1, 2,... 20
+ - Node number at position 1,2,... or 20 of element ``N``. Alternative get function: NELEM( ``n,npos`` ), where ``npos`` is 1,2,...20.
+ * - CENT
+ - X, Y, Z
+ - Centroid X, Y, or Z location (based on shape function) in the active coordinate system. The original locations is used even if large deflections are active. Alternative get functions: CENTRX( ``N`` ), CENTRY( ``N`` ), and CENTRZ( ``N`` ) always retrieve the element centroid in global Cartesian coordinates, and are determined from the selected nodes on the elements.
+ * - ADJ
+ - 1, 2,... 6
+ - Element number adjacent to face 1,2,...6. Alternative get function: ELADJ( ``N``, ``face`` ). Only elements (of the same dimensionality) adjacent to lateral faces are considered.
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute ``Name``, where ``Name`` = MAT, TYPE, REAL, ESYS, PSTAT, LIVE, or SECN. Returns a zero if the element is unselected. If ``Name`` = LIVE, returns a 1 if the element is selected and active, and a -1 if it is selected and inactive. ``Name`` = SECN returns the section number of the selected beam element.
+ * - LENG
+ -
+ - Length of line element (straight line between ends).
+ * - LPROJ
+ - X, Y, Z
+ - Projected line element length (in the active coordinate system). X is x-projection onto y-z plane, Y is y projection onto z-x plane, and Z is z-projection onto x-y plane.
+ * - AREA
+ -
+ - Area of area element.
+ * - APROJ
+ - X, Y, Z
+ - Projected area of area element area (in the active coordinate system). X is x-projection onto y-z plane, Y is y projection onto z-x plane, and Z is z-projection onto x-y plane.
+ * - VOLU
+ -
+ - Element volume. Based on unit thickness for 2D plane elements (unless the thickness option is used) and on the full 360 degrees for 2D axisymmetric elements. For general axisymmetric elements ``SOLID272`` and ``SOLID273``, only the area of the element on the master plane is reported before solving, not the volume. After solving, the volume is reported. If results data are in the database, the volume returned is the volume calculated during solution.
+ * - ESEL
+ -
+ - Select status of element ``N`` : -1 = unselected, 0 = undefined, 1 = selected. Alternative get function: ESEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher element number above ``N`` in selected set (or zero if none found). Alternative get function: ELNEXT( ``N`` )
+ * - NXTL
+ -
+ - Next lower element number below ``N`` in selected set (or zero if none found).
+ * - HGEN
+ -
+ - Heat generation on selected element ``N``.
+ * - DGEN
+ -
+ - Diffusing substance generation on selected node N (returns 0.0 if node is unselected, or if the DOF is inactive).
+ * - HCOE
+ - face
+ - Heat coefficient for selected element ``N`` on specified face. Returns the value at the first node that forms the face.
+ * - TBULK
+ - face
+ - Bulk temperature for selected element ``N`` on specified face. Returns the value at the first node that forms the face.
+ * - PRES
+ - face
+ - Pressure on selected element, ``N`` on specified face. Returns the value at the first node that forms the face.
+ * - SHPAR
+ - ``Test``
+ - Element shape test result for selected element ``N``, where ``Test`` = ANGD, ASPE (aspect ratio), JACR (Jacobian ratio), MAXA (maximum corner angle), PARA (deviation from parallelism of opposite edges), or WARP (warping factor).
+ * - MEMBER
+ - COUNT
+ - Number of reinforcing members (individual reinforcings) in the element ``N``.
+ * - :rspan:`1` EGID
+ - COUNT
+ - Number of non-duplicate global identifiers in the element ``N``.
+ * - MIN, MAX
+ - Lowest or highest global identifier in the element ``N``.
+
+
+ .. _get_prep_etyp:
+
+ \*GET Preprocessing Items, Entity = ETYP
+ ****************************************
+
+ .. flat-table:: ``Entity`` = ETYP, ``ENTNUM`` = ``N`` (element type number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ETYP, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute ``Name``, where ``Name`` =ENAM, KOP1, KOP2,..., KOP9, KO10, KO11, etc.
+
+
+ .. _get_prep_gcn:
+
+ \*GET Preprocessing Items, Entity = GCN
+ ***************************************
+
+ .. flat-table:: ``Entity`` = GCN, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, GCN, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MAT
+ - ``Sect1``
+ - ``Item2`` = 0 or blank; ``IT2NUM`` = ``Sect2``. Material ID to be used for general contact between ``Sect1`` and ``Sect2``. Alternative get function: SECTOMAT( ``Sect1``, ``Sect2`` ).
+ * - REAL
+ - ``Sect1``
+ - ``Item2`` = 0 or blank; ``IT2NUM`` = ``Sect2``. Real constant ID to be used for general contact between ``Sect1`` and ``Sect2`` . Alternative get function: SECTOREAL( ``Sect1``, ``Sect2`` ).
+ * - DEF
+ - ``Sect1``
+ - ``Item2`` = 0 or blank; ``IT2NUM`` = ``Sect2``. Number indicating the type of contact for the general contact definition between ``Sect1`` and ``Sect2`` : * = 0 - Excluded general contact between ``Sect1`` / ``Sect2`` * = 1 - Asymmetric general contact between ``Sect1`` (contact) / ``Sect2`` (target) * = 2 - Asymmetric general contact between ``Sect1`` (target) / ``Sect2`` (contact) * = 3 - Symmetric general contact between ``Sect1`` / ``Sect2``
+ * - ``Sect1`` and ``Sect2`` are section numbers associated with general contact surfaces.
+
+
+ .. _get_prep_genb:
+
+ \*GET Preprocessing Items, Entity = GENB
+ ****************************************
+
+ .. flat-table:: ``Entity`` = GENB, ``ENTNUM`` = ``N`` (nonlinear beam general section identification number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, GENB, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ - (Blank)
+ - Number of defined sections. If ``Item1`` = COUNT, then ``N`` is blank.
+ * - NUM
+ - MAX
+ - Largest section number defined. If ``IT1NUM`` = MAX, then ``N`` is blank.
+ * - EXIS
+ - (Blank)
+ - Returns a 1 if the section exists and if it is a GENB section.
+ * - SUBTYPE
+ - (Blank)
+ - Section subtype for the section ID specified via the :ref:`sectype` command.
+ * - NAME
+ - (Blank)
+ - The 8-character section name defined via the :ref:`sectype` command.
+ * - One of the following: * BSAX * BSM1 * BSM2 * BSTQ * BSS1 * BSS2 * BSMD * BSTE
+ - (Blank)
+ - ``Item2`` = NTEM, the number of temperatures for :ref:`bsax`, :ref:`bsm1`, :ref:`bsm2`, :ref:`bstq`, :ref:`bss1`, :ref:`bss2`, :ref:`bsmd`, or :ref:`bste` data.
+ * - One of the following: * BSAX * BSM1 * BSM2 * BSTQ * BSS1 * BSS2 * BSMD * BSTE
+ - (Blank)
+ - ``Item2`` = TVAL; ``IT2NUM`` = ``nnn`` Where ``nnn`` is the temperature value (<= NTEM).
+ * - One of the following: * BSAX * BSM1 * BSM2 * BSTQ * BSS1 * BSS2 * BSMD * BSTE
+ - ``nnn``
+ - ``Item2`` = TEMP; ``IT2NUM`` = ``tval`` Where ``nnn`` is the location in the :ref:`bsax`, :ref:`bsm1`, :ref:`bsm2`, :ref:`bstq`, :ref:`bss1`, :ref:`bss2`, :ref:`bsmd`, or :ref:`bste` command for the given coefficient number, and ``tval`` is the temperature value. Examples for ``nnn`` : * ``nnn`` = 1 for STRAIN(1) * ``nnn`` = 2 for STRESS(1) * ``nnn`` = 3 for STRAIN(2) * ``nnn`` = 4 for STRESS(2) * ``nnn`` = 5 for STRAIN(3) *...
+ * - One of the following: * BSAX * BSM1 * BSM2 * BSTQ * BSS1 * BSS2 * BSMD * BSTE
+ - (Blank)
+ - ``Item2`` = TEMP; ``IT2NUM`` = ``tval`` ; ``Item3`` = NCONST The number of constants at ``tval``.
+
+
+ .. _get_prep_gens:
+
+ \*GET Preprocessing Items, Entity = GENS
+ ****************************************
+
+ .. flat-table:: ``Entity`` = GENS, ``ENTNUM`` = ``N`` (preintegrated shell general section identification number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, GENS, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ - (Blank)
+ - Number of defined sections. If ``Item1`` = COUNT, then ``N`` is blank.
+ * - NUM
+ - MAX
+ - Largest section number defined. If ``IT1NUM`` = MAX, then ``N`` is blank.
+ * - EXIS
+ - (Blank)
+ - Returns a 1 if the section exists and if it is a GENS section.
+ * - NAME
+ - (Blank)
+ - The 8-character section name defined via the :ref:`sectype` command.
+ * - One of the following: * SSPA * SSPB * SSPD * SSPE * SSMT * SSBT * SSPM
+ - (Blank)
+ - ``Item2`` = NTEM, the number of temperatures for :ref:`sspa`, :ref:`sspb`, :ref:`sspd`, :ref:`sspe`, :ref:`ssmt`, :ref:`ssbt`, or :ref:`sspm` data.
+ * - One of the following: * SSPA * SSPB * SSPD * SSPE * SSMT * SSBT * SSPM
+ - (Blank)
+ - ``Item2`` = TVAL; ``IT2NUM`` = ``nnn`` Where ``nnn`` is the temperature value (<= NTEM).
+ * - One of the following: * SSPA * SSPB * SSPD * SSPE * SSMT * SSBT * SSPM
+ - ``nnn``
+ - ``Item2`` = TEMP; ``IT2NUM`` = ``tval`` Where ``nnn`` is the location in the :ref:`sspa`, :ref:`sspb`, :ref:`sspd`, :ref:`sspe`, :ref:`ssmt`, :ref:`ssbt`, or :ref:`sspm` command for the given coefficient number, and ``tval`` is the temperature value.
+
+
+ .. _get_prep_kp:
+
+ \*GET Preprocessing Items, Entity = KP
+ **************************************
+
+ .. flat-table:: ``Entity`` = KP, ``ENTNUM`` = ``N`` (keypoint number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, KP, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, or Z location in the active coordinate system. Alternative get functions: KX( ``N`` ), KY( ``N`` ), KZ( ``N`` ). Inverse get function: KP( ``x,y,z`` ) returns the number of the selected keypoint nearest the ``x,y,z`` location (in the active coordinate system, lowest number for coincident keypoints).
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute ``Name``, where ``Name`` = MAT, TYPE, REAL, ESYS, NODE, or ELEM.
+ * - KSEL
+ -
+ - Select status of keypoint ``N`` : -1 = unselected, 0 = undefined, 1 = selected. Alternative get function: KSEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher keypoint number above ``N`` in selected set (or zero if none found). Alternative get function: KPNEXT( ``N`` ).
+ * - NXTL
+ -
+ - Next lower keypoint number below ``N`` in selected set (or zero if none found).
+ * - DIV
+ -
+ - Divisions (element size setting) from :ref:`kesize` command.
+
+
+ .. _get_prep_line:
+
+ \*GET Preprocessing Items, Entity = LINE
+ ****************************************
+
+ .. flat-table:: ``Entity`` = LINE, ``ENTNUM`` = ``N`` (line number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, LINE, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - KP
+ - 1,2
+ - Keypoint number at position 1 or 2.
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute, ``Name``, where ``Name`` =MAT, TYPE, REAL, ESYS, NNOD, NELM, NDIV, NDNX, SPAC, SPNX, KYND, KYSP, LAY1, or LAY2. (NNOD=number of nodes, returns --1 for meshed line with no internal nodes, NELM=number of elements, NDIV=number of divisions in an existing mesh, NDNX=number of divisions assigned for next mesh, SPAC=spacing ratio in an existing mesh, SPNX=spacing ratio for next mesh, KYND=soft key for NDNX, KYSP=soft key for SPNX, LAY1=LAYER1 setting, LAY2=LAYER2 setting.)
+ * - LSEL
+ -
+ - Select status of line ``N`` : -1=unselected, 0=undefined, 1=selected. Alternative get function: LSEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher line number above ``N`` in the selected set (or zero if none found). Alternative get function: LSNEXT( ``N`` )
+ * - NXTL
+ -
+ - Next lower line number below ``N`` in selected set (or zero if none found).
+ * - LENG
+ -
+ - Length. A get function LX( ``n,lfrac`` ) also exists to return the X coordinate location of line ``N`` at the length fraction ``lfrac`` (0.0 to 1.0). Similar LY and LZ functions exist.
+
+
+ .. _get_prep_link:
+
+ \*GET Preprocessing Items, Entity = LINK
+ ****************************************
+
+ .. flat-table:: ``Entity`` = LINK, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, LINK, ``NUM``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ -
+ - Number of defined sections.
+ * - NUM
+ - MAX
+ - Largest section number defined.
+
+
+ .. _get_prep_mat:
+
+ \*GET Preprocessing Items, Entity = MAT
+ ***************************************
+
+ .. flat-table:: ``Entity`` = MAT, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, MAT, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ -
+ - Number of materials.
+ * - NUM
+ - MAX
+ - Largest material number for which at least one property is defined.
+
+
+ .. _get_prep_mplab:
+
+ \*GET Preprocessing Items, Entity = MPLAB
+ *****************************************
+
+ .. flat-table:: ``Entity`` = MPlab, ``ENTNUM`` = ``N`` ( ``MPlab`` = material property label from :ref:`mp` command; ``N`` = material number.)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, MPlab, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TEMP
+ - val
+ - Material property value at temperature of ``val`` . For temperature dependent materials, the program interpolates the property at temperature input for ``val``.
+
+
+ .. _get_prep_node:
+
+ \*GET Preprocessing Items, Entity = NODE
+ ****************************************
+
+ .. flat-table:: ``Entity`` = NODE, ``ENTNUM`` = ``N`` (node number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, NODE, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, Z location in the active coordinate system. Alternative get functions: NX( ``N`` ), NY( ``N`` ), NZ( ``N`` ). Inverse get function. NODE( ``x,y,z`` ) returns the number of the selected node nearest the ``x,y,z`` location (in the active coordinate system, lowest number for coincident nodes).
+ * - ANG
+ - XY, YZ, ZX
+ - THXY, THYZ, THZX rotation angle.
+ * - NSEL
+ -
+ - Select status of node ``N`` : -1=unselected, 0=undefined, 1=selected. Alternative get function: NSEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher node number above ``N`` in selected set (or zero if none found). Alternative get function: NDNEXT( ``N`` ).
+ * - NXTL
+ -
+ - Next lower node number below ``N`` in selected set (or zero if none found).
+ * - F
+ - FX, MX,...
+ - Applied force at selected node ``N`` in direction ``IT1NUM`` (returns 0.0 if no force is defined, if node is unselected, or if the DOF is inactive). If ``ITEM2`` is IMAG, return the imaginary part.
+ * - D
+ - UX, ROTX,...
+ - Applied constraint force at selected node ``N`` in direction ``IT1NUM`` (returns a large number, such as 2e100, if no constraint is specified, if the node is unselected, or if the DOF is inactive). If ``ITEM2`` is IMAG, return the imaginary part.
+ * - HGEN
+ -
+ - Heat generation on selected node ``N`` (returns 0.0 if node is unselected, or if the DOF is inactive).
+ * - NTEMP
+ -
+ - Temperature on selected node N (returns 0.0 if node is unselected)
+ * - CPS
+ - Lab
+ - Couple set number with direction Lab = any active DOF, which contains the node ``N``.
+ * - DGEN
+ -
+ - Diffusing substance generation on selected node N (returns 0.0 if node is unselected, or if the DOF is inactive).
+
+
+ .. _get_prep_ocean:
+
+ \*GET Preprocessing Items, Entity = OCEAN
+ *****************************************
+
+ .. flat-table:: ``Entity`` = OCEAN, ``ENTNUM`` = ``Type`` (where ``Type`` is a valid label on the ``DataType`` field of the :ref:`octype` command)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, OCEAN, ``Type``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NAME
+ -
+ - Name defined for a given ``Type``
+ * - :rspan:`13` DATA
+ - 1
+ - Depth when ``Type`` = BASI
+ * - 2
+ - Material ID when ``Type`` = BASI
+ * - 8
+ - ``KFLOOD`` when ``Type`` = BASI
+ * - 9
+ - ``Cay`` when ``Type`` = BASI
+ * - 10
+ - ``Cb`` when ``Type`` = BASI
+ * - 11
+ - ``Zmsl`` when ``Type`` = BASI
+ * - 13
+ - ``Caz`` when ``Type`` = BASI
+ * - 14
+ - ``Ktable`` when ``Type`` = BASI
+ * - 1
+ - ``KWAVE`` when ``Type`` = WAVE
+ * - 2
+ - ``THETA`` when ``Type`` = WAVE
+ * - 3
+ - ``WAVELOC`` when ``Type`` = WAVE
+ * - 4
+ - ``KCRC`` when ``Type`` = WAVE
+ * - 5
+ - ``KMF`` when ``Type`` = WAVE
+ * - 6
+ - ``PRKEY`` when ``Type`` = WAVE
+ * - PROP
+ - NROW
+ - Number of rows defined by :ref:`octable` command
+ * - TABL
+ - ``i``
+ - Data in table defined by :ref:`octable` command ``i`` = row number; Item2 = column number
+
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ .. _get_prep_oczone:
+
+ \*GET Preprocessing Items, Entity = OCZONE
+ ******************************************
+
+ .. flat-table:: ``Entity`` = OCZONE, ``ENTNUM`` = ``Name`` (where ``Name`` is a valid label on the ``ZoneName`` field of the :ref:`oczone` command)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, OCZONE, ``Name``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - :rspan:`3` DATA
+ - 8
+ - ``KFLOOD`` for a given ``ENTNUM`` = ``Name``
+ * - 9
+ - ``Cay`` for a given ``ENTNUM`` = ``Name``
+ * - 10
+ - ``Cb`` for a given ``ENTNUM`` = ``Name``
+ * - 13
+ - ``Caz`` for a given ``ENTNUM`` = ``Name``
+ * - PROP
+ - NROW
+ - Number of rows defined by :ref:`octable` command
+ * - TABL
+ - ``i``
+ - Data in table defined by :ref:`octable` command ``i`` = row number; Item2 = column number
+ * - TYPE
+ -
+ - Ocean zone type (returns 1, 2 or 3 for ZLOC-, COMP-, or PIP-type zones, respectively)
+ * - COMP
+ -
+ - Component name when the given ocean zone type is COMP, or internal component name when the given ocean zone type is PIP
+ * - COMP2
+ -
+ - External component name when the type of given ocean zone is PIP
+
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ This command contains some tables and extra information which can be inspected in the original
+ documentation pointed above.
+
+ .. _get_prep_pipe:
+
+ \*GET Preprocessing Items, Entity = PIPE
+ ****************************************
+
+ .. flat-table:: ``Entity`` = PIPE, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PIPE, ``NUM``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ -
+ - Number of defined sections
+ * - NUM
+ - MAX
+ - Largest section number defined
+
+
+ .. _get_prep_part:
+
+ \*GET Preprocessing Items, Entity = PART
+ ****************************************
+
+ .. flat-table:: ``Entity`` = PART, ``ENTNUM`` = ``N`` (PART number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PART, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TYPE
+ -
+ - Element type number assigned to PART ``N``.
+ * - MAT
+ -
+ - Material number assigned to PART ``N``.
+ * - REAL
+ -
+ - Real constant number assigned to PART ``N``.
+
+
+ .. _get_prep_rcon:
+
+ \*GET Preprocessing Items, Entity = RCON
+ ****************************************
+
+ .. flat-table:: ``Entity`` = :ref:`rcon`, ``ENTNUM`` = ``N`` (real constant set number)
+ :header-rows: 1
+
+ * - :ref:`get`, ``Par``, RCON, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - CONST
+ - 1, 2,..., ``m``
+ - Value of real constant number ``m`` in set ``N``.
+ * - :ref:`get`
+ - [\*GET ,Par, RCON,0, Item1, IT1NUM, Item2, IT2NUM]
+ * - NUM
+ - MAX
+ - The maximum real constant set number defined
+
+
+ .. _get_prep_rein:
+
+ \*GET Preprocessing Items, Entity = REIN
+ ****************************************
+
+ .. flat-table:: ``Entity`` = REIN, ``ENTNUM`` = ``N`` (reinforcing section identification number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, REIN, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TYPE
+ -
+ - Section type, for ID -- :ref:`sectype` command (always REIN for reinforcing sections).
+ * - SUBTYPE
+ -
+ - Section subtype for ID -- :ref:`sectype` command.
+ * - NAME
+ -
+ - Name defined for a given ID number.
+ * - NREIN
+ -
+ - Number of reinforcing fibers. For reinforcing sections generated ( :ref:`ereinf` ) via the standard method, the number of fibers defined via :ref:`secdata`. For reinforcing sections generated ( :ref:`ereinf` ) via the mesh-independent method, the total number of fibers in the section.
+ * - TABL
+ - ``ReinfNum,I``
+ - Reinforcing fiber data, as defined via :ref:`secdata`. This item is not allowed for reinforcing sections generated ( :ref:`ereinf` ) via the mesh-independent method.
+
+
+ .. _get_prep_sctn:
+
+ \*GET Preprocessing Items, Entity = SCTN
+ ****************************************
+
+ .. flat-table:: ``Entity`` = SCTN, ``ENTNUM`` = ``N`` (pretension section ID number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SCTN, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - 1
+ -
+ - Section ID number.
+ * - 2
+ -
+ - Section type (always 5 for pretension section).
+ * - 3
+ -
+ - Pretension node number.
+ * - 4
+ - Coordinate system number.
+ - Section normal NX.
+ * - 5
+ - Coordinate system number.
+ - Section normal NY.
+ * - 6
+ - Coordinate system number.
+ - Section normal NZ.
+ * - 7 or 8
+ -
+ - Eight character section name.
+ * - 9
+ -
+ - Initial action key. Returns 0 or 1 for lock, 2 for "free-to-slide," or 3 for tiny.
+ * - 10
+ -
+ - Force displacement key. Returns 0 or 1 for force, or 2 for displacement.
+ * - 11
+ -
+ - First preload value.
+ * - 12
+ -
+ - Load step in which first preload value is to be applied.
+ * - 13
+ -
+ - Load step in which first preload value is to be locked.
+ * - 14...
+ -
+ - 14 through 17 is a repeat of 10 through 13, but for the second preload value; 18 through 21 is for the third preload value; and so forth.
+
+
+ .. _get_prep_secp:
+
+ \*GET Preprocessing Items, Entity = SECP
+ ****************************************
+
+ .. flat-table:: ``Entity`` = SECP, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SECP, ``NUM``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - COUNT
+ -
+ - Number of defined sections
+ * - NUM
+ - MAX
+ - Largest section number defined
+
+
+ .. _get_prep_shel:
+
+ \*GET Preprocessing Items, Entity = SHEL
+ ****************************************
+
+ .. flat-table:: ``Entity`` = SHEL, ENTNUM = ``N`` (shell section identification number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SHEL, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TYPE
+ -
+ - Section type, for id -- :ref:`sectype` command. (always SHEL for shell sections)
+ * - NAME
+ -
+ - Name defined for a given id number.
+ * - :rspan:`26` PROP
+ - TTHK
+ - Total thickness.
+ * - NLAY
+ - Number of layers.
+ * - NSP
+ - Number of section integration points.
+ * - :rspan:`4` POS
+ - Node position (as defined by :ref:`secoffset` ).
+ * - 0 = User Defined.
+ * - 1 = Middle.
+ * - 2 = Top.
+ * - 3 = Bottom.
+ * - OFFZ
+ - User-defined section offset (POS = 0).
+ * - TS11
+ - Transverse shear stiffness factors.
+ * - TS22
+ - Transverse shear stiffness factors.
+ * - TS12
+ - Transverse shear stiffness factors.
+ * - :rspan:`2` HORC
+ - Homogeneous or complete section flag.
+ * - 0 = Homogeneous.
+ * - 1 = Composite.
+ * - FUNC
+ - Tabular function name for total thickness.
+ * - UT11
+ - User transverse shear stiffness 11.
+ * - UT22
+ - User transverse shear stiffness 22.
+ * - UT12
+ - User transverse shear stiffness 12.
+ * - AMAS
+ - Added mass.
+ * - MSCF
+ - Hourglass control membrane scale factor.
+ * - BSCF
+ - Hourglass control bending scale factor.
+ * - DSTF
+ - Drill stiffness scale factor.
+ * - LDEN
+ - Laminate density.
+ * - FKCN
+ - ``KCN`` field value from the :ref:`secfunction` command, in which the array or table is interpreted.
+ * - ABD
+ - Section membrane and bending stiffness matrix. Valid ITEM2 = 1,6 and IT2NUM = 1,6.
+ * - E
+ - Section transverse shear stiffness matrix. Valid ITEM2 = 1,2 and IT2NUM = 1,2.
+ * - :rspan:`3` LAYD
+ - LayerNumber,THIC
+ - Layer thickness.
+ * - LayerNumber,MAT
+ - Layer material.
+ * - LayerNumber,ANGL
+ - Layer orientation angle.
+ * - LayerNumber,NINT
+ - Number of layer integration points.
+
+
+ .. _get_prep_tbft1:
+
+ \*GET Preprocessing Items, Entity = TBFT
+ ****************************************
+
+ .. flat-table:: ``Entity`` = TBFT, ``ENTNUM`` = ``blank``
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, TBFT, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - nmat
+ -
+ - Number of defined material models.
+ * - matnum
+ - ``index``
+ - Material number in array (index varies for 1 to num materials).
+ * - ``Entity`` = TBFT, ``ENTNUM`` = ``matid`` (For getting names of constitutive function, matid = the material ID number)
+ * - :ref:`get`
+ - [\*GET ,Par, TBFT,matid,nfun,IT1NUM,Item2,IT2NUM]
+ * - Item1
+ - IT1NUM
+ - Description
+ * - nfun
+ -
+ - Number of constitutive functions for this material.
+ * - ``Entity`` = TBFT, ``ENTNUM`` = ``matid`` (To query constitutive function data, matid = the material ID number)
+ * - :ref:`get`
+ - [\*GET ,Par, TBFT,matid,func,fname,Item2,IT2NUM]
+ * - Item1
+ - IT1NUM
+ - Description
+ * - func
+ - index
+ - If Item2 = fname, the name of the constitutive function is returned.
+ * - func
+ - function name
+ - If Item2 = ncon, the number of constants is returned for the function specified in IT1NUM by the constitutive function name.
+ * - "
+ - "
+ - If Item2 = cons, set Item2num to index to return the value of the constant.
+ * - "
+ - "
+ - If Item2 = fixe, set Item2num to index to return the fix flag status.
+ * - "
+ - "
+ - If Item2 = RESI, returns the residual error while fitting the data.
+ * - "
+ - "
+ - If Item2 = type, returns the category of the constitutive model (moon, poly, etc.)
+ * - "
+ - "
+ - If Item2 = sord, returns the shear order of the prony visco model.
+ * - "
+ - "
+ - If Item2 = bord, returns the bulk order of the prony visco model.
+ * - "
+ - "
+ - If Item2 = shif, returns the shift function name of the prony visco model.
+ * - ``Entity`` = TBFT, ``ENTNUM`` = ``matid`` (For getting names of experimental data, matid = the material ID number)
+ * - :ref:`get`
+ - [\*GET ,Par, TBFT,matid,nexp,IT1NUM,Item2,IT2NUM]
+ * - Item1
+ - IT1NUM
+ - Description
+ * - nexp
+ -
+ - Number of experiments for this material.
+ * - ``Entity`` = TBFT, ``ENTNUM`` = ``matid`` (To query experimental data, ``matid`` = the material ID number))
+ * - :ref:`get`
+ - [\*GET ,Par, TBFT,matid,func,fname,Item2,IT2NUM]
+ * - Item1
+ - IT1NUM
+ - Description
+ * - "
+ - expindex
+ - If Item2 = type, returns experiments type string.
+ * - "
+ - "
+ - If Item2 = numrow, returns number of rows in the data.
+ * - "
+ - "
+ - If Item2 = numcol, returns the number of cols in a row (set Intem2num = Row index)
+ * - "
+ - "
+ - If Item2 = data, returns the value of the data in row, col of exp expindex (set item2Num = row index and item3 = column index. All indices vary from 1 to the maximum value.
+ * - "
+ - "
+ - If Item2 = natt, returns the number of attributes.
+ * - "
+ - "
+ - If Item2 = attname, returns the attribute name (set Item2Num = Attr index).
+ * - "
+ - "
+ - If Item2 = attvald, returns double value of attribute (set Item2Num = Attr index).
+ * - "
+ - "
+ - If Item2 = attvali, returns integer valud of attribute (set Item2Num = Attr index).
+ * - "
+ - "
+ - If Item2 = attvals, returns the string value of the attribute (set Item2Num = Attr index).
+
+
+ .. _get_prep_tblab:
+
+ \*GET Preprocessing Items, Entity = TBLAB
+ *****************************************
+
+ .. flat-table:: ``Entity`` = TBLAB, ``ENTNUM`` = ``N``..( ``TBlab`` = data table label from the :ref:`tb` command; ``N`` = material number.)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ``TBlab``, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``TBOPT``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TEMP
+ - ``T``
+ - **Item2** : CONST **IT2NUM** : ``Num`` Value of constant number Num in the data table at temperature ``T``. For constants, input an X,Y point; the constant numbers are consecutive with the X constants being the odd numbers, beginning with one.
+ * - To get all necessary output for materials defined via the :ref:`tb` command, you must specify the final argument ``TBOPT`` as indicated in the syntax description above.
+
+
+ .. _get_prep_volu:
+
+ \*GET Preprocessing Items, Entity = VOLU
+ ****************************************
+
+ .. flat-table:: ``Entity`` = VOLU, ``ENTNUM`` = ``N`` (volume number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, VOLU, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ATTR
+ - ``Name``
+ - Number assigned to the attribute ``Name``, where ``Name`` =MAT, TYPE, REAL, ESYS, NNOD, or NELM. (NNOD=number of nodes, NELM=number of elements.)
+ * - VSEL
+ -
+ - Select status of volume ``N`` : -1=unselected, 0=undefined, 1=selected. Alternative get function: VSEL( ``N`` ).
+ * - NXTH
+ -
+ - Next higher volume number above ``N`` in selected set (or zero if none found). Alternative get function: VLNEXT( ``N`` ).
+ * - NXTL
+ -
+ - Next lower volume number below ``N`` in selected set (or zero if none found).
+ * - VOLU
+ -
+ - Volume of volume ``N``. ( :ref:`vsum` or :ref:`gsum` must have been performed sometime previously with at least this volume ``N`` selected).
+ * - SHELL
+ - 1, 2,..., ``m``
+ - **Item2** : AREA **IT2NUM** : 1,2,..., ``p`` Line number of position ``p`` of shell ``m``
+
+ **Solution Items**
+
+ .. _gettabsol:
+
+ \*GET Solution Entity Items
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`get_sol_active`
+
+ * :ref:`get_sol_elem`
+
+ * :ref:`get_sol_mode`
+
+ * :ref:`get_sol_ddam`
+
+ .. _get_sol_active:
+
+ \*GET Solution Items, Entity = ACTIVE
+ *************************************
+
+ .. flat-table:: ``Entity`` = ACTIVE, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ACTIVE, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ANTY
+ -
+ - Current analysis type.
+ * - :rspan:`27` SOLU
+ - DTIME
+ - Time step size.
+ * - NCMLS
+ - Cumulative number of load steps.
+ * - NCMSS
+ - Number of substeps. NOTE: Used only for static and transient analyses.
+ * - EQIT
+ - Number of equilibrium iterations.
+ * - NCMIT
+ - Cumulative number of iterations.
+ * - CNVG
+ - Convergence indicator: 0=not converged, 1=converged.
+ * - MXDVL
+ - Maximum degree of freedom value.
+ * - RESFRQ
+ - Response frequency for 2nd order systems.
+ * - RESEIG
+ - Response eigenvalue for 1st order systems.
+ * - DSPRM
+ - Descent parameter.
+ * - FOCV
+ - Force convergence value.
+ * - MOCV
+ - Moment convergence value.
+ * - HFCV
+ - Heat flow convergence value.
+ * - MFCV
+ - Magnetic flux convergence value.
+ * - CSCV
+ - Current segment convergence value.
+ * - CUCV
+ - Current convergence value.
+ * - FFCV
+ - Fluid flow convergence value.
+ * - DICV
+ - Displacement convergence value.
+ * - ROCV
+ - Rotation convergence value.
+ * - TECV
+ - Temperature convergence value.
+ * - VMCV
+ - Vector magnetic potential convergence value.
+ * - SMCV
+ - Scalar magnetic potential convergence value.
+ * - VOCV
+ - Voltage convergence value.
+ * - PRCV
+ - Pressure convergence value.
+ * - VECV
+ - Velocity convergence value.
+ * - CRPRAT
+ - Maximum creep ratio.
+ * - PSINC
+ - Maximum plastic strain increment.
+ * - CGITER
+ - Number of iterations in the PCG and symmetric JCG (non-complex version) solvers.
+
+
+ .. _get_sol_elem:
+
+ \*GET Solution Items, Entity = ELEM
+ ***********************************
+
+ .. flat-table:: ``Entity`` = ELEM, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ELEM, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MTOT
+ - X, Y, Z
+ - Total mass components.
+ * - MC
+ - X, Y, Z
+ - Center of mass components.
+ * - IOR
+ - X, Y, Z, XY, YZ, ZX
+ - Moment of inertia about origin.
+ * - IMC
+ - X, Y, Z, XY, YZ, ZX
+ - Moment of inertia about the center of mass.
+ * - IPRIN
+ - X, Y, Z
+ - Principal moments of inertia.
+ * - IANG
+ - XY, YZ, ZX
+ - Angles of the moments of inertia principal axes.
+ * - FMC
+ - X, Y, Z
+ - Force components at mass centroid ( :ref:`1). `
+ * - MMOR
+ - X, Y, Z
+ - Moment components at origin ( :ref:`1).`
+ * - MMMC
+ - X, Y, Z
+ - Moment components at mass centroid ( :ref:`1).`
+
+ Items ( :ref:`1) are available only after inertia relief solution ( ` :ref:`irlf`,1)
+ or pre-calculation of masses ( :ref:`irlf`,-1).
+
+ Item values are consistent with the mass summary printed in the output file. They are based on
+ unscaled mass properties (see :ref:`mascale` command).
+
+ .. _get_sol_mode:
+
+ \*GET Solution Items, Entity = MODE
+ ***********************************
+
+ .. flat-table:: ``Entity`` = MODE, ``ENTNUM`` = ``N`` (mode number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, MODE, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - FREQ
+ -
+ - Frequency of mode ``N``. Returned values are valid for modal analyses which calculate real eigensolutions.
+ * - STAB
+ -
+ - Stability value of mode ``N``. Returned values are valid for modal analyses which calculate complex eigensolutions. The stability value is the real part of the complex eigenvalue. It contains information on the mode damping in a damped modal analysis.
+ * - DFRQ
+ -
+ - Damped frequency of mode ``N``. Returned values are valid for modal analyses which calculate complex eigensolutions. The damped frequency is the imaginary part of the complex eigenvalue.
+ * - PFACT
+ -
+ - Participation factor of mode ``N``. * If retrieved after a modal analysis, the real part of the participation factor is returned unless ``IT1NUM`` = IMAG. The direction is specified using ``Item2`` = DIREC and ``IT2NUM`` = X, Y, Z, ROTX, ROTY, or ROTZ * If retrieved after a spectrum analysis, the spectrum number M is specified using ``Item2`` = SPECT and ``IT2NUM`` = M. For a PSD analysis with spatial correlation or wave excitation, the retrieved participation factors will correspond to the first degree of freedom that is excited.
+ * - EFFM
+ -
+ - Effective mass of mode ``N``. Returned values are valid only after a modal analysis with effective mass calculation has been solved. The direction is specified using ``Item2`` = DIREC and ``IT2NUM`` = X, Y, Z, ROTX, ROTY, or ROTZ.
+ * - GENM
+ -
+ - Generalized mass (also called modal mass) of mode ``N``. Returned values are valid only after a modal analysis with generalized mass calculation has been solved.
+ * - MCOEF
+ -
+ - Mode coefficient of mode ``N``. Returned values are valid only after a spectrum analysis has been solved. The spectrum number M is specified using ``Item2`` = SPECT and ``IT2NUM`` = M. In a SPRS analysis, the values returned are based on the curve with the lowest damping. After a PSD analysis, the diagonal of the dynamic modal covariance matrix is retrieved for the displacement solution.
+ * - DAMP
+ -
+ - Damping ratio of mode ``N``. If retrieved after a modal analysis that creates complex solutions (DAMP, QRDAMP, or UNSYM eigensolvers) returned value is calculated from the complex frequencies. If retrieved after a spectrum analysis, returned value is the effective damping ratio. Not a function of direction. Also retrievable following a harmonic analysis or transient analysis with mode-superposition.
+
+ For all items except PFACT and MCOEF (as noted above), only the first 10000 values corresponding to
+ significant modes will be returned.
+
+ The MODE file must be available to retrieve items PFACT and MCOEF with specified ``Item2``. If
+ ``Item2`` is not specified, the last calculated value will be returned.
+
+ All values retrieved correspond to the first load step values. For a Campbell diagram analysis
+ (multistep modal), :ref:`get` with ``Entity`` = CAMP must be used.
+
+ .. _get_sol_ddam:
+
+ \*GET Solution Items, Entity = DDAM
+ ***********************************
+
+ .. flat-table:: ``Entity`` = DDAM, ``ENTNUM`` = ``N`` (mode number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``,DDAM, ``N``, ``Item1``, ``IT1NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - DSHOCK
+ -
+ - Shock design value of mode ``N``.
+
+ If multiple DDAM analyses are performed, the last calculated value will be returned.
+
+ **Postprocessing Items**
+
+ .. _gettabpost:
+
+ \*GET Postprocessing Entity Items
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ * :ref:`get_post_act`
+
+ * :ref:`get_post_acus`
+
+ * :ref:`get_post_camp`
+
+ * :ref:`get_post_cint`
+
+ * :ref:`get_post_cyccalc`
+
+ * :ref:`get_post_elem`
+
+ * :ref:`get_post_etab`
+
+ * :ref:`get_post_fsum`
+
+ * :ref:`get_post_gsresult`
+
+ * :ref:`get_post_member`
+
+ * :ref:`get_post_node`
+
+ * :ref:`get_post_path`
+
+ * :ref:`get_post_plnsol`
+
+ * :ref:`get_post_prenergy`
+
+ * :ref:`get_post_prerr`
+
+ * :ref:`get_post_rad`
+
+ * :ref:`get_post_rstmac`
+
+ * :ref:`get_post_secr`
+
+ * :ref:`get_post_section`
+
+ * :ref:`get_post_sort`
+
+ * :ref:`get_post_ssum`
+
+ * :ref:`get_post_vari`
+
+ * :ref:`get_prep_xfem`
+
+ .. _get_post_act:
+
+ \*GET Postprocessing Items, Entity = ACTIVE
+ *******************************************
+
+ .. flat-table:: ``Entity`` = ACTIVE, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ACTIVE, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - :rspan:`4` SET
+ - LSTP
+ - Current load step number.
+ * - SBST
+ - Current substep number.
+ * - TIME
+ - Time associated with current results in the database.
+ * - FREQ
+ - Frequency (for ANTYPE=MODAL, HARMIC, SPECTR; load factor for ANTYPE=BUCKLE).
+ * - NSET
+ - If Item2 is blank, number of data sets on result file. * If Item2 = FIRST, IT2NUM = Loadstep, get set number of first substep of loadstep * If Item2 = LAST, IT2NUM = Loadstep, get set number of last substep of loadstep
+ * - RSYS
+ -
+ - Active results coordinate system.
+
+
+ .. _get_post_acus:
+
+ \*GET Postprocessing Items, Entity = ACUS
+ *****************************************
+
+ .. flat-table:: ``Entity`` = ACUS, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ACUS, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - PWL
+ -
+ - Radiated sound power level
+ * - PRES
+ -
+ - Far-field pressure at a given point
+ * - PHASE
+ -
+ - Far-field pressure phase at a given point
+ * - SPL
+ -
+ - Far-field sound pressure level at a given point
+ * - SPLA
+ -
+ - Far-field a-weighted sound pressure level at a given point
+ * - DG
+ -
+ - Far-field directivity at a given point
+ * - PS
+ -
+ - Far-field scattered pressure at a given point
+ * - TS
+ -
+ - Far-field target strength at a given point
+ * - DFIN
+ -
+ - Diffuse sound field incident power
+ * - SIMP
+ -
+ - Magnitude of specific acoustic impedance on the selected surface
+ * - AIMP
+ -
+ - Magnitude of acoustic impedance on the selected surface
+ * - MIMP
+ -
+ - Magnitude of mechanical impedance on the selected surface
+ * - APRES
+ -
+ - Magnitude of average pressure on the selected surface
+ * - FORC
+ -
+ - Magnitude of average force on the selected surface
+ * - POWER
+ -
+ - Acoustic power through the selected surface
+ * - BSPL
+ -
+ - SPL over frequency band
+ * - BSPA
+ -
+ - A-weighted SPL over frequency band
+ * - PWRF
+ -
+ - Reference sound power
+ * - TL
+ -
+ - Transmission loss
+ * - RL
+ -
+ - Return loss
+ * - Item1 = PWL, PRES, SPL, SPLA, PHASE, DG, PS, and TS are available after issuing the :ref:`prfar` or :ref:`plfar` command. The maximum values are obtained from the current command. Item1 = SIMP, AIMP, MIMP, APRES, FORC, POWER, TL, and RL are available after issuing the corresponding :ref:`pras` command at the current frequency. The values are obtained at the current frequency, or at the last frequency for multiple load step and substep cases. Item1 = DFIN is available after the diffuse sound field solution.
+
+
+ .. _get_post_camp:
+
+ \*GET Postprocessing Items, Entity = CAMP
+ *****************************************
+
+ .. flat-table:: Available after :ref:`plcamp` or :ref:`prcamp` command is issued. ``Entity`` = CAMP, ``ENTNUM`` = ``N`` (mode number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CAMP, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NBMO
+ -
+ - Number of modes in the Campbell diagram ( ``ENTNUM`` not required). This value is the maximum value for ``N``.
+ * - NBST
+ -
+ - Number of steps in the Campbell diagram: modal load steps with rotational velocity ( ``ENTNUM`` not required). This value is the maximum value for ``M`` (see Item1 = FREQ).
+ * - WHRL
+ - ``M``
+ - Whirl of mode ``N`` at step ``M`` : -1 is backward whirl, 1 is forward whirl, and 0 is undetermined. For default ``IT1NUM``, it corresponds to the whirl at the maximum rotational velocity.
+ * - VCRI
+ -
+ - Critical speed for mode ``N``. This value is available if an excitation is defined via the :ref:`plcamp` or :ref:`prcamp` command's ``SLOPE`` argument. (The unit of speed depends upon the ``UNIT`` value specified in those commands.) N does not correspond to the mode number if ``FREQB`` ( :ref:`prcamp` or :ref:`plcamp` command) is used. Instead, it represents the Nth mode number listed in the output of :ref:`prcamp` or :ref:`plcamp`.
+ * - FREQ
+ - ``M``
+ - Natural frequency of mode (Hz) ``N`` at step ``M``. It represents the complex part of the eigenvalue.
+ * - STAB
+ - ``M``
+ - Stability value (Hz) of mode ``N`` at step ``M``. It represents the real part of the eigenvalue.
+ * - UKEY
+ - ``M``
+ - Instability key for mode ``N`` at step ``M`` : 0 is stable and 1 is unstable. For default ``IT1NUM``, it corresponds to the stability over the whole rotational velocity range.
+ * - VSTA
+ -
+ - Stability limit for mode N. This value is available when ``SLOPE`` is zero on the :ref:`plcamp` or :ref:`prcamp` command. (The unit of speed depends upon the ``UNIT`` value specified in those commands.) N does not correspond to the mode number if ``FREQB`` ( :ref:`prcamp` or :ref:`plcamp` command) is used. Instead, it represents the Nth mode number listed in the output of :ref:`prcamp` or :ref:`plcamp`.
+
+ If the sorting is activated (Option= ``ON`` on the :ref:`prcamp` and :ref:`plcamp` commands), all
+ the parameters retrieved are in the sorted order.
+
+ .. _get_post_cint:
+
+ \*GET Postprocessing Items, Entity = CINT
+ *****************************************
+
+ .. flat-table:: ``Entity`` = CINT, ``ENTNUM`` = ``CrackId`` (required Crack ID number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, CINT, ``CrackId``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - CTIP
+ - ctnum
+ - ``IT1NUM`` = Crack tip node number (required) ``Item2`` = CONTOUR ``IT2NUM`` = Contour number (default 1) Returns JINT value if crack ID is JINT type; otherwise, returns 0. ``Item1`` defaults to CTIP, ``Item2`` defaults to CONTOUR.
+ * - **Entity= CINT,** ``ENTNUM`` = CrackID (required Crack ID number)
+ * - **\*GET ,** ``Par``, CINT, ``CrackId``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``Item3``, ``IT3NUM``, ``Item4``, ``IT4NUM``
+ * - **Item1**
+ - **IT1NUM**
+ - **Description**
+ * - CTIP
+ - ctnum
+ - ``IT1NUM`` = Crack tip node number (required) ``Item2`` = CONTOUR ``IT2NUM`` = Contour number (default 1) ``Item3`` = DTYPE ``IT3NUM`` = Data type (JINT, IIN1, IIN2, IIN3, K1, K2, K3, G1, G2, G3, GT, MFTX, MFTY, MFTZ, TSTRESS, CEXT, STTMAX, PSMAX, CSTAR, DLTA, DLTN, DLTK, R, UFAC, CRDX, CRDY, CRDZ, and APOS) FOR ``IT3NUM`` = STTMAX or PSMAX: * Item4 = AINDEX (angle index) * IT4NUM = Index value (1 to N+1; N = Maximum number of intervals for the sweep ( :ref:`cint`,RSWEEP). Returns specified data type value. FOR ``IT3NUM`` = DLTA, DLTN, DLTK, R, UFAC, CRDX, CRDY, CRDZ, APOS: * Set ``IT2NUM`` = 1 Returns specified data type value. ``Item1`` defaults to CTIP, ``Item2`` defaults to CONTOUR, ``Item3`` defaults to DTYPE. DLTK in a 3D XFEM-based fatigue crack-growth analysis is evaluated based on the smoothed SIFS values. The actual DLTK value can be easily calculated by issuing :ref:`get` for SIFS values and the stress (load) ratio.
+ * - **Entity= CINT,** ``ENTNUM`` = CrackID (required Crack ID number)
+ * - **\*GET ,** ``Par``, CINT, ``CrackId``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM`` ,
+ * - **Item1**
+ - **IT1NUM**
+ - **Description**
+ * - NNOD
+ -
+ - Maximum number of nodes along the crack front.
+ * - **Entity= CINT,** ``ENTNUM`` = CrackID (required Crack ID number)
+ * - **\*GET ,** ``Par``, CINT, ``CrackId``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - **Item1**
+ - **IT1NUM**
+ - **Description**
+ * - NODE
+ - ipos
+ - IT1NUM = Position along the crack front (from 1 to NNOD). Default = 1. Returns node number at the given position along the crack front. (For XFEM, an internal node number is returned.)
+
+
+ .. _get_post_cyccalc:
+
+ \*GET Postprocessing Items, Entity = CYCCALC
+ ********************************************
+
+ .. flat-table:: ``Entity`` = CYCCALC, ``ENTNUM`` = :ref:`cycspec` specification number Generate date for cyclic results using :ref:`cyccalc` before retrieving those items.
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``,CYCCALC, ``spec``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - IT2NUM
+ - Description
+ * - :rspan:`3` FREQ
+ - :rspan:`3` frequency point
+ - SECTOR
+ - sector
+ - :ref:`cycspec` result at the IT1NUM frequency and IT2NUM sector
+ * - SECMAX
+ - -
+ - :ref:`cycspec` maximum result at the IT1NUM frequency
+ * - SECNUM
+ - -
+ - :ref:`cycspec` sector with the maximum result at the IT1NUM frequency
+ * - SECNODE
+ - -
+ - :ref:`cycspec` node in the sector with the maximum result at the IT1NUM frequency
+ * - The frequency point refers to the harmonic solution data set number (NSET on the :ref:`set` command)
+
+
+ .. _get_post_elem:
+
+ \*GET Postprocessing Items, Entity = ELEM
+ *****************************************
+
+ .. flat-table:: ``Entity`` = :ref:`elem`, ``ENTNUM`` = ``N`` (element number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ELEM, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - SERR Some element- and material-type limitations apply. For more information, see the documentation for the :ref:`prerr` command.
+ -
+ - Structural error energy.
+ * - SDSG
+ -
+ - Absolute value of the maximum variation of any nodal stress component.
+ * - TERR
+ -
+ - Thermal error energy.
+ * - TDSG
+ -
+ - Absolute value of the maximum variation of any nodal thermal gradient component.
+ * - SENE
+ -
+ - "Stiffness" energy or thermal heat dissipation. Same as TENE.
+ * - TENE
+ -
+ - Thermal heat dissipation or "stiffness" energy. Same as SENE.
+ * - KENE
+ -
+ - Kinetic energy.
+ * - ASENE
+ -
+ - Amplitude “stiffness” energy.
+ * - PSENE
+ -
+ - Peak “stiffness” energy.
+ * - AKENE
+ -
+ - Amplitude kinetic energy.
+ * - PKENE
+ -
+ - Peak kinetic energy.
+ * - DENE
+ -
+ - Damping energy.
+ * - WEXT WEXT is calculated for element-based loading only (and not for nodal-force loading). WEXT is stored on elements to which loading has been applied; if surface elements are added on top of other elements, for example, and pressure loading is applied to the surface elements, WEXT is available for the surface elements only.
+ -
+ - Work due to external load.
+ * - JHEAT
+ -
+ - Element Joule heat generation (coupled-field calculation).
+ * - JS
+ - X, Y, Z
+ - Source current density (coupled-field calculation) in the global Cartesian coordinate system.
+ * - HS
+ - X, Y, Z
+ - Average element magnetic field intensity from current sources.
+ * - VOLU
+ -
+ - Element volume, as calculated during solution.
+ * - ETAB
+ - ``Lab``
+ - Value of element table item ``Lab`` for element ``N`` (see :ref:`etable` command).
+ * - EFOR
+ - ``Nnum``
+ - Element force at node ``Nnum``. The force label is specified using Item2 = FX, FY, FZ, MX, MY, MZ, or HEAT. In a dynamics analysis, the element forces returned are based on the type of force requested. It is specified using the :ref:`force` command for all dynamics analyses, except for spectrum analyses where ``ForceType`` is used on the combination commands ( :ref:`srss`, :ref:`psdcom`, etc.).
+ * - SMISC
+ - ``Snum``
+ - Value of element summable miscellaneous data at sequence number ``Snum`` (as used on :ref:`etable` command).
+ * - NMISC
+ - ``Snum``
+ - Value of element non-summable miscellaneous data at sequence number ``Snum`` (as used on :ref:`etable` command).
+ * - FSOU
+ -
+ - Element fluid flow source loading (poromechanics).
+
+
+ .. _get_post_etab:
+
+ \*GET Postprocessing Items, Entity = ETAB
+ *****************************************
+
+ .. flat-table:: ``Entity`` = ETAB, ``ENTNUM = N`` (column number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, ETAB, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LAB
+ -
+ - Label for column ``N`` of the element table ( :ref:`etable` ). Returns a character parameter.
+ * - ELEM
+ - ``E``
+ - Value in :ref:`etable` column ``N`` for element number ``E``.
+
+
+ .. _get_post_fsum:
+
+ \*GET Postprocessing Items, Entity = FSUM
+ *****************************************
+
+ .. flat-table:: ``Entity`` = :ref:`fsum`, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, FSUM, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ITEM
+ - ``Lab``
+ - Value of item ``Lab`` from last :ref:`fsum` command. Valid labels are FX, FY, FZ, MX, MY, MZ, FLOW, HEAT, FLUX, etc.
+
+
+ .. _get_post_gsresult:
+
+ \*GET Postprocessing Items, Entity = GSRESULT
+ *********************************************
+
+ .. flat-table:: ``Entity`` = GSRESULT, ``ENTNUM`` = 0 (or blank) for generalized plane strain results in fiber direction
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, GSRESULT, 0, ``Item1``, ``IT1NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LFIBER
+ -
+ - Fiber length change at ending point.
+ * - ROT
+ - X,Y
+ - Rotation angle of end plane about X or Y axis.
+ * - F
+ -
+ - Reaction force at ending point.
+ * - M
+ - X,Y
+ - Reaction moment on ending plane.
+
+
+ .. _get_post_member:
+
+ \*GET Postprocessing Items, Entity = MEMBER
+ *******************************************
+
+ .. flat-table:: ``Entity`` = MEMBER, ``ENTNUM`` = ``N`` (GroupID)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``,MEMBER, ``N``, ``Item1``, ``IT1NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TEMP
+ - MIN, MAX
+ - Minimum or maximum temperature of members (individual reinforcings) with GroupID = ``N`` in the selected set of reinforcing elements.
+
+
+ .. _get_post_node:
+
+ \*GET Postprocessing Items, Entity = NODE
+ *****************************************
+
+ .. flat-table:: ``Entity`` = ``NODE``, ``ENTNUM`` = ``N`` (node number) for nodal degree-of-freedom results:
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, NODE, ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - U
+ - X, Y, Z, SUM
+ - X, Y, or Z structural displacement or vector sum. Alternative get functions: UX( ``N`` ), UY( ``N`` ), UZ( ``N`` ).
+ * - ROT
+ - X, Y, Z, SUM
+ - X, Y, or Z structural rotation or vector sum. Alternative get functions: ROTX( ``N`` ), ROTY( ``N`` ), ROTZ( ``N`` ).
+ * - TEMP
+ -
+ - Temperature. For ``SHELL131`` and ``SHELL132`` elements with KEYOPT(3) = 0 or 1, use TBOT, TE2, TE3,..., TTOP instead of TEMP. Alternative get functions: TEMP( ``N`` ), TBOT( ``N`` ), TE2( ``N`` ), etc.
+ * - PRES
+ -
+ - Pressure. Alternative get function: PRES( ``N`` ).
+ * - GFV1, GFV2, GFV3
+ -
+ - Nonlocal field values 1, 2, and 3.
+ * - VOLT
+ -
+ - Electric potential. Alternative get function: VOLT( ``N`` ).
+ * - CONC
+ -
+ - Concentration.
+ * - MAG
+ -
+ - Magnetic scalar potential. Alternative get function: MAG( ``N`` ).
+ * - V
+ - X, Y, Z, SUM
+ - X, Y, or Z fluid velocity or vector sum in a fluid analysis. X, Y, or Z nodal velocity or vector sum in a structural transient analysis (analysis with :ref:`antype`,TRANS). Alternative get functions: VX( ``N`` ), VY( ``N`` ), VZ( ``N`` ).
+ * - A
+ - X, Y, Z, SUM
+ - X, Y, or Z magnetic vector potential or vector sum in an electromagnetic analysis. X, Y, or Z nodal acceleration or vector sum in a structural transient analysis (analysis with :ref:`antype`,TRANS). Alternative get functions: AX( ``N`` ), AY( ``N`` ), AZ( ``N`` ).
+ * - CURR
+ -
+ - Current.
+ * - EMF
+ -
+ - Electromotive force drop.
+ * - RF
+ - FX, FY, FZ, MX, MY, MZ, CSGZ, BMOM, RATE, DVOL, FLOW, HEAT, AMPS or CHRG, FLUX, CURT, VLTG
+ - Nodal reaction forces in the nodal coordinate system. The reaction forces returned are the total forces: static, plus damping, plus inertial, as appropriate based on analysis type (see :ref:`prrsol` command). The first exception is modal analyses and mode-superposition transient analyses where static forces are returned. The second exception is spectrum analyses where the :ref:`prrfor` logic is used internally. In this case, the reaction forces are based on the type of force requested (using ``ForceType`` with combination commands, such as :ref:`srss`, :ref:`psdcom`, etc.).
+ * - ORBT
+ - A, B, PSI, PHI, YMAX, ZMAX, Whirl
+ - Whirl orbit characteristics: * A is the semi-major axis. * B is the semi-minor axis. * PSI is the angle between the local axis y and the major axis Y. * PHI is the angle between initial position (t = 0) and major axis. * YMAX is the maximum displacement along local y axis. * ZMAX is the maximum displacement along local z axis. * Whirl is the direction of an orbital motion (-1 is backward whirl, 1 is forward whirl, and 0 is undetermined). Angles PSI and PHI are in degrees and within the range of -180 through +180. Orbits are available only after issuing a :ref:`prorb` command.
+ * - Use this command carefully when N represents an internal node, as the nodal degrees of freedom may have different physical meanings.
+
+
+ .. _get_post_path:
+
+ \*GET Postprocessing Items, Entity = PATH
+ *****************************************
+
+ .. flat-table:: Entity = PATH, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PATH, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MAX
+ - ``Lab``
+ - Maximum value of path item ``Lab`` from last path operation. Valid labels are the user-defined labels on the :ref:`pdef` or :ref:`pcalc` command.
+ * - MAXPATH
+ -
+ - Returns the maximum path number defined.
+ * - MIN
+ - ``Lab``
+ - Minimum value of path item ``Lab`` from last path operation. Valid labels are the user-defined labels on the :ref:`pdef` or :ref:`pcalc` command.
+ * - LAST
+ - ``Lab``
+ - Last value of path item ``Lab`` from last path operation. Valid labels are the user-defined labels on the :ref:`pdef` or :ref:`pcalc` command.
+ * - NODE
+ -
+ - Value providing the number of nodes defining the path referenced in the last path operation.
+ * - ITEM
+ - ``Lab``
+ - **Item2** = PATHPT, **IT2NUM** = n The value of ``Lab`` at the ``n`` th data point from the last path operation.
+ * - POINT
+ - ``n``
+ - **Item2** = X,Y,Z, or CSYS. Returns information about the nth point on the current path.
+ * - NVAL
+ -
+ - The number of path data points (the length of the data table) from the last path operation.
+ * - SET
+ - ``n``
+ - **Item2** = NAME. Returns the name of the n th data set on the current path.
+ * - NUMPATH
+ -
+ - Returns the number of paths defined.
+
+
+ .. _get_post_plnsol:
+
+ \*GET Postprocessing Items, Entity = PLNSOL
+ *******************************************
+
+ .. flat-table:: ``Entity`` = :ref:`plnsol` You must issue the :ref:`show` command before commands that produce a graphical output when running in batch mode to produce/export graphic files. For more details, see `External Graphics Options `_, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PLNSOL, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MAX
+ -
+ - Maximum value of item in last contour display ( :ref:`plnsol`, :ref:`plesol` ).
+ * - MIN
+ -
+ - Minimum value of item in last contour display ( :ref:`plnsol`, :ref:`plesol` ).
+ * - BMAX
+ -
+ - Maximum bound value of item in last contour display ( :ref:`plnsol`, :ref:`plesol` ).
+ * - BMIN
+ -
+ - Minimum bound value of item in last contour display ( :ref:`plnsol`, :ref:`plesol` ).
+
+
+ .. _get_post_prenergy:
+
+ \*GET Postprocessing Items, Entity = PRENERGY
+ *********************************************
+
+ .. flat-table:: Available after the :ref:`prenergy` command is issued. ``Entity`` = PRENERGY, ``ENTNUM`` = ``N`` (component number)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PRENERGY, ``N``, ``Item1``, ``IT1NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NCMP
+ -
+ - Number of components ( ``ENTNUM`` not required). This value is the maximum value for ``N``.
+ * - NENE
+ -
+ - Number of energy types ( ``ENTNUM`` not required). This value is the maximum value for ``M``.
+ * - TOTE
+ - ``M``
+ - Total energy of type ``M`` of the model ( ``ENTNUM`` not required). Energy value is non-zero when ``Cname1`` is blank on prior :ref:`prenergy` command.
+ * - ENG
+ - ``M``
+ - Energy of type ``M`` of component ``N``. Energy value is non-zero when ``Cname1`` is specified on prior :ref:`prenergy` command.
+ * - PENG
+ - ``M``
+ - Percentage of energy of type ``M`` of component ``N``. Percentage of energy value is non-zero when ``Cname1`` is specified on prior :ref:`prenergy` command.
+ * - Ordering of ``N`` and ``M`` corresponds to :ref:`prenergy` output.
+
+
+ .. _get_post_prerr:
+
+ \*GET Postprocessing Items, Entity = PRERR
+ ******************************************
+
+ .. flat-table:: ``Entity`` = PRERR, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, PRERR, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - SEPC[ :ref:`starget_prerr_limits` ]
+ -
+ - Structural percent error in energy norm ( :ref:`prerr` ).
+ * - TEPC[ :ref:`starget_prerr_limits` ]
+ -
+ - Thermal percent error in energy norm ( :ref:`prerr` ).
+ * - SERSM[ :ref:`starget_prerr_limits` ]
+ -
+ - Structural error energy summation ( :ref:`prerr` ).
+ * - TERSM[ :ref:`starget_prerr_limits` ]
+ -
+ - Thermal error energy summation ( :ref:`prerr` ).
+ * - SENSM[ :ref:`starget_prerr_limits` ]
+ -
+ - Structural energy summation ( :ref:`prerr` ).
+ * - TENSM[ :ref:`starget_prerr_limits` ]
+ -
+ - Thermal energy summation ( :ref:`prerr` ).
+
+ .. _starget_prerr_limits:
+
+ Some element- and material-type limitations apply. For more information, see the documentation for
+ the :ref:`prerr` command.
+
+ .. _get_post_rad:
+
+ \*GET Postprocessing Items, Entity = RAD
+ ****************************************
+
+ .. flat-table:: ``Entity`` = RAD, ENTNUM = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, RAD, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - VFAVG
+ -
+ - Value of the average view factor computed from the previous VFQUERY command.
+
+
+ .. _get_post_rstmac:
+
+ \*GET Postprocessing Items, Entity = RSTMAC
+ *******************************************
+
+ .. flat-table:: Available after :ref:`rstmac` command is issued. ``Entity`` = :ref:`rstmac`, ``ENTNUM`` = ``N`` (solution number on ``File1`` )
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, RSTMAC, 0 or ``N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NS1
+ -
+ - Total number of solutions (modes for example) read on ``File1``. See ``Sbstep1`` on the :ref:`rstmac` command. This value is the maximum value for ``N``.
+ * - NS2
+ -
+ - Total number of solutions (modes for example) read on ``File2``. See ``Sbstep2`` on the :ref:`rstmac` command. This value is the maximum value for ``M``
+ * - MAC
+ - M
+ - Modal assurance criterion value (MAC) between the solution ``N`` read on ``File1`` and the solution ``M`` read on ``File2``. ``N`` and ``M`` do not correspond to the substep (or mode) numbers if NS1 and NS2 are different from the total number of substeps (or modes).
+ * - MACCYC
+ - M
+ - Modal assurance criterion value (MAC) from compressed table for :ref:`cyclic` between the solution ``N`` read on ``File1`` and the solution ``M`` read on ``File2``. ``N`` and ``M`` do not correspond to the substep (or mode) numbers if NS1 and NS2 are different from the total number of substeps (or modes).
+
+
+ .. _get_post_secr:
+
+ \*GET Postprocessing Items, Entity = SECR
+ *****************************************
+
+ .. flat-table:: ``Entity`` = SECR, ``ENTNUM`` = ``n`` (element number) For beam and pipe (including elbow) section results, return values for all elements if the element number ( ``n`` ) is blank or ALL.
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SECR, n, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ - Item2
+ - IT2NUM
+ * - :rspan:`3` S
+ - X, Y, Z, XY, YZ, XZ
+ - Component total stress
+ - :rspan:`39` MAX - Returns maximum MIN - Returns minimum MAXY - Returns section Y location of maximum MAXZ - Returns section Z location of maximum MINY - Returns section Y location of minimum MINZ - Returns section Z location of minimum IVAL - Returns value at node or integration point at element I node JVAL - Returns value at node or integration point at element J node KVAL - Returns value at node or integration point at element K node ( ``ELBOW290`` ) --- **For IVAL, JVAL, and KVAL:** The ALL (or blank) option for the element number is not valid. You must specify an element ( **n** ).
+ - :rspan:`39` These values are applicable only when Item2 = IVAL, JVAL, or KVAL: When KEYOPT(15) = 0, this value is the section node number (which can be visualized via :ref:`secplot`,,2). When KEYOPT(15) = 1 (or when using elbow elements), this value is the integration point number.
+ * - 1, 2, 3
+ - Principal stress value
+ * - INT
+ - Stress intensity value
+ * - EQV
+ - Equivalent stress value
+ * - :rspan:`3` EPTO
+ - X, Y, Z, XY, YZ, XZ
+ - Component total strain
+ * - 1, 2, 3
+ - Principal total strain value
+ * - INT
+ - Total strain intensity value
+ * - EQV
+ - Equivalent total strain value
+ * - :rspan:`3` EPEL
+ - X, Y, Z, XY, YZ, XZ
+ - Component elastic strain
+ * - 1, 2, 3
+ - Principal elastic strain value
+ * - INT
+ - Elastic strain intensity value
+ * - EQV
+ - Equivalent elastic strain value
+ * - :rspan:`3` EPTH
+ - X, Y, Z, XY, YZ, XZ
+ - Component thermal strain
+ * - 1, 2, 3
+ - Principal thermal strain value
+ * - INT
+ - Thermal strain intensity value
+ * - EQV
+ - Equivalent thermal strain value
+ * - :rspan:`3` EPPL
+ - X, Y, Z, XY, YZ, XZ
+ - Component plastic strain
+ * - 1, 2, 3
+ - Principal plastic strain value
+ * - INT
+ - Plastic strain intensity value
+ * - EQV
+ - Equivalent plastic strain value
+ * - :rspan:`3` EPCR
+ - X, Y, Z, XY, YZ, XZ
+ - Component creep strain
+ * - 1, 2, 3
+ - Principal component creep strain value
+ * - INT
+ - Component creep strain intensity value
+ * - EQV
+ - Equivalent component creep strain value
+ * - :rspan:`3` EPTT
+ - X, Y, Z, XY, YZ, XZ
+ - Component total mechanical and thermal and swelling strain
+ * - 1, 2, 3
+ - Principal total mechanical and thermal and swelling strain value
+ * - INT
+ - Total mechanical and thermal and swelling strain intensity value
+ * - EQV
+ - Equivalent total mechanical and thermal and swelling strain value
+ * - :rspan:`3` EPDI
+ - X, Y, Z, XY, YZ, XZ
+ - Component diffusion strain
+ * - 1, 2, 3
+ - Principal diffusion strain value
+ * - INT
+ - Diffusion strain intensity value
+ * - EQV
+ - Equivalent diffusion strain value
+ * - :rspan:`5` NL
+ - SEPL
+ - Plastic yield stress
+ * - SRAT
+ - Plastic yielding (1 = actively yielding, 0 = not yielding)
+ * - HPRES
+ - Hydrostatic pressure
+ * - EPEQ
+ - Accumulated equivalent plastic strain
+ * - CREQ
+ - Accumulated equivalent creep strain
+ * - PLWK
+ - Plastic work/volume
+ * - YSIDX
+ - TENS,SHEA
+ - Yield surface activity status: 1 for yielded and 0 for not yielded.
+ * - FPIDX
+ - TF01,SF01, TF02,SF02, TF03,SF03, TF04,SF04
+ - Failure plane surface activity status: 1 for yielded and 0 for not yielded. Tension and Shear failure status are available for all four sets of failure planes.
+
+
+ .. _get_post_section:
+
+ \*GET Postprocessing Items, Entity = SECTION
+ ********************************************
+
+ .. flat-table:: ``Entity`` = SECTION, ``ENTNUM`` = ``component`` (listed below). Generate data for section stress results, using :ref:`prsect` before retrieving these items. Valid labels for ``ENTNUM`` are MEMBRANE, BENDING, SUM (Membrane+Bending), PEAK, and TOTAL. (The following items are not stored in the database and the values returned reflect the last quantities generated by :ref:`prsect` or :ref:`plsect`.) Only MEMBRANE, BENDING, and SUM data are available after a :ref:`plsect` command. The MEMBRANE label is only valid with ``Item1`` = INSIDE.
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SECTION, ``component``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - Description
+ * - :rspan:`2` INSIDE
+ - :rspan:`2` S
+ - X, Y, Z, XY, YZ, XZ
+ - Stress component at beginning of path.
+ * - 1, 2, 3
+ - Principal stress at beginning of path.
+ * - INT, EQV
+ - Stress intensity or equivalent stress at beginning of path.
+ * - :rspan:`2` CENTER
+ - :rspan:`2` S
+ - X, Y, Z, XY, YZ, XZ
+ - Stress component at midpoint of path.
+ * - 1, 2, 3
+ - Principal stress at midpoint of path.
+ * - INT, EQV
+ - Stress intensity or equivalent stress at midpoint of path.
+ * - :rspan:`2` OUTSIDE
+ - :rspan:`2` S
+ - X, Y, Z, XY, YZ, XZ
+ - Stress component at end of path.
+ * - 1, 2, 3
+ - Principal stress at end of path.
+ * - INT, EQV
+ - Stress intensity or equivalent stress at end of path.
+
+
+ .. _get_post_sort:
+
+ \*GET Postprocessing Items, Entity = SORT
+ *****************************************
+
+ .. flat-table:: ``Entity`` = SORT, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SORT, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - MAX
+ -
+ - Maximum value of last sorted item ( :ref:`nsort` or :ref:`esort` command).
+ * - MIN
+ -
+ - Minimum value of last sorted item ( :ref:`nsort` or :ref:`esort` command).
+ * - IMAX
+ -
+ - Node/Element number where maximum value occurs.
+ * - IMIN
+ -
+ - Node/Element number where minimum value occurs.
+
+
+ .. _get_post_ssum:
+
+ \*GET Postprocessing Items, Entity = SSUM
+ *****************************************
+
+ .. flat-table:: ``Entity`` = SSUM, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, SSUM, 0, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ITEM
+ - ``Lab``
+ - Value of item ``Lab`` from last :ref:`ssum` command. Valid labels are the user-defined labels on the :ref:`etable` command.
+
+
+ .. _get_post_vari:
+
+ \*GET Postprocessing Items, Entity = VARI
+ *****************************************
+
+ .. flat-table:: ``Entity`` = VARI, ``ENTNUM`` = ``N`` (variable number after POST26 data storage) (for complex values, only the real part is returned with Item1 = EXTREM)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par,VARI,N``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - :rspan:`6` EXTREM
+ - VMAX
+ - Maximum extreme value.
+ * - TMAX
+ - Time or frequency corresponding to VMAX.
+ * - VMIN
+ - Minimum extreme value.
+ * - TMIN
+ - Time or frequency corresponding to VMIN.
+ * - VLAST
+ - Last value.
+ * - TLAST
+ - Time or frequency corresponding to VLAST.
+ * - CVAR
+ - Covariance
+ * - REAL
+ - f
+ - Real part of variable ``N`` at time or frequency f.
+ * - IMAG
+ - f
+ - Imaginary part of variable ``N`` at frequency f.
+ * - AMPL
+ - f
+ - Amplitude value of variable ``N`` at frequency f
+ * - PHASE
+ - f
+ - Phase angle value of variable ``N`` at frequency f
+ * - RSET
+ - ``Snum``
+ - Real part of variable ``N`` at location ``Snum``.
+ * - ISET
+ - ``Snum``
+ - Imaginary part of variable ``N`` at location ``Snum``.
+
+
+ .. _get_prep_xfem:
+
+ \*GET Postprocessing Items, Entity = XFEM
+ *****************************************
+
+ .. flat-table:: ``Entity`` = XFEM, ``ENTNUM`` = 0 (or blank)
+ :header-rows: 2
+
+ * - :ref:`get`, ``Par``, XFEM, 0, ``Item1``, ``IT1NUM``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - STAT
+ - ``Element Number``
+ - Status of the element: 0 = uncracked, 1 = cracked
+
+ """
+ command = f"*GET,{par},{entity},{entnum},{item1},{it1num},{item2},{it2num}"
+ return self.run(command, **kwargs)
+
+ def inquire(self, strarray: str = "", func: str = "", **kwargs):
+ r"""Returns system information to a parameter.
+
+ Mechanical APDL Command: `/INQUIRE `_
+
+ Parameters
+ ----------
+ strarray : str
+ Name of the "string array" parameter that will hold the returned values. String array parameters
+ are similar to character arrays, but each array element can be as long as 248 characters. If the
+ string parameter does not exist, it will be created.
+
+ func : str
+ Specifies the type of file information returned:
+
+ * ``EXIST`` - Returns a 1 if the specified file exists, and 0 if it does not.
+
+ * ``DATE`` - Returns the date stamp of the specified file in the format ``yyyymmdd.hhmmss``.
+
+ * ``SIZE`` - Returns the size of the specified file in MB.
+
+ * ``WRITE`` - Returns the status of the write attribute. A 0 denotes no write permission while a 1
+ denotes write permission.
+
+ * ``READ`` - Returns the status of the read attribute. A 0 denotes no read permission while a 1
+ denotes read permission.
+
+ * ``EXEC`` - Returns the status of the execute attribute (this has meaning only on Linux). A 0
+ denotes no execute permission while a 1 denotes execute permission.
+
+ * ``LINES`` - Returns the number of lines in an ASCII file.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _s-INQUIRE_argdescript:
+
+ * ``strarray : str`` - Name of the "string array" parameter that will hold the returned values.
+ String array parameters are similar to character arrays, but each array element can be as long as
+ 248 characters. If the string parameter does not exist, it will be created.
+
+ * ``func : str`` - Specifies the type of system information returned:
+
+ * ``LOGIN`` - Returns the pathname of the login directory on Linux systems or the pathname of the
+ default directory (including drive letter) on Windows systems.
+
+ * ``DOCU`` - Returns the pathname of the Mechanical APDL docu directory.
+
+ * ``APDL`` - Returns the pathname of the Mechanical APDL APDL directory.
+
+ * ``PROG`` - Returns the pathname of the Mechanical APDL executable directory.
+
+ * ``AUTH`` - Returns the pathname of the directory in which the license file resides.
+
+ * ``USER`` - Returns the name of the user currently logged-in.
+
+ * ``DIRECTORY`` - Returns the pathname of the current directory.
+
+ * ``JOBNAME`` - Returns the current ``Jobname``.
+
+ * ``RSTDIR`` - Returns rst directory ( ``FILE`` command).
+
+ * ``RSTFILE`` - Returns rst file name ( ``FILE`` command).
+
+ * ``RSTEXT`` - Returns rst file extension ( ``FILE`` command).
+
+ * ``PSEARCH`` - Returns path used for "unknown command" macro ( :ref:`psearch` command).
+
+ * ``OUTPUT`` - Returns the current output file name ( :ref:`output` command).
+
+ Returning the Value of an Environment Variable to a Parameter
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ If ``FUNC`` =ENV, the command format is :ref:`inquire`, ``StrArray``,ENV, ``ENVNAME``,
+ ``Substring``. In this instance, ENV specifies that the command should return the value of an
+ environment variable. The following defines the remaining fields:
+
+ * ``envname : str`` - Specifies the name of the environment variable.
+
+ * ``substring : str`` - If ``Substring`` = 1, the first substring (up to the first colon (:)) is
+ returned. If ``Substring`` = 2, the second substring is returned, etc. For Windows platforms, the
+ separating character is semicolon (;). If this argument is either blank or 0, the entire value of
+ the environment variable is returned.
+
+ Returning the Value of a Title to a Parameter
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ If ``FUNC`` = TITLE, the command format is :ref:`inquire`, ``StrArray``,TITLE, ``Title_num``. In
+ this context, the value of ``Title_num`` can be blank or 1 through 5. If the value is 1 or blank,
+ the title is returned. If the value is 2 through 5, a corresponding subtitle is returned (2 denoting
+ the first subtitle, and so on).
+
+ Returning Information About a File to a Parameter
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ The :ref:`inquire` command can also return information about specified files within the file system.
+ For these capabilities, the format is :ref:`inquire`, ``Parameter``, ``FUNC``,``Fname``, ``Ext``,
+ ``--``. The
+ following defines the fields:
+
+ * ``parameter : str`` - Name of the parameter that will hold the returned values.
+
+ * ``func : str`` - Specifies the type of file information returned:
+
+ * ``EXIST`` - Returns a 1 if the specified file exists, and 0 if it does not.
+
+ * ``DATE`` - Returns the date stamp of the specified file in the format ``yyyymmdd.hhmmss``.
+
+ * ``SIZE`` - Returns the size of the specified file in MB.
+
+ * ``WRITE`` - Returns the status of the write attribute. A 0 denotes no write permission while a 1
+ denotes write permission.
+
+ * ``READ`` - Returns the status of the read attribute. A 0 denotes no read permission while a 1
+ denotes read permission.
+
+ * ``EXEC`` - Returns the status of the execute attribute (this has meaning only on Linux). A 0
+ denotes no execute permission while a 1 denotes execute permission.
+
+ * ``LINES`` - Returns the number of lines in an ASCII file.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name.
+ * ``ext : str`` - Filename extension (eight-character maximum).
+
+ .. _s-INQUIRE_notes:
+
+ The :ref:`inquire` command is valid in any processor.
+ """
+ command = f"/INQUIRE,{strarray},{func}"
+ return self.run(command, **kwargs)
+
+ def parres(self, lab: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Reads parameters from a file.
+
+ Mechanical APDL Command: `PARRES `_
+
+ Parameters
+ ----------
+ lab : str
+ Read operation:
+
+ * ``NEW`` - Replace current parameter set with these parameters (default).
+
+ * ``CHANGE`` - Extend current parameter set with these parameters, replacing any that already exist.
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to PARM if ``Fname`` is
+ blank.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _PARRES_argdescript:
+
+ * ``lab : str`` - Read operation:
+
+ * ``NEW`` - Replace current parameter set with these parameters (default).
+
+ * ``CHANGE`` - Extend current parameter set with these parameters, replacing any that already exist.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). The extension defaults to PARM if
+ ``Fname`` is blank.
+
+ .. _PARRES_notes:
+
+ Reads parameters from a coded file. The parameter file may have been written with the :ref:`parsav`
+ command. The parameters read may replace or change the current parameter set.
+
+ This command is valid in any processor.
+ """
+ command = f"PARRES,{lab},{fname},{ext}"
+ return self.run(command, **kwargs)
+
+ def parsav(self, lab: str = "", fname: str = "", ext: str = "", **kwargs):
+ r"""Writes parameters to a file.
+
+ Mechanical APDL Command: `PARSAV `_
+
+ Parameters
+ ----------
+ lab : str
+ Write operation:
+
+ * ``SCALAR`` - Write only scalar parameters (default).
+
+ * ``ALL`` - Write scalar and array parameters. Parameters may be numeric or alphanumeric.
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to PARM if ``Fname`` is
+ blank.
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _PARSAV_argdescript:
+
+ * ``lab : str`` - Write operation:
+
+ * ``SCALAR`` - Write only scalar parameters (default).
+
+ * ``ALL`` - Write scalar and array parameters. Parameters may be numeric or alphanumeric.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). The extension defaults to PARM if
+ ``Fname`` is blank.
+
+ .. _PARSAV_notes:
+
+ Writes the current parameters to a coded file. Previous parameters on this file, if any, will be
+ overwritten. The parameter file may be read with the :ref:`parres` command.
+
+ :ref:`parsav` / :ref:`parres` operations truncate some long decimal strings, and can cause differing
+ values in your solution data when other operations are performed. A good practice is to limit the
+ number of decimal places you will use before and after these operations.
+
+ This command is valid in any processor.
+ """
+ command = f"PARSAV,{lab},{fname},{ext}"
+ return self.run(command, **kwargs)
+
+ def starset(
+ self,
+ par: str = "",
+ value: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ val6: str = "",
+ val7: str = "",
+ val8: str = "",
+ val9: str = "",
+ val10: str = "",
+ **kwargs,
+ ):
+ r"""Assigns values to user-named parameters.
+
+ Mechanical APDL Command: `\*SET `_
+
+ Parameters
+ ----------
+ par : str
+ An alphanumeric name used to identify this parameter. ``Par`` can contain up to 32 characters,
+ beginning with a letter and containing only letters, numbers, and underscores. Examples:
+
+ .. code:: apdl
+
+ ABC A3X TOP_END
+
+ Command names, function names, label names, component and assembly names, etc., are invalid, as
+ are parameter names beginning with an underscore (for example,
+
+ .. code:: apdl
+
+ _LOOP
+
+ ).
+
+ Parameter names ending in an underscore are not listed by the :ref:`starstatus` command. Array
+ parameter names must be followed by a subscript, and the entire expression must be 32 characters
+ or less. Examples:
+
+ .. code:: apdl
+
+ A(1,1) NEW_VAL(3,2,5) RESULT(1000)
+
+ There is no character parameter substitution for the ``Par`` field. Table parameters used in
+ command fields (where constant values are normally given) are limited to 32 characters.
+
+ value : str
+ Numerical value or alphanumeric character string (up to 32 characters enclosed in single quotes)
+ to be assigned to this parameter. Examples:
+
+ .. code:: apdl
+
+ A(1,3)=7.4 B='ABC3'
+
+ Can also be a parameter or a parametric expression. Examples:
+
+ .. code:: apdl
+
+ C=A(1,3) A(2,2)=(C+4)/2
+
+ .. code:: apdl
+
+ C=A(1,3) A(2,2)=(C+4)/2
+
+ If ``VALUE`` is the table array name, the subscripts are the values of the primary variables
+ and the table is evaluated at these specified index values.
+
+ If blank, delete this parameter. Example:
+
+ .. code:: apdl
+
+ A=
+
+ deletes parameter
+
+ .. code:: apdl
+
+ A
+
+ .. code:: apdl
+
+ A
+
+ val2 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val3 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val4 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val5 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val6 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val7 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val8 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val9 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ val10 : str
+ If ``Par`` is an array parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank
+ value) are sequentially assigned to the succeeding array elements of the column. Examples:
+
+ .. code:: apdl
+
+ *SET,A(1,4),10,11
+
+ assigns
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ A(1,4)=10, A(2,4)=11
+
+ .. code:: apdl
+
+ *SET,B(2,3),'file10','file11'
+
+ assigns
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ .. code:: apdl
+
+ B(2,3)='file10', B(3,3)='file11'
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-SET_argdescript:
+
+ * ``par : str`` - An alphanumeric name used to identify this parameter. ``Par`` can contain up to 32
+ characters, beginning with a letter and containing only letters, numbers, and underscores. Examples:
+
+ .. code:: apdl
- Notes
- -----
- Only the SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, ANGLEK, and ANGLEN
- functions ``[*SET, *VFUN]`` are affected by this command.
- """
- command = f"*AFUN,{lab}"
- return self.run(command, **kwargs)
+ ABC A3X TOP_END
- def dim(
- self,
- par="",
- type_="",
- imax="",
- jmax="",
- kmax="",
- var1="",
- var2="",
- var3="",
- csysid="",
- **kwargs,
- ):
- """Defines an array parameter and its dimensions.
+ Command names, function names, label names, component and assembly names, etc., are invalid, as are
+ parameter names beginning with an underscore (for example,
- APDL Command: ``*DIM``
+ .. code:: apdl
- Parameters
- ----------
- par
- Name of parameter to be dimensioned. See ``*SET`` for name
- restrictions.
+ _LOOP
- type\\_
- Array type:
+ ).
- Arrays are similar to standard FORTRAN arrays (indices are
- integers) (default). Index numbers for the rows, columns,
- and planes are sequential values beginning with one. Used
- for 1-, 2-, or 3-D arrays. - Same as ARRAY, but used to
- specify 4-D arrays.
-
- Same as ARRAY, but used to specify 5-D arrays. - Array
- entries are character strings (up to 8 characters each).
- Index numbers for rows, columns, and planes are sequential
- values beginning with one.
-
- Array indices are real (non-integer) numbers which must be
- defined when filling the table. Index numbers for the
- rows and columns are stored in the zero column and row
- "array elements" and are initially assigned a near-zero
- value. Index numbers must be in ascending order and are
- used only for retrieving an array element. When
- retrieving an array element with a real index that does
- not match a specified index, linear interpolation is done
- among the nearest indices and the corresponding array
- element values [``*SET``]. Used for 1-, 2-, or 3-D tables. -
- Same as TABLE, but used to specify 4-D tables.
-
- Same as TABLE, but used to specify 5-D tables. - Array
- entries are character strings (up to IMAX each). Index
- numbers for columns and planes are sequential values
- beginning with 1. Row index is character position in
- string.
-
- imax
- Extent of first dimension (row). (For Type = STRING, IMAX is
- rounded up to the next multiple of eight and has a limit of 248).
- Defaults to 1.
-
- jmax
- Extent of second dimension (column). Defaults to 1.
-
- kmax
- Extent of third dimension (plane). Defaults to 1.
-
- var1
- Variable name corresponding to the first dimension (row) for Type =
- TABLE. Defaults to Row.
-
- var2
- Variable name corresponding to the second dimension (column) for
- Type = TABLE. Defaults to Column.
-
- var3
- Variable name corresponding to the third dimension (plane) for Type
- = TABLE. Defaults to Plane.
-
- csysid
- An integer corresponding to the coordinate system ID Number.
+ Parameter names ending in an underscore are not listed by the :ref:`starstatus` command. Array
+ parameter names must be followed by a subscript, and the entire expression must be 32 characters or
+ less. Examples:
- Notes
- -----
- Up to three dimensions (row, column, and plane) may be defined using
- ARRAY and TABLE. Use ARR4, ARR5, TAB4, and TAB5 to define up to five
- dimensions (row, column, plane, book, and shelf). An index number is
- associated with each row, column, and plane. For array and table type
- parameters, element values are initialized to zero. For character and
- string parameters, element values are initialized to (blank). A
- defined parameter must be deleted [``*SET``] before its dimensions can be
- changed. Scalar (single valued) parameters should not be dimensioned.
- ``*DIM,A,,3`` defines a vector array with elements A(1), A(2), and A(3).
- ``*DIM,B,,2,3`` defines a 2x3 array with elements B(1,1), B(2,1), B(1,2),
- B(2,2), B(1,3), and B(2,3). Use ``*STATUS,Par`` to display elements of
- array Par. You can write formatted data files (tabular formatting) from
- data held in arrays through the ``*VWRITE`` command.
-
- If you use table parameters to define boundary conditions, then Var1,
- Var2, and/or Var3 can either specify a primary variable (listed in
- Table: 130:: ``*DIM`` - Primary Variables) or can be an independent
- parameter. If specifying an independent parameter, then you must
- define an additional table for the independent parameter. The
- additional table must have the same name as the independent parameter
- and may be a function of one or more primary variables or another
- independent parameter. All independent parameters must relate to a
- primary variable.
-
- Tabular load arrays can be defined in both global Cartesian (default)
- or local (see below) coordinate systems by specifying CSYSID, as
- defined in LOCAL. For batch operations, you must specify your
- coordinate system first.
-
- The following constraints apply when you specify a local coordinate
- system for your tabular loads:
-
- If you are specifying a 4- or 5-D array or table, four additional
- fields (LMAX, MMAX, Var4, and Var5) are available. Thus, for a 4-D
- table, the command syntax would be:
-
- For a 5-D table, the command syntax would be:
-
- You cannot create or edit 4- or 5-D arrays or tables using the GUI.
-
- See Array Parameters for a detailed discussion on and examples for
- using array parameters.
-
- Table: 130:: : ``*DIM`` - Primary Variables
+ .. code:: apdl
- Specify PRESSURE as the independent variable (not PRES).
+ A(1,1) NEW_VAL(3,2,5) RESULT(1000)
- The X, Y, and Z coordinate locations listed above are valid in global
- Cartesian, or local (Cartesian, cylindrical and spherical) coordinate
- systems. The VELOCITY label is applicable only to the calculated fluid
- velocity in element FLUID116.
+ There is no character parameter substitution for the ``Par`` field. Table parameters used in command
+ fields (where constant values are normally given) are limited to 32 characters.
- When using PRESSURE as a primary variable, the underlying element must
- have the pressure DOF associated with it, or it must be a supported
- contact element.
+ * ``value : str`` - Numerical value or alphanumeric character string (up to 32 characters enclosed
+ in single quotes) to be assigned to this parameter. Examples:
- The gap/penetration label (GAP) is only used for defining certain
- contact element real constants.
+ .. code:: apdl
- The frequency label (FREQ) is valid for harmonic analyses only.
+ A(1,3)=7.4 B='ABC3'
- The OMEGS, ECCENT, and THETA primary variables only apply to the
- COMBI214 element. The amplitude of the rotational velocity (OMEGS) is
- an absolute value, so only positive values of OMEGS are valid. The
- eccentricity (ECCENT) and phase shift (THETA) labels are only valid for
- nonlinear analyses.
+ Can also be a parameter or a parametric expression. Examples:
- If you use table parameters to define boundary conditions, the table
- names (Par) must not exceed 32 characters.
+ .. code:: apdl
- In thermal analyses, if you apply tabular loads as a function of
- temperature but the rest of the model is linear (e.g., includes no
- temperature-dependent material properties or radiation ), you should
- turn on Newton-Raphson iterations (NROPT,FULL) to evaluate the
- temperature-dependent tabular boundary conditions correctly.
+ C=A(1,3) A(2,2)=(C+4)/2
- This command is valid in any processor.
- """
- command = (
- f"*DIM,{par},{type_},{imax},{jmax},{kmax},{var1},{var2},{var3},{csysid}"
- )
- return self.run(command, **kwargs)
+ .. code:: apdl
- def get(
- self,
- par="",
- entity="",
- entnum="",
- item1="",
- it1num="",
- item2="",
- it2num="",
- **kwargs,
- ):
- """Retrieves a value and stores it as a scalar parameter or part of an array parameter.
-
- APDL Command: ``*GET``
-
- See the full MADPL command at `*GET
- `_
-
- GET retrieves a value for a specified item and stores the
- value as a scalar parameter, or as a value in a user-named
- array parameter. An item is identified by various keyword,
- label, and number combinations. Usage is similar to the SET
- command except that the parameter values are retrieved from
- previously input or calculated results. For example,
- ``GET,A,ELEM,5,CENT,X`` returns the centroid x-location of element
- 5 and stores the result as parameter A. GET command
- operations, along with the associated Get functions return
- values in the active coordinate system unless stated
- otherwise. A Get function is an alternative in- line function
- that can be used to retrieve a value instead of the GET
- command (see Using In-line Get Functions for more
- information).
- Both GET and VGET retrieve information from the active data
- stored in memory. The database is often the source, and
- sometimes the information is retrieved from common memory
- blocks that the program uses to manipulate
- information. Although POST1 and POST26 operations use a .rst
- file, GET data is accessed from the database or from the
- common blocks. Get operations do not access the .rst file
- directly. For repeated gets of sequential items, such as from
- a series of elements, see the VGET command.
- Most items are stored in the database after they are
- calculated and are available anytime thereafter. Items are
- grouped according to where they are usually first defined or
- calculated. Preprocessing data will often not reflect the
- calculated values generated from section data. Do not use GET
- to obtain data from elements that use calculated section data,
- such as beams or shells. Most of the general items listed
- below are available from all modules.
+ C=A(1,3) A(2,2)=(C+4)/2
- Parameters
- ----------
- par : str, optional
- The name of the resulting parameter. See \\*SET for name
- restrictions.
+ If ``VALUE`` is the table array name, the subscripts are the values of the primary variables and
+ the table is evaluated at these specified index values.
- entity
- Entity keyword. Valid keywords are NODE, ELEM, KP, LINE,
- AREA, VOLU, PDS, etc., as shown for Entity = in the tables
- below.
-
- entnum
- The number or label for the entity (as shown for ENTNUM =
- in the tables below). In some cases, a zero (or blank)
- ENTNUM represents all entities of the set.
-
- item1
- The name of a particular item for the given entity.
-
- it1num
- The number (or label) for the specified Item1 (if
- any). Valid IT1NUM values are as shown in the IT1NUM
- columns of the tables below. Some Item1 labels do not
- require an IT1NUM value.
-
- item2, it2num
- A second set of item labels and numbers to further qualify
- the item for which data are to be retrieved. Most items do
- not require this level of information.
-
- item3
- A third set of item labels to further qualify
- the item for which data are to be retrieved. Almost all items do
- not require this level of information.
-
- item3 : str, optional
- A third set of item labels and numbers to further qualify the item
- for which data are to be retrieved. Most items do not require this
- level of information.
-
- it3num : str, int, optional
- The number (or label) for the specified ``item3`` (if
- any). Some ``item3`` labels do not require an ``it3num``
- value.
-
- item4 : str, optional
- A fourth set of item labels and numbers to further qualify the item
- for which data are to be retrieved. Most items do not require this level of information.
-
- it4num : str, int, optional
- The number (or label) for the specified ``item4`` (if
- any). Some ``item4`` labels do not require an ``it4num``
- value.
-
- Returns
- -------
- float
- Floating point value of the parameter.
-
- Examples
- --------
- Retrieve the number of nodes
-
- >>> value = mapdl.get('val', 'node', '', 'count')
- >>> value
- 3003
-
- Retrieve the number of nodes using keywords. Note that the
- parameter name is optional.
-
- >>> value = mapdl.get(entity='node', item1='count')
- >>> value
- 3003
+ If blank, delete this parameter. Example:
- """
- command = f"*GET,{par},{entity},{entnum},{item1},{it1num},{item2},{it2num}"
- return self.run(command, **kwargs)
+ .. code:: apdl
- def inquire(self, strarray="", func="", arg1="", arg2="", **kwargs):
- """Returns system information.
+ A=
- By default, with no arguments, it returns the working directory.
+ deletes parameter
- >>> mapdl.inquire()
- C:\\Users\\user\\AppData\\Local\\Temp\\ansys_nynvxsaooh
+ .. code:: apdl
- Parameters
- ----------
- strarray : str, optional
- Name of the string array or parameter that will hold the returned values.
- Normally, if used in a python script you should just work with the
- return value from this method.
- func : str, optional
- Specifies the type of system information returned. See the
- notes section for more information.
- arg1 : str, optional
- First argument. See notes for ``arg1`` definition.
- arg2 : str, optional
- Second argument. See notes for ``arg1`` definition.
-
- Returns
- -------
- str
- Value of the inquired item.
+ A
- Notes
- -----
- The ``/INQUIRE`` command is valid in any processor.
+ .. code:: apdl
- .. warning::
- Take note that from version 0.60.4 and later, the command behaviour
- has been changed.
- Previously, the ``StrArray`` argument was omitted. For example:
- >>> mapdl.inquire('DIRECTORY')
- C:\\Users\\user\\AppData\\Local\\Temp\\ansys_nynvxsaooh
+ A
- Now this will raise an exception.
- The default behaviour now, requires to input ``StrArray``:
- >>> mapdl.inquire('', 'DIRECTORY')
- C:\\Users\\user\\AppData\\Local\\Temp\\ansys_nynvxsaooh
+ * ``val2, val3, val4, val5, val6, val7, val8, val9, val10 : str`` - If ``Par`` is an array
+ parameter, values ``VAL2`` through ``VAL10`` (up to the last nonblank value) are sequentially
+ assigned to the succeeding array elements of the column. Examples:
- **GENERAL FUNC OPTIONS**
+ .. code:: apdl
- - ``LOGIN`` - Returns the pathname of the login directory on Linux
- systems or the pathname of the default directory (including
- drive letter) on Windows systems.
- - ``DOCU`` - Pathname of the ANSYS documentation directory.
- - ``APDL`` - Pathname of the ANSYS APDL directory.
- - ``PROG`` - Pathname of the ANSYS executable directory.
- - ``AUTH`` - Pathname of the directory in which the license file resides.
- - ``USER`` - Name of the user currently logged-in.
- - ``DIRECTORY`` - Pathname of the current directory.
- - ``JOBNAME`` - Current Jobname.
- - ``RSTDIR`` - Result file directory.
- - ``RSTFILE`` - Result file name.
- - ``RSTEXT`` - Result file extension.
- - ``OUTPUT`` - Current output file name.
+ *SET,A(1,4),10,11
+ assigns
- **RETURNING THE VALUE OF AN ENVIRONMENT VARIABLE TO A PARAMETER**
+ .. code:: apdl
- If ``FUNC=ENV``, the command format is ``/INQUIRE,StrArray,ENV,ENVNAME,Substring``.
- In this instance, ENV specifies that the command should return the
- value of an environment variable.
- The following defines the remaining fields:
+ A(1,4)=10, A(2,4)=11
- Envname:
- Specifies the name of the environment variable.
+ .. code:: apdl
- Substring:
- If ``Substring = 1``, the first substring (up to the first colon (:)) is returned.
- If ``Substring = 2``, the second substring is returned, etc. For Windows platforms,
- the separating character is semicolon (;).
- If this argument is either blank or 0, the entire value of the environment
- variable is returned.
+ A(1,4)=10, A(2,4)=11
+ .. code:: apdl
- **RETURNING THE VALUE OF A TITLE TO A PARAMETER**
+ *SET,B(2,3),'file10','file11'
- If ``FUNC = TITLE``, the command format is ``/INQUIRE,StrArray,TITLE,Title_num``.
- In this context, the value of Title_num can be blank or ``1`` through ``5``. If the
- value is ``1`` or blank, the title is returned. If the value is ``2`` through ``5``,
- a corresponding subtitle is returned (``2`` denoting the first subtitle, and so on).
+ assigns
+ .. code:: apdl
- **RETURNING INFORMATION ABOUT A FILE TO A PARAMETER**
+ B(2,3)='file10', B(3,3)='file11'
- The ``/INQUIRE`` command can also return information about specified files
- within the file system.
- For these capabilities, the format is ``/INQUIRE,Parameter,FUNC,Fname, Ext, --``.
- The following defines the fields:
+ .. code:: apdl
- Parameter:
- Name of the parameter that will hold the returned values.
+ B(2,3)='file10', B(3,3)='file11'
- Func:
- Specifies the type of file information returned:
+ .. _a-SET_notes:
- EXIST:
- Returns a ``1`` if the specified file exists, and ``0`` if it does not.
+ Assigns values to user-named parameters that can be substituted later in the run. The equivalent
+ (and recommended) format is ``Par`` = ``VALUE``, ``VAL2``, ``VAL3``,..., ``VAL10``
- DATE:
- Returns the date stamp of the specified file in the format ``*yyyymmdd.hhmmss*``.
+ which can be used in place of :ref:`starset`, ``Par``,... for convenience.
- SIZE:
- Returns the size of the specified file in MB.
+ This command is valid in any processor.
- WRITE:
- Returns the status of the write attribute. A ``0`` denotes no write permission while a ``1`` denotes
- write permission.
+ .. _a-SET_extranote1:
- READ:
- Returns the status of the read attribute. A ``0`` denotes no read permission while a ``1`` denotes read
- permission.
+ Parameters (numeric or character) can be scalars (single valued) or arrays (multiple valued in one,
+ two, or three dimensions). An unlimited number of parameter names can be defined in any run. For
+ very large numbers of parameters, it is most efficient to define them in alphabetical order.
- EXEC:
- Returns the status of the execute attribute (this has meaning only on Linux). A ``0`` denotes no
- execute permission while a ``1`` denotes execute permission.
+ Parameter values can be redefined at any time. Array parameters can also be assigned values within a
+ do-loop ( ``*DO`` ) for convenience. Internally programmed do-loop commands are also available with
+ the **\*V** ``XX`` commands ( :ref:`vfill` ). Parameter values (except for parameters ending in an
+ underscore) can be listed with the :ref:`starstatus` command, displayed via :ref:`starvplot`
+ (numeric parameters only), and modified via ``*VEDIT`` (numeric parameters only).
- LINES:
- Returns the number of lines in an ASCII file.
+ Older program-provided macro files can use parameter names that do not begin with an underscore.
+ Using these macros embedded in your own macros may cause conflicts if the same parameter names are
+ used.
- Fname:
- File name and directory path (248 characters maximum, including the characters needed for the
- directory path). An unspecified directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
+ Parameters can also be resolved in comments created via :ref:`com`. A parameter can be deleted by
+ redefining it with a blank ``VALUE``. If the parameter is an array, the entire array is deleted.
+ Parameters can also be defined by a response to a query via ``*ASK`` or from a Mechanical APDL-
+ provided
+ value via :ref:`get`.
- Ext:
- Filename extension (eight-character maximum).
+ .. _a-SET_extranote2:
- Examples
- --------
- Return the MAPDL working directory
- >>> mapdl.inquire('', 'DIRECTORY')
- C:\\Users\\gayuso\\AppData\\Local\\Temp\\ansys_nynvxsaooh
+ Array parameters must be dimensioned ( :ref:`dim` ) before being assigned values unless they are the
+ result of an array operation or defined using the implied loop convention.
- Or
+ Undefined scalar parameters are initialized to a near-zero value. Numeric array parameters are
+ initialized to zero when dimensioned, and character array parameters are initialized to blank.
- >>> mapdl.inquire()
- C:\\Users\\gayuso\\AppData\\Local\\Temp\\ansys_nynvxsaooh
+ An existing array parameter must be deleted before it can be redimensioned.
- Return the job name
+ Array parameter names must be followed by a subscript list (enclosed in parentheses) identifying the
+ element of the array. The subscript list can have one, two, or three values (separated by commas).
+ Typical array parameter elements are A(1,1), NEW_VAL(3,2,5), RESULT(1000). Subscripts for defining
+ an array element must be integers (or parameter expressions that evaluate to integers). Non-integer
+ values are rounded to the nearest integer value.
- >>> mapdl.inquire('', 'JOBNAME')
- file
+ All array parameters are stored as 3D arrays with the unspecified dimensions set to 1. For example,
+ the 4th array element of a 1-dimensional array, A(4), is stored as array element A(4,1,1).
- Return the result file name
+ Arrays adhere to standard FORTRAN conventions.
- >>> mapdl.inquire('', 'RSTFILE')
- 'file.rst'
- """
- return self.run(f"/INQUIRE,{strarray},{func},{arg1},{arg2}", **kwargs)
+ .. _a-SET_extranote3:
- def parres(self, lab="", fname="", ext="", **kwargs):
- """Reads parameters from a file.
+ If the parameter name ``Par`` is input in a numeric argument of a command, the numeric value of the
+ parameter (as assigned with :ref:`starset`, :ref:`get`, =, etc.) is substituted into the command at
+ that point. Substitution occurs only if the parameter name is used between blanks, commas,
+ parentheses, or arithmetic operators (or any combination) in a numeric argument. Substitution can be
+ prevented by enclosing the parameter name ``Par`` within single quotes ( ' ), if the parameter is
+ alone in the argument; if the parameter is part of an arithmetic expression, the entire expression
+ must be enclosed within single quotes to prevent substitution. In either case the character string
+ will be used instead of the numeric value (and the string will be taken as 0.0 if it is in a numeric
+ argument).
- APDL Command: PARRES
+ A forced substitution is available in the text fields of :ref:`title`, :ref:`stitle`, :ref:`tlabel`,
+ :ref:`an3d`, :ref:`syp` ( ``ARG1`` -- ``ARG8`` ), and :ref:`abbr` by enclosing the parameter within
+ percent (%) signs. Also, parameter substitution can be forced within the file name or extension
+ fields of commands having these fields by enclosing the parameter within percent (%) signs. Array
+ parameters ( :ref:`dim` ) must include a subscript (within parentheses) to identify the array
+ element whose value is to be substituted, such as A(1,3). Out-of-range subscripts result in an error
+ message. Non-integer subscripts are allowed when identifying a TABLE array element for substitution.
+ A proportional linear interpolation of values among the nearest array elements is performed before
+ substitution. Interpolation is done in all three dimensions.
- Reads parameters from a coded file. The parameter file may
- have been written with the PARSAV command. The parameters
- read may replace or change the current parameter set.
+ Interpolation is based upon the assigned index numbers which must be defined when the table is
+ filled ( :ref:`dim` ).
- This command is valid in any processor.
+ .. _a-SET_extranote4:
- Parameters
- ----------
- lab
- Read operation.
+ Most alphanumeric arguments permit the use of character parameter substitution. When the parameter
+ name ``Par`` input, the alphanumeric value of the parameter is substituted into the command at that
+ point. Substitution can be suppressed by enclosing the parameter name within single quotes ( ' ).
+ Forced substitution is available in some fields by enclosing the parameter name within percent (%)
+ signs. Valid forced substitution fields include command name fields, ``Fname`` (filename) or ``Ext``
+ (extension) arguments, :ref:`abbr` command ( ``Abbr`` arguments), :ref:`title` and :ref:`stitle`
+ commands ( ``Title`` argument) and :ref:`tlabel` command ( ``Text`` argument). Character parameter
+ substitution is also available in the ``*ASK``, :ref:`an3d`, :ref:`cfwrite`, ``*IF``, ``*ELSEIF``,
+ :ref:`msg`, :ref:`starset`, :ref:`use`, :ref:`vread`, and :ref:`vwrite` commands. Character array
+ parameters must include a subscript (within parentheses) to identify the array element whose value
+ is to be substituted.
- NEW - Replace current parameter set with these parameters (default).
+ .. _a-SET_extranote5:
- CHANGE - Extend current parameter set with these
- parameters, replacing any that already exist.
+ If a parameter operation expression is input in a numeric argument, the numeric value of the
+ expression is substituted into the command at that point. Allowable operation expressions are of the
+ form
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
+ .. code:: apdl
- The file name defaults to Jobname.
+ E1oE2oE3...oE10
- ext
- Filename extension (eight-character maximum). The
- extension defaults to PARM if Fname is blank.
+ where E1, E2, etc. are expressions connected by operators (o). The allowable operations (o) are
- Examples
- --------
- Read a local parameter file.
+ .. code:: apdl
- >>> mapdl.parres('parm.PARM')
+ + - * / ** < >
- """
- return self.run(f"PARRES, {lab}, {fname}, {ext}")
+ For example,
- def parsav(self, lab="", fname="", ext="", **kwargs):
- """Writes parameters to a file.
+ .. code:: apdl
- APDL Command: PARSAV
+ A+B**C/D*E
- Parameters
- ----------
- lab
- Write operation:
+ is a valid operation expression. The
- - ``'SCALAR'`` : Write only scalar parameters (default).
- - ``'ALL'`` : Write scalar and array parameters.
- Parameters may be numeric or alphanumeric.
+ .. code:: apdl
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
+ *
- ext
- Filename extension (eight-character maximum).
+ represents multiplication and the
- Notes
- -----
- Writes the current parameters to a coded file. Previous
- parameters on this file, if any, will be overwritten. The
- parameter file may be read with the PARRES command.
+ .. code:: apdl
- PARSAV/PARRES operations truncate some long decimal strings,
- and can cause differing values in your solution data when
- other operations are performed. A good practice is to limit
- the number of decimal places you will use before and after
- these operations.
+ **
- This command is valid in any processor.
+ represents exponentiation.
+
+ Exponentiation of a negative number (without parentheses) to an integer power follows standard
+ FORTRAN hierarchy conventions; that is, the positive number is exponentiated and then the sign is
+ attached. Thus, -4**2 is evaluated as -16. If parentheses are applied, such as (-4)**2, the result
+ is 16.
+
+ A parameter is evaluated as a number within parentheses before exponentiation. Exponentiation of a
+ negative number to a non-integer power is performed by exponentiating the positive number and
+ prepending the minus sign, for example, -4**2.3 is -(4**2.3). The < and > operators allow
+ conditional substitution. For example, E1`_
Parameters
----------
- par
- An alphanumeric name used to identify this parameter. Par may be
- up to 32 characters, beginning with a letter and containing only
- letters, numbers, and underscores. Examples: ABC A3X TOP_END.
- ANSYS command names, function names, label names, component and
- assembly names, etc., should not be used. Parameter names
- beginning with an underscore (e.g., _LOOP) are reserved for use by
- ANSYS and should be avoided. Parameter names ending in an
- underscore are not listed by the ``*STATUS`` command. Array parameter
- names must be followed by a subscript, and the entire expression
- must be 32 characters or less. Examples: A(1,1) NEW_VAL(3,2,5)
- RESULT(1000). There is no character parameter substitution for the
- Par field. Table parameters that are used in command fields (where
- constant values are normally given) are limited to 32 characters.
-
- value
- Numerical value or alphanumeric character string (up to 32
- characters enclosed in single quotes) to be assigned to this
- parameter. Examples: A(1,3)=7.4 B='ABC3'. May also be a
- parameter or a parametric expression. Examples: C=A(1,3)
- A(2,2)=(C+4)/2. If blank, delete this parameter. Example: A=
- deletes parameter A.
-
- val2, val3, val4, val5, val6, val7, val8, val9, val10
- If Par is an array parameter, values VAL2 through VAL10 (up to the
- last nonblank value) are sequentially assigned to the succeeding
- array elements of the column. Example: ``*SET,A(1,4),10,11`` assigns
- ``A(1,4)=10, A(2,4)=11``. ``*SET,B(2,3),'file10','file11'`` assigns
- ``B(2,3)='file10', B(3,3)='file11'``.
+ par : str
+ Specifies the parameter or sets of parameters listed. For array parameters, use ``IMIN``, ``IMAX``,
+ etc. to specify ranges. Use :ref:`dim` to define array parameters. Use ``*VEDIT`` to review array
+ parameters interactively. Use :ref:`vwrite` to print array values in a formatted output. If ``Par``
+ is blank, list all scalar parameter values, array parameter dimensions, and abbreviations. If ARGX,
+ list the active set of local macro parameters (ARG1 to ARG9 and AR10 to AR99) ( :ref:`use` ).
+
+ The following are possible values for ``Par``
+
+ * ``ALL or blank`` - Lists all parameters (except local macro parameters and those with names
+ beginning or ending with an underbar) and toolbar abbreviations.
+
+ * ``_PRM`` - Lists only parameters with names beginning with an underbar (_). These are Mechanical APDL
+ internal parameters.
+
+ * ``PRM_`` - Lists only parameters with names ending with an underbar (_). A good APDL programming
+ convention is to ensure that all parameters created by your system programmer are named with a
+ trailing underbar.
+
+ * ``ABBR`` - Lists all toolbar abbreviations.
+
+ * ``PARM`` - Lists all parameters (except local macro parameters and those with names beginning or
+ ending with an underbar).
+
+ * ``MATH`` - Lists all APDL Math parameters, including vectors, matrices, and linear solvers.
+
+ * ``PARNAME`` - Lists only the parameter specified. ``PARNAME`` cannot be a local macro parameter
+ name.
+
+ * ``ARGX`` - Lists all local macro parameter values (ARG1- AR99) that are non-zero or non-blank.
+
+ imin : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ imax : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ jmin : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ jmax : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ kmin : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ kmax : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ lmin : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ lmax : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ mmin : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ mmax : str
+ Range of array elements to display (in terms of the dimensions (row, column, plane, book, and
+ shelf). Minimum values default to 1. Maximum values default to the maximum dimension values.
+ Zero may be input for ``IMIN``, ``JMIN``, and ``KMIN`` to display the index numbers. See
+ :ref:`taxis` command to list index numbers of 4- and 5-D tables.
+
+ kpri : int or str
+ Use this field to list your primary variable labels (X, Y, Z, TIME, etc.).
+
+ * ``1`` - List the labels (default). YES, Y, or ON are also valid entries.
+
+ * ``0`` - Do not list the labels. NO, N, or OFF are also valid entries.
Notes
-----
- Assigns values to user-named parameters that may be substituted later
- in the run. The equivalent (and recommended) format is
- ``Par = VALUE,VAL2,VAL3, . . . , VAL10``
+ .. warning::
- which may be used in place of ``*SET,Par, : ...`` for convenience.
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
- This command is valid in any processor.
+ **Argument Descriptions**
+
+ .. _a-STATUS_argdescript:
+
+ * ``par : str`` - Specifies the parameter or sets of parameters listed. For array parameters, use
+ ``IMIN``, ``IMAX``,
+ etc. to specify ranges. Use :ref:`dim` to define array parameters. Use ``*VEDIT`` to review array
+ parameters interactively. Use :ref:`vwrite` to print array values in a formatted output. If ``Par``
+ is blank, list all scalar parameter values, array parameter dimensions, and abbreviations. If ARGX,
+ list the active set of local macro parameters (ARG1 to ARG9 and AR10 to AR99) ( :ref:`use` ).
+
+ The following are possible values for ``Par``
+
+ * ``ALL or blank`` - Lists all parameters (except local macro parameters and those with names
+ beginning or ending with an underbar) and toolbar abbreviations.
+
+ * ``_PRM`` - Lists only parameters with names beginning with an underbar (_). These are Mechanical APDL
+ internal parameters.
+
+ * ``PRM_`` - Lists only parameters with names ending with an underbar (_). A good APDL programming
+ convention is to ensure that all parameters created by your system programmer are named with a
+ trailing underbar.
+
+ * ``ABBR`` - Lists all toolbar abbreviations.
+
+ * ``PARM`` - Lists all parameters (except local macro parameters and those with names beginning or
+ ending with an underbar).
- Parameters (numeric or character) may be scalars (single valued) or
- arrays (multiple valued in one, two, or three dimensions). An unlimited
- number of parameter names may be defined in any ANSYS run. For very
- large numbers of parameters, it is most efficient to define them in
- alphabetical order.
-
- Parameter values may be redefined at any time. Array parameters may
- also be assigned values within a do-loop [``*DO``] for convenience.
- Internally programmed do-loop commands are also available with the ``*VXX``
- commands (``*VFILL``). Parameter values (except for parameters ending in
- an underscore) may be listed with the ``*STATUS`` command, displayed with
- the ``*VPLOT`` command (numeric parameters only), and modified with the
- ``*VEDIT`` command (numeric parameters only).
-
- Older ANSYS-supplied macro files may use parameter names that do not
- begin with an underscore. Using these macros embedded in your own
- macros may cause conflicts if the same parameter names are used.
-
- Parameters can also be resolved in comments created by the /COM command
- (see /COM for complete documentation). A parameter can be deleted by
- redefining it with a blank VALUE. If the parameter is an array, the
- entire array is deleted. Parameters may also be defined by a response
- to a query with the ``*ASK`` command or from an "ANSYS-supplied" value
- with the ``*GET`` command.
-
- Array parameters must be dimensioned [``*DIM``] before being assigned
- values unless they are the result of an array operation or defined
- using the implied loop convention. Scalar parameters that are not
- defined are initialized to a "near" zero value. Numeric array
- parameters are initialized to zero when dimensioned, and character
- array parameters are initialized to blank. An existing array parameter
- must be deleted before it can be redimensioned. Array parameter names
- must be followed by a subscript list (enclosed in parentheses)
- identifying the element of the array. The subscript list may have one,
- two, or three values (separated by commas). Typical array parameter
- elements are A(1,1), NEW_VAL(3,2,5), RESULT(1000). Subscripts for
- defining an array element must be integers (or parameter expressions
- that evaluate to integers). Non-integer values are rounded to the
- nearest integer value. All array parameters are stored as 3-D arrays
- with the unspecified dimensions set to 1. For example, the 4th array
- element of a 1-dimensional array, A(4), is stored as array element
- A(4,1,1). Arrays are patterned after standard FORTRAN conventions.
-
- If the parameter name Par is input in a numeric argument of a command,
- the numeric value of the parameter (as assigned with ``*SET``, ``*GET``, =,
- etc.) is substituted into the command at that point. Substitution
- occurs only if the parameter name is used between blanks, commas,
- parentheses, or arithmetic operators (or any combination) in a numeric
- argument. Substitution can be prevented by enclosing the parameter
- name Par within single quotes ( ' ), if the parameter is alone in the
- argument; if the parameter is part of an arithmetic expression, the
- entire expression must be enclosed within single quotes to prevent
- substitution. In either case the character string will be used instead
- of the numeric value (and the string will be taken as 0.0 if it is in a
- numeric argument).
-
- A forced substitution is available in the text fields of the /TITLE,
- /STITLE, /TLABEL, /AN3D, /SYP (ARG1--ARG8), and ``*ABBR`` commands by
- enclosing the parameter within percent (%) signs. Also, parameter
- substitution may be forced within the file name or extension fields of
- commands having these fields by enclosing the parameter within percent
- (%) signs. Array parameters [``*DIM``] must include a subscript (within
- parentheses) to identify the array element whose value is to be
- substituted, such as A(1,3). Out-of-range subscripts result in an
- error message. Non-integer subscripts are allowed when identifying a
- TABLE array element for substitution. A proportional linear
- interpolation of values among the nearest array elements is performed
- before substitution. Interpolation is done in all three dimensions.
-
- Note:: : Interpolation is based upon the assigned index numbers which
- must be defined when the table is filled [``*DIM``].
-
- Most alphanumeric arguments permit the use of character
- parameter substitution. When the parameter name Par input,
- the alphanumeric value of the parameter is substituted into
- the command at that point. Substitution can be suppressed by
- enclosing the parameter name within single quotes ( ' ).
- Forced substitution is available in some fields by enclosing
- the parameter name within percent (%) signs. Valid forced
- substitution fields include command name fields, Fname
- (filename) or Ext (extension) arguments, ``*ABBR`` command
- (Abbr arguments), /TITLE and /STITLE commands (Title argument)
- and /TLABEL command (Text argument). Character parameter
- substitution is also available in the ``*ASK``, /AN3D,
- ``*CFWRITE``, ``*IF``, ``*ELSEIF``, ``*MSG``, ``*SET``,
- ``*USE``, ``*VREAD``, and ``*VWRITE`` commands. Character array
- parameters must include a subscript (within parentheses) to
- identify the array element whose value is to be substituted.
-
- If a parameter operation expression is input in a numeric argument, the
- numeric value of the expression is substituted into the command at that
- point. Allowable operation expressions are of the form
-
- ``E1oE2oE3: ...oE10``
-
- where E1, E2, etc. are expressions connected by operators (o). The
- allowable operations (o) are
-
- ``+ - * / ** < >``
-
- For example, ``A+B**C/D*E`` is a valid operation expression. The ``*``
- represents multiplication and the ``**`` represents exponentiation.
+ * ``MATH`` - Lists all APDL Math parameters, including vectors, matrices, and linear solvers.
+
+ * ``PARNAME`` - Lists only the parameter specified. ``PARNAME`` cannot be a local macro parameter
+ name.
+
+ * ``ARGX`` - Lists all local macro parameter values (ARG1- AR99) that are non-zero or non-blank.
+
+ * ``imin, imax, jmin, jmax, kmin, kmax, lmin, lmax, mmin, mmax : str`` - Range of array elements to
+ display (in terms of the dimensions (row, column, plane, book, and shelf). Minimum values default to
+ 1. Maximum values default to the maximum dimension values. Zero may be input for ``IMIN``, ``JMIN``,
+ and ``KMIN`` to display the index numbers. See :ref:`taxis` command to list index numbers of 4- and
+ 5-D tables.
+
+ * ``kpri : int`` - Use this field to list your primary variable labels (X, Y, Z, TIME, etc.).
+
+ * ``1`` - List the labels (default). YES, Y, or ON are also valid entries.
+
+ * ``0`` - Do not list the labels. NO, N, or OFF are also valid entries.
+
+ .. _a-STATUS_notes:
+
+ You cannot obtain the value for a single local parameter (for example, :ref:`starstatus`,ARG2). You
+ can only request all local parameters simultaneously using :ref:`starstatus`,ARGX.
+
+ This command is valid in any processor.
"""
- command = f"*SET,{par},{value},{val2},{val3},{val4},{val5},{val6},{val7},{val8},{val9},{val10}"
+ command = f"*STATUS,{par},{imin},{imax},{jmin},{jmax},{kmin},{kmax},{lmin},{lmax},{mmin},{mmax},{kpri}"
return self.run(command, **kwargs)
def starvget(
self,
- parr="",
- entity="",
- entnum="",
- item1="",
- it1num="",
- item2="",
- it2num="",
- kloop="",
+ parr: str = "",
+ entity: str = "",
+ entnum: str = "",
+ item1: str = "",
+ it1num: str = "",
+ item2: str = "",
+ it2num: str = "",
+ kloop: str = "",
**kwargs,
):
- """Retrieves values and stores them into an array parameter.
+ r"""Retrieves values and stores them into an array parameter.
- APDL Command: ``*VGET``
+ Mechanical APDL Command: `\*VGET `_
Parameters
----------
- parr
- The name of the resulting vector array parameter. See ``*SET`` for
- name restrictions.
+ parr : str
+ The name of the resulting vector array parameter. See :ref:`starset` for name restrictions. The
+ program creates the array parameter if it does not exist.
+
+ entity : str
+ Entity keyword. Valid keywords are NODE, ELEM, KP, LINE, AREA, VOLU, etc. as shown for
+ ``Entity`` = in the tables below.
- entity
- Entity keyword. Valid keywords are NODE, ELEM, KP, LINE, AREA,
- VOLU, etc. as shown for Entity = in the tables below.
+ entnum : str
+ The number of the entity (as shown for ``ENTNUM`` = in the tables below).
- entnum
- The number of the entity (as shown for ENTNUM = in the tables
- below).
+ item1 : str
+ The name of a particular item for the given entity. Valid items are as shown in the ``Item1``
+ columns of the tables below.
- item1
- The name of a particular item for the given entity. Valid items
- are as shown in the Item1 columns of the tables below.
+ it1num : str
+ The number (or label) for the specified ``Item1`` (if any). Valid ``IT1NUM`` values are as shown
+ in the ``IT1NUM`` columns of the tables below. Some ``Item1`` labels do not require an
+ ``IT1NUM`` value.
- it1num
- The number (or label) for the specified Item1 (if any). Valid
- IT1NUM values are as shown in the IT1NUM columns of the tables
- below. Some Item1 labels do not require an IT1NUM value.
+ item2 : str
+ A second set of item labels and numbers to further qualify the item for which data is to be
+ retrieved. Most items do not require this level of information.
- item2, it2num
- A second set of item labels and numbers to further qualify the item
- for which data is to be retrieved. Most items do not require this
- level of information.
+ it2num : str
+ A second set of item labels and numbers to further qualify the item for which data is to be
+ retrieved. Most items do not require this level of information.
- kloop
+ kloop : str
Field to be looped on:
- ``0`` or ``2`` : Loop on the ENTNUM field (default).
+ * ``0 or 2`` - Loop on the ``ENTNUM`` field (default).
- ``3`` : Loop on the Item1 field.
+ * ``3`` - Loop on the ``Item1`` field.
- ``4`` : Loop on the IT1NUM field. Successive items are as shown with IT1NUM.
+ * ``4`` - Loop on the ``IT1NUM`` field. Successive items are as shown with ``IT1NUM``.
- ``5`` : Loop on the Item2 field.
+ * ``5`` - Loop on the ``Item2`` field.
- ``6`` : Loop on the IT2NUM field. Successive items are as shown with IT2NUM.
+ * ``6`` - Loop on the ``IT2NUM`` field. Successive items are as shown with ``IT2NUM``.
Notes
-----
- Retrieves values for specified items and stores the values in an output
- vector of a user-named array parameter according to:
-
- ``ParR = f(Entity, ENTNUM, Item1, IT1NUM, Item2, IT2NUM)``
-
- where (f) is the ``*GET`` function; Entity, Item1, and Item2
- are keywords; and ENTNUM, IT1NUM, and IT2NUM are numbers or
- labels corresponding to the keywords. Looping continues over
- successive entity numbers (ENTNUM) for the KLOOP default. For
- example, ``*VGET,A(1),ELEM,5,CENT,X`` returns the centroid
- x-location of element 5 and stores the result in the first
- location of A. Retrieving continues with element 6, 7, 8,
- etc., regardless of whether the element exists or is selected,
- until successive array locations are filled. Use ``*VLEN`` or
- ``*VMASK`` to skip locations. Absolute values and scale
- factors may be applied to the result parameter [``*VABS``,
- ``*VFACT``]. Results may be cumulative [``*VCUM``]. See the
- ``*VOPER`` command for general details. Results can be put
- back into an analysis by writing a file of the desired input
- commands with the ``*VWRITE`` command. See also the ``*VPUT``
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VGET_argdescript:
+
+ * ``parr : str`` - The name of the resulting vector array parameter. See :ref:`starset` for name
+ restrictions. The program creates the array parameter if it does not exist.
+
+ * ``entity : str`` - Entity keyword. Valid keywords are NODE, ELEM, KP, LINE, AREA, VOLU, etc. as
+ shown for ``Entity`` = in the tables below.
+
+ * ``entnum : str`` - The number of the entity (as shown for ``ENTNUM`` = in the tables below).
+
+ * ``item1 : str`` - The name of a particular item for the given entity. Valid items are as shown in
+ the ``Item1`` columns of the tables below.
+
+ * ``it1num : str`` - The number (or label) for the specified ``Item1`` (if any). Valid ``IT1NUM``
+ values are as shown in the ``IT1NUM`` columns of the tables below. Some ``Item1`` labels do not
+ require an ``IT1NUM`` value.
+
+ * ``item2, it2num : str`` - A second set of item labels and numbers to further qualify the item for
+ which data is to be retrieved. Most items do not require this level of information.
+
+ * ``kloop : str`` - Field to be looped on:
+
+ * ``0 or 2`` - Loop on the ``ENTNUM`` field (default).
+
+ * ``3`` - Loop on the ``Item1`` field.
+
+ * ``4`` - Loop on the ``IT1NUM`` field. Successive items are as shown with ``IT1NUM``.
+
+ * ``5`` - Loop on the ``Item2`` field.
+
+ * ``6`` - Loop on the ``IT2NUM`` field. Successive items are as shown with ``IT2NUM``.
+
+ .. _a-VGET_notes:
+
+ Retrieves values for specified items and stores the values in an output vector of a user-named array
+ parameter according to: ``ParR`` = f( ``Entity``, ``ENTNUM``, ``Item1``, ``IT1NUM``, ``Item2``,
+ ``IT2NUM`` )
+
+ where (f) is the :ref:`get` function; ``Entity``, ``Item1``, and ``Item2`` are keywords; and
+ ``ENTNUM``, ``IT1NUM``, and ``IT2NUM`` are numbers or labels corresponding to the keywords. Looping
+ continues over successive entity numbers ( ``ENTNUM`` ) for the ``KLOOP`` default. For example,
+ :ref:`starvget`,A(1),ELEM,5,CENT,X returns the centroid x-location of element 5 and stores the
+ result in the first location of A. Retrieving continues with element 6, 7, 8, etc., regardless of
+ whether the element exists or is selected, until successive array locations are filled. Use
+ :ref:`vlen` or :ref:`vmask` to skip locations. Absolute values and scale factors may be applied to
+ the result parameter ( :ref:`vabs`, :ref:`vfact` ). Results may be cumulative ( :ref:`vcum` ). See
+ the :ref:`voper` command for general details. Results can be put back into an analysis by writing a
+ file of the desired input commands with the :ref:`vwrite` command. See also the :ref:`starvput`
command.
- Both ``*GET`` and ``*VGET`` retrieve information from the
- active data stored in memory. The database is often the
- source, and sometimes the information is retrieved from common
- memory blocks that ANSYS uses to manipulate
- information. Although POST1 and POST26 operations use a ``*.rst``
- file, GET data is accessed from the database or from the
- common blocks. Get operations do not access the ``*.rst`` file
- directly.
+ Both :ref:`get` and :ref:`starvget` retrieve information from the active data stored in memory. The
+ database is often the source, and sometimes the information is retrieved from common memory blocks
+ that Mechanical APDL uses to manipulate information. Although POST1 and POST26 operations use a
+ :file:`\*.rst` file, GET data is accessed from the database or from the common blocks. Get
+ operations do not access the :file:`\*.rst` file directly.
- The ``*VGET`` command retrieves both the unprocessed real and the imaginary
- parts (original and duplicate sector nodes and elements) of a cyclic
- symmetry solution.
+ The :ref:`starvget` command retrieves both the unprocessed real and the imaginary parts (original
+ and duplicate sector nodes and elements) of a `cyclic symmetry
+ `_ solution.
- For each of the sections for accessing ``*VGET`` parameters see:
- https://www.mm.bme.hu/~gyebro/files/ans_help_v182/ans_cmd/Hlp_C_VGET_st.html
+ Each of the sections for accessing \*VGET parameters are shown in the following order:
+
+ * `\*VGET PREP7 Items
+ `_
+ \*VGET PREP7 Items
+
+ * `\*VGET POST1 Items
+ `_
+ \*VGET POST1 Items
This command is valid in any processor.
+
+ **\*VGET PREP7 Items**
+
+ .. _vget_prep7:
+
+ * :ref:`vget_prep7_node`
+
+ * :ref:`vget_prep7_elem`
+
+ * :ref:`vget_prep7_kp`
+
+ * :ref:`vget_prep7_line`
+
+ * :ref:`vget_prep7_area`
+
+ * :ref:`vget_prep7_volu`
+
+ * :ref:`vget_prep7_cdsy`
+
+ * :ref:`vget_prep7_rcon`
+
+ * :ref:`vget_prep7_tlab`
+
+ .. _vget_prep7_node:
+
+ \*VGET PREP7 Items, Entity = NODE
+ *********************************
+
+ .. flat-table:: ``Entity`` = NODE, ``ENTNUM`` = ``n`` (node number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, NODE, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, or Z location in the active coordinate system
+ * - ANG
+ - XY, YZ, ZX
+ - THXY, THYZ, THZX rotation angle
+ * - NSEL
+ -
+ - Select status of node ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - NLIST
+ -
+ - Returns the list of selected nodes ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_elem:
+
+ \*VGET PREP7 Items, Entity = ELEM
+ *********************************
+
+ .. flat-table:: ``Entity`` = ELEM, ``ENTNUM`` = ``n`` (element number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, ELEM, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - NODE
+ - 1, 2,... 20
+ - Node number at position 1, 2,... 20 of element ``n``
+ * - CENT
+ - X, Y, Z
+ - Centroid X, Y, or Z location (based on shape function) in the active coordinate system
+ * - ADJ
+ - 1, 2,... 6
+ - Number of elements adjacent to face 1, 2,... 6
+ * - ATTR
+ - ``name``
+ - Number assigned to specified attribute; ``name`` = MAT, TYPE, REAL, ESYS, ENAM, or SECN
+ * - GEOM
+ -
+ - Characteristic element geometry. Length of line element (straight line between ends), area of area element, or volume of volume element. Issuing :ref:`starvget` for an element returns a signed value. To always get a positive value, issue :ref:`vabs`,1 prior to issuing the :ref:`starvget` command.
+ * - ESEL
+ -
+ - Select status of element ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - SHPAR
+ - ``Test``
+ - Element shape test result for selected element ``n``, where ``Test`` = ASPE (aspect ratio), JACR (Jacobian ratio), MAXA (maximum corner angle), PARA (deviation from parallelism of opposite edges), or WARP (warping factor)
+ * - ELIST
+ -
+ - Returns the list of selected elements ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_kp:
+
+ \*VGET PREP7 Items, Entity = KP
+ *******************************
+
+ .. flat-table:: ``Entity`` = KP, ``ENTNUM`` = ``n`` (keypoint number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, KP, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, or Z location in the active coordinate system
+ * - ATTR
+ - ``name``
+ - Number assigned to specified attribute; ``name`` = MAT, TYPE, REAL, ESYS, NODE, or ELEM
+ * - DIV
+ -
+ - Divisions (element size setting) from :ref:`kesize`
+ * - KSEL
+ -
+ - Select status of keypoint ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - KLIST
+ -
+ - Returns the list of selected keypoints ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_line:
+
+ \*VGET PREP7 Items, Entity = LINE
+ *********************************
+
+ .. flat-table:: ``Entity`` = LINE, ``ENTNUM`` = ``n`` (line number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, LINE, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - KP
+ - 1, 2
+ - Keypoint number at position 1 or 2
+ * - ATTR
+ - ``name``
+ - Number assigned to specified attribute; ``name`` = MAT, TYPE, REAL, ESYS, NNOD, NELM, or NDIV (NNOD = number of nodes, NELM = number of elements, NDIV = number of divisions)
+ * - LENG
+ -
+ - Length
+ * - LSEL
+ -
+ - Select status of line ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - LLIST
+ -
+ - Returns the list of selected lines ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_area:
+
+ \*VGET PREP7 Items, Entity = AREA
+ *********************************
+
+ .. flat-table:: ``Entity`` = AREA, ``ENTNUM`` = ``n`` (area number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, AREA, ``n``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - IT2NUM
+ - Description
+ * - LOOP
+ - 1,2,...
+ - LINE
+ - 1, 2,... ``p``
+ - IT1NUM is the loop number, and must be input if LINE is to be retrieved. IT2NUM is line number at position 1, 2,... ``p``
+ * - ATTR
+ - ``name``
+ - :rspan:`3`
+ - :rspan:`3`
+ - Number assigned to specified attribute; ``name`` = MAT, TYPE, REAL, ESYS, SECN, NNOD, or NELM (NNOD = number of nodes, NELM = number of elements)
+ * - AREA
+ - -
+ - Area (after last :ref:`asum` )
+ * - ASEL
+ - -
+ - Select status of area ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - ALIST
+ - -
+ - Returns the list of selected areas ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_volu:
+
+ \*VGET PREP7 Items, Entity = VOLU
+ *********************************
+
+ .. flat-table:: ``Entity`` = VOLU, ``ENTNUM`` = ``n`` (volume number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, VOLU, ``n``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - IT2NUM
+ - Description
+ * - SHELL
+ - 1, 2,...
+ - AREA
+ - 1, 2,... ``p``
+ - IT1NUM is the shell number, and must be input if AREA is to be retrieved. IT2NUM is area number at position 1, 2... ``p``
+ * - ATTR
+ - ``name``
+ - :rspan:`3`
+ - :rspan:`3`
+ - Number assigned to specified attribute; ``name`` = MAT, TYPE, REAL, ESYS, NNOD, or NELM (NNOD = number of nodes, NELM = number of elements)
+ * - VOLU
+ - -
+ - Volume (after last :ref:`vsum` )
+ * - VSEL
+ - -
+ - Select status of volume ``n`` : -1 = unselected, 0 = undefined, 1 = selected
+ * - VLIST
+ - -
+ - Returns the list of selected volumes ( ``ENTNUM`` is ignored)
+
+
+ .. _vget_prep7_cdsy:
+
+ \*VGET PREP7 Items, Entity = CDSY
+ *********************************
+
+ .. flat-table:: ``Entity`` = CDSY, ``ENTNUM`` = ``n`` (coordinate system number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, CDSY, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - LOC
+ - X, Y, Z
+ - X, Y, or Z origin location (global Cartesian coordinate)
+ * - ANG
+ - XY, YZ, ZX
+ - THXY, THYZ, or THZX rotation angle (°) relative to the global Cartesian coordinate system
+ * - ATTR
+ - ``name``
+ - Number assigned to specified attribute; ``name`` = KCS, KTHET, KPHI, PAR1, or PAR2. If the coordinate system is undefined, KCS returns as -1.0
+
+
+ .. _vget_prep7_rcon:
+
+ \*VGET PREP7 Items, Entity = RCON
+ *********************************
+
+ .. flat-table:: ``Entity`` = RCON, ``ENTNUM`` = ``n`` (real constant set number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, RCON, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - CONST
+ - 1, 2,... ``m``
+ - Real constant value for constant 1, 2,... ``m``
+
+
+ .. _vget_prep7_tlab:
+
+ \*VGET PREP7 Items, Entity = TLAB
+ *********************************
+
+ .. flat-table:: ``Entity`` = ``TLAB``, ``ENTNUM`` = ``n`` ( ``TLAB`` is the ``Lab`` data table label on the :ref:`tb` command. ``n`` is the material number.)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, ``TLAB``, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - IT2NUM
+ - Description
+ * - TEMP
+ - ``val``
+ - CONST
+ - ``num``
+ - IT1NUM ``value`` is the temperature value at which to retrieve table data. ``num`` is the constant number whose value is to be retrieved. For constants input as X, Y points, the constant numbers are consecutive with the X constants being the odd numbers, beginning with one.
+
+ **\*VGET POST1 Items**
+
+ .. _vget_post1:
+
+ * :ref:`vget_post1_cyccalc`
+
+ * :ref:`vget_post1_elem`
+
+ * :ref:`vget_post1_member`
+
+ * :ref:`vget_post1_node_enode`
+
+ * :ref:`vget_post1_node_ndof`
+
+ Vector items are in the active results coordinate system unless otherwise specified.
+
+ .. _vget_post1_cyccalc:
+
+ \*VGET POST1 Items, Entity = CYCCALC
+ ************************************
+
+ .. flat-table:: ``Entity`` = CYCCALC, ``ENTNUM`` = ``n`` ( :ref:`cycspec` specification number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, CYCCALC, ``n``, ``Item1``, ``IT1NUM``, ``Item2``, ``IT2NUM``, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Item2
+ - IT2NUm
+ - Description
+ * - :rspan:`1` FREQ
+ - :rspan:`1` ``Frequency point``
+ - SECTOR
+ - ``sector``
+ - :ref:`cycspec` results at the IT1NUM frequency or sector (depending on ``KLOOP`` )
+ * - SECMAX
+ -
+ - :ref:`cycspec` maximum results
+ * - The frequency point refers to the harmonic solution data set number ( ``NSET`` on the :ref:`set` command). For ``KLOOP`` = 4 or SECMAX, returns the requested sector results for all frequencies and ``IT1NUM`` is ignored. For ``KLOOP`` = 6, returns the requested frequency results for all sectors and ``IT2NUM`` is ignored. All other ``KLOOP`` options are invalid.
+
+
+ .. _vget_post1_elem:
+
+ \*VGET POST1 Items, Entity = ELEM
+ *********************************
+
+ .. flat-table:: ``Entity`` = ELEM, ``ENTNUM`` = ``n`` (element number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, ELEM, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - ETAB
+ - ``Label``
+ - Any user-defined element table label (see :ref:`etable` command)
+
+
+ .. _vget_post1_member:
+
+ \*VGET POST1 Items, Entity = MEMBER
+ ***********************************
+
+ .. flat-table:: ``Entity`` = MEMBER, ``ENTNUM`` = ``N`` (GroupID)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``Par`` ,MEMBER, ``N``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - TEMP
+ - MIN, MAX
+ - Minimum or maximum temperature of members (individual reinforcings) with GroupID = ``N`` in the selected set of reinforcing elements
+
+
+ .. _vget_post1_node_enode:
+
+ \*VGET POST1 Items, Entity = NODE, Element Nodal Results
+ ********************************************************
+
+ .. flat-table:: ``Entity`` = NODE, ``ENTNUM`` = ``n`` (node number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, NODE, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ - Item2
+ * - :rspan:`2` S
+ - X, Y, Z, XY, YZ, XZ
+ - Component stress
+ - :rspan:`2` ``Item2`` controls whether `nodal-averaged results `_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - 1, 2, 3
+ - Principal stress
+ * - INT, EQV
+ - Stress intensity or equivalent stress
+ * - :rspan:`2` EPTO
+ - X, Y, Z, XY, YZ, XZ
+ - Component total strain (EPEL + EPPL + EPCR)
+ -
+ * - 1, 2, 3
+ - Principal total strain
+ -
+ * - INT, EQV
+ - Total strain intensity or total equivalent strain
+ -
+ * - :rspan:`2` EPEL
+ - X, Y, Z, XY, YZ, XZ
+ - Component elastic strain
+ - :rspan:`2` ``Item2`` controls whether `nodal-averaged results`_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - 1, 2, 3
+ - Principal elastic strain
+ * - INT, EQV
+ - Elastic strain intensity or elastic equivalent strain
+ * - :rspan:`2` EPPL
+ - X, Y, Z, XY, YZ, XZ
+ - Component plastic strain
+ - :rspan:`2` ``Item2`` controls whether `nodal-averaged results`_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - 1, 2, 3
+ - Principal plastic strain
+ * - INT, EQV
+ - Plastic strain intensity or plastic equivalent strain
+ * - :rspan:`2` EPCR
+ - X, Y, Z, XY, YZ, XZ
+ - Component creep strain
+ - :rspan:`2` ``Item2`` controls whether `nodal-averaged results`_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - 1, 2, 3
+ - Principal creep strain
+ * - INT, EQV
+ - Creep strain intensity or creep equivalent strain
+ * - :rspan:`2` EPTH
+ - X, Y, Z, XY, YZ, XZ
+ - Component thermal strain
+ - :rspan:`2` ``Item2`` controls whether `nodal-averaged results`_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - 1, 2, 3
+ - Principal thermal strain
+ * - INT, EQV
+ - Thermal strain intensity or thermal equivalent strain
+ * - EPSW
+ -
+ - Swelling strain
+ - ``Item2`` controls whether `nodal-averaged results`_ are used. Valid labels are: AUTO - Use nodal-averaged results, if available. Otherwise use element-based results. ESOL- Use element-based results only. NAR - Use nodal-averaged results only.
+ * - :rspan:`2` EPDI
+ - X, Y, Z, XY, YZ, XZ
+ - Component diffusion strain
+ -
+ * - 1, 2, 3
+ - Principal diffusion strain
+ -
+ * - INT, EQV
+ - Diffusion strain intensity or diffusion equivalent strain
+ -
+ * - :rspan:`5` NL
+ - SEPL
+ - Equivalent stress (from stress-strain curve)
+ -
+ * - SRAT
+ - Stress state ratio
+ -
+ * - HPRES
+ - Hydrostatic pressure
+ -
+ * - EPEQ
+ - Accumulated equivalent plastic strain
+ -
+ * - PSV
+ - Plastic state variable
+ -
+ * - PLWK
+ - Plastic work/volume
+ -
+ * - HS
+ - X, Y, Z
+ - Component magnetic field intensity from current sources (in the global Cartesian coordinate system)
+ -
+ * - BFE
+ - TEMP
+ - Body temperatures (calculated from applied temperatures) as used in solution
+ -
+ * - TG
+ - X, Y, Z, SUM
+ - Component thermal gradient and sum
+ -
+ * - TF
+ - X, Y, Z, SUM
+ - Component thermal flux and sum
+ -
+ * - PG
+ - X, Y, Z, SUM
+ - Component pressure gradient and sum
+ -
+ * - EF
+ - X, Y, Z, SUM
+ - Component electric field and sum
+ -
+ * - D
+ - X, Y, Z, SUM
+ - Component electric flux density and sum
+ -
+ * - H
+ - X, Y, Z, SUM
+ - Component magnetic field intensity and sum
+ -
+ * - B
+ - X, Y, Z, SUM
+ - Component magnetic flux density and sum
+ -
+ * - FMAG
+ - X, Y, Z, SUM
+ - Component electromagnetic force and sum
+ -
+ * - :rspan:`9` CONT
+ - STAT
+ - Contact status
+ -
+ * - PENE
+ - Contact penetration
+ -
+ * - PRES
+ - Contact pressure
+ -
+ * - SFRIC
+ - Contact friction stress
+ -
+ * - STOT
+ - Contact total stress (pressure plus friction)
+ -
+ * - SLIDE
+ - Contact sliding distance
+ -
+ * - GAP
+ - Contact gap distance
+ -
+ * - FLUX
+ - Total heat flux at contact surface
+ -
+ * - CNOS
+ - Total number of contact status changes during substep
+ -
+ * - FPRS
+ - Actual applied fluid penetration pressure
+ -
+ * - Element nodal results are the average nodal value of the selected elements
+
+
+ .. _vget_post1_node_ndof:
+
+ \*VGET POST1 Items, Entity = NODE, Nodal Degree of Freedom Results
+ ******************************************************************
+
+ .. flat-table:: ``Entity`` = NODE, ``ENTNUM`` = ``n`` (node number)
+ :header-rows: 2
+
+ * - :ref:`starvget`, ``ParR``, NODE, ``n``, ``Item1``, ``IT1NUM``,, ``KLOOP``
+ * - Item1
+ - IT1NUM
+ - Description
+ * - U
+ - X, Y, Z
+ - X, Y, or Z structural displacement
+ * - ROT
+ - X, Y, Z
+ - X, Y, or Z structural rotation
+ * - TEMP
+ -
+ - Temperature. For ``SHELL131`` and ``SHELL132`` elements with KEYOPT(3) = 0 or 1, use TBOT, TE2, TE3,..., TTOP instead of TEMP. Alternative get functions: TEMP(N), TBOT(N), TE2(N), etc.
+ * - PRES
+ -
+ - Pressure
+ * - VOLT
+ -
+ - Electric potential
+ * - MAG
+ -
+ - Magnetic scalar potential
+ * - V
+ - X, Y, Z
+ - X, Y, or Z fluid velocity; X, Y, or Z nodal velocity in a transient structural analysis (analysis with :ref:`antype`,TRANS)
+ * - A
+ - X, Y, Z
+ - X, Y, or Z magnetic vector potential; X, Y or Z nodal acceleration in a transient structural analysis (analysis with :ref:`antype`,TRANS)
+ * - CURR
+ -
+ - Current
+ * - EMF
+ -
+ - Electromotive force drop
+
"""
command = (
f"*VGET,{parr},{entity},{entnum},{item1},{it1num},{item2},{it2num},{kloop}"
@@ -849,88 +4775,226 @@ def starvget(
def taxis(
self,
- parmloc="",
- naxis="",
- val1="",
- val2="",
- val3="",
- val4="",
- val5="",
- val6="",
- val7="",
- val8="",
- val9="",
- val10="",
+ parmloc: str = "",
+ naxis: str = "",
+ val1: str = "",
+ val2: str = "",
+ val3: str = "",
+ val4: str = "",
+ val5: str = "",
+ val6: str = "",
+ val7: str = "",
+ val8: str = "",
+ val9: str = "",
+ val10: str = "",
**kwargs,
):
- """Defines table index numbers.
+ r"""Defines table index numbers.
- APDL Command: ``*TAXIS``
+ Mechanical APDL Command: `\*TAXIS `_
Parameters
----------
- parmloc
- Name and starting location in the table array parameter for
- indexing. Indexing occurs along the axis defined with nAxis.
+ parmloc : str
+ Name and starting location in the table array parameter for indexing. Indexing occurs along the
+ axis defined with ``nAxis``.
+
+ naxis : str
+ Axis along which indexing occurs. Valid labels are:
+
+ * ``1`` - Corresponds to Row. Default.
+
+ * ``2`` - Corresponds to Column.
+
+ * ``3`` - Corresponds to Plane.
+
+ * ``4`` - Corresponds to Book.
+
+ * ``5`` - Corresponds to Shelf.
+
+ * ``ALL`` - Lists all index numbers. Valid only if ``Val1`` = LIST.
+
+ val1 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val2 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
- naxis
- Axis along which indexing occurs. Valid labels are:
+ val3 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
- Corresponds to Row. Default. - Corresponds to Column.
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
- Corresponds to Plane. - Corresponds to Book.
+ val4 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
- Corresponds to Shelf. - Lists all index numbers. Valid only if Val1 = LIST.
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
- val1, val2, val3, . . . , val10
- Values of the index numbers for the axis nAxis, starting from the
- table array parameter location ParmLoc. You can define up to ten
- values.
+ val5 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val6 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val7 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val8 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val9 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ val10 : str
+ Values of the index numbers for the axis ``nAxis``, starting from the table array parameter
+ location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
Notes
-----
- ``*TAXIS`` is a convenient method to define table index values. These
- values reside in the zero column, row, etc. Instead of filling values
- in these zero location spots, use the ``*TAXIS`` command.
- To list index numbers, issue ```*TAXIS,ParmLoc, nAxis, LIST,`` where
- nAxis = 1 through 5 or ALL.
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-TAXIS_argdescript:
+
+ * ``parmloc : str`` - Name and starting location in the table array parameter for indexing. Indexing
+ occurs along the axis defined with ``nAxis``.
+
+ * ``naxis : str`` - Axis along which indexing occurs. Valid labels are:
+
+ * ``1`` - Corresponds to Row. Default.
+
+ * ``2`` - Corresponds to Column.
+
+ * ``3`` - Corresponds to Plane.
+
+ * ``4`` - Corresponds to Book.
+
+ * ``5`` - Corresponds to Shelf.
+
+ * ``ALL`` - Lists all index numbers. Valid only if ``Val1`` = LIST.
+
+ * ``val1, val2, val3,..., val10 : str`` - Values of the index numbers for the axis ``nAxis``,
+ starting from the table array parameter location ``ParmLoc``. You can define up to ten values.
+
+ To list the index values specified with ``nAxis``, issue ``Val1`` = LIST. If ``Val1`` = LIST,
+ ``Val2`` - ``Val10`` are ignored.
+
+ .. _a-TAXIS_notes:
+
+ :ref:`taxis` is a convenient method to define table index values. These values reside in the zero
+ column, row, etc. Instead of filling values in these zero location spots, use the :ref:`taxis`
+ command. For example,
+
+ .. code:: apdl
+
+ *TAXIS,longtable(1,4,1,1),2,1.0,2.2,3.5,4.7,5.9
+
+ would fill index values 1.0, 2.2, 3.5, 4.7, and 5.9 in ``nAxis`` 2 (column location), starting at
+ location 4.
+
+ To list index numbers, issue :ref:`taxis`, ``ParmLoc``, ``nAxis``, LIST, where ``nAxis`` = 1 through
+ 5 or ALL.
"""
command = f"*TAXIS,{parmloc},{naxis},{val1},{val2},{val3},{val4},{val5},{val6},{val7},{val8},{val9},{val10}"
return self.run(command, **kwargs)
- def tread(self, par="", fname="", ext="", nskip="", **kwargs):
- """Reads data from an external file into a table array parameter.
+ def tread(
+ self, par: str = "", fname: str = "", ext: str = "", nskip: str = "", **kwargs
+ ):
+ r"""Reads data from an external file into a table array parameter.
- APDL Command: ``*TREAD``
+ Mechanical APDL Command: `\*TREAD `_
Parameters
----------
- par
- Table array parameter name as defined by the ``*DIM`` command.
+ par : str
+ Table array parameter name as defined by the :ref:`dim` command.
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. File name has no default.
- ext
- Filename extension (eight-character maximum).
+ ext : str
+ Filename extension (eight-character maximum). Extension has no default.
- nskip
- Number of comment lines at the beginning of the file being read
- that will be skipped during the reading. Default = 0.
+ nskip : str
+ Number of comment lines at the beginning of the file being read that will be skipped during the
+ reading. Default = 0.
Notes
-----
- Use this command to read in a table of data from an external file into
- an ANSYS table array parameter. The external file may be created using
- a text editor or by an external application or program. The external
- file must be in tab-delimited, blank-delimited, or comma-delimited
- format to be used by ``*TREAD``. The ANSYS TABLE type array parameter must
- be defined before you can read in an external file. See ``*DIM`` for more
- information.
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-TREAD_argdescript:
+
+ * ``par : str`` - Table array parameter name as defined by the :ref:`dim` command.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. File name has no default.
+
+ * ``ext : str`` - Filename extension (eight-character maximum). Extension has no default.
+
+ * ``nskip : str`` - Number of comment lines at the beginning of the file being read that will be
+ skipped during the reading. Default = 0.
+
+ .. _a-TREAD_notes:
+
+ Use this command to read in a table of data from an external file into a table array parameter. The
+ external file may be created using a text editor or by an external application or program. To be
+ used by :ref:`tread`, the external file's encoding format must be UTF-8, and the file must be in
+ tab-delimited, blank-delimited, or comma-delimited format. The TABLE type array parameter must be
+ defined before you can read in an external file. See :ref:`dim` for more information.
This command is not applicable to 4- or 5-D tables.
"""
@@ -939,120 +5003,200 @@ def tread(self, par="", fname="", ext="", nskip="", **kwargs):
def vfill(
self,
- parr="",
- func="",
- con1="",
- con2="",
- con3="",
- con4="",
- con5="",
- con6="",
- con7="",
- con8="",
- con9="",
- con10="",
+ parr: str = "",
+ func: str = "",
+ con1: str = "",
+ con2: str = "",
+ con3: str = "",
+ con4: str = "",
+ con5: str = "",
+ con6: str = "",
+ con7: str = "",
+ con8: str = "",
+ con9: str = "",
+ con10: str = "",
**kwargs,
):
- """Fills an array parameter.
+ r"""Fills an array parameter.
- APDL Command: ``*VFILL``
+ Mechanical APDL Command: `\*VFILL `_
Parameters
----------
- parr
- The name of the resulting numeric array parameter vector. See ``*SET``
- for name restrictions.
+ parr : str
+ The name of the resulting numeric array parameter vector. See :ref:`starset` for name
+ restrictions.
- func
+ func : str
Fill function:
- DATA - Assign specified values CON1, CON2, etc. to successive
- array elements. Up to 10 assignments may be made at a
- time. Any CON values after a blank CON value are
- ignored. - Assign ramp function values: ``CON1+((n-1)*CON2)``
- , where n is the loop number [``*VLEN``]. To specify a
- constant function (no ramp), set CON2 to zero.
-
- RAMP - Assign random number values based on a uniform
- distribution RAND(CON1,CON2), where: - Assign random
- sample of Gaussian distributions GDIS(CON1,CON2).
-
- RAND - Assign random number values based on a uniform
- distribution RAND(CON1,CON2), where CON1 is the lower
- bound (defaults to 0.0) and CON2 is the upper bound
- (defaults to 1.0)
-
- GDIS - Assign random sample of Gaussian distributions
- GDIS(CON1,CON2) where CON1 is the mean (defaults to 0.0),
- and CON2 is the standard deviation (defaults to 1.0)
-
- TRIA - Assigns random number values based on a triangular
- distribution TRIA(CON1,CON2,CON3) where CON1 is the lower
- bound (defaults to 0.0), CON2 is the location of the peak
- value (CON1 ≤ CON2 ≤CON3; CON2 defaults to 0 if CON1 ≤ 0 ≤
- CON3, CON1 if 0 ≤ CON1, or CON3 if CON3 ≤ 0), and CON3 is
- the upper bound (defaults to 1.0 + CON1 if CON1 ≥ 0 or 0.0
- if CON1 ≤ 0)
-
- BETA - Assigns random number values based on a beta
- distribution BETA(CON1,CON2,CON3,CON4) where: CON1 is the
- lower bound (defaults to 0.0), CON2 is the upper bound
- (defaults to 1.0 + CON1 if CON1 ≥ 0 or 0.0 if CON1 ≤ 0), and CON3
- and CON4 are the alpha and beta parameters, respectively,
- of the beta function. Alpha and beta must both be
- positive; they default to 1.0.
-
- GAMM - Assigns random number values based on a gamma
- distribution: GAMM(CON1,CON2,CON3) where: CON1 is the
- lower bound (defaults to 0.0), CON2 and CON3 are the alpha
- and beta parameters, respectively, of the gamma
- function. Alpha and beta must both be positive; they
- default to 1.0.
-
- RIGID - Generates the rigid body modes with respect to the
- reference point coordinates (CON1, CON2, CON3). The
- dimensions of the array parameter ParR are (dim1,dim2)
- where dim1 is the maximum node number (including internal
- nodes but excluding orientation nodes) multiplied by the
- number of degrees of freedom, and dim2 is the number of
- rigid body modes (which corresponds to the number of
- structural degrees of freedom).
-
- CLUSTER - Generates excitation frequencies with clustering
- option CLUSTER(CON1,CON2,CON3,CON4,%CON5%) where:
-
- - CON1 is the lower end of the frequency range in Hz (0 < CON1)
- - CON2 is the upper end of the frequency range in Hz (CON1 < CON2)
- - CON3 is the number of points on each side of the natural
- frequency (4 ≤ CON3 ≤ 20, defaults to 4)
- - CON4 is the constant damping ratio value or an array
- parameter (size NFR) specifying the damping ratios (if
- zero or blank, defaults to constant damping ratio of
- 0.005)
- - CON5 is an array parameter (size NFR) specifying the
- natural frequencies in Hz
-
- The dimension of the resulting array parameter ParR is
- less than ``2+NFR*(2*CON3+1)`` where NFR is the number of
- natural frequencies defined in CON5.
-
- con1, con2, con3, . . . , con10
+ * ``DATA`` - Assign specified values ``CON1``, ``CON2``, etc. to successive array elements. Up to 10
+ assignments may be made at a time. Any CON values after a blank CON value are ignored.
+
+ * ``RAMP`` - Assign ramp function values: ``CON1`` +((n-1)\* ``CON2`` ), where n is the loop number ( :ref:`vlen` ). To specify a constant function (no ramp), set ``CON2`` to zero.
+
+ * ``RAND`` - Assign random number values based on a uniform distribution RAND( ``CON1``, ``CON2`` ), where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the upper bound (defaults to 1.0)
+
+ * ``GDIS`` - Assign random sample of Gaussian distributions GDIS( ``CON1``, ``CON2`` ) where:
+
+ * ``CON1`` is the mean (defaults to 0.0)
+ * ``CON2`` is the standard deviation (defaults to 1.0)
+
+ * ``TRIA`` - Assigns random number values based on a triangular distribution TRIA( ``CON1``, ``CON2``, ``CON3`` ) where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the location of the peak value ( ``CON1`` ≤ ``CON2`` ≤ ``CON3`` ; ``CON2`` defaults to
+ 0 if ``CON1`` ≤ 0 ≤ ``CON3``, ``CON1`` if 0 ≤ ``CON1``, or ``CON3`` if ``CON3`` ≤ 0)
+ * ``CON3`` is the upper bound (defaults to 1.0 + ``CON1`` if ``CON1`` ≥ 0 or 0.0 if ``CON1`` ≤ 0)
+
+ * ``BETA`` - Assigns random number values based on a beta distribution BETA( ``CON1``, ``CON2``, ``CON3``, ``CON4`` ) where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the upper bound (defaults to 1.0 + ``CON1`` if ``CON1`` ≥ 0 or 0.0 if ``CON1`` ≤ 0)
+ * ``CON3`` and ``CON4`` are the alpha and beta parameters, respectively, of the beta function. Alpha
+ and beta must both be positive; they default to 1.0.
+
+ * ``GAMM`` - Assigns random number values based on a gamma distribution: GAMM( ``CON1``, ``CON2``, ``CON3`` ) where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` and ``CON3`` are the alpha and beta parameters, respectively, of the gamma function.
+ Alpha and beta must both be positive; they default to 1.0.
+
+ * ``RIGID`` - Generates the rigid body modes with respect to the reference point coordinates (
+ ``CON1``, ``CON2``, ``CON3`` ). The dimensions of the array parameter ``ParR`` are
+ (dim:sub:`1`,dim:sub:`2` ) where dim:sub:`1` is the maximum node number (including internal nodes
+ but excluding orientation nodes ) multiplied by the number of degrees of freedom, and dim:sub:`2` is
+ the number of rigid body modes (which corresponds to the number of structural degrees of freedom).
+
+ * ``CLUSTER`` - Generates excitation frequencies with clustering option CLUSTER( ``CON1``, ``CON2``, ``CON3``, ``CON4``, ``%CON5%`` ) where:
+
+ * ``CON1`` is the lower end of the frequency range in Hz (0 < ``CON1`` )
+ * ``CON2`` is the upper end of the frequency range in Hz ( ``CON1`` < ``CON2`` )
+ * ``CON3`` is the number of points on each side of the natural frequency (4 ≤ ``CON3`` ≤ 20,
+ defaults to 4)
+ * ``CON4`` is the constant damping ratio value or an array parameter (size NFR) specifying the
+ damping ratios (if zero or blank, defaults to constant damping ratio of 0.005)
+ * ``CON5`` is an array parameter (size NFR) specifying the natural frequencies in Hz
+ The dimension of the resulting array parameter ParR is less than 2+NFR\2(2*
+ ``CON3`` +1) where NFR is the number of natural frequencies defined in ``CON5``.
+
+ con1 : str
+ Constants used with above functions.
+
+ con2 : str
+ Constants used with above functions.
+
+ con3 : str
+ Constants used with above functions.
+
+ con4 : str
+ Constants used with above functions.
+
+ con5 : str
+ Constants used with above functions.
+
+ con6 : str
+ Constants used with above functions.
+
+ con7 : str
+ Constants used with above functions.
+
+ con8 : str
+ Constants used with above functions.
+
+ con9 : str
+ Constants used with above functions.
+
+ con10 : str
Constants used with above functions.
Notes
-----
- Operates on input data and produces one output array parameter vector
- according to:
- ParR = f(CON1, CON2, : ...)
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VFILL_argdescript:
+
+ * ``parr : str`` - The name of the resulting numeric array parameter vector. See :ref:`starset` for
+ name restrictions.
+
+ * ``func : str`` - Fill function:
+
+ * ``DATA`` - Assign specified values ``CON1``, ``CON2``, etc. to successive array elements. Up to 10
+ assignments may be made at a time. Any CON values after a blank CON value are ignored.
+
+ * ``RAMP`` - Assign ramp function values: ``CON1`` +((n-1)\* ``CON2`` ), where n is the loop number ( :ref:`vlen` ). To specify a constant function (no ramp), set ``CON2`` to zero.
+
+ * ``RAND`` - Assign random number values based on a uniform distribution RAND( ``CON1``, ``CON2`` ), where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the upper bound (defaults to 1.0)
+
+ * ``GDIS`` - Assign random sample of Gaussian distributions GDIS( ``CON1``, ``CON2`` ) where:
+
+ * ``CON1`` is the mean (defaults to 0.0)
+ * ``CON2`` is the standard deviation (defaults to 1.0)
+
+ * ``TRIA`` - Assigns random number values based on a triangular distribution TRIA( ``CON1``, ``CON2``, ``CON3`` ) where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the location of the peak value ( ``CON1`` ≤ ``CON2`` ≤ ``CON3`` ; ``CON2`` defaults to
+ 0 if ``CON1`` ≤ 0 ≤ ``CON3``, ``CON1`` if 0 ≤ ``CON1``, or ``CON3`` if ``CON3`` ≤ 0)
+ * ``CON3`` is the upper bound (defaults to 1.0 + ``CON1`` if ``CON1`` ≥ 0 or 0.0 if ``CON1`` ≤ 0)
+
+ * ``BETA`` - Assigns random number values based on a beta distribution BETA( ``CON1``, ``CON2``, ``CON3``, ``CON4`` ) where:
+
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` is the upper bound (defaults to 1.0 + ``CON1`` if ``CON1`` ≥ 0 or 0.0 if ``CON1`` ≤ 0)
+ * ``CON3`` and ``CON4`` are the alpha and beta parameters, respectively, of the beta function. Alpha
+ and beta must both be positive; they default to 1.0.
+
+ * ``GAMM`` - Assigns random number values based on a gamma distribution: GAMM( ``CON1``, ``CON2``, ``CON3`` ) where:
- where the functions (f) are described above. Operations use successive
- array elements [``*VLEN``, ``*VMASK``] with the default being all successive
- elements. For example, ``*VFILL,A,RAMP,1,10`` assigns A(1) = 1.0, A(2) =
- 11.0, A(3) = 21.0, etc. ``*VFILL,B(5,1),DATA,1.5,3.0`` assigns ``B(5,1) =
- 1.5 and B(6,1) = 3.0``. Absolute values and scale factors may be applied
- to the result parameter [``*VABS``, ``*VFACT``]. Results may be cumulative
- [``*VCUM``]. See the ``*VOPER`` command for details.
+ * ``CON1`` is the lower bound (defaults to 0.0)
+ * ``CON2`` and ``CON3`` are the alpha and beta parameters, respectively, of the gamma function.
+ Alpha and beta must both be positive; they default to 1.0.
+
+ * ``RIGID`` - Generates the rigid body modes with respect to the reference point coordinates (
+ ``CON1``, ``CON2``, ``CON3`` ). The dimensions of the array parameter ``ParR`` are
+ (dim:sub:`1`,dim:sub:`2` ) where dim:sub:`1` is the maximum node number (including internal nodes
+ but excluding orientation nodes ) multiplied by the number of degrees of freedom, and dim:sub:`2` is
+ the number of rigid body modes (which corresponds to the number of structural degrees of freedom).
+
+ * ``CLUSTER`` - Generates excitation frequencies with clustering option CLUSTER( ``CON1``, ``CON2``, ``CON3``, ``CON4``, ``%CON5%`` ) where:
+
+ * ``CON1`` is the lower end of the frequency range in Hz (0 < ``CON1`` )
+ * ``CON2`` is the upper end of the frequency range in Hz ( ``CON1`` < ``CON2`` )
+ * ``CON3`` is the number of points on each side of the natural frequency (4 ≤ ``CON3`` ≤ 20,
+ defaults to 4)
+ * ``CON4`` is the constant damping ratio value or an array parameter (size NFR) specifying the
+ damping ratios (if zero or blank, defaults to constant damping ratio of 0.005)
+ * ``CON5`` is an array parameter (size NFR) specifying the natural frequencies in Hz
+ The dimension of the resulting array parameter ParR is less than 2+NFR\2(2*
+ ``CON3`` +1) where NFR is the number of natural frequencies defined in ``CON5``.
+
+ * ``con1, con2, con3,..., con10 : str`` - Constants used with above functions.
+
+ .. _a-VFILL_notes:
+
+ Operates on input data and produces one output array parameter vector according to: ``ParR`` = f(
+ ``CON1``, ``CON2``,...)
+
+ where the functions (f) are described above. Operations use successive array elements ( :ref:`vlen`,
+ :ref:`vmask` ) with the default being all successive elements. For example, :ref:`vfill`
+ ,A,RAMP,1,10 assigns A(1) = 1.0, A(2) = 11.0, A(3) = 21.0, etc. :ref:`vfill`,B(5,1),DATA,1.5,3.0
+ assigns B(5,1) = 1.5 and B(6,1) = 3.0. Absolute values and scale factors may be applied to the
+ result parameter ( :ref:`vabs`, :ref:`vfact` ). Results may be cumulative ( :ref:`vcum` ). See the
+ :ref:`voper` command for details.
This command is valid in any processor.
"""
@@ -1061,88 +5205,132 @@ def vfill(
def vread(
self,
- parr="",
- fname="",
- ext="",
- label="",
- n1="",
- n2="",
- n3="",
- nskip="",
+ parr: str = "",
+ fname: str = "",
+ ext: str = "",
+ label: str = "",
+ n1: str = "",
+ n2: str = "",
+ n3: str = "",
+ nskip: str = "",
**kwargs,
):
- """Reads data and produces an array parameter vector or matrix.
+ r"""Reads data and produces an array parameter vector or matrix.
- APDL Command: ``*VREAD``
+ Mechanical APDL Command: `\*VREAD `_
Parameters
----------
- parr
- The name of the resulting array parameter vector. See ``*SET`` for
- name restrictions. The parameter must exist as a dimensioned array
- [``*DIM``]. String arrays are limited to a maximum of 8 characters.
-
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
+ parr : str
+ The name of the resulting array parameter vector. See :ref:`starset` for name restrictions. The
+ parameter must exist as a dimensioned array ( :ref:`dim` ). String arrays are limited to a
+ maximum of 8 characters.
+
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. If the ``Fname`` field is left blank, reading
+ continues from the current input device, such as the terminal.
+
+ ext : str
Filename extension (eight-character maximum).
- label
+ label : str
Can take a value of IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (IJK).
- n1, n2, n3
- Read as (((ParR (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for
- Label = KIJ. n2 and n3 default to 1.
+ n1 : str
+ Read as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n2`` and
+ ``n3`` default to 1.
+
+ n2 : str
+ Read as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n2`` and
+ ``n3`` default to 1.
+
+ n3 : str
+ Read as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for ``Label`` = KIJ. ``n2`` and
+ ``n3`` default to 1.
- nskip
- Number of lines at the beginning of the file being read that will
- be skipped during the reading. Default = 0.
+ nskip : str
+ Number of lines at the beginning of the file being read that will be skipped during the reading.
+ Default = 0.
Notes
-----
- Reads data from a file and fills in an array parameter vector or
- matrix. Data are read from a formatted file or, if the menu is off
- [/MENU,OFF] and Fname is blank, from the next input lines. The format
- of the data to be read must be input immediately following the ``*VREAD``
- command. The format specifies the number of fields to be read per
- record, the field width, and the placement of the decimal point (if
- none specified in the value). The read operation follows the available
- FORTRAN FORMAT conventions of the system (see your system FORTRAN
- manual). Any standard FORTRAN real format (such as (4F6.0),
- (E10.3,2X,D8.2), etc.) or alphanumeric format (A) may be used.
- Alphanumeric strings are limited to a maximum of 8 characters for any
- field (A8). For storage of string arrays greater than 8 characters, the
- ``*SREAD`` command can be used. Integer (I) and list-directed (*)
- descriptors may not be used. The parentheses must be included in the
- format and the format must not exceed 80 characters (including
- parentheses). The input line length is limited to 128 characters.
-
- A starting array element number must be defined for the result array
- parameter vector (numeric or character). For example, entering these
- two lines:
-
- will read two values from each line of file ARRAYVAL and assign the
- values to A(1), A(2), A(3), etc. Reading continues until successive
- row elements [``*VLEN``, ``*VMASK``, ``*DIM``] are filled.
-
- For an array parameter matrix, a starting array element row and column
- number must be defined. For example, entering these two lines:
-
- will read two values from each line of file ARRAYVAL and assign the
- values to A(1,1), A(2,1), A(3,1), etc. Reading continues until n1 (10)
- successive row elements are filled. Once the maximum row number is
- reached, subsequent data will be read into the next column (e.g.,
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _a-VREAD_argdescript:
+
+ * ``parr : str`` - The name of the resulting array parameter vector. See :ref:`starset` for name
+ restrictions. The parameter must exist as a dimensioned array ( :ref:`dim` ). String arrays are
+ limited to a maximum of 8 characters.
+
+ * ``fname : str`` - File name and directory path (248 characters maximum, including the characters
+ needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case, you
+ can use all 248 characters for the file name. If the ``Fname`` field is left blank, reading
+ continues from the
+ current input device, such as the terminal.
+
+ * ``ext : str`` - Filename extension (eight-character maximum).
+ * ``label : str`` - Can take a value of IJK, IKJ, JIK, JKI, KIJ, KJI, or blank (IJK).
+
+ * ``n1, n2, n3 : str`` - Read as ((( ``ParR`` (i,j,k), k = 1,n1), i = 1, n2), j = 1, n3) for
+ ``Label`` = KIJ. ``n2`` and ``n3`` default to 1.
+
+ * ``nskip : str`` - Number of lines at the beginning of the file being read that will be skipped
+ during the reading. Default = 0.
+
+ .. _a-VREAD_notes:
+
+ Reads data from a file and fills in an array parameter vector or matrix. Data are read from a
+ formatted file or, if the menu is off ( :ref:`menu`,OFF) and ``Fname`` is blank, from the next input
+ lines. The format of the data to be read must be input immediately following the :ref:`vread`
+ command. The format specifies the number of fields to be read per record, the field width, and the
+ placement of the decimal point (if none specified in the value). The read operation follows the
+ available FORTRAN FORMAT conventions of the system (see your system FORTRAN manual). Any standard
+ FORTRAN real format (such as (4F6.0), (E10.3,2X,D8.2), etc.) or alphanumeric format (A) may be used.
+ Alphanumeric strings are limited to a maximum of 8 characters for any field (A8). For storage of
+ string arrays greater than 8 characters, the \*SREAD command can be used. Integer (I) and list-
+ directed (\2) descriptors may not be used. The parentheses must be included in the format and the
+ format must not exceed 80 characters (including parentheses). The input line length is limited to
+ 128 characters.
+
+ A starting array element number must be defined for the result array parameter vector (numeric or
+ character). For example, entering these two lines:
+
+ .. code:: apdl
+
+ *VREAD,A(1),ARRAYVAL
+ (2F6.0)
+
+ will read two values from each line of file ARRAYVAL and assign the values to A(1), A(2), A(3), etc.
+ Reading continues until successive row elements ( :ref:`vlen`, :ref:`vmask`, :ref:`dim` ) are
+ filled.
+
+ For an array parameter matrix, a starting array element row and column number must be defined. For
+ example, entering these two lines:
+
+ .. code:: apdl
+
+ *VREAD,A(1,1),ARRAYVAL,,,IJK,10,2
+ (2F6.0)
+
+ will read two values from each line of file ARRAYVAL and assign the values to A(1,1), A(2,1),
+ A(3,1), etc. Reading continues until ``n1`` (10) successive row elements are filled. Once the
+ maximum row number is reached, subsequent data will be read into the next column (for example,
A(1,2), A(2,2), A(3,2), etc.)
- For numerical parameters, absolute values and scale factors may be
- applied to the result parameter [``*VABS``, ``*VFACT``]. Results may be
- cumulative [``*VCUM``]. See the ``*VOPER`` command for details. If you are in
- the GUI the ``*VREAD`` command must be contained in an externally prepared
- file read into the ANSYS program (i.e., ``*USE``, /INPUT, etc.).
+ For numerical parameters, absolute values and scale factors may be applied to the result parameter (
+ :ref:`vabs`, :ref:`vfact` ). Results may be cumulative ( :ref:`vcum` ). See the :ref:`voper` command
+ for details. If you are in the GUI the :ref:`vread` command must be contained in an externally
+ prepared file read into Mechanical APDL (that is, :ref:`use`, :ref:`input`, etc.).
This command is not applicable to 4- or 5-D arrays.
diff --git a/src/ansys/mapdl/core/_commands/apdl/process_controls.py b/src/ansys/mapdl/core/_commands/apdl/process_controls.py
index 1225b5cae53..64abfcb7493 100644
--- a/src/ansys/mapdl/core/_commands/apdl/process_controls.py
+++ b/src/ansys/mapdl/core/_commands/apdl/process_controls.py
@@ -22,25 +22,56 @@
class ProcessControls:
- def wait(self, dtime="", **kwargs):
- """APDL Command: /WAIT
- Causes a delay before the reading of the next command.
+ def starexit(self, **kwargs):
+ r"""Exits a do-loop.
+
+ Mechanical APDL Command: `\*EXIT `_
+
+ Notes
+ -----
+
+ .. _a-EXIT_notes:
+
+ The command following the ``*ENDDO`` is executed next. The exit option may also be conditional [Use
+ the ``*IF`` ]. The :ref:`starexit` command must appear on the same file as the ``*DO`` command.
+
+ This command is valid in any processor.
+ """
+ command = "*EXIT"
+ return self.run(command, **kwargs)
+
+ def wait(self, dtime: str = "", **kwargs):
+ r"""Causes a delay before the reading of the next command.
+
+ Mechanical APDL Command: `/WAIT `_
Parameters
----------
- dtime
+ dtime : str
Time delay (in seconds). Maximum time delay is 59 seconds.
Notes
-----
- You should consider using ``time.sleep(dtime)``
- The command following the /WAIT will not be processed until the
- specified wait time increment has elapsed. Useful when reading from a
- prepared input file to cause a pause, for example, after a display
- command so that the display can be reviewed for a period of time.
- Another "wait" feature is available via the ``*ASK`` command.
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ **Argument Descriptions**
+
+ .. _s-WAIT_argdescript:
+
+ * ``dtime : str`` - Time delay (in seconds). Maximum time delay is 59 seconds.
+
+ .. _s-WAIT_notes:
+
+ The command following the :ref:`wait` will not be processed until the specified wait time increment
+ has elapsed. Useful when reading from a prepared input file to cause a pause, for example, after a
+ display command so that the display can be reviewed for a period of time. Another "wait" feature is
+ available via the ``*ASK`` command.
This command is valid in any processor.
"""
diff --git a/src/ansys/mapdl/core/_commands/graphics_/__init__.py b/src/ansys/mapdl/core/_commands/aux12/__init__.py
similarity index 92%
rename from src/ansys/mapdl/core/_commands/graphics_/__init__.py
rename to src/ansys/mapdl/core/_commands/aux12/__init__.py
index a827eef7045..517df786683 100644
--- a/src/ansys/mapdl/core/_commands/graphics_/__init__.py
+++ b/src/ansys/mapdl/core/_commands/aux12/__init__.py
@@ -20,4 +20,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-from . import annotation, graphs, labeling, scaling, setup, style, views
+from . import (
+ general_radiation,
+ radiation_matrix_method,
+ radiosity_solver,
+)
diff --git a/src/ansys/mapdl/core/_commands/reduced/setup.py b/src/ansys/mapdl/core/_commands/aux12/general_radiation.py
similarity index 52%
rename from src/ansys/mapdl/core/_commands/reduced/setup.py
rename to src/ansys/mapdl/core/_commands/aux12/general_radiation.py
index 600617e9f8c..6c886108879 100644
--- a/src/ansys/mapdl/core/_commands/reduced/setup.py
+++ b/src/ansys/mapdl/core/_commands/aux12/general_radiation.py
@@ -21,46 +21,44 @@
# SOFTWARE.
-class Setup:
- def rmresume(self, fname="", ext="", **kwargs):
- """Resumes ROM data from a file.
+class GeneralRadiation:
- APDL Command: RMRESUME
+ def aux12(self, **kwargs):
+ r"""Enters the radiation processor.
- Parameters
- ----------
- fname
- Name and directory path of the ROM database file (248 character
- maximum). Default to Jobname.
-
- ext
- Extension of the ROM database file. Default to .rom.
+ Mechanical APDL Command: `/AUX12 `_
Notes
-----
- Distributed ANSYS Restriction: This command is not supported in
- Distributed ANSYS.
+
+ .. _s-AUX12_notes:
+
+ Enters the radiation processor (auxiliary processor AUX12). This processor supports the Radiation
+ Matrix and the Radiosity Solver methods.
+
+ This command is valid only at the Begin Level.
"""
- command = f"RMRESUME,{fname},{ext}"
+ command = "/AUX12"
return self.run(command, **kwargs)
- def rmsave(self, fname="", ext="", **kwargs):
- """Saves ROM data to file.
+ def stef(self, value: str = "", **kwargs):
+ r"""Specifies Stefan-Boltzmann radiation constant.
- APDL Command: RMSAVE
+ Mechanical APDL Command: `STEF `_
Parameters
----------
- fname
- Name and directory path of the ROM database file. Default to
- Jobname.
-
- ext
- Extension of the ROM database file. Default to .rom.
+ value : str
+ Stefan-Boltzmann constant (defaults to 0.119E-10 Btu/hr/in :sup:`2` / °R :sup:`4` ).
Notes
-----
- Distributed ANSYS Restriction: This command is not supported in
- Distributed ANSYS.
+
+ .. _STEF_notes:
+
+ You can use this command in the general preprocessor (PREP7) and in the Solution processor to
+ specify the Stefan-Boltzmann constant in analyses using the radiation matrix method or the radiosity
+ solver to model radiation.
"""
- return self.run(f"RMSAVE,{fname},{ext}", **kwargs)
+ command = f"STEF,{value}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12/radiation_matrix_method.py b/src/ansys/mapdl/core/_commands/aux12/radiation_matrix_method.py
new file mode 100644
index 00000000000..a69aa293608
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux12/radiation_matrix_method.py
@@ -0,0 +1,169 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class RadiationMatrixMethod:
+
+ def emis(self, mat: str = "", evalu: str = "", **kwargs):
+ r"""Specifies emissivity as a material property for the Radiation Matrix method.
+
+ Mechanical APDL Command: `EMIS `_
+
+ **Command default:**
+
+ .. _EMIS_default:
+
+ Since there is no :ref:`command default value for emissivity, you must issue `
+ :ref:`emis` to specify it. Otherwise, an error message appears. If you issue :ref:`emis` without
+ defining a numerical value, emissivity defaults to 0.
+
+ Parameters
+ ----------
+ mat : str
+ Material number associated with this emissivity (500 maximum). Defaults to 1.
+
+ evalu : str
+ Emissivity for this material (0.0 < ``EVALU`` :math:`equation not available` 1.0). Enter a
+ very small number for zero.
+
+ Notes
+ -----
+
+ .. _EMIS_notes:
+
+ Specifies emissivity as a material property for the Radiation Matrix method. This material property
+ can then be associated with each element.
+ """
+ command = f"EMIS,{mat},{evalu}"
+ return self.run(command, **kwargs)
+
+ def geom(self, k2d: int | str = "", ndiv: str = "", **kwargs):
+ r"""Defines the geometry specifications for the radiation matrix calculation.
+
+ Mechanical APDL Command: `GEOM `_
+
+ Parameters
+ ----------
+ k2d : int or str
+ Dimensionality key:
+
+ * ``0`` - 3D geometry (default)
+
+ * ``1`` - 2D geometry (plane or axisymmetric)
+
+ ndiv : str
+ Number of divisions in an axisymmetric model. Used only with ``K2D`` = 1. Defaults to 0 (2D
+ plane). The 2D model is internally expanded to a 3D model based on the number of divisions
+ specified (6 :math:`equation not available` ``NDIV`` :math:`equation not available` 90).
+ For example, ``NDIV`` of 6 is internally represented by six 60° sections.
+ """
+ command = f"GEOM,{k2d},{ndiv}"
+ return self.run(command, **kwargs)
+
+ def mprint(self, key: int | str = "", **kwargs):
+ r"""Specifies that radiation matrices are to be printed.
+
+ Mechanical APDL Command: `MPRINT `_
+
+ Parameters
+ ----------
+ key : int or str
+ Print key:
+
+ * ``0`` - Do not print matrices.
+
+ * ``1`` - Print matrices.
+
+ Notes
+ -----
+
+ .. _MPRINT_notes:
+
+ Specifies that the element and node radiation matrices are to be printed when the :ref:`write`
+ command is issued. If ``KEY`` = 1, form factor information for each element will also be printed.
+ """
+ command = f"MPRINT,{key}"
+ return self.run(command, **kwargs)
+
+ def space(self, node: str = "", **kwargs):
+ r"""Defines a space node for radiation using the Radiation Matrix method.
+
+ Mechanical APDL Command: `SPACE `_
+
+ Parameters
+ ----------
+ node : str
+ Node defined to be the space node.
+
+ Notes
+ -----
+
+ .. _SPACE_notes:
+
+ A space node is required in an open system to account for radiation losses.
+ """
+ command = f"SPACE,{node}"
+ return self.run(command, **kwargs)
+
+ def vtype(self, nohid: int | str = "", nzone: str = "", **kwargs):
+ r"""Specifies the viewing procedure used to determine the form factors for the Radiation Matrix method.
+
+ Mechanical APDL Command: `VTYPE `_
+
+ Parameters
+ ----------
+ nohid : int or str
+ Type of viewing procedure:
+
+ * ``0`` - Hidden procedure.
+
+ * ``1`` - Non-hidden (faster, but less general) procedure.
+
+ nzone : str
+ Number of sampling zones for the hidden procedure (100 maximum for 3D, 1000 maximum for 2D).
+ Defaults to 20 for 3D, 200 for 2D. Number of points is 2* ``NZONE`` for 2D and 2\* ``NZONE`` \*( ``NZONE`` +1) for 3D.
+ """
+ command = f"VTYPE,{nohid},{nzone}"
+ return self.run(command, **kwargs)
+
+ def write(self, fname: str = "", **kwargs):
+ r"""Writes the radiation matrix file.
+
+ Mechanical APDL Command: `WRITE `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name Defaults to :file:`Jobname`.
+
+ Notes
+ -----
+
+ .. _WRITE_notes:
+
+ Writes radiation matrix file ( :file:`File.SUB` ) for input to the substructure thermal "use" pass.
+ Subsequent :ref:`write` operations to the same file overwrite the file.
+ """
+ command = f"WRITE,{fname}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12/radiosity_solver.py b/src/ansys/mapdl/core/_commands/aux12/radiosity_solver.py
new file mode 100644
index 00000000000..c853b436e59
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux12/radiosity_solver.py
@@ -0,0 +1,216 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class RadiositySolver:
+
+ def vfco(self, action: str = "", encl: str = "", level: int | str = "", **kwargs):
+ r"""Controls the use and level of view factor condensation for symmetric radiation.
+
+ Mechanical APDL Command: `VFCO `_
+
+ Parameters
+ ----------
+ action : str
+ Action to be performed:
+
+ * ``DEFINE`` - Defines the level of view factor condensation (default).
+
+ * ``CLEAR`` - Resets the level of view factor condensation to 0 for all enclosures. All subsequent
+ arguments are ignored.
+
+ * ``STATUS`` - Outputs the ``LEVEL`` of view factor condensation for each enclosure in the model.
+
+ encl : str
+ Previously defined enclosure number for the view factor adjustment.
+
+ level : int or str
+ Key that controls the level of condensation used in calculating the view factor matrix for models
+ with symmetry. Efficiency gains increase with increasing values of ``LEVEL``.
+
+ * ``0`` - View factor condensation is turned off (default). The view factor matrix is calculated for
+ all facets, as described in.
+
+ * ``1`` - View factor condensation is turned on. With condensation on, view factors for dependent
+ facets are not calculated, which reduces solution time for models with symmetry. The view factor
+ matrix is calculated only for independent facets as described in. This option achieves better
+ efficiency than ``LEVEL`` = 0. Element NMISC data is written to the results file for both
+ independent and dependent facets. :ref:`get`,,RAD,,NETHF, which also uses element fluxes, is based
+ on independent and dependent facets.
+
+ * ``2`` - This option achieves even more efficiency gains than ``LEVEL`` = 1, but it requires more
+ memory and loses some information. Note that when ``LEVEL`` = 2 is used, dependent facets are
+ unselected, and no element NMISC data is written to the results file for dependent facets. The same
+ is true for :ref:`get`,,RAD,,NETHF, which also uses element fluxes and is based on independent
+ facets only.
+
+ Notes
+ -----
+
+ .. _VFCO_notes:
+
+ If view factor condensation is turned on ( :ref:`vfco`, ``ENCL``,1 or :ref:`vfco`, ``ENCL``,2):
+
+ * The dependent facets do not participate in the solution, and only the independent view factors are
+ calculated as described in.
+
+ * The problem is reduced to solving only for the independent radiosity flux as described in
+ `Radiosity Equations Simplified for Models with Symmetry
+ `_
+
+ * The :ref:`vfsm` command operates on the condensed view factor matrix.
+
+ :ref:`vfco` must be issued before the view factors are computed by issuing either :ref:`vfopt`,NEW
+ or :ref:`solve`.
+
+ **Example Usage**
+ `Example of a 3D Open Enclosure with Symmetry: Radiation Analysis with Condensed View Factor
+ Calculation
+ `_
+ """
+ command = f"VFCO,{action},{encl},{level}"
+ return self.run(command, **kwargs)
+
+ def vfquery(self, srcelem: str = "", tarelem: str = "", **kwargs):
+ r"""Queries and prints element Hemicube view factors and average view factor.
+
+ Mechanical APDL Command: `VFQUERY `_
+
+ Parameters
+ ----------
+ srcelem : str
+ Elements representing the source radiating surfaces used to query the view factor at the target
+ element(s). If ``SRCELEM`` = P, graphical picking is enabled (valid only in the GUI). If
+ ``SRCELEM`` = ALL, all selected elements will have their view factors queried. A component name
+ may also be substituted for ``SRCELEM``. Selected elements must be flagged for surface to
+ surface radiation in order to query view factors ( :ref:`sf`, :ref:`sfa`, or :ref:`sfe` with Lab
+ = RDSF). The view factors must have been previously computed.
+
+ tarelem : str
+ Element for view factor query. If ``TARELEM`` = P, graphical picking is enabled (valid only in
+ the GUI). If ``TARELEM`` = ALL, all selected elements will have their view factors queried. A
+ component name may also be substituted for ``TARELEM``. Selected elements must be flagged for
+ surface to surface radiation in order to query view factors ( :ref:`sf`, :ref:`sfa`, or
+ :ref:`sfe` with Lab = RDSF). The view factors must have been previously computed.
+
+ Notes
+ -----
+
+ .. _VFQUERY_notes:
+
+ View factors for each target element will be printed.
+
+ An average view factor for all target elements will be computed. (Use :ref:`get` to retrieve the
+ average value).
+
+ When resuming a database, issue the command :ref:`vfopt`,READ before issuing the :ref:`vfquery`
+ command.
+ """
+ command = f"VFQUERY,{srcelem},{tarelem}"
+ return self.run(command, **kwargs)
+
+ def vfsm(
+ self,
+ action: str = "",
+ encl: str = "",
+ opt: int | str = "",
+ maxiter: str = "",
+ conv: str = "",
+ **kwargs,
+ ):
+ r"""Adjusts view factor matrix to satisfy reciprocity and/or row sum properties.
+
+ Mechanical APDL Command: `VFSM `_
+
+ Parameters
+ ----------
+ action : str
+ Action to be performed:
+
+ * ``DEFINE`` - Define a view factor summation (default)
+
+ * ``CLEAR`` - Resets the scaling method to 0 for all enclosures. All subsequent arguments are
+ ignored.
+
+ * ``STATUS`` - Outputs the ``OPT`` value for each enclosure in the model.
+
+ encl : str
+ Previously defined enclosure number for the view factor adjustment.
+
+ opt : int or str
+ Option key:
+
+ * ``0`` - The view factor matrix values are not adjusted (default).
+
+ * ``1`` - The view factor matrix values are adjusted so that the row sum equals 1.0.
+
+ * ``2`` - The view factor matrix values are adjusted so that the row sum equals 1.0 and the
+ reciprocity relationship is satisfied.
+
+ * ``3`` - The view factor matrix values are adjusted so that the reciprocity relationship is
+ satisfied.
+
+ * ``4`` - The view factor matrix values are adjusted so that the original row sum is maintained and
+ the reciprocity relationship is satisfied.
+
+ maxiter : str
+ Maximum number of iterations to achieve convergence. Valid only when ``OPT`` = 2 or 4. Default
+ is 100.
+
+ conv : str
+ Convergence value for row sum. Iterations will continue (up to ``MAXITER`` ) until the maximum
+ residual over all the rows is less than this value. Valid only when ``OPT`` = 2 or 4. Default is
+ 1E-3.
+
+ Notes
+ -----
+
+ .. _VFSM_notes:
+
+ To have a good energy balance, it is important to satisfy both the row sum and reciprocity
+ relationships. For more information, see `View Factors
+ `_
+ in the `Mechanical APDL Theory Reference
+ `_.
+
+ ``OPT`` = 1 and 2 are suitable for perfect enclosures. ``OPT`` = 1 is less expensive than ``OPT`` =
+ 2 because no iterations are involved. However, with ``OPT`` = 1, the reciprocity relationship is not
+ satisfied.
+
+ ``OPT`` = 3 and 4 are suitable for leaky enclosures. ``OPT`` = 3 is less expensive than ``OPT`` = 4
+ because no iterations are involved. However, with ``OPT`` = 3, the original row sum is not
+ maintained.
+
+ The :ref:`vfsm` command must be used before :ref:`vfopt` is issued, or Solve is initiated.
+
+ While the primary purpose of the :ref:`vfsm` command is to adjust the viewfactor matrix to satisfy
+ reciprocity and rowsum properties, a side effect of this command is that the model could flip from
+ being an imperfect to a perfect enclosure and the space node ignored if the rowsum becomes 1.0. The
+ program's check for an imperfect enclosure is not based geometry, but rather on the value of the
+ rowsum of all rows of the enclosure view factor matrix. A rowsum close to 1.0 is deemed a perfect
+ enclosure; otherwise, it is an imperfect enclosure, which requires you to define a spacenode. It is
+ important to be aware that the :ref:`vfsm` command can affect the `view factor
+ `_
+ rowsum and potentially also whether the enclosure is treated as an imperfect or perfect enclosure.
+ """
+ command = f"VFSM,{action},{encl},{opt},{maxiter},{conv}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12_/general_radiation.py b/src/ansys/mapdl/core/_commands/aux12_/general_radiation.py
deleted file mode 100644
index b2bfdf0d674..00000000000
--- a/src/ansys/mapdl/core/_commands/aux12_/general_radiation.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class GeneralRadiation:
- def stef(self, value="", **kwargs):
- """Specifies Stefan-Boltzmann radiation constant.
-
- APDL Command: STEF
-
- Parameters
- ----------
- value
- Stefan-Boltzmann constant (defaults to 0.119E-10 Btu/hr/in2/ °R4).
-
- Notes
- -----
- You can use this command in the general preprocessor (PREP7) and in the
- Solution processor to specify the Stefan-Boltzmann constant in analyses
- using the radiation matrix method or the radiosity solver to model
- radiation.
- """
- command = f"STEF,{value}"
- return self.run(command, **kwargs)
-
- def toffst(self, value="", **kwargs):
- """Specifies the temperature offset from absolute zero to zero.
-
- APDL Command: TOFFST
-
- Parameters
- ----------
- value
- Degrees between absolute zero and zero of temperature system used
- (should be positive).
-
- Notes
- -----
- Specifies the difference (in degrees) between absolute zero and the
- zero of the temperature system used. Absolute temperature values are
- required in evaluating certain expressions, such as for creep,
- swelling, radiation heat transfer, MASS71, etc. (The offset
- temperature is not used in evaluating emissivity.) Examples are 460°
- for the Fahrenheit system and 273° for the Celsius system. The offset
- temperature is internally included in the element calculations and does
- not affect the temperature input or output. If used in SOLUTION, this
- command is valid only within the first load step.
-
- This command is also valid in PREP7.
- """
- command = f"TOFFST,{value}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12_/radiation_mat.py b/src/ansys/mapdl/core/_commands/aux12_/radiation_mat.py
deleted file mode 100644
index 7be6c4c4123..00000000000
--- a/src/ansys/mapdl/core/_commands/aux12_/radiation_mat.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class RadiationMat:
- def emis(self, mat="", evalu="", **kwargs):
- """Specifies emissivity as a material property for the Radiation Matrix
-
- APDL Command: EMIS
- method.
-
- Parameters
- ----------
- mat
- Material number associated with this emissivity (500 maximum).
- Defaults to 1.
-
- evalu
- Emissivity for this material (0.0 < EVALU 1.0). Enter a very
- small number for zero.
-
- Notes
- -----
- Specifies emissivity as a material property for the Radiation Matrix
- method. This material property can then be associated with each
- element.
- """
- command = f"EMIS,{mat},{evalu}"
- return self.run(command, **kwargs)
-
- def geom(self, k2d="", ndiv="", **kwargs):
- """Defines the geometry specifications for the radiation matrix
-
- APDL Command: GEOM
- calculation.
-
- Parameters
- ----------
- k2d
- Dimensionality key:
-
- 0
- 3-D geometry (default)
-
- 1
- 2-D geometry (plane or axisymmetric)
-
- ndiv
- Number of divisions in an axisymmetric model. Used only with K2D =
- 1. Defaults to 0 (2-D plane). The 2-D model is internally
- expanded to a 3-D model based on the number of divisions specified
- (6 NDIV 90). For example, NDIV of 6 is internally represented
- by six 60° sections.
- """
- command = f"GEOM,{k2d},{ndiv}"
- return self.run(command, **kwargs)
-
- def mprint(self, key="", **kwargs):
- """Specifies that radiation matrices are to be printed.
-
- APDL Command: MPRINT
-
- Parameters
- ----------
- key
- Print key:
-
- 0
- Do not print matrices.
-
- 1
- Print matrices.
-
- Notes
- -----
- Specifies that the element and node radiation matrices are to be
- printed when the WRITE command is issued. If KEY = 1, form factor
- information for each element will also be printed.
- """
- command = f"MPRINT,{key}"
- return self.run(command, **kwargs)
-
- def space(self, node="", **kwargs):
- """Defines a space node for radiation using the Radiation Matrix method.
-
- APDL Command: SPACE
-
- Parameters
- ----------
- node
- Node defined to be the space node.
-
- Notes
- -----
- A space node is required in an open system to account for radiation
- losses.
-
- If using SPACE with the ANSYS Multi-field solver (MFS), you must
- capture this command in the command file using MFCMMAND. This step is
- necessary because at the end of each field computation, this command is
- unset.
- """
- command = f"SPACE,{node}"
- return self.run(command, **kwargs)
-
- def vtype(self, nohid="", nzone="", **kwargs):
- """Specifies the viewing procedure used to determine the form factors for
-
- APDL Command: VTYPE
- the Radiation Matrix method.
-
- Parameters
- ----------
- nohid
- Type of viewing procedure:
-
- 0
- Hidden procedure.
-
- 1
- Non-hidden (faster, but less general) procedure.
-
- nzone
- Number of sampling zones for the hidden procedure (100 maximum for
- 3-D, 1000 maximum for 2-D). Defaults to 20 for 3-D, 200 for 2-D.
- Number of points is ``2*NZONE`` for 2-D and ``2*NZONE*(NZONE+1)`` for 3-D.
- """
- command = f"VTYPE,{nohid},{nzone}"
- return self.run(command, **kwargs)
-
- def write(self, fname="", **kwargs):
- """Writes the radiation matrix file.
-
- APDL Command: WRITE
-
- Parameters
- ----------
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- Notes
- -----
- Writes radiation matrix file (File.SUB) for input to the substructure
- thermal "use" pass. Subsequent WRITE operations to the same file
- overwrite the file.
- """
- command = f"WRITE,{fname}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12_/radiosity_solver.py b/src/ansys/mapdl/core/_commands/aux12_/radiosity_solver.py
deleted file mode 100644
index 3d96a7bc6b2..00000000000
--- a/src/ansys/mapdl/core/_commands/aux12_/radiosity_solver.py
+++ /dev/null
@@ -1,475 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class RadiositySolver:
- def hemiopt(self, hres="", tolerance="", **kwargs):
- """Specifies options for Hemicube view factor calculation.
-
- APDL Command: HEMIOPT
-
- Parameters
- ----------
- hres
- Hemicube resolution. Increase value to increase the accuracy of
- the view factor calculation. Defaults to 10.
-
- tolerance
- Tolerance value that controls whether or not facets are subdivided in view factor calculations to increase view factor accuracy. TOLERANCE is closely related to the spacing between facets. Defaults to 1e-6.
- """
- command = f"HEMIOPT,{hres},{tolerance}"
- return self.run(command, **kwargs)
-
- def radopt(
- self,
- fluxtol="",
- solver="",
- maxiter="",
- toler="",
- overrlex="",
- maxfluxiter="",
- **kwargs,
- ):
- """Specifies Radiosity Solver options.
-
- APDL Command: RADOPT
-
- Parameters
- ----------
- fluxtol
- Convergence tolerance for radiation flux. Defaults to 0.0001. This
- value is a relative tolerance.
-
- solver
- Choice of solver for radiosity calculation:
-
- 0
- Gauss-Seidel iterative solver (default).
-
- 1
- Direct solver.
-
- 2
- Jacobi solver.
-
- maxiter
- Maximum number of iterations for iterative solver (SOLVER = 0 or
- 2). Defaults to 1000.
-
- toler
- Convergence tolerance for the iterative solver (SOLVER = 0 or 2).
- Defaults to 0.1.
-
- overrlex
- Over-relaxation factor applied to the iterative solver (SOLVER = 0
- or 2). Defaults to 0.1.
-
- maxfluxiter
- Maximum number of flux iterations to be performed according to the
- specified solver type:
-
- 0
- If the FULL solver is specified (``THOPT,FULL``), convergence
- criteria are monitored and iterations are performed until
- convergence occurs. If the QUASI solver is specified
- (``THOPT,QUASI``), convergence criteria are ignored and one
- iteration is performed. This value is the default.
-
- 1, 2, 3, ...N
- If the FULL solver is specified (``THOPT,FULL``), convergence
- criteria are monitored and iterations are performed until
- convergence occurs, or until the specified number of iterations
- has been completed, whichever comes first. If the QUASI solver
- is specified (``THOPT,QUASI``), convergence criteria are ignored and
- the specified number of iterations are completed.
-
- Notes
- -----
- The radiation heat flux is linearized, resulting in robust convergence.
-
- The radiation flux norm for FLUXTOL is expressed as:
-
- where i is the pass or iteration number and j is the surface facet for
- radiation.
-
- For a sufficiently small absolute tolerance value, relative tolerance
- converges in fewer iterations than absolute tolerance. For a
- sufficiently large absolute tolerance value, relative tolerance may
- cause convergence difficulties.
-
- For more information about FLUXTOL and MAXFLUXITER usage, see Figure:
- 3.5:: FULL Solution Method When Radiosity Is Present and Figure: 3.6::
- QUASI Solution Method When Radiosity Is Present in the Thermal Analysis
- Guide.
-
- In Figure: 3.5:: FULL Solution Method When Radiosity Is Present and
- Figure: 3.6:: QUASI Solution Method When Radiosity Is Present (under
- Solving for Temperature and Radiosity in the Thermal Analysis Guide),
- refer to the KQQ = FQ equation system via the iterative method:
-
- If TOLER ≥ 0, the iterative solver is converged for maximum value over
- a different j as shown:
-
- If TOLER < 0, the iterative solver is converged for maximum value over
- a different j as shown:
-
- where:
-
- The Jacobi solver (SOLVER = 2) is suitable when using Distributed
- ANSYS. This option is only available for 3-D models; if SOLVER is set
- to 2 for a 2-D analysis, the Gauss-Seidel iterative solver (SOLVER = 0)
- is used.
- """
- command = (
- f"RADOPT,,{fluxtol},{solver},{maxiter},{toler},{overrlex},,,,,{maxfluxiter}"
- )
- return self.run(command, **kwargs)
-
- def spcnod(self, encl="", node="", **kwargs):
- """Defines a space node for radiation using the Radiosity method.
-
- APDL Command: SPCNOD
-
- Parameters
- ----------
- encl
- Radiating surface enclosure number. Defaults to 1. If ENCL = STAT,
- the command lists all enclosure space nodes. If ENCL = DELE, the
- command deletes all enclosure space nodes.
-
- node
- Node defined to be the space node.
-
- Notes
- -----
- For open systems, an enclosure may radiate to a space node (NODE).
-
- Open systems may be characterized by one or more enclosures (ENCL).
- Each enclosure may radiate to a different space node (NODE).
-
- For a space node that is not part of the finite element model, specify
- the temperature using the D command. For the first load step, the space
- node temperature ramps from the uniform temperature specified by the
- TUNIF command to the temperature specified by the D command. For
- subsequent load steps, it ramps from the previous value of the space
- node temperature. For intermediate load steps, use the SPCNOD,DELETE
- command and specify the space node temperature again to ramp from the
- uniform temperature.
-
- For a space node that is part of the finite element model, the
- temperature is that calculated during the finite element solution.
- """
- command = f"SPCNOD,{encl},{node}"
- return self.run(command, **kwargs)
-
- def spctemp(self, encl="", temp="", **kwargs):
- """Defines a free-space ambient temperature for radiation using the
-
- APDL Command: SPCTEMP
- Radiosity method.
-
- Parameters
- ----------
- encl
- Radiating surface enclosure number. Defaults to 1. If ENCL = STAT,
- the command lists all enclosure space temperatures. If ENCL =
- DELE, the command deletes all enclosure space temperatures.
-
- temp
- Temperature of free-space in the reference temperature system. The
- temperature will be offset by the value specified in the TOFFST
- command for internal calculations.
-
- Notes
- -----
- For open systems, an enclosure may radiate to the free-space ambient
- temperature (TEMP).
-
- Open systems may be characterized by one or more enclosures (ENCL).
- Each enclosure may radiate to a different free-space ambient
- temperature (TEMP).
-
- For the first load step, the space temperature ramps from the uniform
- temperature specified by the TUNIF command to the temperature specified
- by the SPCTEMP command. For subsequent load steps, it ramps from the
- previous value of the space temperature. For intermediate load steps,
- use the SPCTEMP,DELETE command and specify the space temperature again
- to ramp from the uniform temperature.
-
- If using SPCTEMP with the ANSYS Multi-field solver (MFS), you must
- capture this command in the command file using MFCMMAND. This step is
- necessary because at the end of each field computation, this command is
- unset.
- """
- command = f"SPCTEMP,{encl},{temp}"
- return self.run(command, **kwargs)
-
- def v2dopt(self, geom="", ndiv="", hidopt="", nzone="", **kwargs):
- """Specifies 2-D/axisymmetric view factor calculation options.
-
- APDL Command: V2DOPT
-
- Parameters
- ----------
- geom
- Choice of geometry:
-
- 0
- Planar (default).
-
- 1
- Axisymmetric
-
- ndiv
- Number of divisions for axisymmetric geometry (that is, the number
- of circumferential segments). Default is 20. Maximum is 90.
-
- hidopt
- Viewing option:
-
- 0
- Hidden (default).
-
- 1
- Non-hidden
-
- nzone
- Number of zones (that is, the number of rays emanating from a
- surface) for view factor calculation. Default is 200. Maximum is
- 1000.
- """
- command = f"V2DOPT,{geom},{ndiv},{hidopt},{nzone}"
- return self.run(command, **kwargs)
-
- def vfsm(self, action="", encl="", opt="", maxiter="", conv="", **kwargs):
- """Adjusts view factor matrix to satisfy reciprocity and/or
- row sum properties.
-
- APDL Command: VFSM
-
- Parameters
- ----------
- action
- Action to be performed:
-
- Define
- Define a view factor summation (default)
-
- Clear
- Resets the scaling method to 0 for all
- enclosures. All subsequent arguments are ignored.
-
- Status
- Outputs the OPT value for each enclosure in the model.
-
- encl
- Previously defined enclosure number for the view factor adjustment.
-
- opt
- Option key:
-
- 0
- The view factor matrix values are not adjusted (default).
-
- 1
- The view factor matrix values are adjusted so that the
- row sum equals 1.0.
-
- 2
- The view factor matrix values are adjusted so that the
- row sum equals 1.0 and the reciprocity relationship is
- satisfied.
-
- 3
- The view factor matrix values are adjusted so that the
- original row sum is maintained.
-
- 4
- The view factor matrix values are adjusted so that the
- original row sum is maintained and the reciprocity
- relationship is satisfied.
-
- maxiter
- Maximum number of iterations to achieve convergence. Valid only
- when OPT = 2 or 4. Default is 100.
-
- conv
- Convergence value for row sum. Iterations will continue (up to
- MAXITER) until the maximum residual over all the rows is less than
- this value. Valid only when OPT = 2 or 4. Default is 1E-3.
-
- Notes
- -----
- To have a good energy balance, it is important to satisfy both the row
- sum and reciprocity relationships. For more information, see View
- Factors in the Mechanical APDL Theory Reference.
-
- OPT = 1 and 2 are suitable for perfect enclosures. OPT = 1 is less
- expensive than OPT = 2 because no iterations are involved. However,
- with OPT = 1, the reciprocity relationship is not satisfied.
-
- OPT = 3 and 4 are suitable for leaky enclosures. OPT = 3 is less
- expensive than OPT = 4 because no iterations are involved. However,
- with OPT = 3, the reciprocity relationship is not satisfied.
-
- The VFSM command must be used before VFOPT is issued, or Solve is
- initiated.
- """
- command = f"VFSM,{action},{encl},{opt},{maxiter},{conv}"
- return self.run(command, **kwargs)
-
- def vfopt(
- self,
- opt="",
- filename="",
- ext="",
- dir_="",
- filetype="",
- fileformat="",
- **kwargs,
- ):
- """Specifies options for the view factor file and calculates view factors.
-
- APDL Command: VFOPT
-
- Parameters
- ----------
- opt
- View factor option:
-
- NEW
- Calculate view factors and write them to a file.
-
- OFF
- Do not recalculate view factors it they already exist in the database,
- otherwise calculate compute them. This option is the default
- behavior.
-
- READ
- Read view factors from a binary file. For subsequent SOLVE commands, switch to
- the default option (OFF).
-
- NONE
- Do not write view factors to a file.
-
- fname
- File name for view factor matrix. Default = Jobname.
-
- ext
- Filename extension for view factor matrix. Default = .vf.
-
- dir\\_
- Directory path for view factor matrix. If you do not specify a
- directory path, it will default to your working directory.
-
- filetype
- View factor file type:
-
- BINA
- Binary (default).
-
- ASCI
- ASCII.
-
- fileformat
- Format for the specified Filetype:
-
- Binary files (Filetype = BINA):
-
- 0
- No compression. (View factor file size may be very large.)
-
- 1
- Zeroes are compressed out. (Useful for large models to reduce
- the view factor file size.)
-
- ASCII files (Filetype = ASCI):
-
- 0
- 10F7.4 (low precision, lower accuracy).
-
- 1
- 7F11.8 (high precision, higher accuracy).
-
- Notes
- -----
- The VFOPT command allows you to deactivate the view factor computation
- (Opt = OFF) if the view factors already exist in the database. The
- default behavior is OFF upon encountering the second and subsequent
- SOLVE commands in the solution processor.
-
- When Opt = READ, only a previously calculated view factor binary file
- is valid.
-
- For 3-D analyses, two options are available for calculating view
- factors when running Distributed ANSYS:
-
- Issue a SOLVE command -- View factors are calculated in parallel mode
- if no view factors were previously calculated.
-
- Issue a VFOPT,NEW command -- View factors are calculated in serial
- mode.
-
- For 2-D analyses, view factors are calculated in serial mode.
- """
- command = f"VFOPT,{opt},{filename},{ext},{dir_},{filetype},{fileformat}"
- return self.run(command, **kwargs)
-
- def vfquery(self, srcelem="", tarelem="", wropt="", **kwargs):
- """Queries and prints element Hemicube view factors and average view
-
- APDL Command: VFQUERY
- factor.
-
- Parameters
- ----------
- srcelem
- Elements representing the source radiating surfaces used to query
- the view factor at the target element(s). If SRCELEM = P, graphical
- picking is enabled (valid only in the GUI). If SRCELEM = ALL, all
- selected elements will have their view factors queried. A component
- name may also be substituted for SRCELEM. Selected elements must be
- flagged for surface to surface radiation in order to query view
- factors (SF, SFA, or SFE with Lab = RDSF). The view factors must
- have been previously computed.
-
- tarelem
- Element for view factor query. If TARELEM = P, graphical picking is
- enabled (valid only in the GUI). If TARELEM = ALL, all selected
- elements will have their view factors queried. A component name may
- also be substituted for TARELEM. Selected elements must be flagged
- for surface to surface radiation in order to query view factors
- (SF, SFA, or SFE with Lab = RDSF). The view factors must have been
- previously computed.
-
- Notes
- -----
- View factors for each target element will be printed.
-
- An average view factor for all target elements will be computed. (Use
- ``*GET`` to retrieve the average value).
-
- When resuming a database, issue the command VFOPT,READ before issuing
- the VFQUERY command.
- """
- command = f"VFQUERY,{srcelem},{tarelem},,{wropt}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/display_/__init__.py b/src/ansys/mapdl/core/_commands/aux15/__init__.py
similarity index 97%
rename from src/ansys/mapdl/core/_commands/display_/__init__.py
rename to src/ansys/mapdl/core/_commands/aux15/__init__.py
index 737c36038cc..483a9e20579 100644
--- a/src/ansys/mapdl/core/_commands/display_/__init__.py
+++ b/src/ansys/mapdl/core/_commands/aux15/__init__.py
@@ -20,4 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-from . import setup
+from . import (
+ iges,
+)
diff --git a/src/ansys/mapdl/core/_commands/aux15/iges.py b/src/ansys/mapdl/core/_commands/aux15/iges.py
new file mode 100644
index 00000000000..fbe4df4a7f3
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux15/iges.py
@@ -0,0 +1,176 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class Iges:
+
+ def aux15(self, **kwargs):
+ r"""Enters the IGES file transfer processor.
+
+ Mechanical APDL Command: `/AUX15 `_
+
+ Notes
+ -----
+
+ .. _s-AUX15_notes:
+
+ Enters the IGES file-transfer processor (auxiliary processor AUX15), used to read an IGES data file
+ into the Mechanical APDL program.
+
+ This command is valid only at the Begin Level.
+ """
+ command = "/AUX15"
+ return self.run(command, **kwargs)
+
+ def igesin(self, fname: str = "", ext: str = "", **kwargs):
+ r"""Transfers IGES data from a file into Mechanical APDL.
+
+ Mechanical APDL Command: `IGESIN `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to :file:`Jobname`.
+
+ ext : str
+ Filename extension (eight-character maximum). The extension defaults to CAD if ``Fname`` is
+ blank.
+
+ Notes
+ -----
+
+ .. _IGESIN_notes:
+
+ Reads a file containing IGES data and transfers it into the Mechanical APDL database. The file
+ transferred
+ is the IGES Version 5.1, ASCII format file. IGES (Initial Graphics Exchange Specification) is a
+ neutral format developed by the U.S. Dept. of Commerce, National Institute of Standards and
+ Technology. No output transfer file is written because the transferred data is read directly into
+ the Mechanical APDL database.
+
+ You can import multiple files into a single database, but you must use the same import option (set
+ with the :ref:`ioptn` command) for each file.
+
+ The :ref:`ioptn` command sets the parameters for reading the file. Files read via the SMOOTH method
+ (the only available method) use the standard database.
+ """
+ command = f"IGESIN,{fname},{ext}"
+ return self.run(command, **kwargs)
+
+ def ioptn(self, lab: str = "", val1: str = "", **kwargs):
+ r"""Controls options relating to importing a model.
+
+ Mechanical APDL Command: `IOPTN `_
+
+ Parameters
+ ----------
+ lab : str
+ Label identifying the import option. The meaning of ``VAL1`` varies depending on ``Lab``.
+
+ * ``STAT`` - List overall status of import facilities, including current option values. ``VAL1`` is
+ ignored.
+
+ * ``DEFA`` - Set default values for all import options. ``VAL1`` is ignored.
+
+ * ``MERG`` - Entity merge option. ``VAL1`` can be:
+
+ * ``YES`` - Automatic merging is performed (default).
+
+ * ``NO`` - No merging of entities.
+
+ * ``SOLID`` - Solid option. ``VAL1`` can be:
+
+ * ``YES`` - Solid is created automatically (default).
+
+ * ``NO`` - No solid created.
+
+ * ``GTOLER`` - Entity merging tolerance. If IGES = SMOOTH, the GTOLER, ``VAL1`` can be:
+
+ * ``DEFA`` - Use system defaults (default).
+
+ * ``FILE`` - Use tolerance from the imported file.
+
+ * ``n`` - A user-specified tolerance value.
+
+ * ``IGES`` - IGES import option. ``VAL1`` can be:
+
+ * ``STAT`` - List status of IGES related options in the output window.
+
+ * ``SMOOTH (or RV52)`` - Use more robust IGES revision 5.2 import function (default).
+
+ * ``SMALL`` - Small areas option. ``VAL1`` can be:
+
+ * ``YES`` - Small areas are deleted (default).
+
+ * ``NO`` - Small areas are retained.
+
+ val1 : str
+ Additional input value as described under each ``Lab`` option.
+
+ Notes
+ -----
+
+ .. _IOPTN_notes:
+
+ Controls various options during a model file transfer. A global solid model tolerance (GTOLER) can
+ be specified.
+
+ The SMALL,YES option (default) delete small areas and can cause geometrical inconsistencies that
+ could cause the import process to abort. Retaining the small areas increases processor time and
+ memory usage.
+
+ The data is stored in the standard Mechanical APDL graphics database.
+
+ The IGES,SMOOTH (default) option is capable of reading in any rational B-spline curve entity (type
+ 126), or rational B-spline surface entity (type 128) with a degree less than or equal to 20.
+ Attempts to read in B-spline curve or surface entities of degree higher than 20 may result in error
+ messages.
+
+ If you issue the ``/CLEAR`` command, the :ref:`ioptn` settings return to their defaults.
+
+ For MERG,YES, merging of coincident geometry items is performed automatically when the :ref:`igesin`
+ command is issued (that is, an internal :ref:`nummrg`,KP command is issued). The model is merged
+ with the consideration tolerance ( ``TOLER`` on :ref:`nummrg` ) set equal to 0.75 * the shortest
+ distance between the endpoints of any active line. See the :ref:`nummrg` command for more
+ information about the tolerances. In most cases, the default merging is appropriate. Use the
+ :ref:`ioptn` command when you want to:
+
+ * Disable merging operations.
+
+ * Override the default merging and specify a global solid model tolerance value (GTOLER).
+
+ * Disable the automatic creation of solids (SOLID).
+
+ The :ref:`ioptn` command should be issued before the :ref:`igesin` command. You cannot change these
+ options after your model has been imported or created. If you must change the options: Clear the
+ database ( ``/CLEAR`` ) or exit and restart the program.
+
+ Set the correct options.
+
+ Reimport or recreate the model.
+
+ This command is valid in any processor.
+ """
+ command = f"IOPTN,{lab},{val1}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux15_.py b/src/ansys/mapdl/core/_commands/aux15_.py
deleted file mode 100644
index c9396074a2a..00000000000
--- a/src/ansys/mapdl/core/_commands/aux15_.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class Aux15:
- def igesin(self, fname="", ext="", **kwargs):
- """Transfers IGES data from a file into MAPDL.
-
- APDL Command: IGESIN
-
- Parameters
- ----------
- fname : str
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path). An
- unspecified directory path defaults to the working directory;
- in this case, you can use all 248 characters for the file
- name. The file name defaults to JOBNAME
-
- ext : str
- Filename extension (eight-character maximum). This is
- optional and the extension can be included in the ``fname``
- parameter. The extension defaults to CAD if ``fname`` is
- blank.
-
- Notes
- -----
- Reads a file containing IGES data and transfers it into the ANSYS
- database. The file transferred is the IGES Version 5.1, ASCII
- format file. IGES (Initial Graphics Exchange Specification) is a
- neutral format developed by the U.S. Dept. of Commerce, National
- Institute of Standards and Technology. There is no output
- transfer file written since the transferred data is read directly
- into the MAPDL database.
-
- You can import multiple files into a single database, but you must
- use the same import option (set with the IOPTN command) for each
- file.
-
- The IOPTN command sets the parameters for reading the file. Files
- read via the SMOOTH method (the only available method) use the
- standard database.
-
- Examples
- --------
- Read in an IGES file in the current MAPDL directory.
-
- >>> mapdl.igesin('bracket.iges')
-
- Read in an example IGES file
-
- >>> from ansys.mapdl.core import examples
- >>> bracket_file = examples.download_bracket()
- >>> mapdl.igesin(bracket_file)
-
- Read in a igesfile from a full path
-
- >>> mapdl.igesin('C:\\Users\\user\\bracket.iges)
-
- """
- return self.run(f"IGESIN,{fname},{ext}", **kwargs)
-
- def ioptn(self, lab="", val1="", **kwargs):
- """Controls options relating to importing a model.
-
- APDL Command: IOPTN
-
- Parameters
- ----------
- lab
- Label identifying the import option. The meaning of VAL1 varies
- depending on Lab.
-
- STAT
- List overall status of import facilities, including current option values.
- VAL1 is ignored.
-
- DEFA
- Set default values for all import options. VAL1is ignored.
-
- MERG
- Entity merge option. VAL1 can be:
-
- YES
- Automatic merging is performed (default).
-
- NO
- No merging of entities.
-
- SOLID
- Solid option. VAL1 can be:
-
- YES
- Solid is created automatically (default).
-
- NO
- No solid created.
-
- GTOLER
- Entity merging tolerance. If IGES = SMOOTH, the GTOLER,VAL1 can be:
-
- DEFA
- Use system defaults (default).
-
- FILE
- Use tolerance from the imported file.
-
- n
- A user-specified tolerance value.
-
- IGES
- IGES import option. VAL1 can be:
-
- STAT
- List status of IGES related options in the output window.
-
- SMOOTH (or RV52)
- Use more robust IGES revision 5.2 import function (default).
-
- SMALL
- Small areas option. VAL1 can be:
-
- YES
- Small areas are deleted (default).
-
- NO
- Small areas are retained.
-
- val1
- Additional input value as described under each Lab option.
-
- Notes
- -----
- Controls various options during a model file transfer. A global solid
- model tolerance (GTOLER) can be specified.
-
- The SMALL,YES option (default) delete small areas and can cause
- geometrical inconsistencies that could cause the import process to
- abort. Retaining the small areas increases processor time and memory
- usage.
-
- The data is stored in the standard ANSYS graphics database.
-
- The IGES,SMOOTH (default) option is capable of reading in any rational
- B-spline curve entity (type 126), or rational B-spline surface entity
- (type 128) with a degree less than or equal to 20. Attempts to read in
- B-spline curve or surface entities of degree higher than 20 may result
- in error messages.
-
- If you issue the /CLEAR command, the IOPTN settings return to their
- defaults.
-
- For MERG,YES, merging of coincident geometry items is performed
- automatically when the IGESIN command is issued (that is, an internal
- NUMMRG,KP command is issued). The model is merged with the
- consideration tolerance (TOLER on NUMMRG) set equal to 0.75 * the
- shortest distance between the endpoints of any active line. See the
- NUMMRG command for more information about the tolerances. In most
- cases, the default merging is appropriate. Use the IOPTN command when
- you want to:
-
- Disable merging operations.
-
- Override the default merging and specify a global solid model tolerance
- value (GTOLER).
-
- Disable the automatic creation of solids (SOLID).
-
- The IOPTN command should be issued before the IGESIN command. You
- cannot change these options after your model has been imported or
- created. If you must change the options:
-
- Clear the database (/CLEAR) or exit and restart the program.
-
- Set the correct options.
-
- Reimport or recreate the model.
-
- This command is valid in any processor.
- """
- command = f"IOPTN,{lab},{val1}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux12_/__init__.py b/src/ansys/mapdl/core/_commands/aux2/__init__.py
similarity index 94%
rename from src/ansys/mapdl/core/_commands/aux12_/__init__.py
rename to src/ansys/mapdl/core/_commands/aux2/__init__.py
index 4c7a98ae017..792a0c15152 100644
--- a/src/ansys/mapdl/core/_commands/aux12_/__init__.py
+++ b/src/ansys/mapdl/core/_commands/aux2/__init__.py
@@ -20,4 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-from . import general_radiation, radiation_mat, radiosity_solver
+from . import (
+ binary_file_dump,
+ binary_file_manipulation,
+)
diff --git a/src/ansys/mapdl/core/_commands/aux2/binary_file_dump.py b/src/ansys/mapdl/core/_commands/aux2/binary_file_dump.py
new file mode 100644
index 00000000000..106680a4153
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux2/binary_file_dump.py
@@ -0,0 +1,159 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class BinaryFileDump:
+
+ def aux2(self, **kwargs):
+ r"""Enters the binary file dumping processor.
+
+ Mechanical APDL Command: `/AUX2 `_
+
+ Notes
+ -----
+
+ .. _s-AUX2_notes:
+
+ Enters the binary file-dumping processor (auxiliary processor AUX2), used for dumping the contents
+ of certain Mechanical APDL binary files for visual examination.
+
+ This command is valid only at the Begin Level.
+ """
+ command = "/AUX2"
+ return self.run(command, **kwargs)
+
+ def dump(self, nstrt: str = "", nstop: str = "", **kwargs):
+ r"""Dumps the contents of a binary file.
+
+ Mechanical APDL Command: `DUMP `_
+
+ Parameters
+ ----------
+ nstrt : str
+ Dump file from record ``NSTRT`` (defaults to 1) to ``NSTOP`` (defaults to ``NSTRT`` ). If
+ ``NSTRT`` = HEAD, dump only record 1 of the file ( ``NSTOP`` and the format specification are
+ ignored). If ``NSTRT`` = ALL, dump the entire file.
+
+ nstop : str
+ Dump file from record ``NSTRT`` (defaults to 1) to ``NSTOP`` (defaults to ``NSTRT`` ). If
+ ``NSTRT`` = HEAD, dump only record 1 of the file ( ``NSTOP`` and the format specification are
+ ignored). If ``NSTRT`` = ALL, dump the entire file.
+
+ Notes
+ -----
+
+ .. _DUMP_notes:
+
+ Dumps the file named on the AUX2 :ref:`fileaux2` command according the format specified on the
+ :ref:`form` command.
+ """
+ command = f"DUMP,{nstrt},{nstop}"
+ return self.run(command, **kwargs)
+
+ def fileaux2(self, fname: str = "", ident: str = "", **kwargs):
+ r"""Specifies the binary file to be dumped.
+
+ Mechanical APDL Command: `FILEAUX2 `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to the current
+ :file:`Jobname` if ``Ident`` is specified.
+
+ ident : str
+ File name identifier. See the `Basic Analysis Guide
+ `_ for file
+ descriptions and identifiers. If not an identifier, the program uses ``Ident`` as the file name
+ extension.
+
+ Notes
+ -----
+
+ .. _FILEAUX2_notes:
+
+ Specifies the binary file to be dumped with the :ref:`dump` command.
+ """
+ command = f"FILEAUX2,{fname},{ident}"
+ return self.run(command, **kwargs)
+
+ def form(self, lab: str = "", **kwargs):
+ r"""Specifies the format of the file dump.
+
+ Mechanical APDL Command: `FORM `_
+
+ Parameters
+ ----------
+ lab : str
+ Format:
+
+ * ``RECO`` - Basic record description only (minimum output) (default).
+
+ * ``TEN`` - Same as RECO plus the first ten words of each record.
+
+ * ``LONG`` - Same as RECO plus all words of each record.
+
+ Notes
+ -----
+
+ .. _FORM_notes:
+
+ Specifies the format of the file dump (from the :ref:`dump` command).
+ """
+ command = f"FORM,{lab}"
+ return self.run(command, **kwargs)
+
+ def ptr(
+ self, loc: str = "", base: str = "", loch: str = "", baseh: str = "", **kwargs
+ ):
+ r"""Dumps the record of a binary file.
+
+ Mechanical APDL Command: `PTR `_
+
+ Parameters
+ ----------
+ loc : str
+ Dump the file record starting at pointer ``LOC``. ``BASE`` is the base pointer, and would be
+ used if ``LOC`` is a relative pointer.
+
+ base : str
+ Dump the file record starting at pointer ``LOC``. ``BASE`` is the base pointer, and would be
+ used if ``LOC`` is a relative pointer.
+
+ loch : str
+ Second 32-bit integer (if required) for defining the 64-bit pointer.
+
+ baseh : str
+ Second 32-bit integer (if required) for defining the 64-bit pointer.
+
+ Notes
+ -----
+
+ .. _PTR_notes:
+
+ Dumps the record of the file named on the AUX2 :ref:`fileaux2` command according the format
+ specified on the :ref:`form` command.
+ """
+ command = f"PTR,{loc},{base},{loch},{baseh}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux2/binary_file_manipulation.py b/src/ansys/mapdl/core/_commands/aux2/binary_file_manipulation.py
new file mode 100644
index 00000000000..193d6c8ce8f
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux2/binary_file_manipulation.py
@@ -0,0 +1,340 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class BinaryFileManipulation:
+
+ def combine(self, filetype: str = "", num: str = "", **kwargs):
+ r"""Combines distributed memory parallel ( DMP ) files.
+
+ Mechanical APDL Command: `COMBINE `_
+
+ Parameters
+ ----------
+ filetype : str
+ Type of solution file to combine. There is no default; if (blank), the command is ignored.
+
+ * ``RST`` - Structural results file ( :file:`.RST` )
+
+ * ``RTH`` - Thermal results file ( :file:`.RTH` )
+
+ * ``RMG`` - Magnetics results file ( :file:`.RMG` )
+
+ * ``RSTP`` - Linear perturbation results file ( :file:`.RSTP` )
+
+ * ``EMAT`` - Element matrix file ( :file:`.EMAT` ).
+
+ * ``ESAV`` - Element saved data file ( :file:`.ESAV` )
+
+ * ``MODE`` - Modal results file ( :file:`.MODE` )
+
+ * ``MLV`` - Modal load vector file ( :file:`.MLV` )
+
+ * ``IST`` - Initial state file ( :file:`.IST` )
+
+ * ``FULL`` - Full matrix file ( :file:`.FULL` )
+
+ * ``RFRQ`` - Reduced complex displacement file ( :file:`.RFRQ` )
+
+ * ``RDSP`` - Reduced displacement file ( :file:`.RDSP` )
+
+ * ``RNNN`` - Multiframe restart files ( :file:`.Rnnn` )
+
+ num : str
+ Number of :file:`.Rnnn` files to combine:
+
+ * ``ALL`` - Combine all :file:`.Rnnn` files (default).
+
+ * ``N`` - Combine only :file:`.RN` files, where N is an integer from 1 to 999.
+
+ Notes
+ -----
+
+ .. _COMBINE_notes:
+
+ The :ref:`combine` command is used within the AUX2 auxiliary processor to combine local solution
+ files from a distributed memory parallel solution into a single, global file. Before using this
+ command, you must enter the AUX2 processor by issuing the :ref:`aux2` command.
+
+ In a distributed-memory parallel ( DMP ) solution, you can use the :ref:`dmpoption` command to
+ bypass the file combination step, causing all individual local files to be kept on the local disks
+ in the current working directory. Later on, you can start a new distributed memory parallel solution
+ and use the :ref:`combine` command to combine local files into a global file for a downstream
+ solution or another operation (such as postprocessing with :ref:`post1` ). For example, the command
+ :ref:`combine`,RST will combine local results files ( :file:`JobnameN.RST` ) into a global results
+ file ( :file:`Jobname.RST` ).
+
+ The :ref:`combine` command cannot be used to combine local files generated during a distributed
+ memory parallel solution that used the frequency or cyclic harmonic index domain decomposition
+ method ( :ref:`ddoption`,FREQ or :ref:`ddoption`,CYCHI).
+
+ If :ref:`combine`,RNNN is specified, all of the multiframe restart files named :file:`Jobname.R001`
+ to :file:`Jobname.R999` will automatically be combined. To combine only one set of :file:`.Rnnn`
+ restart files, place only that set of restart files in your current working directory, or use the
+ ``NUM`` argument to specify which set of :file:`.Rnnn` files to combine.
+
+ When the :ref:`combine` command is used in a subsequent distributed memory parallel (DMP) session,
+ the number of processors must be the same as in the DMP solution that generated the files.
+
+ When running on a cluster, the local solution files must be available in the working directory on
+ each node in the subsequent session. As an example, consider the following command line used to
+ generate local solution files:
+
+ .. code:: apdl
+
+ ansys232 -dis -machines machine1: 4: machine2: 1: machine3: 2-i input -o output
+
+ Different machines can be used in the subsequent session to combine these files. However, the total
+ number of cores must remain unchanged (seven in the above case), and the local files must be copied
+ to the working directory (or directories) on each of the machines used in the subsequent session.
+ """
+ command = f"COMBINE,{filetype},{num}"
+ return self.run(command, **kwargs)
+
+ def hbmat(
+ self,
+ fname: str = "",
+ ext: str = "",
+ form: str = "",
+ matrx: str = "",
+ rhs: str = "",
+ mapping: str = "",
+ **kwargs,
+ ):
+ r"""Writes an assembled global matrix in Harwell-Boeing format.
+
+ Mechanical APDL Command: `HBMAT `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. Defaults to the current Jobname if left blank.
+
+ ext : str
+ Filename extension (eight-character maximum). Defaults to :file:`.matrix` if left blank.
+
+ form : str
+ Specifies format of output matrix file:
+
+ * ``ASCII`` - Write output matrix file in ASCII form.
+
+ * ``BIN`` - Write output matrix file in binary form.
+
+ matrx : str
+ Specify which matrix to write to the output matrix file:
+
+ * ``STIFF`` - Write stiffness matrix to output matrix file. Valid for all types of analyses that
+ write a :file:`.full` file.
+
+ * ``MASS`` - Write mass matrix to output matrix file. Valid for buckling, substructure, and modal
+ analyses. If :file:`.full` file was generated in a buckling analysis, then this label will write
+ stress stiffening matrix to output matrix file.
+
+ * ``DAMP`` - Write damping matrix to output matrix file. Only valid for damped modal analyses.
+
+ rhs : str
+ Specifies whether to write the right-hand side vector to output matrix file:
+
+ * ``YES`` - Write right-hand side vector to output matrix file.
+
+ * ``NO`` - Do not write right-hand side vector to output matrix file.
+
+ mapping : str
+ Specifies whether to write the mapping file. This file is always named :file:`Fnamemapping`.
+
+ * ``YES`` - Write the mapping file.
+
+ * ``NO`` - Do not write the mapping file (default).
+
+ Notes
+ -----
+
+ .. _HBMAT_notes:
+
+ This command copies a matrix from the assembled global matrix file ( :file:`.full` file) or from the
+ superelement matrix file ( :file:`.sub` file) as specified on the :ref:`fileaux2` command and write
+ it in Harwell-Boeing format to a new file named :file:`Jobname.matrix`. The Harwell-Boeing format is
+ widely used by other applications that deal with matrices.
+
+ The assembled global matrix file is created during solution depending on the analysis type, equation
+ solver, and other solution options. By default, the assembled global matrix file is never deleted at
+ the end of solution. For most analysis types, the Sparse direct solver and the ICCG solver will
+ write a :file:`.full` file. All mode extraction methods used for buckling and modal analyses will
+ write a properly formatted :file:`.full` file to be used with the :ref:`hbmat` command. However,
+ when using distributed-memory parallel (DMP) processing, a majority of analyses will write a
+ distributed (or local) form of the :file:`.full` file which is not currently supported by the
+ :ref:`hbmat` command.
+
+ When dumping the stiffness matrix for transient and harmonic analyses, be aware that the element
+ mass matrix values (and possibly element damping matrix values) are incorporated into the globally
+ assembled stiffness matrix. Thus, the globally assembled stiffness matrix represents more than the
+ stiffness of the model for these analysis types. Please refer to the `Mechanical APDL Theory
+ Reference `_ for
+ more details.
+
+ When dumping a :file:`.full` file, the rows and columns corresponding to specified constraints (for
+ example, :ref:`d` commands) are eliminated from the system of equations and therefore are not
+ written to the :file:`.matrix` file. Also, rows and columns corresponding to eliminated (dependent)
+ degrees of freedom from coupling and/or constraint equations (for example, :ref:`ce`, :ref:`cp`
+ commands) are also eliminated from the system of equations and are not written to the
+ :file:`.matrix` file. The DOFs that are eliminated from any coupling and/or constraint equations are
+ determined internally by the solution code and may not match what you specified via the :ref:`ce` /
+ :ref:`cp` (or similar) commands.
+
+ When dumping a :file:`.sub` file, the full ``n`` x ``n`` matrix will be written to the
+ :file:`.matrix` file for either symmetric or unsymmetric matrices, regardless of whether any of the
+ matrix coefficients are zero-valued. When dumping a :file:`.full` file, only the lower triangular
+ part of the matrix will be written to the :file:`.matrix` file if the matrix is symmetric; the full
+ matrix is written if the matrix is unsymmetric. Only matrix coefficients that are greater than zero
+ will be written.
+
+ The Harwell-Boeing format is column-oriented. That is, non-zero matrix values are stored with their
+ corresponding row indices in a sequence of columns. However, because the Mechanical APDL matrix
+ files are
+ stored by row and not column, when the :ref:`hbmat` command is used with a non-symmetric matrix, the
+ transpose of the matrix is, in fact, written.
+
+ The :ref:`wrfull` command, used with the :ref:`solve` command, generates the assembled global matrix
+ file and eliminate the equation solution process and results output process.
+
+ The mapping file can be used to map the matrix equation numbers found in the :file:`.matrix` file
+ directly to the corresponding node numbers and degrees of freedom.
+
+ When dumping a CMS :file:`.sub` file, the last rows/columns of the matrix are non-physical degrees
+ of freedom added internally by the `CMS process
+ `_
+ and cannot be mapped directly to a node number or particular degree of freedom.
+ """
+ command = f"HBMAT,{fname},{ext},,{form},{matrx},{rhs},{mapping}"
+ return self.run(command, **kwargs)
+
+ def psmat(
+ self,
+ fname: str = "",
+ ext: str = "",
+ matrix: str = "",
+ color: str = "",
+ **kwargs,
+ ):
+ r"""Writes an assembled global matrix to a postscript format that graphically displays nonzero matrix
+ values.
+
+ Mechanical APDL Command: `PSMAT `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. This file name is used for the postscript file
+ name. It defaults to the current Jobname if left blank.
+
+ ext : str
+ Filename extension (eight-character maximum). Defaults to :file:`.PS` if left blank.
+
+ matrix : str
+ Specify which matrix to write to the output postscript file:
+
+ * ``STIFF`` - Write stiffness matrix to output postscript file. Valid for all types of analyses that
+ write a :file:`.FULL` file.
+
+ * ``MASS`` - Write mass matrix to output postscript file. Valid for buckling, substructure, and
+ modal analyses. If the :file:`.FULL` file was generated in a buckling analysis, then this label will
+ write the stress stiffening matrix to the output postscript file.
+
+ * ``DAMP`` - Write damping matrix to output postscript file. Only valid for damped modal analyses.
+
+ color : str
+ Specifies whether to display the grid in black and white or in color:
+
+ * ``BLACK`` - Each nonzero coefficient is symbolized by a black square (default).
+
+ * ``COLOR`` - Each nonzero coefficient is symbolized by a colored square. The color depends on the
+ module of the coefficient; the range is from blue for the smallest values to red for the largest
+ values. The color map is:
+
+ Notes
+ -----
+
+ .. _PSMAT_notes:
+
+ This command is used to copy a matrix from the assembled global matrix file ( :file:`.FULL` file) as
+ specified on the ``FILE`` command and write it in a postscript format to a new file named ``Fname``.
+ ``Ext`` (defaults to :file:`Jobname.PS` ). The matrix is symbolized by a grid in which the black or
+ colored squares represent the nonzero coefficients of the matrix. The :file:`.FULL` file must be
+ available for this command to work properly.
+
+ If the matrix is large, it may be difficult to display the postscript file. In this case, use
+ ``Color`` = BLACK to reduce the postscript file size.
+
+ The assembled global matrix file is created during solution depending on the analysis type, equation
+ solver, and other solution options. By default, the assembled global matrix file is never deleted at
+ the end of solution. For most analysis types, the Sparse direct solver and the ICCG solver write a
+ :file:`.FULL` file. All mode extraction methods used for buckling and modal analyses write a
+ properly formatted :file:`.FULL` file to be used with the :ref:`psmat` command.
+
+ When copying the stiffness matrix for transient and harmonic analyses, be aware that the element
+ mass matrix values (and possibly element damping matrix values) are incorporated into the globally
+ assembled stiffness matrix. Thus, the globally assembled stiffness matrix represents more than the
+ stiffness of the model for these analysis types. Please refer to the `Mechanical APDL Theory
+ Reference `_ for
+ more details.
+
+ The :ref:`psmat` command is not able to display a lumped mass matrix from a :file:`.FULL` file
+ generated by a harmonic analysis.
+
+ When copying a :file:`.FULL` file, the rows and columns corresponding to specified constraints (for
+ example, :ref:`d` commands) are eliminated from the system of equations and therefore are not
+ written to the :file:`.PS` file. In addition, rows and columns corresponding to eliminated
+ (dependent) degrees of freedom from coupling and/or constraint equations (for example, :ref:`ce`,
+ :ref:`cp` commands) are eliminated from the system of equations and are not written to the
+ :file:`.PS` file. The DOFs that are eliminated from any coupling and/or constraint equations are
+ determined internally by the solution code and may not match what you specified via the :ref:`ce` /
+ :ref:`cp` (or similar) commands.
+
+ When copying a :file:`.FULL` file, only the upper triangular part of the matrix will be written to
+ the :file:`.PS` file if the matrix is symmetric; the full matrix is written if the matrix is
+ unsymmetric. Only matrix coefficients that are greater than zero will be written.
+
+ The :ref:`wrfull` command, in conjunction with the :ref:`solve` command, can be used to generate the
+ assembled global matrix file and eliminate the equation solution process and results output process.
+
+ The following command sequence shows typical usage of this command.
+
+ .. code:: apdl
+
+ /BATCH,LIST
+ /AUX2 ! Enter AUX2 processor
+ FILE,job1,full ! FULL file containing stiffness matrix is job1.full
+ PSMAT,job1KColor,ps,STIFF,COLOR ! Create file job1KColor.ps in color
+ ! postscript format for stiffness matrix
+ PSMAT,job1MBlack,,STIFF,BLACK ! Create file job1MBalck.ps in black/white
+ ! postscript format for stiffness matrix
+ FINISH
+
+ Below is an example of an export of the stiffness matrix to a postscript format using the COLOR
+ option.
+ """
+ command = f"PSMAT,{fname},{ext},{matrix},{color}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux2_/bin_dump.py b/src/ansys/mapdl/core/_commands/aux2_/bin_dump.py
deleted file mode 100644
index 4a588cf2a94..00000000000
--- a/src/ansys/mapdl/core/_commands/aux2_/bin_dump.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class BinDump:
- def dump(self, nstrt="", nstop="", **kwargs):
- """Dumps the contents of a binary file.
-
- APDL Command: DUMP
-
- Parameters
- ----------
- nstrt, nstop
- Dump file from record NSTRT (defaults to 1) to NSTOP (defaults to
- NSTRT). If NSTRT = HEAD, dump only record 1 of the file (NSTOP and
- the format specification are ignored). If NSTRT = ALL, dump the
- entire file.
-
- Notes
- -----
- Dumps the file named on the AUX2 FILEAUX2 command according the format
- specified on the FORM command.
- """
- command = f"DUMP,{nstrt},{nstop}"
- return self.run(command, **kwargs)
-
- def fileaux2(self, fname="", ident="", **kwargs):
- """Specifies the binary file to be dumped.
-
- APDL Command: FILEAUX2
-
- Parameters
- ----------
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
-
- ident
- ANSYS filename identifier. See the Basic Analysis Guide
- for file descriptions and identifiers. If not an ANSYS
- identifier, Ident will be used as the filename extension.
-
- Notes
- -----
- Specifies the binary file to be dumped with the DUMP command.
- """
- command = f"FILEAUX2,{fname},{ident}"
- return self.run(command, **kwargs)
-
- def form(self, lab="", **kwargs):
- """Specifies the format of the file dump.
-
- APDL Command: FORM
-
- Parameters
- ----------
- lab
- Format:
-
- RECO
- Basic record description only (minimum output) (default).
-
- TEN
- Same as RECO plus the first ten words of each record.
-
- LONG
- Same as RECO plus all words of each record.
-
- Notes
- -----
- Specifies the format of the file dump (from the DUMP command).
- """
- command = f"FORM,{lab}"
- return self.run(command, **kwargs)
-
- def ptr(self, loc="", base="", **kwargs):
- """Dumps the record of a binary file.
-
- APDL Command: PTR
-
- Parameters
- ----------
- loc, base
- Dump the file record starting at pointer LOC. BASE is the base
- pointer, and would be used if LOC is a relative pointer.
-
- Notes
- -----
- Dumps the record of the file named on the AUX2 FILEAUX2 command
- according the format specified on the FORM command.
- """
- command = f"PTR,{loc},{base}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux2_/bin_manip.py b/src/ansys/mapdl/core/_commands/aux2_/bin_manip.py
deleted file mode 100644
index cfd7a7cc6ae..00000000000
--- a/src/ansys/mapdl/core/_commands/aux2_/bin_manip.py
+++ /dev/null
@@ -1,343 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class BinManip:
- def combine(self, filetype="", **kwargs):
- """Combines distributed memory parallel (Distributed ANSYS) files.
-
- APDL Command: COMBINE
-
- Parameters
- ----------
- filetype
- Type of solution file to combine. There is no default; if (blank),
- the command is ignored.
-
- RST
- Structural results file (.RST)
-
- RTH
- Thermal results file (.RTH)
-
- RMG
- Magnetics results file (.RMG)
-
- RSTP
- Linear perturbation results file (.RSTP)
-
- EMAT
- Element matrix file (.EMAT).
-
- ESAV
- Element saved data file (.ESAV)
-
- MODE
- Modal results file (.MODE)
-
- MLV
- Modal load vector file (.MLV)
-
- IST
- Initial state file (.IST)
-
- FULL
- Full matrix file (.FULL)
-
- RFRQ
- Reduced complex displacement file (.RFRQ)
-
- RDSP
- Reduced displacement file (.RDSP)
-
- Notes
- -----
- The COMBINE command is used within the AUX2 auxiliary processor to
- combine local solution files from a distributed memory parallel
- solution into a single, global file. Before using this command, you
- must enter the AUX2 processor by issuing the /AUX2 command.
-
- In a distributed memory parallel (Distributed ANSYS) solution, you can
- use the DMPOPTION command to bypass the file combination step, causing
- all individual local files to be kept on the local disks in the current
- working directory. Later on, you can start a new distributed memory
- parallel solution and use the COMBINE command to combine local files
- into a global file for a downstream solution or another operation
- (e.g., postprocessing with /POST1). For example, the command
- COMBINE,RST will combine local results files (JobnameN.RST) into a
- global results file (Jobname.RST).
-
- When the COMBINE command is used in a subsequent Distributed ANSYS
- session, the number of processors must be the same as in the
- distributed memory parallel solution that generated the files.
-
- When running on a cluster, the local solution files must be available
- in the working directory on each node in the subsequent session. As an
- example, consider the following command line used to generate local
- solution files:
-
- Different machines can be used in the subsequent session to combine
- these files. However, the total number of cores must remain unchanged
- (seven in the above case), and the local files must be copied to the
- working directory (or directories) on each of the machines used in the
- subsequent session.
- """
- command = f"COMBINE,{filetype}"
- return self.run(command, **kwargs)
-
- def hbmat(self, fname="", ext="", form="", matrx="", rhs="", mapping="", **kwargs):
- """Writes an assembled global matrix in Harwell-Boeing format.
-
- APDL Command: HBMAT
-
- Parameters
- ----------
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
- Filename extension (eight-character maximum).
-
- form
- Specifies format of output matrix file:
-
- ASCII
- Write output matrix file in ASCII form.
-
- BIN
- Write output matrix file in binary form.
-
- matrx
- Specify which matrix to write to the output matrix file:
-
- STIFF
- Write stiffness matrix to output matrix file. Valid for all types of analyses
- that write a .FULL file.
-
- MASS
- Write mass matrix to output matrix file. Valid for buckling, substructure, and
- modal analyses. If .FULL file was generated in a buckling
- analysis, then this label will write stress stiffening
- matrix to output matrix file.
-
- DAMP
- Write damping matrix to output matrix file. Only valid for damped modal
- analyses.
-
- rhs
- Specifies whether to write the right-hand side vector to output
- matrix file:
-
- YES
- Write right-hand side vector to output matrix file.
-
- NO
- Do not write right-hand side vector to output matrix file.
-
- mapping
- Specifies whether to write the mapping file. This file is always
- named Fname.MAPPING.
-
- YES
- Write the mapping file.
-
- NO
- Do not write the mapping file (default).
-
- Notes
- -----
- This command is used to copy a matrix from the assembled global matrix
- file (.FULL file) or from the superelement matrix file (.SUB file) as
- specified on the FILEAUX2 command and write it in Harwell-Boeing format
- to a new file, named jobname.MATRIX. The Harwell-Boeing format is
- widely used by other applications that deal with matrices.
-
- The assembled global matrix file is created during solution depending
- on the analysis type, equation solver, and other solution options. By
- default, the assembled global matrix file is never deleted at the end
- of solution. For most analysis types, the Sparse direct solver and the
- ICCG solver will write a .FULL file. All mode extraction methods used
- for buckling and modal analyses will write a properly formatted .FULL
- file to be used with the HBMAT command. However, when using Distributed
- ANSYS, a majority of analyses will write a distributed (or local) form
- of the .FULL file which is not currently supported by the HBMAT
- command.
-
- When dumping the stiffness matrix for transient and harmonic analyses,
- be aware that the element mass matrix values (and possibly element
- damping matrix values) are incorporated into the globally assembled
- stiffness matrix. Thus, the globally assembled stiffness matrix
- represents more than the stiffness of the model for these analysis
- types. Please refer to the Mechanical APDL Theory Reference for more
- details.
-
- When dumping a .FULL file, the rows and columns corresponding to
- specified constraints (e.g., D commands) are eliminated from the system
- of equations and therefore are not written to the .MATRIX file. Also,
- rows and columns corresponding to eliminated (slave) degrees of freedom
- from coupling and/or constraint equations (e.g., CE, CP commands) are
- also eliminated from the system of equations and are not written to the
- .MATRIX file. The DOFs that are eliminated from any coupling and/or
- constraint equations are determined internally by the solution code and
- may not match what you specified via the CE/CP (or similar) commands.
-
- When dumping a .SUB file, the full nxn matrix will be written to the
- .MATRIX file for either symmetric or unsymmetric matrices, regardless
- of whether any of the matrix coefficients are zero-valued. When dumping
- a .FULL file, only the lower triangular part of the matrix will be
- written to the .MATRIX file if the matrix is symmetric; the full matrix
- is written if the matrix is unsymmetric. Only matrix coefficients that
- are greater than zero will be written.
-
- The Harwell-Boeing format is column-oriented. That is, non-zero matrix
- values are stored with their corresponding row indices in a sequence of
- columns. However, since the ANSYS matrix files are stored by row and
- not column, when the HBMAT command is used with a non-symmetric matrix,
- the transpose of the matrix is, in fact, written.
-
- The WRFULL command, in conjunction with the SOLVE command, can be used
- to generate the assembled global matrix file and eliminate the equation
- solution process and results output process.
-
- The mapping file can be used to map the matrix equation numbers found
- in the .MATRIX file directly to the corresponding node numbers and
- degrees of freedom.
-
- When dumping a CMS .SUB file, the last rows/columns of the matrix are
- non-physical degrees of freedom added internally by the CMS process and
- cannot be mapped directly to a node number or particular degree of
- freedom.
- """
- command = f"HBMAT,{fname},{ext},,{form},{matrx},{rhs},{mapping}"
- return self.run(command, **kwargs)
-
- def psmat(self, fname="", ext="", matrix="", color="", **kwargs):
- """Writes an assembled global matrix to a postscript format that
-
- APDL Command: PSMAT
- graphically displays nonzero matrix values.
-
- Parameters
- ----------
- fname
- File name and directory path (248 characters maximum, including the
- characters needed for the directory path). An unspecified
- directory path defaults to the working directory; in this case, you
- can use all 248 characters for the file name.
-
- ext
- Filename extension (eight-character maximum).
-
- matrix
- Specify which matrix to write to the output postscript file:
-
- STIFF
- Write stiffness matrix to output postscript file. Valid for all types of
- analyses that write a .FULL file.
-
- MASS
- Write mass matrix to output postscript file. Valid for buckling, substructure,
- and modal analyses. If the .FULL file was generated in a
- buckling analysis, then this label will write the stress
- stiffening matrix to the output postscript file.
-
- DAMP
- Write damping matrix to output postscript file. Only valid for damped modal
- analyses.
-
- color
- Specifies whether to display the grid in black and white or in
- color:
-
- BLACK
- Each nonzero coefficient is symbolized by a black square (default).
-
- COLOR
- Each nonzero coefficient is symbolized by a colored square. The color depends
- on the module of the coefficient; the range is from blue
- for the smallest values to red for the largest values. The
- color map is:
-
- Notes
- -----
- This command is used to copy a matrix from the assembled global matrix
- file (.FULL file) as specified on the FILE command and write it in a
- postscript format to a new file named Fname.Ext (defaults to
- Jobname.PS). The matrix is symbolized by a grid in which the black or
- colored squares represent the nonzero coefficients of the matrix. The
- .FULL file must be available for this command to work properly.
-
- If the matrix is large, it may be difficult to display the postscript
- file. In this case, use Color = BLACK to reduce the postscript file
- size.
-
- The assembled global matrix file is created during solution depending
- on the analysis type, equation solver, and other solution options. By
- default, the assembled global matrix file is never deleted at the end
- of solution. For most analysis types, the Sparse direct solver and the
- ICCG solver write a .FULL file. All mode extraction methods used for
- buckling and modal analyses write a properly formatted .FULL file to be
- used with the PSMAT command.
-
- When copying the stiffness matrix for transient and harmonic analyses,
- be aware that the element mass matrix values (and possibly element
- damping matrix values) are incorporated into the globally assembled
- stiffness matrix. Thus, the globally assembled stiffness matrix
- represents more than the stiffness of the model for these analysis
- types. Please refer to the Mechanical APDL Theory Reference for more
- details.
-
- The PSMAT command is not able to display a lumped mass matrix from a
- .FULL file generated by a harmonic analysis.
-
- When copying a .FULL file, the rows and columns corresponding to
- specified constraints (e.g., D commands) are eliminated from the system
- of equations and therefore are not written to the .PS file. In
- addition, rows and columns corresponding to eliminated (slave) degrees
- of freedom from coupling and/or constraint equations (e.g., CE, CP
- commands) are eliminated from the system of equations and are not
- written to the .PS file. The DOFs that are eliminated from any coupling
- and/or constraint equations are determined internally by the solution
- code and may not match what you specified via the CE/CP (or similar)
- commands.
-
- When copying a .FULL file, only the upper triangular part of the matrix
- will be written to the .PS file if the matrix is symmetric; the full
- matrix is written if the matrix is unsymmetric. Only matrix
- coefficients that are greater than zero will be written.
-
- The WRFULL command, in conjunction with the SOLVE command, can be used
- to generate the assembled global matrix file and eliminate the equation
- solution process and results output process.
-
- The following command sequence shows typical usage of this command.
-
- Below is an example of an export of the stiffness matrix to a
- postscript format using the COLOR option.
-
- :
- """
- command = f"PSMAT,{fname},{ext},{matrix},{color}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux2_/__init__.py b/src/ansys/mapdl/core/_commands/aux3/__init__.py
similarity index 96%
rename from src/ansys/mapdl/core/_commands/aux2_/__init__.py
rename to src/ansys/mapdl/core/_commands/aux3/__init__.py
index d388e85a7a0..ec3d4655d58 100644
--- a/src/ansys/mapdl/core/_commands/aux2_/__init__.py
+++ b/src/ansys/mapdl/core/_commands/aux3/__init__.py
@@ -20,4 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-from . import bin_dump, bin_manip
+from . import (
+ results_files,
+)
diff --git a/src/ansys/mapdl/core/_commands/aux3/results_files.py b/src/ansys/mapdl/core/_commands/aux3/results_files.py
new file mode 100644
index 00000000000..96fcee01e19
--- /dev/null
+++ b/src/ansys/mapdl/core/_commands/aux3/results_files.py
@@ -0,0 +1,280 @@
+# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
+# SPDX-License-Identifier: MIT
+#
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in all
+# copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+
+class ResultsFiles:
+
+ def aux3(self, **kwargs):
+ r"""Enters the results file editing processor.
+
+ Mechanical APDL Command: `/AUX3 `_
+
+ Notes
+ -----
+
+ .. _s-AUX3_notes:
+
+ Enters the results-file editing processor (auxiliary processor AUX3), used for editing Mechanical
+ APDL
+ results files.
+
+ A pending :ref:`delete` is processed when :ref:`finish` or ``/EOF`` is issued. To cancel a pending
+ :ref:`delete`, issue :ref:`undelete`.
+
+ This command is valid only at the Begin Level.
+ """
+ command = "/AUX3"
+ return self.run(command, **kwargs)
+
+ def compress(self, **kwargs):
+ r"""Deletes all specified sets.
+
+ Mechanical APDL Command: `COMPRESS `_
+
+ Notes
+ -----
+
+ .. _COMPRESS_notes:
+
+ Issue this command to delete all sets specified with the :ref:`delete` command.
+
+ The :ref:`compress` command is valid only in the results file editing processor (auxiliary processor
+ AUX3), and, like the other AUX3 commands, it only affects the data steps index (DSI), time (TIM),
+ loadstep, substep and cumulative step iteration (LSP) records in the results file.
+ """
+ command = "COMPRESS"
+ return self.run(command, **kwargs)
+
+ def delete(self, set_: str = "", nstart: str = "", nend: str = "", **kwargs):
+ r"""Specifies sets in the results file to be deleted before postprocessing.
+
+ Mechanical APDL Command: `DELETE `_
+
+ Parameters
+ ----------
+ set_ : str
+ Specifies that sets in the results file are to be deleted.
+
+ nstart : str
+ The first set in a results file to be deleted.
+
+ nend : str
+ The final set in a results file to be deleted. This field is used only if deleting more than one
+ sequential sets.
+
+ Notes
+ -----
+
+ .. _DELETE_notes:
+
+ :ref:`delete` is a specification command that flags sets in the results file for deletion. It should
+ be followed by a :ref:`compress` command, the corresponding action command that deletes the
+ specified sets.
+
+ The :ref:`delete` command is valid only in the results file editing processor (auxiliary processor
+ AUX3).
+ """
+ command = f"DELETE,{set_},{nstart},{nend}"
+ return self.run(command, **kwargs)
+
+ def fileaux3(self, fname: str = "", ext: str = "", **kwargs):
+ r"""Specifies the results file to be edited.
+
+ Mechanical APDL Command: `FILEAUX3 `_
+
+ Parameters
+ ----------
+ fname : str
+ File name and directory path (248 characters maximum, including the characters needed for the
+ directory path). An unspecified directory path defaults to the working directory; in this case,
+ you can use all 248 characters for the file name. The file name defaults to the current
+ :file:`Jobname` if ``Ext`` is specified.
+
+ ext : str
+ Filename extension (eight-character maximum).
+
+ Notes
+ -----
+
+ .. _FILEAUX3_notes:
+
+ Specifies the results file to be edited.
+ """
+ command = f"FILEAUX3,{fname},{ext}"
+ return self.run(command, **kwargs)
+
+ def list(self, **kwargs):
+ r"""Lists out the sets in the results file.
+
+ Mechanical APDL Command: `LIST `_
+
+ Notes
+ -----
+
+ .. warning::
+
+ This function contains specificities regarding the argument definitions.
+ Please refer to the `command documentation `_
+ for further explanations.
+
+ .. _LIST_notes:
+
+ This command lists the results set number, the load step, substep, and time step for each set. It
+ also shows all sets marked for deletion.
+
+ The :ref:`list` command is valid only in the results file editing processor (auxiliary processor
+ AUX3).
+ """
+ command = "LIST"
+ return self.run(command, **kwargs)
+
+ def modify(
+ self,
+ set_: str = "",
+ lstep: str = "",
+ iter_: str = "",
+ cumit: str = "",
+ time: str = "",
+ ktitle: int | str = "",
+ **kwargs,
+ ):
+ r"""Changes the listed values of the data in a set.
+
+ Mechanical APDL Command: `MODIFY `_
+
+ Parameters
+ ----------
+ set_ : str
+ Set of data in results file to be modified.
+
+ lstep : str
+ The new load step number.
+
+ iter_ : str
+ The new load substep number.
+
+ cumit : str
+ The new cumulative iteration.
+
+ time : str
+ The new time/frequency value.
+
+ ktitle : int or str
+ Indicates if the set title should be modified.
+
+ * ``0`` - Keep the original title.
+
+ * ``1`` - Change the title to the title specified with the most current :ref:`title` command.
+
+ Notes
+ -----
+
+ .. _MODIFY_notes:
+
+ Use this command to change the listed values in a data set in a results file. Using this command
+ does not change any actual model data; it affects only the values listed in the results file.
+
+ The :ref:`modify` command is valid only in the results file editing processor (auxiliary processor
+ AUX3), and, like the other AUX3 commands, it only affects the data steps index (DSI), time (TIM),
+ loadstep, substep and cumulative step iteration (LSP) records in the results file.
+
+ **Example Usage**
+ If you start with the following results file:
+
+ .. code:: apdl
+
+ SET TIME/FREQ LOAD STEP SUBSTEP CUMULATIVE
+ 1 1.0000 1 1 1
+ first load set
+
+ 2 2.0000 2 1 2
+ second load set
+
+ 3 3.0000 3 1 3
+ third load set
+
+ 4 4.0000 4 1 4
+ fourth load set
+
+ and you then issue the following commands:
+
+ .. code:: apdl
+
+ /title, modified title for set number 3
+ modify,3,5,2,5,4.5,1
+
+ The modified results file would look like this:
+
+ .. code:: apdl
+
+ SET TIME/FREQ LOAD STEP SUBSTEP CUMULATIVE
+ 1 1.0000 1 1 1
+ first load set
+
+ 2 2.0000 2 1 2
+ second load set
+
+ 3 4.5000 5 2 5
+ modified title for set number 3
+
+ 4 4.0000 4 1 4
+ fourth load set
+ """
+ command = f"MODIFY,{set_},{lstep},{iter_},{cumit},{time},{ktitle}"
+ return self.run(command, **kwargs)
+
+ def undelete(self, option: str = "", nstart: str = "", nend: str = "", **kwargs):
+ r"""Removes results sets from the group of sets selected for editing.
+
+ Mechanical APDL Command: `UNDELETE `_
+
+ Parameters
+ ----------
+ option : str
+ Specifies which sets are to be removed from the selected sets.
+
+ * ``SET`` - Specifies one or more particular sets in the results file that are to be removed from
+ the group of sets selected for deletion.
+
+ * ``ALL`` - Removes all selected sets that are currently selected for deletion.
+
+ nstart : str
+ The first set to be removed from the set selected for deletion.
+
+ nend : str
+ The final set to be removed from the set selected for deletion. This field is used only if
+ operating on more than one sequential set.
+
+ Notes
+ -----
+
+ .. _UNDELETE_notes:
+
+ Use this command if you have previously marked a set for deletion (with the :ref:`delete` command)
+ and now wish to keep that set instead of deleting it.
+
+ The :ref:`undelete` command is valid only in the results file editing processor (auxiliary processor
+ AUX3), and, like the other AUX3 commands, it only affects the data steps index (DSI), time (TIM),
+ loadstep, substep and cumulative step iteration (LSP) records in the results file.
+ """
+ command = f"UNDELETE,{option},{nstart},{nend}"
+ return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/aux3_.py b/src/ansys/mapdl/core/_commands/aux3_.py
deleted file mode 100644
index 0119d56be2d..00000000000
--- a/src/ansys/mapdl/core/_commands/aux3_.py
+++ /dev/null
@@ -1,191 +0,0 @@
-# Copyright (C) 2016 - 2025 ANSYS, Inc. and/or its affiliates.
-# SPDX-License-Identifier: MIT
-#
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-
-class Aux3:
- def compress(self, **kwargs):
- """Deletes all specified sets.
-
- APDL Command: COMPRESS
-
- Notes
- -----
- Issue this command to delete all sets specified with the DELETE
- command.
- """
- command = f"COMPRESS,"
- return self.run(command, **kwargs)
-
- def list(self, level="", **kwargs):
- """Lists out the sets in the results file.
-
- APDL Command: LIST
-
- Notes
- -----
- This command lists the results set number, the load step, substep, and
- time step for each set. It also shows all sets marked for deletion.
- """
- command = "LIST,%s" % (str(level))
- return self.run(command, **kwargs)
-
- def fileaux3(self, fname="", ext="", **kwargs):
- """Specifies the results file to be edited.
-
- APDL Command: FILEAUX3
-
- Parameters
- ----------
- fname
- File name and directory path (248 characters maximum,
- including the characters needed for the directory path).
- An unspecified directory path defaults to the working
- directory; in this case, you can use all 248 characters
- for the file name.
-
- ext
- Filename extension (eight-character maximum).
-
- Notes
- -----
- Specifies the results file to be edited.
- """
- command = f"FILEAUX3,{fname},{ext}"
- return self.run(command, **kwargs)
-
- def modify(
- self,
- set_="",
- lstep="",
- iter_="",
- cumit="",
- time="",
- ktitle="",
- **kwargs,
- ):
- """Changes the listed values of the data in a set.
-
- APDL Command: MODIFY
-
- Parameters
- ----------
- set\\_
- Set of data in results file to be modified.
-
- lstep
- The new load step number.
-
- iter\\_
- The new load substep number.
-
- cumit
- The new cumulative iteration.
-
- time
- The new time/frequency value.
-
- ktitle
- Indicates if the set title should be modified.
-
- 0
- Keep the original title.
-
- 1
- Change the title to the title specified with the most current /TITLE command.
-
- Notes
- -----
- Use this command to change the listed values in a data set in a results
- file. Using this command does not change any actual model data; it
- affects only the values listed in the results file.
-
- For example, if you start with the following results file:
-
- and you then issue the following commands:
-
- The modified results file would look like this:
- """
- command = f"MODIFY,{set_},{lstep},{iter_},{cumit},{time},{ktitle}"
- return self.run(command, **kwargs)
-
- def undelete(self, option="", nstart="", nend="", **kwargs):
- """Removes results sets from the group of sets selected for editing.
-
- APDL Command: UNDELETE
-
- Parameters
- ----------
- option
- Specifies which sets are to be removed from the selected sets.
-
- SET
- Specifies one or more particular sets in the results file that are to be
- removed from the group of sets selected for deletion.
-
- ALL
- Removes all selected sets that are currently selected for deletion.
-
- nstart
- The first set to be removed from the set selected for deletion.
-
- nend
- The final set to be removed from the set selected for deletion.
- This field is used only if operating on more than one sequential
- set.
-
- Notes
- -----
- Use this command if you have previously marked a set for deletion (with
- the DELETE command) and now wish to keep that set instead of deleting
- it.
- """
- command = f"UNDELETE,{option},{nstart},{nend}"
- return self.run(command, **kwargs)
-
- def delete(self, set_="", nstart="", nend="", **kwargs):
- """Specifies sets in the results file to be deleted before postprocessing.
-
- APDL Command: DELETE
-
- Parameters
- ----------
- set_
- Specifies that sets in the results file are to be deleted.
-
- nstart
- The first set in a results file to be deleted.
-
- nend
- The final set in a results file to be deleted. This field is used
- only if deleting more than one sequential sets.
-
- Notes
- -----
- DELETE is a specification command that flags sets in the results
- file for deletion. It should be followed by a COMPRESS command,
- the corresponding action command that deletes the specified sets.
-
- The DELETE command is valid only in the results file editing processor
- (ANSYS auxiliary processor AUX3).
- """
- command = f"DELETE,{set_},{nstart},{nend}"
- return self.run(command, **kwargs)
diff --git a/src/ansys/mapdl/core/_commands/database/__init__.py b/src/ansys/mapdl/core/_commands/database/__init__.py
index d989a660105..473e4f620f2 100644
--- a/src/ansys/mapdl/core/_commands/database/__init__.py
+++ b/src/ansys/mapdl/core/_commands/database/__init__.py
@@ -20,4 +20,11 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-from . import components, coord_sys, picking, selecting, setup, working_plane
+from . import (
+ components,
+ coordinate_system,
+ picking,
+ selecting,
+ set_up,
+ working_plane,
+)
diff --git a/src/ansys/mapdl/core/_commands/database/components.py b/src/ansys/mapdl/core/_commands/database/components.py
index 466b86cbfe8..183de0316bf 100644
--- a/src/ansys/mapdl/core/_commands/database/components.py
+++ b/src/ansys/mapdl/core/_commands/database/components.py
@@ -20,119 +20,113 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
-"""These DATABASE commands allow selected subsets of entities to be
-named as components for easy selection later on.
-"""
-from typing import Any, Dict, Literal
-
class Components:
- def cm(
- self,
- cname: str = "",
- entity: Literal["VOLU", "AREA", "LINE", "KP", "ELEM", "NODE", ""] = "",
- **kwargs: Dict[Any, Any],
- ) -> None:
- """Groups geometry items into a component.
- APDL Command: CM
+ def cm(self, cname: str = "", entity: str = "", kopt: str = "", **kwargs):
+ r"""Groups geometry items into a component.
+
+ Mechanical APDL Command: `CM `_
Parameters
----------
- cname
- An alphanumeric name used to identify this component. Cname may be
- up to 32 characters, beginning with a letter and containing only
- letters, numbers, and underscores. Component names beginning with
- an underscore (e.g., _LOOP) are reserved for use by ANSYS and
- should be avoided. Components named "ALL," "STAT," and "DEFA" are
- not permitted. Overwrites a previously defined name.
-
- entity
+ cname : str
+ An alphanumeric name used to identify this component. ``Cname`` may be up to 256 characters,
+ beginning with a letter and containing only letters, numbers, dots (.) and underscores (_).
+ Component names beginning with an underscore (for example, _LOOP) are reserved for use by
+ Mechanical APDL and should be avoided. Components named "ALL," "STAT," and "DEFA" are not
+ permitted. Overwrites a previously defined name.
+
+ entity : str
Label identifying the type of geometry items to be grouped:
- VOLU
- Volumes.
+ * ``VOLU`` - Volumes.
+
+ * ``AREA`` - Areas.
- AREA
- Areas.
+ * ``LINE`` - Lines.
- LINE
- Lines.
+ * ``KP`` - Keypoints.
- KP
- Keypoints.
+ * ``ELEM`` - Elements.
- ELEM
- Elements.
+ * ``NODE`` - Nodes.
- NODE
- Nodes.
+ kopt : str
+ Controls how element component contents are updated during `nonlinear mesh adaptivity analysis `_ :
+
+ * 0 - Component is not updated during remeshing and therefore contains only initial mesh elements
+ (default).
+ * 1 - Component is updated during remeshing to contain the updated elements.
+
+ This argument is valid only for nonlinear mesh adaptivity analysis with ``Entity`` = ELEM, and for
+ solid element components only.
Notes
-----
- Components may be further grouped into assemblies [CMGRP]. The
- selected items of the specified entity type will be stored as the
- component. Use of this component in the select command [CMSEL] causes
- all these items to be selected at once, for convenience.
-
- A component is a grouping of some geometric entity that can then be
- conveniently selected or unselected. A component may be redefined by
- reusing a previous component name. The following entity types may
- belong to a component: nodes, elements, keypoints, lines, areas, and
- volumes. A component may contain only 1 entity type, but an individual
- item of any entity may belong to any number of components. Once
- defined, the items contained in a component may then be easily selected
- or unselected [CMSEL]. Components may be listed [CMLIST], modified
- [CMMOD] and deleted [CMDELE]. Components may also be further grouped
- into assemblies [CMGRP]. Other entities associated with the entities
- in a component (e.g., the lines and keypoints associated with areas)
- may be selected by the ALLSEL command.
-
- An item will be deleted from a component if it has been deleted by
- another operation (see the KMODIF command for an example). Components
- are automatically updated to reflect deletions of one or more of their
- items. Components are automatically deleted and a warning message is
- issued if all their items are deleted. Assemblies are also
- automatically updated to reflect deletions of one or more of their
- components or subassemblies, but are not deleted if all their
- components and subassemblies are deleted.
- This command is valid in any processor.
+ .. _CM_notes:
+
+ Components may be further grouped into assemblies ( :ref:`cmgrp` ). The selected items of the
+ specified entity type will be stored as the component. Use of this component in the select command (
+ :ref:`cmsel` ) causes all these items to be selected at once, for convenience.
+
+ A component is a grouping of some geometric entity that can then be conveniently selected or
+ unselected. A component may be redefined by reusing a previous component name. The following entity
+ types may belong to a component: nodes, elements, keypoints, lines, areas, and volumes. A component
+ may contain only 1 entity type, but an individual item of any entity may belong to any number of
+ components. Once defined, the items contained in a component may then be easily selected or
+ unselected ( :ref:`cmsel` ). Components may be listed ( :ref:`cmlist` ), modified ( :ref:`cmmod` )
+ and deleted ( :ref:`cmdele` ). Components may also be further grouped into assemblies ( :ref:`cmgrp`
+ ). Other entities associated with the entities in a component (for example, the lines and keypoints
+ associated with areas) may be selected by the :ref:`allsel` command.
+
+ An item will be deleted from a component if it has been deleted by another operation (see the
+ :ref:`kmodif` command for an example). Components are automatically updated to reflect deletions of
+ one or more of their items. Components are automatically deleted and a warning message is issued if
+ all their items are deleted. Assemblies are also automatically updated to reflect deletions of one
+ or more of their components or subassemblies, but are not deleted if all their components and
+ subassemblies are deleted.
- Examples
- --------
+ For `nonlinear mesh adaptivity analysis
+ `_, an extra
+ option is available to update the element component contents automatically during the analysis,
+ applicable in cases where the remeshing region overlaps the defined solid element component region.
+ By enabling the option, the component element boundary is maintained, and the validity of the
+ defined component is guaranteed during the entire analysis run; therefore, the component can be used
+ during both solution and postprocessing.
- Create a component selection named ``"PRES_A"`` after
- selecting the areas located in the Y plane at `loc`.
+ Components are often used as input to other commands. Some commands restrict the component name to
+ 32 characters. For those commands, this limitation is documented within the command description.
- >>> mapdl.asel('S', 'LOC', 'Y', loc)
- >>> mapdl.cm('PRES_A', 'AREA')
+ This command is valid in any processor.
"""
- command = f"CM,{cname}, {entity}"
+ command = f"CM,{cname},{entity},,{kopt}"
return self.run(command, **kwargs)
- def cmdele(self, name: str = "", **kwargs: Dict[Any, Any]) -> None:
- """Deletes a component or assembly definition.
+ def cmdele(self, name: str = "", **kwargs):
+ r"""Deletes a component or assembly definition.
- APDL Command: CMDELE
+ Mechanical APDL Command: `CMDELE `_
Parameters
----------
- name
- Name of the component or assembly whose definition is to be
- removed.
+ name : str
+ Name of the component or assembly whose definition is to be removed.
Notes
-----
- Entities contained in the component, or the components within the
- assembly, are unaffected. Only the grouping relationships are deleted.
- Assemblies are automatically updated to reflect deletion of their
- components or subassemblies, but they are not automatically deleted
- when all their components or subassemblies are deleted.
+
+ .. _CMDELE_notes:
+
+ Entities contained in the component, or the components within the assembly, are unaffected. Only the
+ grouping relationships are deleted. Assemblies are automatically updated to reflect deletion of
+ their components or subassemblies, but they are not automatically deleted when all their components
+ or subassemblies are deleted.
This command is valid in any processor.
"""
- command = f"CMDELE, {name}"
+ command = f"CMDELE,{name}"
return self.run(command, **kwargs)
def cmedit(
@@ -146,36 +140,54 @@ def cmedit(
cnam5: str = "",
cnam6: str = "",
cnam7: str = "",
- **kwargs: Dict[Any, Any],
- ) -> None:
- """Edits an existing assembly.
+ **kwargs,
+ ):
+ r"""Edits an existing assembly.
- APDL Command: CMEDIT
+ Mechanical APDL Command: `CMEDIT `_
Parameters
----------
- aname
+ aname : str
Name of the assembly to be edited.
- oper
+ oper : str
Operation label:
- ADD
- To add more components. The level of any assembly to be added must be lower
- than that of the assembly Aname (see CMGRP command).
+ * ``ADD`` - To add more components. The level of any assembly to be added must be lower than that of
+ the assembly ``Aname`` (see :ref:`cmgrp` command).
+
+ * ``DELE`` - To remove components.
+
+ cnam1 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
+
+ cnam2 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
- DELE
- To remove components.
+ cnam3 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
- cnam1, cnam2, cnam3, . . . , cnam7
- Names of components and assemblies to be added to or deleted from
- the assembly.
+ cnam4 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
+
+ cnam5 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
+
+ cnam6 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
+
+ cnam7 : str
+ Names of components and assemblies to be added to or deleted from the assembly.
Notes
-----
+
+ .. _CMEDIT_notes:
+
This command is valid in any processor.
"""
- command = f"CMEDIT,{aname},{oper},{cnam1},{cnam2},{cnam3},{cnam4},{cnam5},{cnam6},{cnam7}" # noqa : E501
+ command = f"CMEDIT,{aname},{oper},{cnam1},{cnam2},{cnam3},{cnam4},{cnam5},{cnam6},{cnam7}"
return self.run(command, **kwargs)
def cmgrp(
@@ -189,138 +201,148 @@ def cmgrp(
cnam6: str = "",
cnam7: str = "",
cnam8: str = "",
- **kwargs: Dict[Any, Any],
- ) -> None:
- """Groups components and assemblies into an assembly.
+ **kwargs,
+ ):
+ r"""Groups components and assemblies into an assembly.
- APDL Command: CMGRP
+ Mechanical APDL Command: `CMGRP `_
Parameters
----------
- aname
- An alphanumeric name used to identify this assembly. Aname may be
- up to 32 characters, beginning with a letter and containing only
- letters, numbers, and underscores. Overwrites a previously defined
- Aname (and removes it from higher level assemblies, if any).
+ aname : str
+ An alphanumeric name used to identify this assembly. ``Aname`` may be up to 256 characters,
+ beginning with a letter and containing only letters, numbers, dots (.), and underscores (_).
+ Overwrites a previously defined ``Aname`` (and removes it from higher level assemblies, if any).
+
+ cnam1 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam2 : str
+ Names of existing components or other assemblies to be included in this assembly.
- cnam1, cnam2, cnam3, . . . , cnam8
- Names of existing components or other assemblies to be included in
- this assembly.
+ cnam3 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam4 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam5 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam6 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam7 : str
+ Names of existing components or other assemblies to be included in this assembly.
+
+ cnam8 : str
+ Names of existing components or other assemblies to be included in this assembly.
Notes
-----
- Groups components and other assemblies into an assembly identified by a
- name. CMGRP is used for the initial definition of an assembly. An
- assembly is used in the same manner as a component. Up to 5 levels of
- assemblies within assemblies may be used.
-
- An assembly is a convenient grouping of previously defined components
- and other assemblies. Assemblies may contain components only, other
- assemblies, or any combination. A component may belong to any number
- of assemblies. Up to 5 levels of nested assemblies may be defined.
- Components and assemblies may be added to or deleted from an existing
- assembly by the CMEDIT command. Once defined, an assembly may be
- listed, deleted, selected, or unselected using the same commands as for
- a component. Assemblies are automatically updated to reflect deletions
- of one or more of their components or lower-level assemblies.
- Assemblies are not automatically deleted when all their components or
- subassemblies are deleted.
+
+ .. _CMGRP_notes:
+
+ Groups components and other assemblies into an assembly identified by a name. :ref:`cmgrp` is used
+ for the initial definition of an assembly. An assembly is used in the same manner as a component. Up
+ to 5 levels of assemblies within assemblies may be used.
+
+ An assembly is a convenient grouping of previously defined components and other assemblies.
+ Assemblies may contain components only, other assemblies, or any combination. A component may belong
+ to any number of assemblies. Up to 5 levels of nested assemblies may be defined. Components and
+ assemblies may be added to or deleted from an existing assembly by the :ref:`cmedit` command. Once
+ defined, an assembly may be listed, deleted, selected, or unselected using the same commands as for
+ a component. Assemblies are automatically updated to reflect deletions of one or more of their
+ components or lower-level assemblies. Assemblies are not automatically deleted when all their
+ components or subassemblies are deleted.
This command is valid in any processor.
"""
- command = f"CMGRP,{aname},{cnam1},{cnam2},{cnam3},{cnam4},{cnam5},{cnam6},{cnam7},{cnam8}" # noqa : E501
+ command = f"CMGRP,{aname},{cnam1},{cnam2},{cnam3},{cnam4},{cnam5},{cnam6},{cnam7},{cnam8}"
return self.run(command, **kwargs)
- def cmlist(
- self,
- name: str = "",
- key: str = "",
- entity: Literal["VOLU", "AREA", "LINE", "KP", "ELEM", "NODE", ""] = "",
- **kwargs: Dict[Any, Any],
- ) -> None:
- """Lists the contents of a component or assembly.
+ def cmlist(self, name: str = "", key: int | str = "", entity: str = "", **kwargs):
+ r"""Lists the contents of a component or assembly.
- APDL Command: CMLIST
+ Mechanical APDL Command: `CMLIST `_
Parameters
----------
- name
- Name of the component or assembly to be listed (if blank, list all
- selected components and assemblies). If Name is specified, then
- Entity is ignored.
+ name : str
+ Name of the component or assembly to be listed (if blank, list all selected components and
+ assemblies). If ``Name`` is specified, then ``Entity`` is ignored.
- key
+ key : int or str
Expansion key:
- 0
- Do not list individual entities in the component.
+ * ``0`` - Do not list individual entities in the component.
- 1 or EXPA
- List individual entities in the component.
+ * ``1 or EXPA`` - List individual entities in the component.
- entity
- If Name is blank, then the following entity types can be specified:
+ entity : str
+ If ``Name`` is blank, then the following entity types can be specified:
- VOLU
- List the volume components only.
+ * ``VOLU`` - List the volume components only.
- AREA
- List the area components only.
+ * ``AREA`` - List the area components only.
- LINE
- List the line components only.
+ * ``LINE`` - List the line components only.
- KP
- List the keypoint components only
+ * ``KP`` - List the keypoint components only
- ELEM
- List the element components only.
+ * ``ELEM`` - List the element components only.
- NODE
- List the node components only.
+ * ``NODE`` - List the node components only.
Notes
-----
- This command is valid in any processor. For components, it lists the
- type of geometric entity. For assemblies, it lists the components
- and/or assemblies that make up the assembly.
+
+ .. _CMLIST_notes:
+
+ This command is valid in any processor. For components, it lists the type of geometric entity. For
+ assemblies, it lists the components and/or assemblies that make up the assembly.
Examples of possible usage:
+
+ * :ref:`cmlist` - List all selected components.
+ * :ref:`cmlist`, EXPA - List all selected components and for each component list the underlying
+ entity ID's.
+ * :ref:`cmlist`, ``Name`` - List the specified component.
+ * :ref:`cmlist`, ``Name``,EXPA - List specified component along with all underlying entity ID's.
+ * :ref:`cmlist`, EXPA, ``Entity`` - List all selected components of specified entity type.
+ For each component also list the underlying entity ID's.
"""
command = f"CMLIST,{name},{key},{entity}"
return self.run(command, **kwargs)
- def cmmod(
- self,
- cname: str = "",
- keyword: str = "",
- value: str = "",
- **kwargs: Dict[Any, Any],
- ) -> None:
- """Modifies the specification of a component.
+ def cmmod(self, cname: str = "", keyword: str = "", value: str = "", **kwargs):
+ r"""Modifies the specification of a component.
- APDL Command: CMMOD
+ Mechanical APDL Command: `CMMOD