GithubHelp home page GithubHelp logo

trdean1 / apcemm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mit-lae/apcemm

0.0 0.0 0.0 26.28 MB

Aircraft Plume Chemistry, Emissions, and Microphysics Model

License: MIT License

Shell 0.01% C++ 98.65% C 0.41% Makefile 0.11% CMake 0.69% PLSQL 0.14%

apcemm's Introduction

DOI

README for the APCEMM Source code repository

APCEMM stands for Aircraft Plume Chemistry Emission and Microphysics Model. The model aims to assess the chemical and microphysical perturbations introduced by a conventional aircraft, equipped with gas turbine engines. Global chemistry transport models commonly assume that emissions are released in grid-boxes that can be several orders of magnitude greater than an airplane's typical dimensions. APCEMM accounts for the fine-scale representation of an aircraft plume. To account for plume-scale processes, APCEMM has the option of computing effective emissions that correspond to what should be released in a grid-box model to match the plume model's output.

APCEMM Development

The development of APCEMM in C++ started in September 2018.

This repository contains multiple branches. Each branch pertains to a specific function.

  • The master branch always contains the most up-to-date and stable version. New code should never be added to that branch directly. Instead, a new branch, forked from master, should be created.
  • The dev* and feature/* branches contain in-development code for future versions.

Dependencies

APCEMM requires the following libraries to build:

netcdf-c (requires HDF5 and zlib)

netcdf-cxx4

Catch2

FFTW3

OpenMP

Boost libraries

yaml-cpp

APCEMM: Installation instructions

APCEMM can be built using CMake. Previously, the dependency structure and compile instructions were specified using manually generated Makefiles. CMake generates these Makefiles automatically, and should lead to a more pleasant software build experience.

CMake will generate a single executable APCEMM that can receive an input file input.yaml. To compile this executable, you can call cmake as follows

cd APCEMM/Code.v05-00
cmake .
cmake --build .

This will generate the APCEMM executable in the Code.v05-00 directory. You can also perform an "out-of-source" build, by simply calling cmake from within a different directory. For example,

cd APCEMM/rundirs/SampleRunDir/
cmake ../../Code.v05-00
cmake --build .

will generate the executable in the rundirs/SampleRunDir/ directory.

APCEMM now requires a working installation of yaml-cpp. If you did not install yaml-cpp in a standard location, pass the argument -DCMAKE_PREFIX_PATH=/path/to/yaml-cpp as part of the original cmake command.

Getting Started

To start a run from the aforementioned rundirs/SampleRunDir, simply call:

./../../Code.v05-00 input.yaml

Three examples and their accompanying jupyter notebooks for postprocessing tutorials are provided in the examples folder. The first example is one where the contrail doesn't persists, and only focuses on analyzing the output of the early plume model (EPM) module of APCEMM. The second example is a persistent contrail simulation where the ice supersaturated layer depth is specified. The third example features using a meteorological input file.

The input file options are explained via comments in the file rundirs/SampleRunDir/input.yaml

Advanced simulation parameters hidden in the input files (e.g. Domain size, grid spacing, aerosol bin size ratios, etc) can be modified in Code.v05-00/src/include/Parameters.hpp

apcemm's People

Contributors

fritzt avatar aagarwal93 avatar michaelxu3 avatar speth avatar sdeastham avatar

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.