Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/regression.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Regression Tests

on:
schedule:
- cron: "0 0 * * *"
push:
branches: [main]
workflow_dispatch:
pull_request:
branches:
- main

jobs:
run-tests:
runs-on: [self-hosted]
strategy:
fail-fast: false
steps:
- name: checkout testapp
uses: actions/checkout@v4
- name: checkout opensn
uses: actions/checkout@v4
with:
repository: Open-Sn/opensn
path: opensn
- name: install opensn
shell: bash
run: |
module load opensn/clang/17 python3/3.12.3
cd opensn && mkdir build && mkdir install && cd build
cmake -DCMAKE_INSTALL_PREFIX=../install .. && make -j && make install
- name: compile app
shell: bash
run: |
module load opensn/clang/17 python3/3.12.3
cd OpenSnApp && mkdir build && cd build
cmake -DCMAKE_PREFIX_PATH=../../opensn/install .. && make -j
- name: test examples
shell: bash
run: |
module load opensn/clang/17 python3/3.12.3
cd examples/reed && python run_rom_reed.py
94 changes: 94 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
.git
cmake-build-debug/
cmake-build-debug
.idea
bin
build*/
doc/documentation
doc/HTMLdocs
doc/whitepages

# root Makefile is generated by CMake automatically
Makefile

resources/Dependencies/lua-5.3.5/
resources/Dependencies/ncurses/
resources/Dependencies/readline/
resources/Dependencies/triangle/
resources/Dependencies/glew-2.1.0/

# Latex compile files
*.aux
*.lof
*.log
*.lot
*.synctex.gz
*.toc
*.pdf

# All vtk mesh files
/*.vtu
/*.pvtu
test/**/*.pvtu
test/**/*.vtu
test/modules/linear_boltzmann_solvers/dsa/SimTest_92b_DSA_PWLC.pvtu
test/modules/linear_boltzmann_solvers/dsa/SimTest_92b_DSA_PWLC_0.vtu
test/**/*.csv

tests/BigTests/*/solutions/

# All exodus files
/*.e

resources/Dependencies/.DS_Store

resources/.DS_Store

# python files
.DS_Store
._.DS_Store
*.pyc
*.pmesh
__pycache__
**/__pycache__

*-private.sh

#Documentation
doc/generated_files

#visual studio code files
.vscode/

test/**/out/
tutorials/**/out/

#Scratch directory
scratch/

#general data files
*.data
tests/BigTests/c5g7/Test1/solutions/
**/*.cmesh

# Python generated libraries
pyopensn/libopensn*.so*
pyopensn/libopensn*.dylib
pyopensn/__init__.cpython*
pyopensn.egg-info

# Files generated by ply package
doc/scripts/parser.out
doc/scripts/parsetab.py

doc/**/*.pvtu
doc/**/*.vtu

tutorials/**/*.pvtu
tutorials/**/*.vtu
tutorials/**/*.py

examples/*/basis/*
examples/*/data/*
examples/*/output/*
examples/*/results/*
111 changes: 111 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
cmake_minimum_required(VERSION 3.14)
project(OpenSnApp LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

find_package(MPI REQUIRED)
find_package(VTK REQUIRED COMPONENTS
CommonCore
CommonDataModel
IOLegacy
IOCore
IOXML
ParallelCore
IOParallelXML
FiltersCore
IOEnSight
IOExodus
)

include(CMakeFindDependencyMacro)

find_package(OpenSn REQUIRED)

message(STATUS "Found OpenSn ${OpenSn_VERSION} (from: ${OpenSn_DIR})")

find_package(pybind11 REQUIRED)

find_package(caliper REQUIRED)

find_package(Python REQUIRED COMPONENTS Interpreter Development)

find_library(LIBROM_LIBRARY
NAMES ROM
HINTS
ENV LIBROM_DIR
${LIBROM_DIR}
${LIBROM_DIR}/install
PATH_SUFFIXES lib
REQUIRED)

find_path(LIBROM_INCLUDE_DIR
NAMES librom.h
HINTS
ENV LIBROM_DIR
${LIBROM_DIR}
${LIBROM_DIR}/install
PATH_SUFFIXES include
REQUIRED)

message(STATUS "libROM include dir: ${LIBROM_INCLUDE_DIR}")
message(STATUS "libROM library: ${LIBROM_LIBRARY}")

file(GLOB_RECURSE ROM_SRCS CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/src/rom/*.cc)

# Python module
add_library(romapp MODULE
src/main.cc
src/rom_py_app.cc
src/rom.cc
${ROM_SRCS}
)

execute_process(
COMMAND python3 -m pybind11 --includes
OUTPUT_VARIABLE PYBIND11_INCLUDE_FLAGS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REPLACE "-I" "" PYBIND11_INCLUDE_DIRS "${PYBIND11_INCLUDE_FLAGS}")
separate_arguments(PYBIND11_INCLUDE_DIRS)

target_include_directories(romapp
PRIVATE
${PROJECT_SOURCE_DIR}/rom
${PYBIND11_INCLUDE_DIRS}
${OpenSn_INSTALL_PREFIX}/include/opensn
${LIBROM_INCLUDE_DIR}
)
target_link_libraries(romapp
PRIVATE
opensn::opensn
opensn::libopensnpy
MPI::MPI_CXX
caliper
pybind11::module
Python::Python
${LIBROM_LIBRARY})

set_target_properties(romapp PROPERTIES
PREFIX ""
OUTPUT_NAME "romapp"
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/python
)

add_executable(rom_app_exec src/main.cc src/rom_py_app.cc src/rom.cc ${ROM_SRCS})
target_include_directories(rom_app_exec PRIVATE
${PROJECT_SOURCE_DIR}/rom
${PYBIND11_INCLUDE_DIRS}
${OpenSn_INSTALL_PREFIX}/include/opensn
${LIBROM_INCLUDE_DIR}
)
target_link_libraries(rom_app_exec
PRIVATE
opensn::opensn
opensn::libopensnpy
MPI::MPI_C
caliper
pybind11::module
Python::Python
${LIBROM_LIBRARY})
14 changes: 14 additions & 0 deletions examples/2gcheckerboard/absorber_base.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
NUM_GROUPS 2
NUM_MOMENTS 1

SIGMA_T_BEGIN
0 1.0
1 1.0
SIGMA_T_END

TRANSFER_MOMENTS_BEGIN
M_GPRIME_G_VAL 0 0 0 0.05
M_GPRIME_G_VAL 0 1 0 0.45
M_GPRIME_G_VAL 0 0 1 0.45
M_GPRIME_G_VAL 0 1 1 0.05
TRANSFER_MOMENTS_END
Loading