Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
4838f5c
FDTD | Feature | Add XDMF movie and frequency outputs
adrianarce-elemwave Jul 22, 2026
c039080
FDTD | Feature | Integrate observation output pipeline
adrianarce-elemwave Jul 22, 2026
d2104f0
FDTD | ENV | #409 | Allow usage of isolated IA on containers
adrianarce-elemwave Jul 6, 2026
33cc228
FDTD | ENV | #409 | Include specific fortran skills
adrianarce-elemwave Jul 13, 2026
b6dc8c2
FDTD | ENV | #409 | Paraview included on dev container tool
adrianarce-elemwave Jul 13, 2026
2070bac
FDTD | Tests | Fix probe output file units
adrianarce-elemwave Jul 14, 2026
8a353dc
FDTD | ENV | #409 | simplify docker file
adrianarce-elemwave Jul 14, 2026
f194b5e
FDTD | Fix | Import output allocation helpers
adrianarce-elemwave Jul 27, 2026
1ff65f0
FDTD | ENV | Unify build directory and add Intel container
adrianarce-elemwave Jul 28, 2026
09509ee
FDTD | ENV | Include debug mpi docs. Minor adjustments for mpi debug …
adrianarce-elemwave Jul 28, 2026
12626d1
FDTD | Spec | Define robust output layer
adrianarce-elemwave Jul 24, 2026
9c8d900
FDTD | Feature | Add XDMF HDF5 library with parallel support
adrianarce-elemwave Jul 24, 2026
39b2c47
FDTD | Feature | Add robust distributed output artifacts
adrianarce-elemwave Jul 24, 2026
d13e418
FDTD | Feature | Integrate output pipeline and retire legacy dispatch
adrianarce-elemwave Jul 24, 2026
c966255
FDTD | Feature | Publish movie probes as temporal XDMF
adrianarce-elemwave Jul 24, 2026
f9fdbef
FDTD | Feature | Publish spatial frequency slices
adrianarce-elemwave Jul 24, 2026
4eeef3c
FDTD | Test | Organise and verify output tests
adrianarce-elemwave Jul 24, 2026
5c85c26
FDTD | Dev | Configure Fortran language tooling
adrianarce-elemwave Jul 24, 2026
737457b
FDTD | Build | Require Fortran 2018 for XDMF API
adrianarce-elemwave Jul 24, 2026
1b06fdd
FDTD | Test | Describe output unit tests
adrianarce-elemwave Jul 24, 2026
b8ed42e
wip: doc files to check current output status
adrianarce-elemwave Jul 24, 2026
32c7656
FDTD | Feature | Strengthen output artifact publication
adrianarce-elemwave Jul 24, 2026
839ff9a
wip: doc for testing and minor discrepancy
adrianarce-elemwave Jul 27, 2026
1bbf730
FDTD | Feature | Add line probe output
adrianarce-elemwave Jul 27, 2026
a14d198
FDTD | Test | Cover line probe reductions
adrianarce-elemwave Jul 27, 2026
f44052e
FDTD | Test | Fix line probe MPI reduction
adrianarce-elemwave Jul 27, 2026
feed8a9
FDTD | Fix | Avoid duplicate line probe interface samples
adrianarce-elemwave Jul 27, 2026
3c6f12f
FDTD | Feature | Add binary output for sampled probes
adrianarce-elemwave Jul 27, 2026
abefdc8
FDTD | Feature | Organize probe output artifacts
adrianarce-elemwave Jul 27, 2026
61a9b9f
FDTD | Fix | Write coupled MTLN probe output
adrianarce-elemwave Jul 30, 2026
07d5b5d
FDTD | Test | Read binary dielectric probes
adrianarce-elemwave Jul 30, 2026
ffc90ab
FDTD | Fix | Preserve text probe artifact API
adrianarce-elemwave Jul 30, 2026
ca0420d
FDTD | Fix | Restore point and bulk probe outputs
adrianarce-elemwave Jul 30, 2026
4c8a648
FDTD | Feature | Publish geometry map XDMF artifacts
adrianarce-elemwave Jul 30, 2026
22338cf
FDTD | Cleanup | Remove output module toggle
adrianarce-elemwave Jul 31, 2026
5fe13ed
FDTD | Fix | Link MPI C++ unit tests
adrianarce-elemwave Jul 31, 2026
2111a44
FDTD | Fix | Select usable HDF5 libraries
adrianarce-elemwave Jul 31, 2026
33fd4aa
adrianarce-elemwave Jul 31, 2026
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
1 change: 0 additions & 1 deletion .devcontainer/Dockerfile

