Merge branch 'develop' into small-fixes

This commit is contained in:
Paul Romano 2020-12-16 14:59:46 -06:00
commit c55c8dd258
18 changed files with 174 additions and 102 deletions

122
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,122 @@
name: CI
on:
# allows us to run workflows manually
workflow_dispatch:
pull_request:
branches:
- develop
- master
push:
branches:
- develop
- master
env:
MPI_DIR: /usr
HDF5_ROOT: /usr
OMP_NUM_THREADS: 2
COVERALLS_PARALLEL: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
main:
runs-on: ubuntu-16.04
strategy:
matrix:
python-version: [3.8]
mpi: [n, y]
omp: [n, y]
dagmc: [n]
event: [n]
vectfit: [n]
include:
- python-version: 3.6
omp: n
mpi: n
- python-version: 3.7
omp: n
mpi: n
- dagmc: y
python-version: 3.8
mpi: y
omp: y
- event: y
python-version: 3.8
omp: y
mpi: n
- vectfit: y
python-version: 3.8
omp: n
mpi: y
env:
MPI: ${{ matrix.mpi }}
PHDF5: ${{ matrix.mpi }}
OMP: ${{ matrix.omp }}
DAGMC: ${{ matrix.dagmc }}
EVENT: ${{ matrix.event }}
VECTFIT: ${{ matrix.vectfit }}
steps:
-
uses: actions/checkout@v2
-
name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
-
name: Environment Variables
run: |
echo "DAGMC_ROOT=$HOME/DAGMC"
echo "OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml" >> $GITHUB_ENV
echo "OPENMC_ENDF_DATA=$HOME/endf-b-vii.1" >> $GITHUB_ENV
-
name: Apt dependencies
shell: bash
run: |
sudo apt -y update
sudo apt install -y mpich \
libmpich-dev \
libhdf5-serial-dev \
libhdf5-mpich-dev \
libeigen3-dev
-
name: install
shell: bash
run: |
echo "$HOME/NJOY2016/build" >> $GITHUB_PATH
$GITHUB_WORKSPACE/tools/ci/gha-install.sh
-
name: before
shell: bash
run: $GITHUB_WORKSPACE/tools/ci/gha-before-script.sh
-
name: test
shell: bash
run: $GITHUB_WORKSPACE/tools/ci/gha-script.sh
-
name: after_success
shell: bash
run: |
cpp-coveralls -i src -i include --exclude-pattern "/usr/*" --dump cpp_cov.json
coveralls --merge=cpp_cov.json
finish:
needs: main
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true

View file

@ -1,60 +0,0 @@
sudo: required
dist: xenial
language: python
addons:
apt:
packages:
- mpich
- libmpich-dev
- libhdf5-serial-dev
- libhdf5-mpich-dev
- libeigen3-dev
config:
retries: true
services:
- xvfb
cache:
directories:
- $HOME/nndc_hdf5
- $HOME/endf-b-vii.1
env:
global:
- MPI_DIR=/usr
- DAGMC_ROOT=$HOME/DAGMC
- HDF5_ROOT=/usr
- OMP_NUM_THREADS=2
- OPENMC_CROSS_SECTIONS=$HOME/nndc_hdf5/cross_sections.xml
- OPENMC_ENDF_DATA=$HOME/endf-b-vii.1
- PATH=$PATH:$HOME/NJOY2016/build
- COVERALLS_PARALLEL=true
- NUMPY_EXPERIMENTAL_ARRAY_FUNCTION=0
matrix:
include:
- python: "3.6"
env: OMP=n MPI=n PHDF5=n
- python: "3.7"
env: OMP=n MPI=n PHDF5=n
- python: "3.8"
env: OMP=n MPI=n PHDF5=n
- python: "3.8"
env: OMP=y MPI=n PHDF5=n
- python: "3.8"
env: OMP=n MPI=y PHDF5=n VECTFIT=y
- python: "3.8"
env: OMP=n MPI=y PHDF5=y
- python: "3.8"
env: OMP=y MPI=y PHDF5=y DAGMC=y
- python: "3.8"
env: OMP=y MPI=n PHDF5=n EVENT=y
notifications:
webhooks: https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN
install:
- ./tools/ci/travis-install.sh
before_script:
- ./tools/ci/travis-before-script.sh
script:
- ./tools/ci/travis-script.sh
after_success:
- cpp-coveralls -i src -i include --exclude-pattern "/usr/*" --dump cpp_cov.json
- coveralls --merge=cpp_cov.json

