Table of Contents
Fetching ...

A new object-oriented framework for solving multiphysics problems via combination of different numerical methods

Juan Michael Sargado

TL;DR

An object-oriented framework for performing multiphysics simulations that allows for the monolithic coupling of different numerical schemes and is designed to allow achievement of the aforementioned functionalities with a minimum level of inheritance in order to improve the learning curve for programmers who are not acquainted with the software.

Abstract

Many interesting phenomena are characterized by the complex interaction of different physical processes, each often best modeled numerically via a specific approach. In this paper, we present the design and implementation of an object-oriented framework for performing multiphysics simulations that allows for the monolithic coupling of different numerical schemes. In contrast, most of the currently available simulation tools are tailored towards a specific numerical model, so that one must resort to coupling different codes externally based on operator splitting. The current framework has been developed following the C++11 standard, and its main aim is to provide an environment that affords enough flexibility for developers to implement complex models while at the same time giving end users a maximum amount of control over finer details of the simulation without having to write additional code. The main challenges towards realizing these objectives are discussed in the paper, together with the manner in which they are addressed. Along with core objects representing the framework skeleton, we present the various polymorphic classes that may be utilized by developers to implement new formulations, material models and solution algorithms. The code architecture is designed to allow achievement of the aforementioned functionalities with a minimum level of inheritance in order to improve the learning curve for programmers who are not acquainted with the software. Key capabilities of the framework are demonstrated via the solution of numerical examples dealing on composite torsion, Biot poroelasticity (featuring a combined finite element-finite volume formulation), and brittle crack propagation using a phase-field approach.

A new object-oriented framework for solving multiphysics problems via combination of different numerical methods

TL;DR

An object-oriented framework for performing multiphysics simulations that allows for the monolithic coupling of different numerical schemes and is designed to allow achievement of the aforementioned functionalities with a minimum level of inheritance in order to improve the learning curve for programmers who are not acquainted with the software.

Abstract

Many interesting phenomena are characterized by the complex interaction of different physical processes, each often best modeled numerically via a specific approach. In this paper, we present the design and implementation of an object-oriented framework for performing multiphysics simulations that allows for the monolithic coupling of different numerical schemes. In contrast, most of the currently available simulation tools are tailored towards a specific numerical model, so that one must resort to coupling different codes externally based on operator splitting. The current framework has been developed following the C++11 standard, and its main aim is to provide an environment that affords enough flexibility for developers to implement complex models while at the same time giving end users a maximum amount of control over finer details of the simulation without having to write additional code. The main challenges towards realizing these objectives are discussed in the paper, together with the manner in which they are addressed. Along with core objects representing the framework skeleton, we present the various polymorphic classes that may be utilized by developers to implement new formulations, material models and solution algorithms. The code architecture is designed to allow achievement of the aforementioned functionalities with a minimum level of inheritance in order to improve the learning curve for programmers who are not acquainted with the software. Key capabilities of the framework are demonstrated via the solution of numerical examples dealing on composite torsion, Biot poroelasticity (featuring a combined finite element-finite volume formulation), and brittle crack propagation using a phase-field approach.

Paper Structure

This paper contains 27 sections, 41 equations, 15 figures, 8 tables.

Figures (15)

  • Figure 1: Different domain configurations for a multiphysics problem consisting of two PDEs.
  • Figure 2: Class diagram showing the general structure of the BROOMStyx code.
  • Figure 3: Saint-Venant torsion of a bar with elliptical cross section: (a) FE solution of the warping function $\omega$ using isoparametric 6-node triangles, and (b) convergence of $\omega$ to the analytical solution with hierarchical refinement of the mesh.
  • Figure 4: Numerical results showing (a) the warping function $\omega$, and (b) the displacement component $u_z$ for an elliptical cross-section centered at $\left( 1,0.5 \right)$.
  • Figure 5: Torsion of composite shaft, showing (a) geometry and discretization, (b) distribution of $\sigma_{zx}$, (c) distribution of $\sigma_{zy}$. It can be verified from the latter two plots that continuity of traction components normal to material interfaces is properly enforced across said surfaces.
  • ...and 10 more figures