A new approach to interoperability using HDF5 Second International Workshop on Software Solutions for Integrated Computational Materials Engineering ICME 2016 14 th April 2016, Barcelona, Spain Anshuman S. Bhadauria, Carlos Agelet de Saracibar, Michele Chiumenti, Miguel Cervera International Center for Numerical Methods in Engineering (CIMNE) e-mail: anshumanbhadauria8@gmail.com, web page: http://www.cimne.upc.edu e-mail: agelet@cimne.upc.edu, web page: http://www.ageletdesaracibar.blogspot.com.es e-mail: michele@cimne.upc.edu, web page: http://chiumenti.rmee.upc.edu/ e-mail: cervera@cimne.upc.edu, web page: http://cervera.rmee.upc.edu/ Universidad Politécnica de Cataluña (UPC) Campus Norte, Jordi Girona 1-3, 08034 Barcelona, Spain
Overview Brief introduction of Finite Element problems. Brief about HDF5 format and what its suitable for and what not. Metadata keywords for HDF5 standardization. Introduction to Abaqus Output Database (ODB) and Model Database (MDB). Methodology of data export from ODB to HDF5 and from HDF5 to Abaqus MDB. Open problems. Scope of further work.
Finite Element Method FEM is a procedure for the numerical simulation of equations (PDEs) which govern problems found in nature. QUESTION: If we apply force on a solid, what are the values of the displacement, stresses and strains at EACH MATERIAL POINT? ANSWER: Divide and Conquer Fig. A solid with known mechanical properties (a shaft, human tissue, etc). Fig. A quarter of the solid. Fig. Discretization of the solid into finite number of elements.
Fig. Temperature distribution over a cylinder block. Fields of Application Fig. Cast, cooling system and mould: 380,000 linear tetrahedral elements.
Data associated GEOMETRY INFORMATION BOUNDARY CONDITIONS MESH MATERIAL PROPERTIES RESULTS And more..
Taking the FEM data to HDF5 Tool Built upon/ Scripting Interface API HDF5 API enables writing, reading, of HDF5 files from languages like C/C++, Python, Java, Fortran, Matlab.
Python API for HDF5 The version of Python used in Abaqus is quiet far behind from current versions. Practical problems: Doesn t support HDF5 by default. Comes with NumPy v1.6, this is critical because both HDF5 APIs require NumPy version >=1.7. Practical workaround: Physically replace (temporarily) the abaqus NumPy v1.6 folder with NumPy v1.7. Use NumPy 1.6 when running GUI, and NumPy v1.7 when nogui. Download h5py and it s dependencies, a HDF5 API for Python, and place it with other Abaqus Python libraries.
HDF5 Containers (OOPS Perspective) HDF5 Container Object API Entry Point HDF5.Group Group Object HDF5 containers act as a data structure, and support all the operations possible on internal data structures of programming languages. HDF5.Group.Annotation Annotation Object Data can be transferred from HDF5 containers to Databases relational or non-relational in case a central repository is setup using scripts. HDF5.Dataset Dataset Object HDF5.Dataset.Annotation Annotation Object
HDF5 with Metadata Metadata is the data about data, which makes it an entity. A material properties HDF5 File is an entity which can Be understood by multiple Tools. Keywords
Abaqus overview HDF5 Model Database Solver Output Database HDF5 These HDF5 files can contain material properties, mesh information and other data associated with Finite Element problems.
Abaqus MDB The MDB object is the high-level Abaqus model database. Obviously everything that you do from the GUI can be done from the command line through the MDB object. MDB HDF5 Object From Horizontal or Vertical scales. Model Object JOB Objects Adaptivity Process Objects Coexecution Objects Annotation Objects Load, Material, Step and other Abaqus model objects
Using orthotropic elasticity model by specifying the terms in the elastic stiffness matrix Fig. Stress-Strain relationship for Orthotropic case If a material scientist can give us data in terms of parameters which continuum models can process, we can import and use them.
Transferring data to the Abaqus MDB from HDF5 files If a material scientist provides a HDF5 file with orthotropic Properties they can be imported. Elasticity Expansion Plasticity Imported into Abaqus Model Material Properties Material properties of an alloy read from a HDF5 file and transferred to the Material object of the Abaqus Model directly through Python API and not input file. Similarly more information like geometries, boundary conditions, loads can also be imported from HDF5 to Abaqus Model database.
Abaqus overview HDF5 Model Database Solver Output Database HDF5 These HDF5 files can contain material properties, mesh information and other data associated with Finite Element problems.
Abaqus ODB The ODB object is the in-memory representation of an output database (ODB) file. ODB Material Objects Part Objects Interaction Property Object Odb Assembly Objects Annotation Object Results, Part (nodes, elements), Material, and other Abaqus model objects HDF5 Object To Horizontal or Vertical scales.
Transferring data from ODB to HDF5 Exported information from Abaqus ODB to HDF5 Element Connectivity Node Coordinates Displacements Similarly, residual stresses, displacements or other results over the mesh can be exported into the HDF5 containers directly from Abaqus ODB and can be used in a Data mapping software..
Interoperability at Continuum Scale Horizontal: Ability to transfer information not just data from one tool to another, may it be, importing a deformed mesh along with its associated stresses, material properties etc. Vertical: To be able to plug in material properties from lower scales into Continuum scale material models on demand using predicted macroscopic properties from a microscopic level.
Horizontal Interoperability HDF5 files can be Used as neutral files Which are also capable In data visualization. Algorithm used for project VERDI
Horizontal Interoperability what can be done HDF5 Model 1 Tool 1 Solver Output Database Data mapping + HDF5 Model 2 Tool 2
Complications in Interoperability with HDF5 HDF5 is just a data format or data container which lets us transfer numbers from any software tool, it is how the other tool understands it, needs standardization. Also another problem is to get the numbers that need to be put in these HDF5 containers and ensure they are consistent and make sense by using Interpolation or data mapping tools like FEDES. Parameters provided from other scales might not be necessarily compatible with existing material models.
Open Problems Suppose we are able to bring information from lower scales to continuum, how do we manage to update the microstructural information at each time step for eg. In Plasticity models where microstructure changes at each time step? What parameters can we get from the lower scales? Will they be compatible with our models?
Roadmap In order to develop HDF5 as a neutral format for simulating a chain of manufacturing, build a exhaustive list of keywords covering all material models. To well define the way data will be exchanged between continuum scales and lower scales. To clearly identify the parameters which can be provided from lower scales and if they are different from existing parameters, how to include them.
Thank you