SNE 25(3-4), December 2015

PDE Modeling with Modelica via FMI Import of HiFlow3 C++ Components with Parallel Multi-core Simulations

Simulation Notes Europe SNE 25(3-4), 2015, 191-197
DOI: 10.11128/sne.25.tn.10316

Abstract

The Modelica modeling and simulation language is widely used in academia and industry to model complex, coupled dynamic systems which can be described by systems of ordinary differential equations (ODE) or differential algebraic equations (DAE). Recent work by the authors showed a way to enable partial differential equation (PDE) modeling with Modelica via functional mock-up interface (FMI) import of C++ components based on the multi-purpose ?nite element library HiFlow3. The ?nite element method (FEM) is largely used in both research and industry as a reliable technique for solving PDE problems.
In contrast to methods based on language extensions or automatic semidiscretizations in space, the approach with FMI import of HiFlow3 components into Modelica requires no change to the Modelica language, enables the use of specialized PDE solvers, and it allows for full fexibility in the choice of geometry, model parameters, and space discretization between simulation runs without recompilation. However, the computationally intensive PDE solving part in this approach can form a bottleneck in the simulations. In this work, we enhance the PDE solver by using a distributed memory parallelization based on a domain decomposition. As an example application, we consider a mechanical linear elasticity problem consisting of physical forces applied on a beam. Beams, plates and shells are common elements of solid structures with a sizable quantity of application in engineering design, appearing in fuselage, ship hulls, concrete roof structure, etc. The derivation of elastic stress strain relations is a crucial point for mechanical analysis and validation, as the bending properties of the structure effects greatly the stability properties. In this work the actual beam is modeled and solved in parallel using a C++ HiFlow3 component whereas the physical force acting on the beam is modeled using Modelica. We use the OpenModelica development environment but the same approach can be adapted to other Modelica environments.