GithubHelp home page GithubHelp logo

computationalsciencelaboratory / fatode Goto Github PK

View Code? Open in Web Editor NEW
15.0 6.0 2.0 3.7 MB

A FORTRAN library for the integration of ordinary differential equations with direct and adjoint sensitivity analysis capabilities

Home Page: http://people.cs.vt.edu/~asandu/Software/FATODE

License: Other

Fortran 95.78% Makefile 2.59% Mercury 0.02% C 1.61%
ode-solver sensitivity-analysis time-integration fortran

fatode's Introduction

FATODE

FATODE version 1.2 by Hong Zhang and Adrian Sandu Released April 30, 2013

FATODE version 1.1 by Hong Zhang and Adrian Sandu Released November 11, 2012

FATODE contains a set of integrators to solve ordinary differential system y'=f(t,y) with capabilities of direct and adjoint sensitivity analysis. FATODE is implemented in FORTRAN90, and has been tested with the following compilers: Portland group's pgf90, Intel's ifort, Lahey's lf95, Sun's sunf90, gfortran, Absoft.

FATODE contains the following directory structure:

FATODE/README      general instructions
FATODE/FWD         forward model integrators   
FATODE/ADJ         adjoint model integrators
FATODE/TLM         tangent linear model integrators
FATODE/LSS_LIBS    lib files of linear solvers
FATODE/EXAMPLES    example programs
FATODE/DOC         documentation (user's guide)

FATODE implementation requires BLAS and LAPACK libraries. For solution of linear systems arised in the integration, FATODE provides options to use BLAS/ LAPACK routines (with macro definition -DFULL_ALGEBRA) and to use sparse linear solvers such as UMFPACK (-DSPARSE_UMF) and SuperLU (-DSPARSE_LU). If sparse linear solvers are needed, the FATODE code must be linked with corresponding (static) libraries for the linear solvers. For installation instuctions of UMFPACK and SuperLU, please refer to their websites. UMFPACK can be accessed at: http://www.cise.ufl.edu/research/sparse/umfpack/ SuperLU can be accessed at: http://crd.lbl.gov/~xiaoye/SuperLU/

Since UMFPACK and SuperLU are written in C, wrappers for calling C routines from FORTRAN are needed. They can be found in the original packages of UMFPACK and SuperLU. For convenience, they are also included in FATODE/LSS_LIBS directory as well as makefiles to generate object files which can be linked to FATODE code. Make sure to modify the installation PATH first in the makefiles if you need to regenerate the object files.

For usage of FATODE, please refer to the user's guide, as well as the example programs containing drivers and makefiles which can be used as templates.

Changes

Changes from Version 1.1

Bug fixes:

  • Fixed a possible initilization problem of method coefficients for windows users.
  • Fixed improper use of drdy in the adjoint Rosenbrock solver. Complier options:
  • The option -mp for ifort compiler is deprecated. Use -fltconsistency instead.

Changes from Version 1.0

New example:

  • CBM-IV: a stiff chemical system used to demonstrate the usage of FATODE for computing sensivities with respect to system parameters. Bug fixes:
  • Fixed several bugs in Rosenbrock solvers Complier options:
  • ifort sometimes reulsts in inconsistent output with other compilers due to floating-point calculation consistency. The option -mp can solve this problem. Documentation:
  • Add a user's guide for FATODE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.