This file was deleted.

14 changes: 14 additions & 0 deletions .devcontainer/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"features": {
"ghcr.io/devcontainers/features/python:1": {
"version": "1.8.0",
"resolved": "ghcr.io/devcontainers/features/python@sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511",
"integrity": "sha256:fbcad6955caeecc5ad3f7886baf652e25cba5225a6c4c2287c536de2e5607511"
},
"ghcr.io/msclock/features/vcpkg:2": {
"version": "2.0.0",
"resolved": "ghcr.io/msclock/features/vcpkg@sha256:bcb75d475252af1f9ef742860387cb15e059f57041748abdd02030cd1a181471",
"integrity": "sha256:bcb75d475252af1f9ef742860387cb15e059f57041748abdd02030cd1a181471"
}
}
}
111 changes: 67 additions & 44 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,46 +1,69 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
{
"name": "OpenSEMBA dev. framework",
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/msclock/features/vcpkg:2": {},
"ghcr.io/devcontainers/features/python:1": {}
},

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",

// Configure tool-specific properties.
"customizations": {
"codespaces": {
"repositories": {
"lmdiazangulo/json-fortran": { "permissions": "read-all" },
"opensemba/fhash": { "permissions": "read-all" },
"reference-lapack/lapack": { "permissions": "read-all" },
"opensemba/ngtest": {"permissions": "read-all" },
"google/googletest": { "permissions": "read-all" }
}
},
"vscode": {
"extensions": [
"ms-toolsai.jupyter",
"fortran-lang.linter-gfortran",
"ms-vscode.cmake-tools",
"ms-python.autopep8",
"matepek.vscode-catch2-test-adapter"
]
}
}

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
"name": "semba-fdtd dev",
"dockerComposeFile": [
"../docker-compose.yml"
],
"service": "dev",
"workspaceFolder": "/home/developer/workspaces/fdtd",
"remoteUser": "developer",
"containerUser": "developer",
"overrideCommand": false,
"features": {
"ghcr.io/msclock/features/vcpkg:2": {},
"ghcr.io/devcontainers/features/python:1": {}
},
"remoteEnv": {
"HOME": "/home/developer",
"XDG_CONFIG_HOME": "/home/developer/.config",
"XDG_DATA_HOME": "/home/developer/.local/share",
"OPENAI_API_KEY": "${localEnv:OPENAI_API_KEY}"
},
"postCreateCommand": ".devcontainer/setup-python.sh",
"postStartCommand": "bash scripts/devcontainer-post-start.sh",
"customizations": {
"codespaces": {
"repositories": {
"lmdiazangulo/json-fortran": { "permissions": "read-all" },
"opensemba/fhash": { "permissions": "read-all" },
"reference-lapack/lapack": { "permissions": "read-all" },
"opensemba/ngtest": { "permissions": "read-all" },
"google/googletest": { "permissions": "read-all" }
}
},
"vscode": {
"extensions": [
"fortran-lang.linter-gfortran",
"ms-vscode.cmake-tools",
"ms-vscode.cpptools",
"ms-python.python",
"mhutchie.git-graph"
],
"settings": {
"cmake.buildDirectory": "${workspaceFolder}/build",
"cmake.useCMakePresets": "always",
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"terminal.integrated.defaultProfile.linux": "bash",
"fortran.fortls.path": "/usr/local/bin/fortls",
"fortran.fortls.notifyInit": true,
"fortran.fortls.disableAutoupdate": true,
"fortran.provide.hover": "Both",
"fortran.formatting.formatter": "fprettify",
"editor.tokenColorCustomizations": {
"textMateRules": [
{
"scope": [
"entity.name.function.fortran",
"entity.name.function.procedure.fortran",
"entity.name.function.subroutine.fortran"
],
"settings": {
"foreground": "#DCDCAA",
"fontStyle": "bold"
}
}
]
}
}
}
}
}
12 changes: 0 additions & 12 deletions .devcontainer/notes.md

This file was deleted.

6 changes: 6 additions & 0 deletions .devcontainer/setup-python.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -euo pipefail

