mcdc-project / mcdc-project/mcdc

Integrate UQ/GSA workflow with MC/DC

Open
#334 1 comment 0 reactions 1 assignee View on GitHub

@clemekay is already working on this.

Since May 8, 2025.

stale
Dominant language
Python
Stars
61
Forks
38
Avg merge
1d 13h
Merged PRs (30d)
10

Description

From the 05/07/2025 document "MC/DC Plans Through the End of CEMeNT" :

Right now, MC/DC has variance deconvolution built-in so that the user can use mcdc.uq() with their parameter uncertainties, then MC/DC will do all of the re-sampling and include the parametric, solver, and total variances in the output file. It currently does so using MC/DC’s built-in batching capability, but we’re not parallelized over batches.

That workflow I used for the M&C C5G7 paper was more efficient than MC/DC’s currently built-in functionality. Essentially, I found it was faster to essentially just make an input deck inside a for-loop, taking advantage of not having to re-compile anything but not having to internally loop serially over batches:

import mcdc

for i=1:Nxi
  sampled_params = resample_parameters()
  seed = get_independent_initial_seed()
  new_outfile = 'outfile_' + str(i)
  # set mcdc definitions w/ sampled_params (like surface, material, cell, setting, etc)
  mcdc.run(outfile=new_outfile, new_seed=seed)

I plan to update what’s built-in to reflect that more efficient workflow: the user can still use some mcdc.uq() function in their input deck, and then MC/DC will make a new input deck for them with the sampling, looping, and post-processing.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.