Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
a14e234
initial work on DIC guide.
JoelPhys Jan 6, 2026
f1b8e0f
Merge branch 'DIC-dev' into dic-guide
JoelPhys Jan 15, 2026
a01969a
Further updates to DIC guide.
JoelPhys Jan 16, 2026
4533da9
Merge branch 'dev' into dic-guide
JoelPhys Jan 20, 2026
487d592
updated guide.
JoelPhys Jan 20, 2026
ef986b0
latest DIC guid changes.
JoelPhys Jan 22, 2026
ce02cac
Added optimimization description.
JoelPhys Jan 22, 2026
e51f297
added bspline explainer.
JoelPhys Jan 26, 2026
e602b06
removed pointless comments in docs requirements.
JoelPhys Jan 28, 2026
73ff3d1
added arxiv citation.
JoelPhys Jan 28, 2026
81776cc
updated homepage.
JoelPhys Jan 28, 2026
7be8990
reshuffle of guide docs folder structure for a better naming convention.
JoelPhys Jan 28, 2026
ab53350
fixing documentation errors.
JoelPhys Jan 30, 2026
b3283b8
automated cpp
JoelPhys Jan 30, 2026
5a1f09b
removed old rst files for cpp source.
JoelPhys Jan 30, 2026
e928229
Merge branch 'dev' into dic-guide
JoelPhys Jan 30, 2026
d1586be
fixes for cpp api for new structure.
JoelPhys Jan 30, 2026
d99c33a
fixed citation. updated guides and home page. Small change to a DIC e…
JoelPhys Jan 30, 2026
5c3a318
initial work on a HRDIC example.
JoelPhys Jan 30, 2026
ff4e9a5
finished HRDIC example.
JoelPhys Jan 30, 2026
c54c066
thread count explained in DIC guide.
JoelPhys Feb 2, 2026
c3fcea8
added pip, conda and pip install instructions on main page.
JoelPhys Feb 2, 2026
52aeba1
theory and user guide images. HRDIC example.
JoelPhys Feb 2, 2026
825670f
small bugfixes for poly roi.
JoelPhys Feb 3, 2026
ee1ef08
additions to DIC guides.
JoelPhys Feb 3, 2026
7cbff5a
Merge branch 'dev' into dic-guide
JoelPhys Feb 3, 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
90 changes: 80 additions & 10 deletions docs/apidoc.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
set -e
#!/usr/bin/env bash
set -e
set -o pipefail

echo "=========================================="
Expand All @@ -11,23 +12,16 @@ error_exit() {
exit 1
}

