Skip to content

A converter for Finite Element models and results from Permas to VMAP and vice versa.

License

Notifications You must be signed in to change notification settings

BT-DLR/PermasVmap

Repository files navigation

DOI

PermasVmap

A converter from Permas to VMAP and vice versa.

What's this

This software converts models and results from the Finite Element software Permas to VMAP vice versa. It is written in Python with automated applications in mind, such as cross-disciplinary optimization. The initial focus is on 3D scenarios with solid volume elements only but extensions to other kinds of elements (shells etc.) are envisioned.

Why use VMAP?

In our view, VMAP provides two critical features that cannot be found elsewhere

  1. Central conversion data format. It provides interfaces to more than 25 simulation softwares, and counting.
  2. Standardized HDF5 format specification that is productive for structural FE simulations. The fact that both models and results are machine accessible without parsing ASCII, using open source software only, enables much needed efficiency at low entry barriers.

Main workflows

Main workflows

  1. (Permas-ASCII ->) Permas-HDF -> VMAP
    • for FE model and/or results
    • the first step (model only) needs to be done by Permas, see Getting started using the code.
    • for the second step see PermasHdf2Vmap.py
  2. VMAP -> Permas-ASCII
    • for FE model only
    • see Vmap2PermasAscii.py

In the workflow graph above, the input of 1 and the output of 2 may possibly not be identical for the reason that not all features of Permas (e.g. element types) are implemented at the moment. Also, nodes that do not belong to any elements are dropped (e.g. that are exclusively used for the definitions of coordinate systems).

Key features

  1. Performance. The code was fairly optimized for speed. Models with millions of elements can be converted within seconds ... or minutes, depending on the circumstances.
  2. Reliability. The code is tested end-to-end at DLR-BT using multiple non-academic test models.

Detailed list of features

  1. Supported elements: HEXE8, TET10
  2. Supported analysis types:
    • STATIC
    • NLMATERIAL
    • VIBRATION ANALYSIS
    • VIBRATION ANALYSIS with nodal diameter
  3. Further supported model keywords:
    • $NSET (assumption: each NSET is contained in one ESET)
    • $SURFACE ELEMENTS (assumption: each SURFACE is contained in one ESET)
    • $SFSET
    • $MATERIAL with $ELASTIC GENERAL (no temperature dependence) and $DENSITY
    • $ELPROP with MATERIAL
    • $RSYS (not fully functional yet)

Getting started using the code

Requirements

  • VMAP v1.0.0 (Windows binaries will soon be included in this repository)
  • Python envionment according to environment.yml. The code should work with Python 3.7 but is only tested with the newer version stated in the file.

Instructions

Setup

  1. Set up a python environment including the modules listed in environment.yml, e.g. using conda.
  2. Copy the file ./local/local_imports.py.template to ./local_imports.py and adapt it so that you local VMAP instance is found.
  3. Activate the environment
  4. change to the code's root directory

Example testing

Follow the setup instructions first, then:

  1. Run python Permashdf2Vmap.py rotorsegment.hdf.
  2. See the result in the data subfolder: the input file rotorsegment.hdf was converted to rotorsegment_toVMAP.hdf according to the VMAP standard.
  3. Run python Vmap2PermasAscii.py rotorsegment_toVMAP.hdf for the inverse conversion.
  4. See the result in the data subfolder: the input file rotorsegment_toVMAP.hdf was converted to rotorsegment_toVMAP_toPERMASASCII.dat.
  5. For more info on the usage, run python Permashdf2Vmap.py or python Vmap2PermasAscii.py to see explanations and examples of the possible arguments.

Productive usage

Follow the setup instructions first, then:

  1. In your Permas-UCI file, include the following lines:
! header section:
DEFAULT SET HDF_DATASIZE=64 ! sets maximum accuracy for HDF data
! [...]
! TASK section:
	EXPORT
		ITEM MODL
		GO PERMAS BINARY
  1. Run Permas.
  2. Move the resulting .hdf file to the data subfolder of this repository.
  3. Run python Permashdf2Vmap.py <project>.hdf.
  4. Enjoy the multitude of possible workflows enabled by the VMAP-ecosystem.

If you just want to convert your model to VMAP, i.e. without any simulation results, run Permas with the following UCI:

SET DATABASE = DELETE

NEW
INPUT
	READ PERMAS FILE = my_permas_model.dat
RETURN

TASK
	EXPORT
		MODEL
		GO PERMAS BINARY
TASK END
STOP

Getting started contributing to or adapting the code

See CONTRIBUTING.md. There you can also find information on the reasonig behind features, workflows etc.

Authors and acknowledgment

Nadine Barth and Oliver Kunc were the initial main developers.

Citing

See the DOI link at the top.

License

Licensed under the Apache License, Version 2.0, see LICENSE.

Project status

Development of this project is active (2023). Contributions are highly welcome, see CONTRIBUTING.md for more information.

About

A converter for Finite Element models and results from Permas to VMAP and vice versa.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages