Git Product home page Git Product logo

kpp-mistra's Introduction

KPP-Mistra

KPP-Mistra is a version of the Kinetics PreProcessor (KPP) software customized for the Mistra model.

KPP-Mistra should only be used in conjunction with the Mistra model; for any other application use the original version or check out the GEOS-Chem community version.


KPP

KPP is a symbolic chemistry Kinetics PreProcessor, developed by V. Damian and A. Sandu, with the contribution of R. Sander. KPP builds simulation code for chemical kinetic systems. For more information, go to the KPP website.

Copyright (C) 1995-1997 Valeriu Damian and Adrian Sandu, CGRER, Univ. Iowa (USA).

Copyright (C) 1997-2016 Adrian Sandu, Michigan Tech. & Virginia Tech. (USA), with contributions from Rolf Sander, Max-Planck Institute for Chemistry, Mainz (Germany).

KPP is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation (http://www.gnu.org/copyleft/gpl.html); either version 2 of the License, or (at your option) any later version.

KPP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License can be found in the LICENCE file; you can also consult http://www.gnu.org/copyleft/gpl.html or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Adrian Sandu
Computer Science Department
Virginia Polytechnic Institute and State University
Blacksburg, VA 24060, USA
E-mail: [email protected]

Reference

V. Damian, A. Sandu, M. Damian, F. Potra, G.R. Carmichael: "The Kinetic PreProcessor KPP - A Software Environment for Solving Chemical Kinetics", Computers and Chemical Engineering, 26, 11, 1567-1579, 2002 [link].


KPP-Mistra

KPP-Mistra was developed from KPP v2.2.3 and includes all the bugfixes and modifications made by R. Sander and J. Bock (see the f77 and mistra branches at: https://bitbucket.org/gcst/kpp), plus additional modifications specific to Mistra made by J. Bock. A summary of the changes can be found in the CHANGELOG.md file.

The stable version of KPP-Mistra can be downloaded from the Releases page.

Instructions

To install KPP-Mistra:

  1. Check that FLEX (open-source lexical analizer) is installed using the command: flex --version.

  2. Find the path of the FLEX library (libfl.a or libfl.so) using the command: locate -b libfl.*.

  3. Check that BISON (open-source parser generator) is installed using the command: bison --version.

  4. Define the $KPP_HOME environment variable to point to the path of KPP-Mistra. If, for example, KPP-Mistra is installed in $HOME/KPP-Mistra:

  • if using the C shell (or the tcsh shell), add the following to ~/.cshrc (or ~/.tcshrc):

    setenv KPP_HOME $HOME/KPP-Mistra
    set PATH=( $PATH $KPP_HOME/bin )
  • if using the bash shell, add the following to ~/.bashrc:

    export KPP_HOME=$HOME/KPP-Mistra
    export PATH=$PATH:$KPP_HOME/bin
  • Execute the command source ~/.cshrc (or .tcshrc, or .bashrc) to make sure that the changes are in effect. Alternatively, close and reopen the terminal. The command echo $KPP_HOME should return the correct path of KPP-Mistra.

  1. In $KPP_HOME edit the Makefile.defs file. Follow the instructions to specify the compiler (by default, the GNU compiler gcc), the path of the FLEX library, etc...

  2. In KPP_HOME build the source files using the make command. Check that the installation has been successful using the command which kpp.

To clean the KPP-Mistra installation:

  1. Delete the KPP object files with the command: make clean.

  2. Delete the KPP object files and binaries with the command: make distclean.

To use KPP-Mistra with the Mistra model:

The KPP User's Manual can be found in the doc/ directory.

Please refer to the Mistra manual in the doc/ directory of the Mistra repository for further information.

kpp-mistra's People

Contributors

rs028 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

pb866 rs028

kpp-mistra's Issues

License file

Move license file from gpl/ (which should be deleted) to main directory and rename to LICENSE for consistency.

changelog and readme files

  • update CHANGELOG file (change to markdown)
  • add info in diff_version_rolf_sander.txt to changelog
  • tidy up readme file (change to markdown)
  • update KPP_VERSION

After this is done and PR#7 is merged -> New Release

ToDo: random notes

  • cflags.guess: rename as cflags.sh (?)
  • cflags: is this file needed or can be deleted?
  • tidy .gitignore files
  • the Makefile.defs file needs to be modified by the user to complete setup. Should it be added to the .gitignore file?

update to v2.2.4_GC

From what I can see the final version of the mistra branch on bitbucket has these differences with the version of KPP shipped with Mistra (called 2.2.4_GC):

  • minor differences in int/rosenbrock.f and in Makefile.defs
  • deleted files rosenbrock_split.def and rosenbrock_split.f90 in int/
  • added a number of files in util/
  • deleted directory int.modified_WCOPY/
  • added CHANGELOG and a diff file

Add and document these changes, then delete the kpp/ folder and its content from the Mistra repo.

KPP testing and quality control

The last official version of KPP is v2.2.3, released in November 2012.

There have been several modifications, mostly by R. Sander and J. Bock (see repo on https://bitbucket.org/gcst/kpp), and then several more customizations specific to Mistra by J. Bock. Some of these modifications are not well documented (as a matter of fact, the KPP codebase is not well documented in general).

It would be good to run some tests and to review the code, especially wrt the modifications since v2.2.3, to make sure that bugs have not been accidentally introduced and to increase confidence in the code.

A general cleanup of the codebase would also be good. There are several parts of the code and entire files which are leftover or backups of previous versions and could be safely deleted.

This is a big project and requires good knowledge of Fortran and C.

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.