A new code for the solution of ordinary differential equation (ODE) systems was developed in C++ language. Three main aspects were studied: robustness, efficiency and ease of use. BzzOde is a new C++ class intended to solve both stiff and non-stiff ODE problems numerically. Neither FORTRAN 77 nor Fortran 90 was adopted as the reference language. C++ was chosen in order to increase the implementation efficiency and the ease of use and consistency features of the library. Although BzzOde is intended to solve both stiff and non-stiff problems, this paper will only deal with stiff problems since they are the most interesting and commonly occurring ones in everyday chemical problem solving. Several examples taken from both the literature and real life cases, such as chemical kinetics problems, were investigated by comparing the BzzOde performances with state of the art Fortran ODE solvers. The paper describes the robustness feature and performance of BzzOde applied not only to classical problems but also to specific tests that involve medium and large eigenvalue imaginary parts, discontinuous systems and problems with constrained integration variables. Medium-large ODE systems describing real life literature problems analyze and benchmark the efficiency of the ODE solvers tested. New algorithmic techniques for identifying the discontinuity points, for working with constrained variables and for increasing the Jacobian evaluation performance of a sparse ODE system are proposed and critically examined. A detailed description for the benchmark problems and corresponding results is reported in appendixes A and B. (C) 1998 Elsevier Science Ltd. All rights reserved.

BzzOde: a new C++ class for the solution of stiff and non-stiff ordinary differential equation systems

MANCA, DAVIDE
1998-01-01

Abstract

A new code for the solution of ordinary differential equation (ODE) systems was developed in C++ language. Three main aspects were studied: robustness, efficiency and ease of use. BzzOde is a new C++ class intended to solve both stiff and non-stiff ODE problems numerically. Neither FORTRAN 77 nor Fortran 90 was adopted as the reference language. C++ was chosen in order to increase the implementation efficiency and the ease of use and consistency features of the library. Although BzzOde is intended to solve both stiff and non-stiff problems, this paper will only deal with stiff problems since they are the most interesting and commonly occurring ones in everyday chemical problem solving. Several examples taken from both the literature and real life cases, such as chemical kinetics problems, were investigated by comparing the BzzOde performances with state of the art Fortran ODE solvers. The paper describes the robustness feature and performance of BzzOde applied not only to classical problems but also to specific tests that involve medium and large eigenvalue imaginary parts, discontinuous systems and problems with constrained integration variables. Medium-large ODE systems describing real life literature problems analyze and benchmark the efficiency of the ODE solvers tested. New algorithmic techniques for identifying the discontinuity points, for working with constrained variables and for increasing the Jacobian evaluation performance of a sparse ODE system are proposed and critically examined. A detailed description for the benchmark problems and corresponding results is reported in appendixes A and B. (C) 1998 Elsevier Science Ltd. All rights reserved.
1998
File in questo prodotto:
File Dimensione Formato  
030 BzzOde a new C++ class for the solution of stiff and non-stiff ordinary differential equation systems.pdf

Accesso riservato

: Publisher’s version
Dimensione 1.36 MB
Formato Adobe PDF
1.36 MB Adobe PDF   Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11311/659925
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 61
  • ???jsp.display-item.citation.isi??? 33
social impact