cadet-semi-analytic

Semi-analytic "arbitrary precision" branch of CADET utilizing analytical solutions in Laplace domain and numerical inversion for models with linear isotherm.

https://github.com/cadet/cadet-semi-analytic

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary
Last synced: 9 months ago · JSON representation ·

Repository

Semi-analytic "arbitrary precision" branch of CADET utilizing analytical solutions in Laplace domain and numerical inversion for models with linear isotherm.

Basic Info
  • Host: GitHub
  • Owner: cadet
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 1.71 MB
Statistics
  • Stars: 17
  • Watchers: 8
  • Forks: 0
  • Open Issues: 8
  • Releases: 1
Created almost 11 years ago · Last pushed 12 months ago
Metadata Files
Readme License Citation Authors

README.md

DOI

CADET - Semi Analytic Extension

The Chromatography Analysis and Design Toolkit (CADET) is developed at the Institute of Bio- and Geosciences 1 (IBG-1) of Forschungszentrum Jülich (FZJ) under supervision of Prof. Eric von Lieres. This is the semi-analytic extension of the CADET-Core project, of which both are freely distributed (under the terms of the GPLv3) as a contribution to the scientific community. If you find it useful for your own work, we would appreciate acknowledgements of this software and citations of our papers:

Please note that the results from the referenced publication can be reproduced exactly using version 1 of the software, which can be accessed on zenodo.

Features

  • Processes a comprehensive family of chromatography models (2D GRM, GRM, LRMP, LRM, CSTR) with one component and linear isotherm
  • Fast arbitrary order moments using the Laplace transform of the model, algorithmic differentiation, and extrapolation
  • Arbitrary inlet profiles via piecewise cubic polynomials in moment calculation
  • Arbitrary precision solution of the model using a numerical inverse Laplace transform (can optionally be combined with extrapolation)
  • Proven error bounds in case of quasi-stationary binding
  • Suited for dynamic and quasi-stationary binding
  • Shared memory parallelization using OpenMP
  • Supports XML and HDF5 as input formats, CSV for output
  • Command line interface
  • Multi-platform: Works on Windows, Linux, and Mac OS X

Get and build CADET-semi-analytic

CADET-semi-analytic has been successfully built and run on the following platforms:

  • Windows
  • Linux
  • Mac OS X

Dependencies

  • A C++11 capable compiler with OpenMP support (e.g., GCC >= 4.7, Clang >= 3.7, MS Visual Studio >= 2010)
  • CMake
  • HDF5
  • GMP
  • MPFR
  • MPC
  • MPFR C++ (header-only, distributed along with CADET-semi-analytic)
  • quadpack++ (header-only, distributed along with CADET-semi-analytic)
  • CppAD (header-only, distributed along with CADET-semi-analytic)
  • TCLAP: Templatized C++ Command Line Parser (header-only, distributed along with CADET-semi-analytic)
  • pugixml (distributed along with CADET-semi-analytic)
  • Optionally: FADBAD++ (distributed along with CADET-semi-analytic)

Building

  1. Download and build the requirements. Note that CADET-semi-analytic needs the HDF5-C++ library which is not built by default (use --enable-cxx when calling ./configure).
  2. Get the latest source code of CADET-semi-analytic
  3. Unpack to the folder casema/code
  4. Create a new folder casema/build and change to it
  5. Call cmake and use the environment variables GMP_ROOT, MPFR_ROOT, MPC_ROOT, and HDF5_ROOT to point CMake to the top level directories of the installed libraries if it does not find them automatically. Use -DCMAKE_INSTALL_PREFIX to tell CMake the installation directory and DCMAKE_CXX_COMPILER if you want to use a non-default compiler. On Linux a suitable command might look like this (paths need to be adjusted):

GMP_ROOT=libs/gmp/ MPFR_ROOT=libs/mpfr/ MPC_ROOT=libs/mpc/ HDF5_ROOT=libs/hdf5/ cmake -DCMAKE_INSTALL_PREFIX=install/ -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_C_COMPILER=gcc-4.8 ../code Note that you need to pass the switch -DUSE_FADBAD=ON in order to enable FADBAD++ support. 6. After CMake has successfully run, the software is compiled and installed by executing make install

Using CADET-semi-analytic