python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -r requirements.txt
26 changes: 25 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
.git
build/
build-*/
.venv/
.devcontainer/
.vscode/
.github/
__pycache__/
*.pyc
*.pyo
Expand All @@ -9,4 +13,24 @@ __pycache__/
dist/
*.o
*.mod
# Keep precompiled_libraries and external/ submodule contents

# Runtime/development bind mounts do not need to be copied into image layers.
simulations/

# Linux Docker builds only use the GNU LAPACK bundle.
precompiled_libraries/**
!precompiled_libraries/
!precompiled_libraries/linux-gcc/
!precompiled_libraries/linux-gcc/**

# The top-level build only consumes selected external sources.
external/lapack/
external/ngspice/examples/
external/ngspice/tests/
external/ngspice/visualc/
external/ngspice/man/
external/ngspice/doc/
external/ngspice/.git/
external/googletest/.git/
external/json-fortran/.git/
external/fhash/.git/
18 changes: 18 additions & 0 deletions .fortlsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"source_dirs": [
"./src_conformal",
"./src_json_parser",
"./src_main_pub",
"./src_mtln",
"./src_output",
"./src_pyWrapper",
"./src_utils",
"./src_wires_pub",
"./test"
],
"excl_paths": [
"./build*",
"./.venv",
"./Testing"
]
}
49 changes: 48 additions & 1 deletion .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
if: matrix.compiler.name=='gcc'
run: |
sudo apt update
sudo apt install libhdf5-dev libopenmpi-dev
sudo apt install libhdf5-dev libhdf5-openmpi-dev libopenmpi-dev

- name: Setup fortran compiler
uses: fortran-lang/setup-fortran@v1
Expand All @@ -92,12 +92,59 @@ jobs:
- name: Run unit tests
run: build/bin/fdtd_tests

- name: Verify output (serial)
if: matrix.mpi=='OFF'
run: build/bin/fdtd_tests --gtest_filter='output.*'

- name: Verify output (MPI collective)
if: matrix.mpi=='ON'
run: ctest --test-dir build --output-on-failure -R '^output_mpi_collective_and_root_aggregation$'

- name: Verify output (MPI root aggregation)
if: matrix.mpi=='ON'
run: ctest --test-dir build --output-on-failure -R '^output_mpi_collective_and_root_aggregation$'

- name: Run CTest suites
run: ctest --test-dir build --output-on-failure

- name: Run python tests
env:
SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }}
SEMBA_FDTD_ENABLE_MTLN: ${{ matrix.mtln }}
SEMBA_FDTD_ENABLE_HDF: ${{ matrix.hdf }}
run: python -m pytest test/ --durations=20

parallel-hdf5-build:
runs-on: ubuntu-latest
name: ubuntu / gcc / parallel-hdf5

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Install parallel HDF5
run: |
sudo apt update
sudo apt install gfortran libhdf5-openmpi-dev libopenmpi-dev python3-h5py python3-numpy

- name: Configure parallel HDF5 output
run: |
cmake -S . -B build \
-DCMAKE_BUILD_TYPE=Release \
-DSEMBA_FDTD_ENABLE_MPI=ON \
-DSEMBA_FDTD_ENABLE_HDF=ON \
-DSEMBA_FDTD_ENABLE_MTLN=OFF \
-DSEMBA_FDTD_ENABLE_TEST=OFF \
-DXDMF_HDF5_BUILD_TESTING=ON \
-DHDF5_ROOT=/usr/lib/x86_64-linux-gnu/hdf5/openmpi

- name: Build parallel HDF5 output
run: cmake --build build -j

- name: Test parallel HDF5 output
run: ctest --test-dir build --output-on-failure -R '^xdmf-hdf5-(generate|verify|mpi-generate|mpi-verify)$'



6 changes: 6 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ jobs:
- name: Run unit tests
run: build/bin/fdtd_tests.exe

- name: Verify output (serial)
run: build/bin/fdtd_tests.exe --gtest_filter=output.*

- name: Run CTest suites
run: ctest --test-dir build --output-on-failure

- name: Run python tests (except codemodel)
env:
SEMBA_FDTD_ENABLE_MPI: ${{ matrix.mpi }}
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ Testing/
/SEMBA_FDTD_temp.log
.vscode/launch.json
.vscode/settings.json
.vscode/tasks.json
*/*.bak
./*.bak
.vscode/ltex.dictionary.en-US.txt
Expand All @@ -76,4 +75,5 @@ git_info.txt

.venv/build2/
build2/
.venv/
.venv/
specs/changes/*
Loading
Loading