# Generate the python API documentation
# Python API documentation
sphinx-apidoc -f -o ./source --separate ../src/pyvale/ ../src/pyvale/data/* ../src/pyvale/examples/* || error_exit "sphinx-apidoc failed"

# Remove autogenerated TOC file
rm -f source/modules.rst || error_exit "Failed to remove modules.rst"

# Generate the C++ API documentation
( cd ./source && doxygen Doxyfile ) || error_exit "doxygen generation failed"

echo "Updating generated RST files..."

# Change title for dataset file
# sed -i '0,/pyvale.dataset/s/pyvale.dataset/pyvale.dataset/' source/pyvale.dataset.rst || error_exit "Failed to update dataset title"
# sed -i '0,/dataset.dataset/s/dataset.dataset/pyvale.dataset/' source/pyvale.dataset.dataset.rst || error_exit "Failed to update dataset title"

# Modules to process
modules=("dic" "blender" "mooseherder" "sensorsim" "verif" "dataset")
modules=("dic" "blender" "mooseherder" "sensorsim" "verif" "dataset" "strain")

for mod in "${modules[@]}"; do
rst="source/pyvale.${mod}.rst"
Expand Down Expand Up @@ -59,3 +53,79 @@ rm -f ./source/pyvale.dic.dic2dcpp.rst || error_exit "Failed to remove dic2dcpp.

echo "PYTHON API DOCUMENTATION GENERATED SUCCESSFULLY!"

# ------------------------------------------------------------------
# Generate C++ API documentation
# ------------------------------------------------------------------
echo "=========================================="
echo " GENERATING C++ API DOCUMENTATION..."
echo "=========================================="

# Run Doxygen (optional, if you still want it)
( cd ./source && doxygen Doxyfile ) || error_exit "doxygen generation failed"

# Create RST files for each C++ header
for mod in "${modules[@]}"; do
src_dir="../src/pyvale/${mod}/cpp"
out_dir="source/cpp/${mod}"

mkdir -p "$out_dir"

for file in "$src_dir"/*.hpp; do
[ -e "$file" ] || continue

filename=$(basename "$file")
base="${filename%.hpp}"
rst_file="${out_dir}/${base}.rst"

echo "Generating $rst_file"

cat > "$rst_file" <<EOF
${filename}
==================

.. doxygenfile:: ${filename}
:project: pyvale
:path: ${src_dir}
EOF
done
done

# ------------------------------------------------------------------
# Generate module-level index RST files for C++ headers
# ------------------------------------------------------------------
for mod in "${modules[@]}"; do
out_dir="source/cpp/${mod}"
index_file="source/cpp/cpp_${mod}.rst"

headers=""
for f in "$out_dir"/*.rst; do
[ -e "$f" ] || continue # skip if no files
headers="$headers $(basename "$f")"
done

# Skip if no headers found
[ -z "$headers" ] && continue

# Sort headers alphabetically
headers=$(echo $headers | tr ' ' '\n' | sort)

echo "Generating module index $index_file"

{
echo "${mod}"
echo "=================="
echo ""
echo ".. toctree::"
echo " :caption: C++ Source Files"
echo " :maxdepth: 1"
echo ""
for h in $headers; do
echo " ${mod}/${h}"
done
} > "$index_file"
done



echo "C++ RST FILES GENERATED SUCCESSFULLY!"

38 changes: 18 additions & 20 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,37 +1,35 @@
# --- Core Sphinx Builder ---
# Core Stuff
sphinx
babel # For language support/i18n
docutils # For RST parsing (fundamental)
imagesize # For image dimension handling
pygments # For code highlighting
snowballstemmer # For search indexing (used by epub3 builder)
babel
docutils
imagesize
pygments
snowballstemmer
breathe

# --- Theme and Parser ---
# Theme
furo
alabaster
myst-parser

# --- Sphinx Extensions (Directly Listed in conf.py) ---
# nice formatting stuff
sphinx-codeautolink
sphinx-copybutton
breathe # For C++ documentation integration
sphinx-gallery # For example gallery generation
sphinx-gallery
sphinx-design
sphinx-autodoc-typehints
ipywidgets
matplotlib
pillow

# --- Extension Dependencies ---
sphinx-autodoc-typehints # You use 'autodoc' which benefits from this
ipywidgets # Often required by sphinx-gallery examples (e.g., matplotlib output)
matplotlib # Required for plotting in sphinx-gallery examples
pillow # Required for various image/gallery operations

# --- Specific sphinxcontrib Extensions (Explicitly added to resolve previous errors) ---
sphinxcontrib-applehelp # Needed if the epub3 builder triggers it (which is common)
sphinxcontrib-applehelp
sphinxcontrib-devhelp
sphinxcontrib-htmlhelp
sphinxcontrib-jsmath
sphinxcontrib-qthelp # Added proactively for completeness
sphinxcontrib-qthelp
sphinxcontrib-serializinghtml

# --- Your Project Dependencies (From your original list) ---
# other random stuff
certifi
idna
jinja2
Expand Down
2 changes: 1 addition & 1 deletion docs/source/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -943,7 +943,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = ../../src/pyvale/dic/cpp
INPUT = ../../src/pyvale/dic/cpp ../../src/pyvale/strain/cpp

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down
4 changes: 4 additions & 0 deletions docs/source/_static/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@
color: #0066cc !important; /* Monokai-style cyan */
}

.code-scroll {
max-height: 400px;
overflow: auto;
}
1 change: 1 addition & 0 deletions docs/source/_static/hrdic.png
18 changes: 3 additions & 15 deletions docs/source/api_cpp.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,9 @@ Detailed C++ API
=================


Digital Image Correlation
-------------------------


