Skip to content

Project5: Space and Time adaptivit - #77

Open
VahidGh wants to merge 48 commits into
michelebucelli:mainfrom
VahidGh:main
Open

Project5: Space and Time adaptivit#77
VahidGh wants to merge 48 commits into
michelebucelli:mainfrom
VahidGh:main

Conversation

@VahidGh

@VahidGh VahidGh commented Jul 8, 2026

Copy link
Copy Markdown
  • initial test framework
  • fix permission error in github action error
  • add amsc container reqs to ci/cd
  • Update ymls for source
  • replace source for sh
  • change yml shell to bash
  • update yml, run authorized login bash
  • update ymls: run interactive bash, run pip inside venv
  • in ymls change source from bash.bashrc to allow non-interactive bash
  • fix nproc issue in yml
  • fix yml for execute permission, add to cmakelists enabling tests
  • update model validation. work with pyvista instead of meshio.
  • update verification yaml, fix permission error
  • fix verification yml load module issue

VahidGh and others added 30 commits February 18, 2026 20:36
Refactor Heat class to include new functions and parameters for improved simulation capabilities.
Copilot AI review requested due to automatic review settings July 8, 2026 07:20

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR turns the repository into a full “Project 5” deliverable by adding a deal.II/Trilinos MPI heat-equation solver with space/time adaptivity, plus a CI/testing harness and optional Azure/Terraform deployment scaffolding to run verification and performance workflows.

Changes:

  • Added the Heat solver implementation and a configurable space-time-adaptivity driver (plus a manufactured-solution correctness test).
  • Introduced CMake/CTest-based verification + model validation scripts, and GitHub Actions workflows to run them in the course container.
  • Added Azure/Terraform infrastructure files and documentation for optional cloud execution and reporting.

Reviewed changes

Copilot reviewed 31 out of 66 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
terraform/variables.tf Adds Azure Terraform variables (subscription, RG, location, naming).
terraform/main.tf Provisions Azure RG, ACR, Storage, Log Analytics, Container App Env.
terraform/outputs.tf Exposes key Azure outputs (ACR server, storage, workspace IDs, etc.).
terraform/.gitignore Terraform ignore rules for state and local artifacts.
src/space-time-adaptivity.cpp New main driver: parameter parsing + default/convergence runs.
src/manufactured-solution-test.cpp New manufactured-solution test executable (adaptive + non-adaptive).
src/Heat.hpp Declares Heat solver class, forcing functions, and adaptivity params.
src/Heat.cpp Implements assembly, solve, AMR, time adaptivity, output, error metrics.
src/.gitkeep Keeps src/ in repo structure.
scripts/validate_model.py Python validator for theta-method mass-balance CSV output.
scripts/run_verification.sh Local convenience script to configure/build/ctest.
scripts/run_scalability.sh MPI scaling harness producing a CSV timing report.
scripts/run_performance_tests.sh Performance monitoring runner (CPU/mem/time reporting).
scripts/run_model_validation.sh Creates venv, runs solver/ctest, invokes Python validation.
scripts/requirements.txt Placeholder requirements file for validation tooling (currently empty).
scripts/compare_pvtu.py PVTu/VTU comparison script using pyvista/numpy metrics.
README.md Replaces minimal README with full project description + usage/testing docs.
mesh/mesh-cube-5.msh Adds a Gmsh mesh file (large).
docs/tests/Project_Documentation.tex Adds LaTeX documentation for CI/testing/Azure infra.
docs/tests/Project_Documentation.toc Generated LaTeX TOC artifact.
docs/tests/Project_Documentation.log Generated LaTeX log artifact.
docs/tests/Project_Documentation.fls Generated LaTeX file list artifact.
docs/tests/Project_Documentation.fdb_latexmk Generated latexmk DB artifact.
docs/tests/Project_Documentation.aux Generated LaTeX aux artifact.
docs/tests/DOCUMENTATION_SUMMARY.md Markdown summary of the testing/Azure documentation.
docs/AZURE_SETUP.md Step-by-step Azure/GitHub Actions setup guide.
cp.sh Utility script for copying files into an Azure container app and uploading blobs.
container-config.yaml Azure Container Apps configuration example (container + volumes/resources).
common/cmake-common.cmake Shared CMake settings (C++17, deps discovery, flags).
CMakeLists.txt Builds executables and wires up CTest tests/fixtures.
.gitignore Repo-level ignore updates (build, venv, docs artifacts, etc.).
.github/workflows/verification.yml CI workflow: build/test + convergence smoke test + model validation job.
.github/workflows/scalability.yml Manual workflow to run scalability harness.
.github/workflows/run-in-azure-container.yml Workflow to run builds/tests inside an Azure Container App.
.github/workflows/azure-deploy.yml Workflow to provision Azure infra + run MPI perf tests + upload reports.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread terraform/variables.tf
Comment on lines +1 to +5
variable "subscription_id" {
description = "Azure Subscription ID"
type = string
default = "5d7fbbd4-db18-4472-915d-de671cc0f22a"
}
Comment thread terraform/main.tf
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "Basic"
admin_enabled = true
Comment thread terraform/.gitignore
.terraform/
*.tfstate
*.tfstate.*
.terraform.lock.hcl

echo "Running ctest"
cd "$BUILD_DIR"
ctest --output-on-failure --parallel $(( $(nproc) - 1 ))
Comment on lines +20 to +27
echo "Installing/updating validation dependencies..."
# Run pip in an isolated subshell to ignore external PYTHONPATH
(
unset PYTHONPATH
. "$VENV_DIR/bin/activate"
pip install --upgrade pip
pip install -r scripts/requirements.txt
)
\subsection{Technology Stack}
\begin{itemize}
\item \textbf{Language}: C++17 with deal.II library
\item \textbf{Build System}: CMake (\geq 3.12)
Comment thread mesh/mesh-cube-5.msh
Comment on lines +1 to +4
$MeshFormat
4.1 0 8
$EndMeshFormat
$Entities
Comment thread README.md
Comment on lines +170 to +172
Binary files must not be uploaded to the repository (including executables). Mesh files should
not be uploaded either — this project generates its mesh programmatically
(`GridGenerator::subdivided_hyper_cube`), so no `.msh`/`gmsh` script is needed.
Comment thread CMakeLists.txt
--tolerance 1e-2)
set_tests_properties(model_validation PROPERTIES FIXTURES_REQUIRED space_time_output)

set_tests_properties(manufactured-solution-test PROPERTIES DEPENDS model_validation)
Comment thread common/cmake-common.cmake
Comment on lines +15 to +18
# Locate MPI compiler.
find_package(MPI REQUIRED)
set(CMAKE_CXX_COMPILER "${MPI_CXX_COMPILER}")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants