Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f7cb957
initial version.
rozyczko May 8, 2026
fc41108
updates to the parameter passing
rozyczko May 8, 2026
99913c4
nice Bayesian sub-tabs display
rozyczko May 8, 2026
1e2fbcd
add parameter names, add cancellation of sampling, add number of steps
rozyczko May 9, 2026
92747e6
correct parenting
rozyczko May 9, 2026
5a1ec0f
added required dependencies and modified Fit Status dialog
rozyczko May 10, 2026
0415a9c
add save button to the plots
rozyczko May 10, 2026
dd0b29b
added tests for bayesian logic
rozyczko May 10, 2026
6bfa227
attempt at getting posterior median and credibility intervals on the
rozyczko May 11, 2026
2b3438d
enable/disable legends on bayesian sampling
rozyczko May 12, 2026
f21c195
reload bumps images on recalculation. Use different caption when running
rozyczko May 13, 2026
2d8a22a
updates and changes, new unit tests and GUI elements. New colors
rozyczko May 13, 2026
d5d887d
fixed typo
rozyczko May 13, 2026
6ac3fc3
actually sample multiple experiments
rozyczko May 13, 2026
089e6da
nicer plots
rozyczko May 25, 2026
3587259
trace plot - nice display
rozyczko May 25, 2026
5f949d0
updated plots
rozyczko May 26, 2026
ce7149b
changes for the new EasyList based reflectometry-lib
rozyczko May 28, 2026
28f0ab8
changes after updates to core
rozyczko Jun 5, 2026
a526545
unit test fixed
rozyczko Jun 5, 2026
186ac8a
Merge branch 'develop' into bayesian
rozyczko Jun 5, 2026
f55a5ad
weird conflict
rozyczko Jun 5, 2026
16e1b45
Bayesian fixes (#332)
rozyczko Jul 15, 2026
5e1cd6c
minor updates based on the new ERL
rozyczko Jul 24, 2026
913375f
summary results now show correct GoF #375
rozyczko Jul 24, 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
36 changes: 18 additions & 18 deletions .github/workflows/installer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,26 +111,26 @@ jobs:
# ${{ secrets.APPLE_CERT_DATA }} ${{ secrets.APPLE_CERT_PASSWORD }}
# ${{ secrets.APPLE_NOTARY_USER }} ${{ secrets.APPLE_NOTARY_PASSWORD }}

- name: Setup SM_CLIENT_CERT_FILE from base64 secret data
if: runner.os == 'Windows'
run: |
echo "${{ secrets.KEYLOCKER_CERT_DATA }}" | base64 --decode > /d/Certificate_pkcs12.p12
shell: bash
# - name: Setup SM_CLIENT_CERT_FILE from base64 secret data
# if: runner.os == 'Windows'
# run: |
# echo "${{ secrets.KEYLOCKER_CERT_DATA }}" | base64 --decode > /d/Certificate_pkcs12.p12
# shell: bash


- name: Setup Software Trust Manager
if: runner.os == 'Windows'
uses: digicert/code-signing-software-trust-action@v1
with:
simple-signing-mode: true
# If the below 2 parameters are supplied, then smctl executable is invoked to attempt the signing.
input: ${{ env.SETUP_EXE_PATH }}
keypair-alias: ${{ secrets.KEYLOCKER_KEYPAIR_ALIAS }}
env:
SM_HOST: ${{ secrets.KEYLOCKER_HOST }}
SM_API_KEY: ${{ secrets.KEYLOCKER_API_KEY }}
SM_CLIENT_CERT_FILE: D:\\Certificate_pkcs12.p12
SM_CLIENT_CERT_PASSWORD: ${{ secrets.WINDOWS_CERT_PASSWORD }}
# - name: Setup Software Trust Manager
# if: runner.os == 'Windows'
# uses: digicert/code-signing-software-trust-action@v1
# with:
# simple-signing-mode: true
# # If the below 2 parameters are supplied, then smctl executable is invoked to attempt the signing.
# input: ${{ env.SETUP_EXE_PATH }}
# keypair-alias: ${{ secrets.KEYLOCKER_KEYPAIR_ALIAS }}
# env:
# SM_HOST: ${{ secrets.KEYLOCKER_HOST }}
# SM_API_KEY: ${{ secrets.KEYLOCKER_API_KEY }}
# SM_CLIENT_CERT_FILE: D:\\Certificate_pkcs12.p12
# SM_CLIENT_CERT_PASSWORD: ${{ secrets.WINDOWS_CERT_PASSWORD }}

- name: Create zip archive of offline app installer for distribution
run: >
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,6 @@ settings.ini*

#Snap
*.snap

# Claude Code personal settings
.claude/settings.local.json
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# Unreleased

- Migrated to the new `easyscience` core API surface exposed by `reflectometry-lib`:
- Layer removal now calls `remove_at(index)`; the lib's index-based `remove` was replaced by standard `MutableSequence.remove(value)` semantics.
- Parameter discovery uses `get_all_parameters()`.
- **Breaking:** project files saved by earlier versions (predating `file_format=2`) can no longer be opened. Opening one now shows a clear error dialog instead of failing uncaught; affected projects must be recreated.

# Version 1.3.0 (1 May 2026)

- Migrated the application to the new `EasyApplication` module and removed the old `EasyApp` footer dependency.
Expand Down
34 changes: 34 additions & 0 deletions EasyReflectometryApp/Backends/Mock/Analysis.qml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,28 @@ QtObject {
readonly property var fitPreviewParameterValues: ({})
readonly property var fitResults: ({ success: true, nvarys: 3, chi2: 1.2345 })

// Bayesian sampling
readonly property bool isBayesianSelected: false
readonly property int bayesianSamples: 10000
readonly property int bayesianBurnIn: 2000
readonly property int bayesianPopulation: 10
readonly property int bayesianThinning: 1
readonly property var bayesianPosterior: null
readonly property bool bayesianResultAvailable: false
readonly property var bayesianMarginals: []

// Phase 2: corner/trace/distribution plots (HTML), diagnostics, heatmap
readonly property string bayesianCornerPlotUrl: ''
readonly property string bayesianTracePlotUrl: ''
readonly property string bayesianDistributionPlotUrl: ''
readonly property var bayesianDiagnostics: ({})
readonly property var bayesianParamNames: []
readonly property var bayesianHeatmapData: null
readonly property string bayesianHeatmapPlotUrl: ''
function bayesianComputeHeatmap(x, y) {
console.debug(`bayesianComputeHeatmap ${x}, ${y}`)
}

// Fit failure signal (mirrors Python backend)
signal fitFailed(string message)

Expand Down Expand Up @@ -123,4 +145,16 @@ QtObject {
showFitResultsDialog = value
console.debug(`setShowFitResultsDialog ${value}`)
}
function setBayesianSamples(value) {
console.debug(`setBayesianSamples ${value}`)
}
function setBayesianBurnIn(value) {
console.debug(`setBayesianBurnIn ${value}`)
}
function setBayesianPopulation(value) {
console.debug(`setBayesianPopulation ${value}`)
}
function setBayesianThinning(value) {
console.debug(`setBayesianThinning ${value}`)
}
}
14 changes: 14 additions & 0 deletions EasyReflectometryApp/Backends/Mock/Plotting.qml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,20 @@ QtObject {
property bool scaleShown: false
property bool bkgShown: false

// Posterior predictive (Bayesian) overlay data
readonly property var posteriorPredictiveQ: []
readonly property var posteriorPredictiveMedian: []
readonly property var posteriorPredictiveLower: []
readonly property var posteriorPredictiveUpper: []
signal posteriorPredictiveDataChanged()

// Phase 2: SLD posterior predictive (Bayesian) overlay
readonly property var posteriorPredictiveSldZ: []
readonly property var posteriorPredictiveSldMedian: []
readonly property var posteriorPredictiveSldLower: []
readonly property var posteriorPredictiveSldUpper: []
signal posteriorPredictiveSldDataChanged()

// Signals for plot mode changes
signal plotModeChanged()
signal axisTypeChanged()
Expand Down
2 changes: 1 addition & 1 deletion EasyReflectometryApp/Backends/Mock/Status.qml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import QtQuick
QtObject {

readonly property string project: 'Undefined'
readonly property string phaseCount: '1'
readonly property string modelsCount: '1'
readonly property string experimentsCount: '1'
readonly property string calculator: 'CrysPy'
readonly property string minimizer: 'Lmfit (leastsq)'
Expand Down
Loading
Loading