CADET-semi-analytic uses the CADET file format. However, it is limited to one component and linear isotherms. Example can be found in CADET-Verification.

Suppose your model is contained in the HDF5 file model.h5, then you can compute the chromatogram via the command casema-cli.exe model.h5 -o chromatogram.csv -e 1e-100 -p 250 -P 20 -t 4 where no extrapolation method is used and, hence, the convergence detection tolerances are set to 0. This command also requests the usage of 250 decimal digits precision arithmetics (but only 20 digits of them are written to file), parallelization using 4 threads, and the total error to be less than 10^(-100). Extrapolation is enabled by adding -x MET to the command line, where MET is one of ide, ads, wem, wrm, iad, lum, ltm, ibt, btm, nam, rem, or sgr. The results are written to the file chromatogram.csv.

Alternatively, you can choose to write the output to the H5 input file, following the CADET file format. Note, however, that in this mode, the output precision is constrained by the H5 format, which does not support arbitrary precision, and is instead limited by the numerical limits of the C++ double type. casema-cli.exe model.h5 -e 1e-100 -p 250 -P 20 -t 4

The interface and further information on program options is documented in the Interface Documentation.

Owner

  • Name: CADET
  • Login: cadet
  • Kind: organization
  • Email: cadet@fz-juelich.de

Citation (CITATION.bib)

% As an open-source project, CADET-Semi-Analytic relies on the support and recognition from users and researchers to thrive.
% Therefore, we kindly ask that any publications or projects leveraging the capabilities of CADET-Semi-Analytic acknowledge its creators and their contributions by citing the following publication.

@article{LEWEKE2016350,
title = {Fast arbitrary order moments and arbitrary precision solution of the general rate model of column liquid chromatography with linear isotherm},
journal = {Computers & Chemical Engineering},
volume = {84},
pages = {350-362},
year = {2016},
issn = {0098-1354},
doi = {https://doi.org/10.1016/j.compchemeng.2015.09.009},
url = {https://www.sciencedirect.com/science/article/pii/S009813541500304X},
author = {Samuel Leweke and Eric {von Lieres}},
keywords = {Arbitrary precision solution, Arbitrary order moments, Numerical inverse Laplace transform, Error analysis, Algorithmic differentiation, Convergence acceleration},
abstract = {Algorithms and software are presented for efficiently computing reference solutions of the general rate model with proven error bounds. Moreover, algorithms and software are presented for efficiently computing moments of arbitrary order. The methods are based on numerical inverse Laplace transform, and support both quasi-stationary and dynamic linear binding models. The inlet concentration profiles are treated in a most general way using piecewise cubic polynomials. Algorithmic differentiation obviates manual derivation of the required derivatives. Arbitrary precision arithmetics are applied for minimizing numerical roundoff errors, and several convergence acceleration techniques are evaluated. The implemented software package is freely available as open source on GitHub.}
}

GitHub Events

Total
  • Create event: 9
  • Release event: 1
  • Issues event: 10
  • Watch event: 15
  • Delete event: 9
  • Issue comment event: 1
  • Push event: 54
  • Pull request event: 14
Last Year
  • Create event: 9
  • Release event: 1
  • Issues event: 10
  • Watch event: 15
  • Delete event: 9
  • Issue comment event: 1
  • Push event: 54
  • Pull request event: 14

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 7
  • Total pull requests: 11
  • Average time to close issues: 25 days
  • Average time to close pull requests: about 1 month
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.14
  • Average comments per pull request: 0.18
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 11
  • Average time to close issues: 25 days
  • Average time to close pull requests: about 1 month
  • Issue authors: 1
  • Pull request authors: 2
  • Average comments per issue: 0.14
  • Average comments per pull request: 0.18
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jbreue16 (8)
Pull Request Authors
  • jbreue16 (19)
  • ronald-jaepel (1)
Top Labels
Issue Labels
test (3) maintenance (2) interface (2) feature request (2) bug (1) enhancement (1)
Pull Request Labels
maintenance (11) interface (9) test (7) enhancement (3)

Dependencies

.github/workflows/ci.yml actions
  • actions/checkout v3 composite
vcpkg.json vcpkg
  • eigen3 *
  • gmp *
  • hdf5 *
  • mpc *
  • mpfr *