Keyword Types
-------------
The basic idea of these classes is, that the file should look identical if written again, except for modifications. Also comments shall be preserved. Please beware in case of parsing the mesh, since the rewritten floating point numbers will deviate in due to the machine precision. To prevent this deviation, just don't parse the mesh.
- `KeyFile Introduction Article `_
**Keyword**
The generic ``Keyword`` class is used for all unknown keywords. If the mesh of a ``KeyFile`` is not parsed, then also the mesh keywords are seen as generic keywords. To read all keywords of a ``KeyFile`` use the ``read_keywords`` option.
If a ``KeyFile`` is written again, it will look identical, since the class saves everything including the comments.
.. toctree::
:maxdepth: 3
qd_cae_dyna_keywords_Keyword
Ressources:
- `Youtube Tutorial `_
Example:
::
from qd.cae.dyna import *
# open a file (without mesh parsing)
kf = KeyFile("path/to/keyfile")
# get the third part keyword
generic_keyword = kf["*PART"][2]
# set a new pid (searches pid in comment line above card)
generic_keyword["pid"] = 100
# save it
kf.save("path/to/new_keyfile")
**Include Keywords**
The specific include keyword classes provide means to deal with include files.
Includes are loaded automatically, if in the ``KeyFile`` contructor argument ``load_includes=True``. The ``IncludePathKeyword`` manages all locations, where include files could be located, while the ``IncludeKeyword`` is resposible for managing the files.
.. toctree::
:maxdepth: 3
qd_cae_dyna_keywords_IncludeKeyword
qd_cae_dyna_keywords_IncludePathKeyword
Ressources:
- `Youtube Tutorial `_
Example:
::
from qd.cae.dyna import *
# open a file
kf = KeyFile("path/to/keyfile", load_includes=True)
# get first include keyword
include_keyword = kf["*INCLUDE"][0]
# get the include(s) of the keyword
includes = include_keyword.get_includes()
# or get all loaded includes at once
includes = kf.get_includes()
.. note::
All the keywords of the includes are not accessible from the main ``KeyFile``, but only from the include ``KeyFile``, which can be retrieved by ``KeyFile.get_includes``.
**Mesh Keywords**
The mesh pecific Keywords:
.. toctree::
:maxdepth: 3
qd_cae_dyna_keywords_NodeKeyword
qd_cae_dyna_keywords_ElementKeyword
qd_cae_dyna_keywords_PartKeyword
are only created, if opening a ``KeyFile`` with the argument ``parse_mesh`` enabled. If the mesh is not parsed, their data is seen as a generic ``Keyword``.
Ressources:
- `Youtube Tutorial `_
Example
::
from qd.cae.dyna import *
# load a file
kf = KeyFile("path/to/keyfile",
parse_mesh=True,
load_includes=True)
# get first node keyword
node_keyword = kf["*NODE"][0]
# add a node
node_keyword.add_node(6728, x=1, y=2, z=3)
# and save again
kf.save("path/to/new_keyfile")
.. warning::
If parsing the mesh, all keywords except for the ``PartKeyword`` stop parsing if they encounter a comment or empty line in the data block (e.g. between two elements or nodes)
.. warning::
Mesh entities, such as nodes can be created, but not deleted. Also the mesh keywords itself can not be deleted.