View file

@ -1,7 +1,7 @@
# OpenMC Monte Carlo Particle Transport Code
[![License](https://img.shields.io/github/license/openmc-dev/openmc.svg)](http://openmc.readthedocs.io/en/latest/license.html)
[![Travis CI build status (Linux)](https://travis-ci.org/openmc-dev/openmc.svg?branch=develop)](https://travis-ci.org/openmc-dev/openmc)
[![GitHub Actions build status (Linux)](https://github.com/openmc-dev/openmc/workflows/CI/badge.svg?branch=develop)](https://github.com/openmc-dev/openmc/actions)
[![Code Coverage](https://coveralls.io/repos/github/openmc-dev/openmc/badge.svg?branch=develop)](https://coveralls.io/github/openmc-dev/openmc?branch=develop)
The OpenMC project aims to provide a fully-featured Monte Carlo particle

View file

@ -2044,13 +2044,9 @@ class DecayRate(MDGXS):
num_delayed_groups)
else:
new_shape = (num_subdomains, num_delayed_groups)
new_shape += xs.shape[1:]
xs = np.reshape(xs, new_shape)
# Reverse data if user requested increasing energy groups since
# tally data is stored in order of increasing energies
if order_groups == 'increasing':
xs = xs[..., ::-1, :]
if squeeze:
# We want to squeeze out everything but the polar, azimuthal,
# delayed group, and energy group data.

View file

@ -149,7 +149,7 @@ Material::Material(pugi::xml_node node)
// Set density for macroscopic data
if (units == "macro") {
densities.push_back(1.0);
densities.push_back(density_);
} else {
fatal_error("Units can only be macro for macroscopic data " + name);
}
@ -169,7 +169,7 @@ Material::Material(pugi::xml_node node)
// Check if no atom/weight percents were specified or if both atom and
// weight percents were specified
if (units == "macro") {
densities.push_back(1.0);
densities.push_back(density_);
} else {
bool has_ao = check_for_node(node_nuc, "ao");
bool has_wo = check_for_node(node_nuc, "wo");

View file

@ -1995,13 +1995,13 @@ score_general_mg(Particle& p, int i_tally, int start_index, int filter_index,
for (auto d_bin = 0; d_bin < filt.n_bins(); ++d_bin) {
auto d = filt.groups()[d_bin] - 1;
if (i_nuclide >= 0) {
score += atom_density * flux
score = atom_density * flux
* nuc_xs.get_xs(MgxsType::DECAY_RATE, p_g, nullptr,
nullptr, &d)
* nuc_xs.get_xs(MgxsType::DELAYED_NU_FISSION, p_g, nullptr,
nullptr, &d);
} else {
score += flux
score = flux
* macro_xs.get_xs(MgxsType::DECAY_RATE, p_g, nullptr,
nullptr, &d)
* macro_xs.get_xs(MgxsType::DELAYED_NU_FISSION, p_g, nullptr,

View file

@ -2,6 +2,7 @@
#include "openmc/capi.h"
#include "openmc/cell.h"
#include "openmc/geometry.h"
#include "openmc/message_passing.h"
#include "openmc/summary.h"
#include "openmc/tallies/filter.h"
#include "openmc/tallies/filter_cell.h"
@ -48,7 +49,11 @@ int main(int argc, char** argv) {
// the summary file will be used to check that
// temperatures were set correctly so clear
// error output can be provided
#ifdef OPENMC_MPI
if (openmc::mpi::master) openmc::write_summary();
#else
openmc::write_summary();
#endif
openmc_run();
openmc_finalize();

View file

@ -10,7 +10,7 @@
<materials>
<cross_sections>./mgxs.h5</cross_sections>
<material id="1" name="UO2 fuel">
<density units="macro" value="1.0" />
<density units="macro" value="1.1" />
<macroscopic name="UO2" />
</material>
</materials>

View file

@ -1,24 +1,24 @@
k-combined:
9.930873E-01 2.221904E-03
9.834385E-01 7.095193E-03
k-combined:
9.948148E-01 1.216270E-03
9.936965E-01 4.118371E-03
k-combined:
9.930873E-01 2.221904E-03
9.834385E-01 7.095193E-03
k-combined:
9.755034E-01 6.178296E-03
9.977232E-01 1.084193E-02
k-combined:
9.738059E-01 4.529068E-03
9.945011E-01 5.571771E-03
k-combined:
9.866847E-01 9.485912E-03
9.982627E-01 2.662444E-03
k-combined:
9.755024E-01 6.179047E-03
9.977232E-01 1.084193E-02
k-combined:
9.738061E-01 4.529462E-03
9.945007E-01 5.571589E-03
k-combined:
9.866835E-01 9.485832E-03
9.982620E-01 2.662746E-03
k-combined:
9.719024E-01 4.213166E-03
1.000071E+00 3.364791E-03
k-combined:
9.930873E-01 2.221904E-03
9.834385E-01 7.095193E-03
k-combined:
9.930873E-01 2.221904E-03
9.834385E-01 7.095193E-03

View file

@ -67,7 +67,7 @@ class MGXSTestHarness(PyAPITestHarness):
# Instantiate some Materials and register the appropriate objects
mat = openmc.Material(material_id=1, name='UO2 fuel')
mat.set_density('macro', 1.0)
mat.set_density('macro', 1.1)
mat.add_macroscopic(uo2_data)
# Instantiate a Materials collection and export to XML

View file

@ -193,10 +193,18 @@ domain=1 type=beta
[1.21876271e-04 8.77101834e-05]
[4.95946084e-05 3.67414816e-05]]
domain=1 type=decay-rate
[1.33568413e-02 3.25887984e-02 1.21105565e-01 3.06139633e-01
8.62763808e-01 2.89789222e+00]
[9.57055016e-04 2.28222032e-03 8.35436401e-03 2.06734948e-02
5.63019289e-02 1.89486538e-01]
[[1.33568413e-02]
[3.25887984e-02]
[1.21105565e-01]
[3.06139633e-01]
[8.62763808e-01]
[2.89789222e+00]]
[[9.57055016e-04]
[2.28222032e-03]
[8.35436401e-03]
[2.06734948e-02]
[5.63019289e-02]
[1.89486538e-01]]
domain=1 type=delayed-nu-fission matrix
[[[0.00000000e+00 0.00000000e+00]
[0.00000000e+00 0.00000000e+00]]

View file

@ -47,6 +47,7 @@ def install(omp=False, mpi=False, phdf5=False, dagmc=False):
if dagmc:
cmake_cmd.append('-Ddagmc=ON')
cmake_cmd.append('-DCMAKE_PREFIX_PATH=~/DAGMC')
# Build in coverage mode for coverage testing
cmake_cmd.append('-Dcoverage=on')

View file

@ -1,31 +1,31 @@
#!/bin/bash
set -ex
# Install NJOY 2016
./tools/ci/travis-install-njoy.sh
# Install DAGMC if needed
if [[ $DAGMC = 'y' ]]; then
./tools/ci/travis-install-dagmc.sh
fi
# Install vectfit for WMP generation if needed
if [[ $VECTFIT = 'y' ]]; then
./tools/ci/travis-install-vectfit.sh
fi
# Upgrade pip, pytest, numpy before doing anything else
pip install --upgrade pip
pip install --upgrade pytest
pip install --upgrade numpy
# Install NJOY 2016
./tools/ci/gha-install-njoy.sh
# Install DAGMC if needed
if [[ $DAGMC = 'y' ]]; then
./tools/ci/gha-install-dagmc.sh
fi
# Install vectfit for WMP generation if needed
if [[ $VECTFIT = 'y' ]]; then
./tools/ci/gha-install-vectfit.sh
fi
# Install mpi4py for MPI configurations
if [[ $MPI == 'y' ]]; then
pip install --no-binary=mpi4py mpi4py
fi
# Build and install OpenMC executable
python tools/ci/travis-install.py
python tools/ci/gha-install.py
# Install Python API in editable mode
pip install -e .[test,vtk]