Skip to content

Commit

Permalink
v3.6.0 (#669)
Browse files Browse the repository at this point in the history
* Add CUDA Rosenbrock tests (#579)

* add sync functions to state variable
add cuda rosenbrock tests

* fix all the compilation errors
analytical tests do not work for CUDA rosenbrock

* fix call to the base class function;
bug fix for CuLudecompose and add
singularity check

* fix the compilation error for CUDA decomposition class

* remove unnecessary calls to the base class functions

* fix all the compilation errors

* add crtp to allow calls to function from either base or derived class

* fix more compilation errors about abstract rosenbrock solver
now the cuda test passes for Troe case

* add lambda functions as arguments for CPU/JIT/CUDA tests

* initialize Yerror on the GPU every time and pass all the analytical
tests

* turn off the cuda memory check for the integration tests

* revert back to the original process class

* clean up unused header

* update JIT test interface

* extend state class to cudastate class

* remove unnecessary cuda device sync

* add cuda state class and address compilation errors

* fix broken CI tests

* more bug fix for CI tests

* fix the compiler warning for cuda code

* more fix for broken CI tests

* resolve the cuda compiler warnings

* address Matt's PR comments

---------

Co-authored-by: Jian Sun <[email protected]>

* Auto-format code changes (#586)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Use Fill to reset the L and U matrices in Rosenbrock solve (#588)

use Fill in Rosenbrock solve

* In-place linear solve (#585)

* removing condensing x and b in nonvectorizable matrix code for linear solve

* adding alias back

* adding back comment

* spacing

* adding back comment

* moving comment

* vectorize version no longer segfaults but something is wrong

* vectorized passes

* removing b from jit linear solver

* removing b from cuda linear solver

* usin function pointer alias

* adding a comment

* fix conflict resolve typo

---------

Co-authored-by: Jian Sun <[email protected]>
Co-authored-by: Jian Sun <[email protected]>

* Auto-format code changes (#589)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* 498 mimic camchem substep convergence failure integration acceptance (#582)

* trying to continue on with current solution

* mimicing camchem

* testing backward euler against hires, e5

* updating citations

* oregonator is too stiff for backward euler

* addressing PR comments

* collecting solver stats

* Update include/micm/solver/backward_euler.inl

Co-authored-by: Matt Dawson <[email protected]>

* removing backward euler for oregonator test

* removing cerr in favor of a solver state

---------

Co-authored-by: Matt Dawson <[email protected]>

* Auto-format code changes (#590)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* 304 reorganize include folder (#591)

* reorganizing files

* correcting cuda imports

* Auto-format code changes (#592)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* 577 test all parameter types of the dense matrix cpu rosenbrock on the analytical policy tests (#593)

Converts HIRES, Oregonator, E5 to chemical equations so that they can be tested on the GPU

All analytical tests are tested with CPU and GPU rosenbrock. Backward euler as well (except oregonator). Renaming to match naming schemes for test files

* Auto-format code changes (#597)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Fix GPU memory leak for the CUDA unit tests (#600)

* fix most GPU memory leak

* allocate a device pointer in the device struct

* remove unused cuda mem copy

* use swap in the move constructor and assignment of CUDA class
initialize the null pointer in the struct definition
pass the cuda memory check for all the unit tests

* remove unnecessary nullptr

* fix the broken CI tests

* more bug fixes

---------

Co-authored-by: Jian Sun <[email protected]>

* Auto-format code changes (#601)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Backware Euler with vectorizable matrix types (#596)

* starting to test all solver parameter types

* saving progress

* saving progress

* testing all stages analytically

* updating all interfaces

* correcting cuda build I hope

* testing jit against hires, e5, oregonator

* adding cuda solver builder test

* removing hires, e5, oregonator from cuda tests; they need their own kernels

* testing e5 from a configuration

* testing e5 jit integration

* testing e5 properly

* removing reset of L and U matrices (#594)

* oregonator from a configuration

* renaming things

* using different tolerances?

* moving state onto and off of host

* saving gpu changes

* updating cuda tests

* adding some better tolerances for cuda tests

* adding different tolerances for e5

* adding citation to e5

* thing

* formed hires equations

* using passing tolerances for cpu tests

* jit tolerances

* backward euler tests

* configuration for hires

* add AddToDiagonal function on sparse matrix

* use ForEach in Backward Euler

* add convergence check function to backward euler

* fix merge problems

* add vector matrix to analytical solver tests

* update JIT analytical tests

* set up general use analytical test function

* add general function for stiff analytical tests

* fix jit analytical tests

* update remaining analytical tests

* address review comments

* update cuda analytical tests

* update tolerances for cuda analytical tests

---------

Co-authored-by: Kyle Shores <[email protected]>
Co-authored-by: Kyle Shores <[email protected]>

* Auto-format code changes (#605)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* 572 check for singularity when the solver parameters flag is turned on (#603)

Add tests to check for singularity in the U matrix after the LU decomposition. If the check for singularity flag is turned on, decrease the timestep and try again. Fixes a bug where a zero in the bottom right of the U matrix would not have been detected

* Auto-format code changes (#606)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Provide a way to access the processes_ data member (#607)

return the process_ member

Co-authored-by: Jian Sun <[email protected]>

* Auto-format code changes (#608)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* adding headers

* Auto-format code changes (#609)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Add missing CUDA tests and fix broken path (#611)

add missing cuda tests and fix broken path

* throwing error on mismatched size (#610)

* throwing error on mismatched size

* using a copy of the paramteres so that a builder can be repeatedly used

* adding const

* correcting number of tolerances for robertson

* Auto-format code changes (#612)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Correct usage of third body species (#614)

using the species map to grab the exact same species for reactants and products

* Auto-format code changes (#615)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* correcting solver builder constructor (#616)

* correcting solver builder constructor

* fix a bug

---------

Co-authored-by: Jiwon Gim <[email protected]>

* Relax the criteria to pass the GPU test with nvhpc/24.7 on Derecho (#618)

relax the criteria to pass the GPU test with nvhpc/24.7 on Derecho

* Auto-format code changes (#623)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Update fill function for CUDA matrix (#626)

* update the fill function for cuda matrix to avoid data transfer

* fix compilation errors

* add a comment about template function

* update fill function for cuda sparse matrix

* remove gcc11 CI test and add gcc14 CI test

* Auto-format code changes (#627)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Remove data transfer in cuda matrix constructor and template some CUDA functions (#630)

* remove data transfer in the cuda dense matrix constructor

* template many cuda functions for cuda dense and sparse matrix

* Auto-format code changes (#633)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Remove redundant variable and optimize the copy assignment for the CUDA matrix (#636)

* test to remove forcing variables

* fix broken unit tests

* fix the bug of calculating forcing term when substepping happens

* update the copy assignment operator for CUDA matrix

* fix the broken unit tests again

* Remove local copy of state in solver functions (#639)

remove local copy of state in solver functions

* Auto-format code changes (#640)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Add CUDA stream for asynchronous kernel launch (#641)

* add the functions to create & get cuda stream

* simplify the CUDA dense matrix destructor

* add cuda stream to cuda matrix functions

* add cuda stream to process_set.cu

* add cuda stream to CudaLuDecomposition

* add cuda stream to CudaLinearSolver

* set cuda stream in the cublas handle
add cuda stream to rosenbrock.cu

* switch to singleton class for cuda stream manager

* update the method to get the cuda stream

* revise the Gtest main function to cleanup the CUDA resources explicitly

* fix broken cuda analytical test

* fix GPU memory leak in the unit test

* clean up unused files

* fix Kyle's review comment

* make cudamemset asynchronous

* Auto-format code changes (#645)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Remove the local copy of Jacobian matrix when doing LU decomposition (#646)

remove the local copy of jaocbian matrix in the LinFactor function

* Auto-format code changes (#647)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Add const to solver functions (#642)

add const to solver functions

* Replace json to yaml 619 (#649)

* reaplce

* json to yaml

* yamle to JSON

* test

* added .string to yaml file

* added string to loadFile

* changes based on the PR. modified the code to use YAML file

* Auto-format code changes (#650)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Add const qualifiers (#651)

add const qualifiers

* Move Yerror construction outside of the inner solve loop for rosenbrock (#652)

* added error outside of the loop

* moved the code to all the way to outer while loop

* Auto-format code changes (#653)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Move temporary variables to the State class (#655)

* add temporary variables in the solver class

* declare temporary variable in the State class; initialize temporary variable in the solver

* fix broken units test build

* rename base class for temporary variables

* make destructor of base class virtual so that the GPU memory is freed correctly

* remove unnecessary data member from the solver class

* add the copy assignment and constructor for the state class

* add JIT rosenbrock parameter type

* maybe this fixes the broken JIT tests

* try is_convertible instead

* Auto-format code changes (#656)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Use CUDA Rosenbrock parameters (#659)

* use cuda rosenbrock parameters instead

* use 0 for fill function

* Added license and copyright (#661)

added copyright

* Auto-format code changes (#660)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* Misc updates (#665)

* add back the getnumberofreactions function

* update cuda thread count to 512

* Set LU matrices to zero when jacobian is a zero element (#666)

* pushing

* pushing fix

* removing unneccesary logic check

* adding cuda stuff

* lowering tolerance

* lowering tolerance

* modified jit ludecomp

* raising tolerance

* testing jit and cuda properly

* raising tolerance

* raising again

* again

* raising again

* lowering tolerance

* adding prints to matrices

* copy LU to host

* printing A

* sparsity

* bernoulli again

* manual engine

* double

* thing

* printing values

* larger matrix

* 2 cells

* now

* dense

* 20

* 4000

* things

* uncomment

* uncomment

* print

* 9

* 8

* 6

* 5

* 2e-6

* lu decomp

* 10

* 8

* 0

* comment

* checking

* uncomment

* 7

* 1

* 10

* print

* print

* again

* 100

* data check

* remove check results

* 13

* 16

* eq

* equal

* uncomment

* 1 block

* 5

* print

* 1

* testing LU decomp specifically

* trying to correct cuda test

* lowering

* lowering tolerance

* lowering again

* thing

* variable

* all tests pass on derecho

* setting values to zero for lu decomp

* defaulting LU to 0 instead of 1e-30

* copying block values to other blocks

* removing small value initialization

* correcting version copyright

* using absolute error

* making index once

* camel case

* Auto-format code changes (#667)

Auto-format code using Clang-Format

Co-authored-by: GitHub Actions <[email protected]>

* bumping version

---------

Co-authored-by: Jian Sun <[email protected]>
Co-authored-by: Jian Sun <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Actions <[email protected]>
Co-authored-by: Matt Dawson <[email protected]>
Co-authored-by: Jiwon Gim <[email protected]>
Co-authored-by: Montek Thind <[email protected]>
  • Loading branch information
8 people authored Sep 26, 2024
1 parent 1787346 commit cac62bc
Show file tree
Hide file tree
Showing 168 changed files with 5,694 additions and 3,580 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
- uses: actions/checkout@v4

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --parallel 10
Expand All @@ -51,7 +51,7 @@ jobs:
- uses: actions/checkout@v4

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --parallel 10
Expand All @@ -67,7 +67,7 @@ jobs:
strategy:
matrix:
compiler:
- { cpp: g++-11, c: gcc-11}
- { cpp: g++-14, c: gcc-14}
- { cpp: g++-12, c: gcc-12}
- { cpp: clang++, c: clang}
build_type: [Release]
Expand All @@ -79,7 +79,7 @@ jobs:
- uses: actions/checkout@v4

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --parallel 10
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
uses: actions/checkout@v4

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --parallel 10
Expand All @@ -48,7 +48,7 @@ jobs:
uses: actions/checkout@v4

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }}

- name: Build
run: cmake --build build --verbose
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
version: 12.2.0 # https://github.com/egor-tensin/setup-mingw/issues/14

- name: Run Cmake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -G "MinGW Makefiles"
run: cmake -S . -B build -G "MinGW Makefiles"

- name: Build
run: cmake --build build --parallel 10
Expand All @@ -48,7 +48,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run CMake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -G "Visual Studio 17 2022" -A ${{ matrix.architecture }}
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.build_type }} -G "Visual Studio 17 2022" -A ${{ matrix.architecture }}
- name: Build
run: cmake --build build --config ${{ matrix.build_type }} --parallel 10
- name: Test
Expand All @@ -66,7 +66,7 @@ jobs:
- name: Install Clang
run: curl -fsSL -o LLVM${{ matrix.version }}.exe https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ matrix.version }}.0.0/LLVM-${{ matrix.version }}.0.0-win64.exe ; 7z x LLVM${{ matrix.version }}.exe -y -o"C:/Program Files/LLVM"
- name: Run CMake
run: cmake -S . -B build -DMICM_ENABLE_PROFILE=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" -G"MinGW Makefiles"
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_COMPILER="C:/Program Files/LLVM/bin/clang++.exe" -G"MinGW Makefiles"
- name: Build
run: cmake --build build --parallel 10
- name: Test
Expand All @@ -82,7 +82,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run CMake
run: cmake -S . -B build -D MICM_ENABLE_PROFILE=ON -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -T ClangCL
run: cmake -S . -B build -G "Visual Studio 16 2019" -A ${{ matrix.architecture }} -T ClangCL
- name: Build
run: cmake --build build --config Debug --parallel 10
- name: Test
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cff-version: 1.2.0
message: If you use this software, please cite it as below.
title: Model Independent Chemistry Model (MICM)
version: v3.5.0
version: v3.6.0
doi: "10.5281/zenodo.10472189"
authors:
- family-names: Dawson
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
cmake_minimum_required(VERSION 3.21)

# project and version must be on the same line so that the docs can extract it
project(micm VERSION 3.5.0 LANGUAGES CXX)
project(micm VERSION 3.6.0 LANGUAGES CXX)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING
Expand All @@ -29,7 +29,7 @@ option(MICM_ENABLE_MPI "Enable MPI parallel support" OFF)
option(MICM_ENABLE_OPENMP "Enable OpenMP support" OFF)
option(MICM_ENABLE_COVERAGE "Enable code coverage output" OFF)
option(MICM_ENABLE_MEMCHECK "Enable memory checking in tests" OFF)
option(MICM_ENABLE_JSON "Enable json configuration file reading" ON)
option(MICM_ENABLE_CONFIG_READER "Enable yaml configuration file reading" ON)
option(MICM_BUILD_DOCS "Build the documentation" OFF)
option(MICM_ENABLE_LLVM "Build with LLVM support for JIT-compiling" OFF)
option(MICM_ENABLE_TESTS "Build the tests" ON)
Expand Down Expand Up @@ -99,7 +99,7 @@ endif()
################################################################################
# Command-line driver examples / Command-line profiler

if(PROJECT_IS_TOP_LEVEL AND MICM_ENABLE_JSON AND (MICM_ENABLE_EXAMPLES OR MICM_ENABLE_PROFILE))
if(PROJECT_IS_TOP_LEVEL AND MICM_ENABLE_CONFIG_READER AND (MICM_ENABLE_EXAMPLES OR MICM_ENABLE_PROFILE))
add_subdirectory(examples)
endif()

Expand Down
23 changes: 16 additions & 7 deletions cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,14 @@ if(MICM_ENABLE_TESTS)
endif()

################################################################################
# nlohmann::json
# yaml-cpp

if(MICM_ENABLE_JSON)
FetchContent_Declare(json
GIT_REPOSITORY https://github.com/nlohmann/json.git
GIT_TAG v3.11.2
if(MICM_ENABLE_CONFIG_READER)
FetchContent_Declare(yaml-cpp
GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
GIT_TAG 0.8.0
)
FetchContent_MakeAvailable(json)
FetchContent_MakeAvailable(yaml-cpp)
endif()

################################################################################
Expand All @@ -115,19 +115,28 @@ endif()

if(NOT ${MICM_GPU_TYPE} STREQUAL "None")
string(TOLOWER ${MICM_GPU_TYPE} MICM_GPU_TYPE_LOWER)
# Data center GPUs
set(cuda_arch_map_a100 80)
set(cuda_arch_map_v100 70)
set(cuda_arch_map_h100 90a)
set(cuda_arch_map_h200 90a)
set(cuda_arch_map_b100 95)
set(cuda_arch_map_b200 95)
# Consumer grade GPUs
set(cuda_arch_map_turing 75)

set(cuda_arch_map_all_major all-major)
# Setting CUDAARCHS does not override CMAKE_CUDA_ARCHITECTURES or CUDA_ARCHITECTURES
# until the current process has returned to the caller site in CMake.
set(ENV{CUDAARCHS} ${cuda_arch_map_${MICM_GPU_TYPE_LOWER}})

if("$ENV{CUDAARCHS}" STREQUAL "")
message(FATAL_ERROR "${MICM_GPU_TYPE_LOWER} unsupported, current options are a100,v100,h{1,2}00, b{1,2}00.")
# dynamically create the current options
set(arch_options "")
foreach(arch IN ITEMS a100 v100 h100 h200 b100 b200 turing)
list(APPEND arch_options ${arch})
endforeach()
message(FATAL_ERROR "${MICM_GPU_TYPE_LOWER} unsupported, current options are ${arch_options}.")
endif()

message(STATUS "GPU architecture found: $ENV{CUDAARCHS}")
Expand Down
8 changes: 6 additions & 2 deletions cmake/test_util.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
if(MICM_ENABLE_MEMCHECK)
if(MICM_ENABLE_CUDA)
find_program(MEMORYCHECK_COMMAND "compute-sanitizer")
set(MEMORYCHECK_COMMAND_OPTIONS "--error-exitcode=1 --show-backtrace device --tool=memcheck --launch-timeout=0")
set(MEMORYCHECK_COMMAND_OPTIONS "--error-exitcode=1 --leak-check full --show-backtrace device --launch-timeout=0")
set(CUDA_MEMORY_CHECK TRUE)
else()
find_program(MEMORYCHECK_COMMAND "valgrind")
Expand All @@ -26,7 +26,11 @@ function(create_standard_test)

add_executable(test_${TEST_NAME} ${TEST_SOURCES})

target_link_libraries(test_${TEST_NAME} PUBLIC musica::micm GTest::gtest_main)
if(TEST_IS_CUDA_TEST)
target_link_libraries(test_${TEST_NAME} PUBLIC musica::micm cuda_gtest_main)
else()
target_link_libraries(test_${TEST_NAME} PUBLIC musica::micm GTest::gtest_main)
endif()

# link additional libraries
foreach(library ${TEST_LIBRARIES})
Expand Down
1 change: 0 additions & 1 deletion docker/Dockerfile.memcheck
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ RUN mkdir /build \
-D CMAKE_BUILD_TYPE=release \
-D MICM_ENABLE_CLANG_TIDY:BOOL=FALSE \
-D MICM_ENABLE_MEMCHECK:BOOL=TRUE \
-D MICM_ENABLE_PROFILE:BOOL=TRUE \
../micm \
&& make install -j 8

Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.openmp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RUN mkdir /build \
&& cmake \
-D MICM_ENABLE_CLANG_TIDY:BOOL=FALSE \
-D MICM_ENABLE_OPENMP:BOOL=TRUE \
-D MICM_ENABLE_JSON:BOOL=TRUE \
-D MICM_ENABLE_CONFIG_READER:BOOL=TRUE \
../micm \
&& make install -j 8

Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.publish
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RUN mkdir /build \
&& cmake \
-D CMAKE_BUILD_TYPE=release \
-D MICM_ENABLE_LLVM:BOOL=TRUE \
-D MICM_ENABLE_JSON:BOOL=TRUE \
-D MICM_ENABLE_CONFIG_READER:BOOL=TRUE \
../micm \
&& make install -j 8

Expand Down
9 changes: 7 additions & 2 deletions docs/source/_static/switcher.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"name": "v3.5.0 (stable)",
"version": "v3.5.0 (stable)",
"name": "v3.6.0 (stable)",
"version": "v3.6.0 (stable)",
"url": "https://ncar.github.io/micm"
},
{
Expand Down Expand Up @@ -29,6 +29,11 @@
"version": "3.5.0",
"url": "https://ncar.github.io/micm/versions/3.5.0"
},
{
"name": "v3.6.0",
"version": "3.6.0",
"url": "https://ncar.github.io/micm/versions/3.6.0"
},
{
"name": "dev",
"version": "dev",
Expand Down
8 changes: 4 additions & 4 deletions docs/source/getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ Options
.. image:: _static/options.png


MICM can optionally include support for json configuration reading, OpenMP,
MICM can optionally include support for yaml configuration reading, OpenMP,
JIT-compiled chemistry functions, and GPUs. Each of these requires an additional library.
Some of these libraries can be included automatically with cmake build options,
others require that you have libraries installed on your system.

- JSON configuration support
- When building micm, you need to enable the JSON option. This will download and configure the `nlohmann/jsoncpp library <https://github.com/nlohmann/json>`_ for you. For example: ``cmake -DMICM_ENABLE_JSON=ON ..``
- YAML configuration support
- When building micm, you need to enable the YAML option. This will download and configure the `jbeder/yaml-cpp library <https://github.com/jbeder/yaml-cpp>`_ for you. For example: ``cmake -DMICM_ENABLE_CONFIG_READER=ON ..``
- JIT-compiled chemistry functions
- This requires `LLVM <https://llvm.org/docs/index.html>`_ to be installed with on your system. Once it is, you can include the jit options with ``cmake -DENBABLE_LLVM=ON ..``
- GPU support
Expand Down Expand Up @@ -73,7 +73,7 @@ MICM Executable Example
A simple driver for MICM is built with the library and can be used to solve a
chemical system for given initial conditions over one time step.

Just pass the driver the path to the folder containing a valid JSON
Just pass the driver the path to the folder containing a valid YAMl
mechanism configuration and the path to a CSV file holding the initial
conditions.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/user_guide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ If you would like to include the json examples, you must configure micm to build

.. code-block:: console
$ cmake -DMICM_ENABLE_JSON=ON ..
$ cmake -DMICM_ENABLE_CONFIG_READER=ON ..
$ make
$ ./test_rate_constants_no_user_defined_example_with_config
$ ./test_rate_constants_user_defined_example_with_config
Expand Down
1 change: 1 addition & 0 deletions examples/configs/TS1/species.json
Original file line number Diff line number Diff line change
Expand Up @@ -1274,6 +1274,7 @@
{
"name": "M",
"type": "CHEM_SPEC",
"tracer type": "THIRD_BODY",
"__description": "third-body species"
}

Expand Down
3 changes: 2 additions & 1 deletion examples/configs/carbon_bond_5/species.json
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@
},
{
"name": "M",
"type": "CHEM_SPEC"
"type": "CHEM_SPEC",
"tracer type": "THIRD_BODY"
},
{
"name": "MEO2",
Expand Down
6 changes: 0 additions & 6 deletions examples/configs/chapman/config.json

This file was deleted.

3 changes: 3 additions & 0 deletions examples/configs/chapman/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
camp-files:
- species.yaml
- reactions.yaml
Loading

0 comments on commit cac62bc

Please sign in to comment.