Skip to content

sintefmath/CPDSpatial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPDSpatial

The acronym "CPD" stands for "Chemical Percolation and Devolatilization". To cite the original CPD authors:

The chemical percolation devolatilization (CPD) model was developed to model coal devolatilization based on characteristics of the chemical structure of the parent coal. [It] describes the devolatilization behavior of rapidly heated coal based on the chemical structure of the parent coal.

The model predicts gas, tar, metaplast and char yield of coal pyrolysis over the course of the process. It is based on percolation statistics theory, where the coal is modeled as a matrix of connected aromatic 'clusters' or 'sites' connected by bridges that may break up, react and re-link during pyrolysis, thereby creating finite fragments that will end up as released volatiles, metaplast, or re-linked back into the original material.

In the literature, the model has also been used to model biomass devolatilization, by considering biomass a sum of its main components, namely cellulose, hemicellulose and lignin. See e.g. Fletcher et al. 2012 or Lewis and Fletcher, 2013.

Implementation

The cpd() function below aims to provide a basic Julia implementation of the CPD model as described in the following early papers:

In addition, the cpd() function proposes an experimental, modified metaplast model to ensure mass conservation when integrating with the spatial model.

Online resources

The original creators of the CPD model have made a number of resources available online. These web pages are provided and maintained by Thomas Fletcher, who co-authored the original papers cited above. The provided material also includes Fortran and Matlab code for the original CPD model.

We have significantly benefitted from these resources during the development of CPDSpatial, but do not claim any affiliation with the authors of the original papers.

Top-level function and associated arguments

ReactionRateParams
MaterialParams
cpd(AEσb::ReactionRateParams, AEσg::ReactionRateParams,
AEσρ::ReactionRateParams, mpar::MaterialParams,
duration::Float64,Tfun::Function; metaplast_model, Pfun::Function, num_tar_bins, max_tstep)

Functions for flash and percolation calculations

flash
f_gas
f_tar
binned_molecular_weights

Examples

The examples in the examples folder can be run by first activating the CPDSpatial environment. Then, from the project's root folder, a specific example could be included, for example:

include("examples/basic_cpd_benchmarking.jl")

The basic_cpd_benchmarking script will setup a function cpd_benchmarking that can be called with a specific symbol to test a specific case. The options are listed in the function doucmentation, and also displayed when calling the function without any parameters.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published