Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for non-uniform Dirichlet BCs (Issue #406) #410

Open
wants to merge 41 commits into
base: devel
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
051c885
Rearranging core library
landinjm Nov 26, 2024
d0787a4
updating CI to run on devel
landinjm Dec 6, 2024
8950eba
update version
landinjm Dec 6, 2024
cde5bf5
Fixing pFunction
landinjm Dec 9, 2024
842ef80
moving automatic tests
landinjm Dec 10, 2024
0f83bf5
init
landinjm Dec 10, 2024
a46d8fb
updating cmake
landinjm Dec 10, 2024
356d608
ctest
landinjm Dec 10, 2024
571d3d4
accidently included
landinjm Dec 10, 2024
2c9765b
update
landinjm Dec 10, 2024
d1af064
WIP unit test
landinjm Dec 10, 2024
f341bd5
updating paths
landinjm Dec 10, 2024
d8db2eb
adding more apps
landinjm Dec 10, 2024
1496144
new gold standard
landinjm Dec 11, 2024
5ee7810
updating CI
landinjm Dec 11, 2024
21ae4c0
Loosen tolerance
landinjm Dec 11, 2024
7a66763
reorganized variable attributes
fractalsbyx Dec 11, 2024
385d8f3
removed vestigial integrated_postprocessed_fields
fractalsbyx Dec 11, 2024
6f7fb72
forward declaration
landinjm Dec 12, 2024
2ab245a
comments and renaming makeTriangulation function
landinjm Oct 10, 2024
92cf062
adding more comments
landinjm Oct 10, 2024
d00c5fa
basic doxygen build ported from our other repo
landinjm Oct 10, 2024
1c8c6da
update link
landinjm Dec 16, 2024
4ebca12
Update install_prereqs.md
danlwill Dec 17, 2024
0b76ee7
Field unit tests (#360)
landinjm Dec 19, 2024
21b73fd
Adding contrib.rocks (#367)
landinjm Dec 20, 2024
0710491
adding optional caliper dependency (#369)
landinjm Dec 20, 2024
28d406d
Update deal.II minimum version (#370)
landinjm Dec 20, 2024
a076c62
added more intuitive insertion functions for equation dependencies (#…
fractalsbyx Dec 20, 2024
992c771
make loadVariableAttributes and loadPostProcessorVariableAttributes v…
fractalsbyx Dec 22, 2024
389726b
Reorganize inputFileReader and userInputParameters (#375)
fractalsbyx Jan 1, 2025
6a88f68
restricting CI runs (#381)
landinjm Jan 2, 2025
c6b7639
Helper function for converting `std::vector` into `Tensor<VectorizedA…
landinjm Jan 3, 2025
64e7102
Cleaning up vtk file read-in (#361)
landinjm Jan 3, 2025
23a1f54
updating nonlinear printing info (#385)
landinjm Jan 4, 2025
dcb611a
Nonlinearity unit tests (#382)
landinjm Jan 6, 2025
80e6998
exceptions (#387)
landinjm Jan 6, 2025
c32e0b0
Converted CHAC and MgNd Precipitation documentation to markdown (#397)
danlwill Jan 15, 2025
fad394c
Fix cmake for intel & clang compilers (#403)
landinjm Jan 15, 2025
850cdbf
Fixing compatibility with deal.ii 9.5 (#405)
zachcroft Jan 15, 2025
6a0bb5d
Fix for non-uniform Dirichlet BCs (Issue #406)
wband Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 0 additions & 5 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,15 @@ Checks: >
cppcoreguidelines-*,
-cppcoreguidelines-avoid-const-or-ref-data-members,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-avoid-magic-numbers,
hicpp-*,
misc-*,
-misc-non-private-member-variables-in-classes,
-misc-include-cleaner,
modernize-*,
-modernize-use-trailing-return-type,
mpi-*,
performance-*,
readability-*,
-readability-else-after-return,
-readability-static-accessed-through-instance,
-readability-avoid-const-params-in-decls,
-readability-magic-numbers,
-readability-identifier-length,

WarningsAsErrors: '*'
4 changes: 4 additions & 0 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
pull_request:
branches:
- master
- devel
paths-ignore:
- 'doc/**'
- 'contrib/**'

concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/clang-tidy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,19 @@ on:
pull_request:
branches:
- master
- devel
types:
- opened
- reopened
- synchronize
- ready_for_review
paths-ignore:
- 'applications/**'
- 'contrib/**'
- 'doc/**'
- 'automatic_test/**'
- 'tests/**'


concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
Expand Down
48 changes: 48 additions & 0 deletions .github/workflows/github-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Publish doc to GitHub pages

on:
push:
branches:
- devel

permissions:
contents: write

concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request'}}

jobs:
docs:

runs-on: ubuntu-latest

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup doxygen
run: |
sudo apt-get install doxygen
sudo apt-get install -y graphviz

- name: Build doxygen files
run: |
cd doc/doxygen
cmake .
make

- name: Upload folders
uses: actions/upload-artifact@v4
with:
name: html-doc
path: doc/doxygen/html/

- name: Deploy to GitHub pages
uses: JamesIves/github-pages-deploy-action@v4
if: github.ref == 'refs/heads/devel'
with:
branch: gh-pages
folder: doc/doxygen/html/
target-folder: doxygen/

19 changes: 17 additions & 2 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@ on:
pull_request:
branches:
- master
- devel
types:
- opened
- reopened
- synchronize
- ready_for_review
paths-ignore:
- 'applications/**'
- 'doc/**'
- 'contrib/**'

concurrency:
group: ${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}
Expand All @@ -40,12 +43,24 @@ jobs:
cmake .
make -j $(nproc)

- name: Run PRISMS-PF tests
- name: Run PRISMS-PF unit tests
run: |
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

cd tests
cmake .
make -j $(nproc)
ctest
cd ..


- name: Run PRISMS-PF automatic tests
timeout-minutes: 60
run: |
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

cd tests/automatic_tests
cd automatic_tests
python3 run_automatic_tests.py

11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ build/*
CMakeFiles/
CMakeCache.txt
*.cmake
!cmake/*.cmake
Makefile
.ninja*
build.ninja
Expand Down Expand Up @@ -56,13 +57,14 @@ main-debug
main

#Output files
*.vtk
applications/*/*.vtk
*.vtu
*.vts
*.frt
integratedFields.txt
output.txt
error.txt
CTestCostData.txt

# Checkpoint/restart files
restart.*
Expand Down Expand Up @@ -113,3 +115,10 @@ DoxygenWarningLog.txt
*.nav
*.snm
*.nlo

# Doxygen
doc/doxygen/html/*
doc/doxygen/latex/*
doc/doxygen/Doxyfile.doc_doxygen
doc/doxygen/CMakeDoxyfile.in
doc/doxygen/DoxygenWarningLog.txt
67 changes: 56 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
# Adapted from the ASPECT CMake file
##

cmake_minimum_required(VERSION 3.1.0)

project(prisms_pf)
cmake_minimum_required(VERSION 3.8.0)

file(STRINGS "${CMAKE_SOURCE_DIR}/VERSION" PRISMS_PF_VERSION LIMIT_COUNT 1)

Expand All @@ -27,6 +25,14 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/CMakeCache.txt)
"Please delete the file before running cmake again.")
endif()

# Print the current cmake version
message(STATUS "CMake version: ${CMAKE_VERSION}")

# Set the standard to C++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Setup the build type (debug, release, debugrelease)
if("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_BUILD_TYPE "DebugRelease"
Expand Down Expand Up @@ -71,7 +77,7 @@ message(STATUS "=========================================================")
message(STATUS "")

# Find deal.II installation
find_package(deal.II 9.2.0 QUIET
find_package(deal.II 9.5.0 QUIET
HINTS ${DEAL_II_DIR} $ENV{DEAL_II_DIR}
)
if(NOT ${deal.II_FOUND})
Expand All @@ -93,14 +99,56 @@ if(NOT DEAL_II_WITH_P4EST)
set(DEALII_INSTALL_VALID OFF)
endif()

if(NOT DEAL_II_WITH_MPI)
message(SEND_ERROR
"\n**deal.II was built without support for MPI!\n"
)
set(DEALII_INSTALL_VALID OFF)
endif()

if(NOT DEALII_INSTALL_VALID)
message(FATAL_ERROR
"\nPRISMS-PF requires a deal.II installation with certain features enabled!\n"
)
endif()

# Optional deal.II packages
set(PRISMS_PF_WITH_ZLIB OFF CACHE BOOL "Whether the user wants to compile PRISMS-PF with deal.II's zlib dependency, or not.")
message(STATUS "Using PRISMS_PF_WITH_ZLIB = '${PRISMS_PF_WITH_ZLIB}'")
if(PRISMS_PF_WITH_ZLIB)
if(DEAL_II_WITH_ZLIB)
message(STATUS " Found deal.II installation with zlib")
else()
message(FATAL_ERROR "deal.II installation with zlib not found. Disable PRISMS_PF_WITH_ZLIB or recompile deal.II with zlib.")
endif()
endif()

set(PRISMS_PF_WITH_SUNDIALS OFF CACHE BOOL "Whether the user wants to compile PRISMS-PF with deal.II's SUNDIALS dependency, or not.")
message(STATUS "Using PRISMS_PF_WITH_SUNDIALS = '${PRISMS_PF_WITH_SUNDIALS}'")
if(PRISMS_PF_WITH_SUNDIALS)
if(DEAL_II_WITH_SUNDIALS)
message(STATUS " Found deal.II installation with SUNDIALS")
else()
message(FATAL_ERROR "deal.II installation with SUNDIALS not found. Disable PRISMS_PF_WITH_SUNDIALS or recompile deal.II with SUNDIALS.")
endif()
endif()

# Load deal.II cached variables
deal_ii_initialize_cached_variables()

# Caliper
set(PRISMS_PF_WITH_CALIPER OFF CACHE BOOL "Whether the user wants to compile PRISMS-PF with the profiling code Caliper, or not.")
message(STATUS "Using PRISMS_PF_WITH_CALIPER = '${PRISMS_PF_WITH_CALIPER}'")
if(PRISMS_PF_WITH_CALIPER)
find_package(CALIPER)
if(${CALIPER_FOUND})
include_directories(${CALIPER_INCLUDE_DIR})
message(STATUS " Caliper found at ${CALIPER_DIR}")
else()
message(FATAL_ERROR "Caliper not found. Disable PRISMS_PF_WITH_CALIPER or specify a hint to your installation directory with CALIPER_DIR")
endif()
endif()

# Create compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(FORCE_COLORED_OUTPUT ON CACHE BOOL "Forces colored output when compiling with gcc and clang.")
Expand All @@ -115,6 +163,8 @@ message(STATUS "Configuring PRISMS-PF build targets")
message(STATUS "=========================================================")
message(STATUS "")

project(prisms_pf CXX)

# Generate config.h to enable and disable certain features within the source code.
set(PRISMS_PF_SOURCE_DIR ${CMAKE_SOURCE_DIR})

Expand All @@ -124,12 +174,7 @@ configure_file(
)

# Collect source files
file(GLOB_RECURSE PRISMS_PF_SOURCE_FILES "src/*.cc" "include/*.h")
file(GLOB_RECURSE PRISMS_PF_UNIT_TEST_FILES "unit_tests/*.cc" "contrib/catch/catch.hpp")

# Setup include directories
include_directories(BEFORE ${CMAKE_BINARY_DIR}/include include)
include_directories(AFTER contrib/catch)
add_subdirectory(src)

# Test stuff goes here

Expand Down Expand Up @@ -250,4 +295,4 @@ if(${PRISMS_PF_BUILD_RELEASE} STREQUAL "ON")
set_property(TARGET ${LIBRARY_NAME_RELEASE} PROPERTY OUTPUT_NAME prisms-pf-release)
target_include_directories(${LIBRARY_NAME_RELEASE} PRIVATE ${CMAKE_BINARY_DIR}/include include)
deal_ii_setup_target(${LIBRARY_NAME_RELEASE} RELEASE)
endif()
endif()
13 changes: 11 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ For detailed instructions on how to download and use PRISMS-PF, please consult t

### Install:

Install CMake, p4est, and deal.II (version 9.6 recommended).
Install CMake, p4est, and deal.II (version 9.6.0 or above required).

Clone the PRISMS-PF GitHub repository and navigate its folder.
```bash
Expand Down Expand Up @@ -98,7 +98,16 @@ following open source applications:

## Version information:

This version of the code, v2.4, contains moderate changes from v2.3. It was released in November 2024. See [version_changes.md](version_changes.md) for details.
This version of the code, v3.0, is still under development. See [version_changes.md](version_changes.md) for details of previous releases.

## Contributors
Thanks to everyone who has contributed to the project!

<a href="https://github.com/prisms-center/phaseField/graphs/contributors">
<img src="https://contrib.rocks/image?repo=prisms-center/phaseField" />
</a>

Made with [contrib.rocks](https://contrib.rocks).

## License:

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.5-pre
3.0-pre
Loading
Loading