User Tools

Site Tools



This project is focused on establishing a material database for science and engineering applications based on the C++ ViennaMaterials library. The material data is to be stored in input files, which is processed by ViennaMaterials, in turn providing external applications access to the data. Although the library will be implemented in C++, interfaces to C and Python are planned for ViennaMaterials. A main goal of this project is to test and evaluate the interfaces with our simulation tools, by setting up automatic test suits as well as gaining first-hand experience with utilizing the tools. This project will require occasional interaction with an external research group, which is eager to work with our tool.

The student will learn the essential role of material parameters for device simulation as well as how to implement a software suite to provide these parameters to external simulation tools. The student will become skilled in interfacing C++ code with C and Python, in setting up automatic test cases, and in collaborating with external research groups.

Prospective Student

Matthias Wastl

Milestone Tasklist

We envision several milestones, each containing its own list of tasks to be completed to be able to claim the assigned salary.

Milestone 1

  1. Research: Investigate available sources for material parameters
  2. Planning: Devise planning for importing external material data
  3. Structure: Investigate and define XML material layout for material data

Milestone 2 (updated on July 16)

  1. C++ Python Wrapper: Investigate and implement Python Wrapper in C++ (i.e. functions with arguments)
  2. Code Backend Mechanism: Investigate and implement mechanism to switch code execution backends (i.e. prepare for potential future extensions towards supporting Lua and C/C++)
  3. XML/Python/API: Investigate and implement Python code in XML interface, and ViennaMaterials API (i.e. how can a 'simulator' access/evaluate/execute code stored in XML material files?)

Milestone 3

  1. IPD2XML Converter: Implement an IPD to XML converter, considering a flexible setup of the XML Layout
  2. Import: Import and verify data from available IPD file
  3. Testing: Implement tests

Milestone 4

  1. C-Interface: Implement a C API wrapper for the C++ backend
  2. Evaluation: Interface with our simulation tools (e.g. ViennaMini), identify shortcomings in the API, and devise fixes or possible new features.
  3. Testing: Implement tests

Milestone 5

  1. Testing: Extend the tests and interface with our institute's testing facilities
  2. Documentation: Write a documentation for ViennaMaterials

Temporarily Deactived Milestones


  1. Math Expressions: Interface with the LUA library for evaluating mathematical expressions
  2. LUA2XML Converter: Implement a LUA to XML converter, considering a flexible setup of the XML Layout
  3. Testing: Implement tests

Primary Mentor

Additional Information

material_database.txt · Last modified: 2015/01/22 14:47 by viennastar