Nonlinear multiphysics finite element code architecture in object oriented Fortran environment

The objective of the present manuscript is to describe a new architecture of the nonlinear multiphysics finite element code in object oriented Fortran environment hereafter referred to as FOOF. The salient features of FOOF are reusability, extensibility, and performance. Computational efficiency stems from the intrinsic optimization of numerical computing intrinsic to Fortran, while reusability and extensibility is inherited from the support of object-oriented programming style in Fortran 2003 and its later versions. The shortcomings of the object oriented style in Fortran 2003 (in comparison to C++) are alleviated by introducing the class hierarchy and by utilizing a multilevel programming style.

[1]  Thomas Zimmermann,et al.  Object-oriented nonlinear finite element programming: a primer , 2000 .

[2]  Ed Akin,et al.  Object-Oriented Programming via Fortran 90/95: Bibliography , 2003 .

[3]  Eugenio Oñate,et al.  An Object-oriented Environment for Developing Finite Element Codes for Multi-disciplinary Applications , 2010 .

[4]  Samuel P. Midkiff,et al.  A comparison of Java, C/C++, and FORTRAN for numerical computing , 1998 .

[5]  Thomas Zimmermann,et al.  Object-oriented finite element programming: III. An efficient implementation in C++ , 1993 .

[6]  Michel Gueury,et al.  On the implementation of object-oriented philosophy for the design of a finite element code dedicated to multibody systems , 2005 .

[7]  Jesús Carrera,et al.  An experimental approach to the performance penalty of the use of classes in Fortran 95 , 2011, Adv. Eng. Softw..

[8]  S. Zaghi,et al.  OFF, Open source Finite volume Fluid dynamics code: A free, high-order solver based on parallel, modular, object-oriented Fortran API , 2014, Comput. Phys. Commun..

[9]  S.-P. Scholz Elements of an object-oriented FEM++ program in C++ , 1992 .

[10]  Emil M. Constantinescu,et al.  Multiphysics simulations , 2013, HiPC 2013.

[11]  Helgi Adalsteinsson,et al.  Design patterns for multiphysics modeling in Fortran 2003 and C++ , 2010, TOMS.

[12]  Graham C. Archer,et al.  A new object-oriented finite element analysis program architecture , 1999 .

[13]  Daniel Rypl,et al.  Object-oriented, parallel finite element framework with dynamic load balancing , 2012, Adv. Eng. Softw..

[14]  Paul A. Fishwick,et al.  MOOSE: architecture of an object-oriented multimodeling simulation system , 1997, Defense, Security, and Sensing.

[15]  Ted Belytschko,et al.  A regularized phenomenological multiscale damage model , 2014 .

[16]  Glaucio H. Paulino,et al.  Nonlinear Finite Element Analysis using an Object-Oriented Philosophy – Application to Beam Elements and to the Cosserat Continuum , 1999, Engineering with Computers.

[17]  Ph. Menétrey,et al.  Object-oriented non-linear finite element analysis: Application to J2 plasticity , 1993 .

[18]  Stephen J. Chapman Fortran 95/2003 for Scientists & Engineers , 1997 .

[19]  John E. Akin,et al.  Object-oriented Fortran 90 P-adaptive finite element method , 2000 .

[20]  Thomas Zimmermann,et al.  Object-oriented finite element in programming: II: A prototype program in Smalltalk , 1992 .

[21]  Terje Haukaas,et al.  Structural reliability software at the University of California, Berkeley , 2006 .

[22]  Eduardo Nobre Lages,et al.  DOOLINES: an object-oriented framework for non-linear static and dynamic analyses of offshore lines , 2011, Engineering with Computers.

[23]  Thomas Zimmermann,et al.  Object-oriented finite element programming: I: Governing principles , 1992 .

[24]  Eugene Loh The ideal HPC programming language , 2010, Commun. ACM.

[25]  Damian Rouson,et al.  This Isn't Your Parents' Fortran: Managing C++ Objects with Modern Fortran , 2012, Computing in Science & Engineering.

[26]  Todd L. Veldhuizen,et al.  Will C++ Be Faster than Fortran? , 1997, ISCOPE.

[27]  Damian Rouson,et al.  Object construction and destruction design patterns in Fortran 2003 , 2010, ICCS.

[28]  Bill Moore,et al.  GFS: Evolution on Fast-Forward , 2010 .

[29]  Derek Gaston,et al.  MOOSE: A parallel computational framework for coupled systems of nonlinear equations , 2009 .

[30]  Pierre Pegon,et al.  Object-oriented programming in nonlinear finite element analysis , 1998 .

[31]  Bořek Patzák,et al.  Design of object oriented finite element code , 2001 .

[32]  Daniela di Serafino,et al.  MLD2P4: A Package of Parallel Algebraic Multilevel Domain Decomposition Preconditioners in Fortran 95 , 2010, TOMS.

[33]  Michael H. Scott,et al.  Nonlinear Finite-Element Analysis Software Architecture Using Object Composition , 2010, J. Comput. Civ. Eng..

[34]  Ricardo O. Foschi,et al.  Object-oriented finite element analysis , 1990 .

[35]  J. Fish,et al.  Computational coupling of moisture diffusion and mechanical deformation in polymer matrix composites , 2014 .

[36]  Jianhu Nie,et al.  Development of an object-oriented finite element program with adaptive mesh refinement for multi-physics applications , 2010, Adv. Eng. Softw..