01 / Software development: a more usable and reliable platform
The main progress was to make MuPRO easier to use as a complete simulation workflow, while strengthening the numerical foundations on which future applications depend.
- A more consistent way to run simulations. The first application, muFerro, now supports a connected workflow from preparing inputs and launching a calculation to monitoring progress and retrieving results. This reduces the manual work needed to connect individual steps and provides a pattern for other applications.
- Stronger numerical reliability. We reviewed the shared computational foundations and corrected problems in geometry, material handling, numerical operations and parallel data output. The emphasis is on checking physical and mathematical behavior more directly, beyond whether an existing test suite passes.
- Better control of computation and delivery. Shared resource management, performance measurements and clearer installation checks make the software easier to operate and assess. These changes support more repeatable runs and a more dependable route from development to a usable package.
The software has made concrete engineering progress. Scientific review and acceptance of a package containing the latest corrections remain ongoing.
02 / AI integration: from callable simulation tools to enterprise needs
Making MuPRO easier for AI tools to use
The simulation workflow can now be called through common software interfaces, including an interface used by AI assistants. This gives AI tools a more consistent way to prepare a supported calculation, follow its progress and retrieve results. The current implementation covers the muFerro workflow; an industrial AI application has not yet been demonstrated.
Discussions with Houbing Huang and the Sanhuan Group visit
During the past two weeks, I visited Houbing Huang to discuss how AI applications could be put into practice inside enterprises. During his subsequent visit to Shenzhen, he also took our team to Sanhuan Group, a listed company producing multilayer ceramic capacitors (MLCCs).
We would like to use this setting as a starting point for exploring AI together with materials science. There may be a role for MuPRO where the company's work calls for mesoscale simulation. The next step is to identify a suitable problem and establish where simulation would contribute; the application scope is still exploratory.
Two possible ways to provide MuPRO
- Usage-based computational service: provide access to MuPRO calculations on a pay-per-use basis, analogous to the metered model of AI services. The charging unit has not been decided.
- On-premises software: provide a software licence and install MuPRO within the enterprise when local operation and keeping data inside its own environment are required.
These are alternatives to evaluate against the actual use case, computing needs and data requirements. No commercial model, deployment arrangement or customer commitment has been agreed.
03 / Development direction and the next two weeks
Overall direction
Develop MuPRO into a reliable simulation component that can work within a broader AI-assisted materials workflow. The software should offer repeatable calculations, usable results and clear scientific limits. In parallel, use a concrete enterprise problem to decide which capabilities matter most, then extend the supported workflows step by step.
Week 1 · September 27–October 3
Consolidate the software foundation. Finish the remaining foundational corrections, bring the recent changes into a coherent candidate, and check that it can be installed and used consistently. Continue the scientific review so that engineering readiness and physical validity are assessed separately.
Week 2 · October 4–10
Improve efficiency and prepare the next demonstration. Evaluate computation under a controlled resource budget, advance the planned improvements to data output, and prepare a compact demonstration of repeatable simulation tasks that AI tools could coordinate. Use the findings to prioritize subsequent development.
Enterprise follow-up alongside development
Seek to narrow the Sanhuan opportunity to one candidate problem: clarify its practical objective, available inputs, expected outputs and need for mesoscale simulation. Use that discussion to assess whether a usage-based service or local software deployment would fit. The timing depends on further coordination.
This is the proposed focus for the next fortnight, based on the existing development plan. It is not a commitment to release software or complete an enterprise deployment within these dates.
04 / Technical appendix
Reference material for follow-up questions; the regular meeting discussion can conclude after Section 3.
Open implementation details, verification evidence and the PR register
Engineering snapshot: September 26, 2026, 23:59:59, Asia/Shanghai (UTC+08:00). Reporting head: e084df9e. The dated results below are retained from the original report; this editorial revision does not rerun tests or update PR states beyond that snapshot.
GitHub PR and CI state checked just after the cutoff, on September 27 at 00:06 CST. Commit activity includes 127 commits with merges; it is an activity measure, not a completion percentage.
6b0573d, not the reporting head. Its product gate is eligible; scientific approval is not_evaluated. No new solver tests, package acceptance or release upload were performed to write this report.4.1 / Engineering outcomes
The first programmatic application workflow is usable from an installed SDK. A fresh bulk muFerro case runs through Python, CLI and a real MCP client, with isolated processes, live progress and verified case/run/result manifests. The installed package includes 34 component-owned Skills. The other ten apps have scoped native examples; the uniform application workflow remains muFerro-only. PR #43
Delivery evidence is more reproducible. Clean-checkout CI exposed an ignored muEffProp example payload. Tracking was repaired and release identity now accounts for ignored source files. The replacement candidate was built from clean 6b0573d and passed all four installed gates on their first attempts. It remains staged locally, with human review and delivery outstanding. #47, #49, #59
Passing regression tests did not clear the foundations. The L0/L1 review found defects the existing suite missed. Merged repairs now cover material tensors, slab geometry, finite differences, noise, tensor rotation, FFT scaling and I/O contracts. Film corrections and FFT setup validation remain open PRs. Their branch results must not be presented as part of main. Review #62
4.2 / Implementation details
Execution budgets, measurements and licence status
Python, CLI and MCP clients now share one CPU/memory budget with atomic leases, queueing, affinity and worker-lifetime cleanup. Oversized requests and unavailable GPU leases are refused. Callers still choose ranks and threads; automatic selection has not been implemented. #46
muFerro records phase wall times, rank reductions and peak memory, with the report digest and host identity attached to the run manifest. Debug and Release checks recorded byte-identical solver outputs before and after instrumentation. On the small 16³ Release example, output took 60.6% of elapsed time at one rank and 53.9% at two ranks. This demonstrates measurement coverage; it is not a general scaling result. The fixed-budget throughput experiment remains open. #53 · Measurement contract, including Release samples
A common licence query now reports the native engine's status through all three interfaces. A definite denial stops launch before a run directory or resource lease is created. The checker uses a copy of the licence directory to contain engine side effects. Machine-mismatch decoding has unit coverage, but a real second-machine fixture remains outstanding. #55
Numerical corrections with explicit impact
| Area | Result and remaining boundary | Sources |
|---|---|---|
| Materials and geometry | Non-cubic rank-2 tables now form complete symmetric tensors. Distributed slabs use global x coordinates, and the x/z axis swap is corrected. Earlier x/z-dependent slab results need review; monoclinic conventions still need scientific judgment. | #63, #67, #73 |
| Finite differences and noise | Legacy finite differences support uneven slabs and correct periodic edges. Seeded utility noise covers every slab and reproduces the same global field across rank counts on the same compiler/runtime. Noise realizations change; app-specific noise conventions remain separate. | #65, #69 |
| Tensor rotation | Reverse rank-2/4 rotation now applies the inverse transform; the single-crystal alias is corrected. Invalid axes and rotation inputs fail clearly, and omitted nProduct no longer crashes. The new polycrystal API name still needs interface-freeze review. | #71, #72, #75 |
| FFT and expressions | Stale plans are refused and shared CDFT ownership is counted. Inverse scales use double-precision products to avoid 32-bit overflow. Non-finite expression results and malformed input contracts are refused. Large-grid scale tests did not execute full grids above 2³¹ points. | #66, #68, #77 |
Reliable field output and MPI diagnostics
Multirow field writers order truncation before header output. Readers agree on metadata across ranks; MPI text field writers refuse NaN/Inf instead of writing unusable results. Record datatypes no longer use removed MPI-1 constructs. Shared-file logging retains every rank's messages, and FFT diagnostics show every slab. #58, #70, #79, #80
The broken parallel legacy VTK writers are retired. muPREDICT now writes VTI/PVTI in the default build, or HDF5 when enabled; its text result values remain unchanged in the recorded comparisons. HDF5 refuses reserved or duplicate metadata keys, and MPI test attempts now use isolated directories. #76, #81
CI, platform scope and documentation
Intel jobs use per-branch concurrency. Routine native CI builds Debug and uploads no artifacts over the metered link; evidence stays on the lab host. VTI/HDF5 interoperability moved to the Intel runner. Linux with Intel oneAPI, oneMKL and Intel MPI is the supported stack; macOS support was removed, and Windows users use WSL. #51, #57, #82, #84
English documentation and biweekly reports are required and guarded. The roadmap separates dependencies; README status is generated from a dated CI record. Skill validation now enforces configuration contracts and public API examples. Root scripts moved to tools/, and dormant app material moved to archive/. #44, #45, #48, #52, #56, #64, #83
Login-protected review and report site tooling is merged. Cloudflare setup and successful deployment are separate acceptance steps; merging the tooling does not establish a protected live site. The company-site navigation change is prepared locally; it is separate from publication of this report. #60 · Publication record
4.3 / Verification evidence
These are recorded results from the named revisions and PRs, reviewed for this report. They were not rerun on this Mac. Counts from different configurations or branches are not added together.
| Configuration / source | Recorded result | Limit |
|---|---|---|
September 25 full nightly117a843eRun 36056815245 | Debug: 805/805; Release: 804/804 executable checks; core Debug: 654/654. Zero failures or incomplete items. Debug/Release: 21 native Skills pass, HDF5 unavailable; 10 app examples pass; 19 muFerro workflow checks pass, including MCP. | A dated baseline before later foundation repairs. Release excludes the two Debug-only FPE checks. Core lacks app builds; its unavailable Skills are not passes. |
Rebuilt candidate6b0573dPR #59 | Four installed gates pass on their first attempts: muFerro workflow, installed tools, native Skill contracts and app Skill examples. Product gate: eligible. | Locally staged only. Scientific approval: not evaluated. Later merged repairs are outside this package. |
| Runtime budget and timing Budget record · Timing record | Final budget suite: 23 checks, including competing clients and reclamation. Timing: 57/57 muFerro/runtime checks; 31/31 output files byte-identical in the recorded Debug/Release comparisons. | GPU execution and automatic resource selection are absent. Larger-case TEST-RT-002 remains open. |
| Finite differences PR #69 branch evidence | 22/32 new cases fail before repair; 32/32 pass after. Component plus downstream checks: 505/505. | Selected paths change numerically; full-grid gathers remain. This branch total is not the final-main regression total. |
| Output interoperability PR #82 recorded replay | VTI: 60/60 CTests and 13 independent-reader records. HDF5: 79/79 CTests and 8 reader records. VTI write-failure check passes. | Intel MPI, parallel HDF5 1.14.6 and the recorded reader environment. This is not HDF5-ON installed candidate acceptance. |
Reporting heade084df9eRun 36250453727 | SDK Build & Test: queued at the snapshot. Documentation language check: passed. | Full regression on this exact head is not established by this snapshot. Earlier successful runs do not certify later commits. |
candidate.tar.gz, 217,884,797 bytes, source 6b0573d. SHA-256:37fa6f7743d2b5210911ffa5a0316e97cffed1c9cd06e1131aef15bd88b384c0.The digest and acceptance come from the committed candidate record; the remote host's archive was not downloaded or rehashed for this report.
Scientific review is prepared, not approved
The ferroelectric review package records 19 method checks and independent reproduction of selected published results. Xiaoxing Cheng is named to review decisions D1–D8. Those decisions include shear conventions, gradient coefficients, mechanical boundary conditions, tolerances and potential-file discrepancies. No scientific approval is inferred from reproduced values or passing software checks. #50, #54 · Review proposal
4.4 / Detailed engineering follow-up
The following sequence is proposed from TASK and the dependency roadmap. It does not assign new delivery dates, staffing or approval.
| Open change | Recorded progress | Closure needed |
|---|---|---|
| #74 · Film corrections | Repairs ord=0 fits and der=9; replaces weak Film assertions. The PR body records 502/502 component/downstream checks. | Resolve integration with #78, settle the separate precision change and obtain passing checks on the final revision. WP-021 is not closed on main. |
| #78 · FFT setup validation | Refuses unplannable grids, distinguishes 2D/3D availability and guards one-layer film basis use. The rebased branch records 675/675 checks. | Finish review, resolve the shared Film documentation conflict and verify the integrated revision. Its setup guarantees are not yet on main. |
- Finish the open foundation repairs, then accept the resulting tree. Complete #74/#78 integration, run the required Intel checks and preserve the source identity and evidence digest (WP-002, WP-021). Rebuild and rerun installed acceptance before presenting later fixes as part of a delivery candidate.
- Complete candidate and scientific review. WP-001 needs independent review of the named package and explicit D1–D8 responses. The engineering verifier, product owner and review date remain open in the records. Site setup is a separate prerequisite for the planned email-code review access.
- Measure before choosing allocations. Run TEST-RT-002 under a fixed budget on a larger case, with at least five randomized repeats, verified results, makespan, latency, core-hours and memory. Use that evidence for WP-008; retain the WP-005 second-machine licence fixture as an open check.
- Implement HDF5 defaults with package evidence. The owner-approved plan requires a matching dependency, default/preset and CI changes, installed HDF5 Skill acceptance (WP-011), package/runtime handling and app migration. The option is still OFF at the cutoff. #86
- Keep later architecture and external follow-up scoped. A dedicated service rank (P16.5) and combining Ferroelectric-LNO into muFerro are recorded directions, without an implementation or date. Computherm follow-up still depends on defining and validating muPREDICT's new mode; no completed integration or outreach is evidenced this period. #85 · Computherm dependency
4.5 / Assumptions and evidence limits
- Scope: this is the next 14-day issue after the combined monthly report. The previous September 14–20 milestone window is not silently extended by this report's next-period plan.
- Source state: the SDK checkout was clean before this reporting work and matched live GitHub main at
e084df9e. Report-source and index/export updates and the separate website navigation edit remain uncommitted. Website publication does not imply a Git push. - Counting: commits are reachable from the reporting head and selected by committer timestamp in Asia/Shanghai. Several commits dated September 12 in a US timezone fall on September 13 here; their muAFM and monthly-report work was already described in the previous issue and is not claimed again as a new outcome. PR totals use actual merge metadata, including stacked PRs: #44 merged into the milestone branch, and its English documentation commit reached main with the later integration.
- Evidence precedence: live PR state and dated source records override stale checklist wording. For example, #60 and #83 are merged, and Release timing samples exist, even where older handoff/task text still calls them open. Deployment and full candidate acceptance remain separate.
- Publication: both reports are available at biweekly.muprosoftware.com with direct access and no-index metadata. Email-code access protection has not been enabled. The company-site navigation removal remains a separate, local change.
- Scientific scope: exploratory results, branch tests, engineering acceptance and human scientific approval remain distinct. Earlier affected simulations may need review after numerical corrections.
4.6 / Sources and pull-request register
Owner-supplied context: the account of visits with Houbing Huang and to Sanhuan Group, the potential mesoscale simulation opportunity and the two possible commercial approaches were supplied by Xiaoxing Cheng for this revision. They describe discussions and options, not a completed industrial deployment or an agreed sale.
Commit comparison: 11c1b781 → e084df9e · GitHub PR query. GitHub and engineering-document links require repository access; the standalone narrative retains the essential findings.
Primary records: TASK, dated CI status, runtime budget, timing and Release samples, licence status, foundation review, ferroelectric review proposal, site publication plan and English policy.
Local report-source snapshots: collection metadata, commit inventory and PR metadata. These are local evidence, not published assets or a new solver run. Historical native evidence remains on its original lab host.
Inspect all 44 pull requests: 42 merged, 2 open
| PR | Title | State / date |
|---|---|---|
| #43 | Add installed muFerro workflows and component-owned Skills | Merged Sep 19 |
| #44 | docs: require English documentation and translate biweekly reports | Merged Sep 19 |
| #45 | docs: map remaining work, milestones and dependencies | Merged Sep 19 |
| #46 | feat(runtime): shared local execution budget for SDK clients (P16.1) | Merged Sep 24 |
| #47 | fix(muEffProp): track the Skill example payload kept out of Git by an ignore rule | Merged Sep 24 |
| #48 | docs: show version, CI outcome and per-application test status in the README | Merged Sep 24 |
| #49 | fix(release): record ignored source files in the release source identity | Merged Sep 24 |
| #50 | docs(verification): ferroelectric method checks and literature reproduction for expert review | Merged Sep 24 |
| #51 | ci: stop Intel jobs from cancelling other branches' waiting jobs | Merged Sep 25 |
| #52 | refactor: retire root scripts/ in favour of tools/ | Merged Sep 25 |
| #53 | feat(runtime): measure muFerro phase time and peak memory (P16.2 contract) | Merged Sep 25 |
| #54 | docs: record the ferroelectric reviewer and the candidate rebuild decision | Merged Sep 25 |
| #55 | feat(license): common licence status for Python, CLI and MCP (WP-005) | Merged Sep 25 |
| #56 | docs: record the 2026-09-25 nightly in the README status | Merged Sep 25 |
| #57 | ci: build Debug only by default and upload no artifacts | Merged Sep 25 |
| #58 | fix(io): order the truncation before the header in output_4D and output_5D | Merged Sep 25 |
| #59 | docs(task): record the delivery candidate rebuilt from main at 6b0573d | Merged Sep 25 |
| #60 | feat(sites): publish review material and biweekly reports behind a login | Merged Sep 26 |
| #61 | docs(handoff): record the 2026-09-25 state and local candidate evidence | Merged Sep 26 |
| #62 | docs(review): record the L0/L1 foundation review and Skill configuration | Merged Sep 26 |
| #63 | fix(material): correct rank-2 point-group tables and refuse malformed tensors | Merged Sep 26 |
| #64 | fix(skills): enforce Skill configuration rules and align L0/L1 Skills with public APIs | Merged Sep 26 |
| #65 | fix(utilities): per-plane noise seeding, full-slab coverage, finite Box-Muller | Merged Sep 26 |
| #66 | fix(fft): refuse stale plans and reference-count the shared CDFT descriptor | Merged Sep 26 |
| #67 | fix(structure): evaluate slab geometry at global x coordinates (STRUCT-F1) | Merged Sep 26 |
| #68 | fix(base): refuse non-finite expressions, adjacent names and bad include paths | Merged Sep 26 |
| #69 | fix(utilities): make legacy finite differences correct on any rank count | Merged Sep 26 |
| #70 | fix(io): agree reader metadata across ranks and refuse nonfinite output | Merged Sep 26 |
| #71 | fix(transform): correct reverse rank-2/4 rotation, the single-crystal alias and the zero axis | Merged Sep 26 |
| #72 | fix(transform): exit nonzero on invalid rotation input | Merged Sep 26 |
| #73 | fix(structure): correct the slab axis convention (STRUCT-F2) | Merged Sep 26 |
| #74 | fix(film): correct ord=0 fits and der=9, validate requests, add discriminating tests | Open Not merged |
| #75 | fix(transform): make nProduct genuinely optional in the rotation-matrix routines | Merged Sep 26 |
| #76 | refactor(io): retire the legacy parallel VTK writers; muPREDICT writes VTI or HDF5 | Merged Sep 26 |
| #77 | fix(fft): form the inverse-transform scale in double precision (FFT-F2) | Merged Sep 26 |
| #78 | fix(fft): verify FFT setup and refuse unplannable grids (FFT-F1, F3, F4) | Open Not merged |
| #79 | refactor(io): build field record types without removed MPI-1 constructs | Merged Sep 26 |
| #80 | fix(log): complete shared-file rank logs, correct printError, report every FFT slab | Merged Sep 26 |
| #81 | test: isolate MPI test attempts; refuse reserved and duplicate HDF5 metadata keys | Merged Sep 26 |
| #82 | ci: run VTI and parallel-HDF5 interoperability on Intel MPI | Merged Sep 26 |
| #83 | chore: archive dormant stash/ and old/ app material | Merged Sep 26 |
| #84 | platform: drop macOS support; record Intel-MPI-only decisions | Merged Sep 26 |
| #85 | docs(task): record the plan to combine Ferroelectric-LNO into muFerro | Merged Sep 26 |
| #86 | docs: record output plans — dedicated service rank (P16.5) and HDF5 on by default | Merged Sep 26 |
Editorial revision, September 27, 2026: reorganized for the doctoral-advisor meeting, added the owner's enterprise AI discussion, and moved the existing PR and verification detail into this appendix. Historical engineering results and approval states are unchanged.