.. toctree::
:maxdepth: 1
:caption: C++ Header Files
:caption: Modules

cpp/dicbruteforce
cpp/dicfourier
cpp/dicinterpolator
cpp/dicmain
cpp/dicoptimizer
cpp/dicrg
cpp/dicscanmethod
cpp/dicsmooth
cpp/dicstrain
cpp/dicutil
./cpp/cpp_dic.rst
./cpp/cpp_strain.rst
1 change: 1 addition & 0 deletions docs/source/api_py.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Detailed Python API
pyvale.sensorsim
pyvale.blender
pyvale.dic
pyvale.strain
pyvale.mooseherder
pyvale.verif
pyvale.dataset
Expand Down
24 changes: 24 additions & 0 deletions docs/source/cite.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,28 @@ Citing Pyvale
If Pyvale has contributed to your research or work please acknowledge the
project in your academic puplications using the following citation:

.. tab-set::

.. tab-item:: APA

Hirst, J., Sibson, L., Tayeb, A., Poole, B., Sampson, M., Bielajewa, W., ... & Fletcher, L. (2026).
PYVALE: A Fast, Scalable, Open-Source 2D Digital Image Correlation (DIC) Engine
Capable of Handling Gigapixel Images.
*arXiv preprint arXiv:2601.12941*.

.. tab-item:: MLA

Hirst, Joel, et al. "PYVALE: A Fast, Scalable, Open-Source 2D Digital Image Correlation
(DIC) Engine Capable of Handling Gigapixel Images."
*arXiv preprint arXiv:2601.12941* (2026).

.. tab-item:: Bibtex

.. code-block::

@article{pyvale2026,
title={PYVALE: A Fast, Scalable, Open-Source 2D Digital Image Correlation (DIC) Engine Capable of Handling Gigapixel Images},
author={Hirst, Joel and Sibson, Lorna and Tayeb, Adel and Poole, Ben and Sampson, Megan and Bielajewa, Wiera and Atkinson, Michael and Marsh, Alex and Spencer, Rory and Hamill, Rob and others},
journal={arXiv preprint arXiv:2601.12941},
year={2026}
}
5 changes: 4 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@
'sphinx.ext.autodoc',
'sphinx.ext.napoleon',
'sphinx.ext.autosummary',
'sphinx.ext.viewcode', # Adds source code links
'sphinx.ext.intersphinx',
'sphinx_design',
'sphinx.ext.viewcode',
'sphinx_codeautolink',
'sphinx_copybutton',
'sphinx_gallery.gen_gallery',
'sphinx.ext.mathjax',
'breathe',
'myst_parser'
]
Expand Down
6 changes: 0 additions & 6 deletions docs/source/cpp/dicbruteforce.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicfourier.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicinterpolator.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicmain.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicoptimizer.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicrg.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicscanmethod.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicsmooth.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicstrain.rst

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/cpp/dicutil.rst

This file was deleted.

2 changes: 1 addition & 1 deletion docs/source/examples/examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Sensor Simulation Basics

examples_basics_sensorsim

Digital Image Correlation
DIC & Strain Calculations
-------------------------
.. toctree::
:maxdepth: 2
Expand Down
3 changes: 2 additions & 1 deletion docs/source/examples/examples_dic.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.. _examples_dic:

Digital Image Correlation (DIC)
DIC & Strain Calculations
================================

.. toctree::
Expand All @@ -11,4 +11,5 @@ Digital Image Correlation (DIC)
dic/ex3_plate_with_hole_strain.rst
dic/ex4_dic_blender.rst
dic/ex5_dic_challenge.rst
dic/ex6_hrdic.rst

4 changes: 0 additions & 4 deletions docs/source/guide/guide_blender.rst

This file was deleted.

4 changes: 0 additions & 4 deletions docs/source/guide/guide_dic.rst

This file was deleted.

14 changes: 14 additions & 0 deletions docs/source/guide_theory/guide_theory.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
.. _guide_theory:

Theory Guide
=================================

Module user guides
------------------

.. toctree::
:maxdepth: 1

guide_theory_dic.rst


Loading
Loading