Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
4ecb7fc
clean up
lmoresi Aug 8, 2025
43c2020
Evaluation fixes
lmoresi Aug 8, 2025
f9ffdd4
Data structures for swarm and mesh variables
lmoresi Aug 8, 2025
dd81f28
Update __init__.py
lmoresi Aug 8, 2025
276cf76
Notebooks to match
lmoresi Aug 8, 2025
d090f6c
Update terrain_flow_plot.html
lmoresi Aug 8, 2025
ff65767
Evaluation updates
lmoresi Aug 11, 2025
b63ebb4
Fixes for the comments
lmoresi Aug 15, 2025
84f58f2
Merge branch 'development' into global_evaluation_rewrite
lmoresi Aug 15, 2025
5017dd8
Modified kdtree query calls, added query wrapper for pykdtree
Aug 19, 2025
da0546a
Same fixes as for development
lmoresi Aug 19, 2025
9218047
Merge branch 'global_evaluation_rewrite' of https://github.com/underw…
lmoresi Aug 19, 2025
90a044a
Merge branch 'development' into global_evaluation_rewrite
lmoresi Aug 20, 2025
f629790
Updates to global evaluation routine.
lmoresi Aug 22, 2025
38923e1
Fix to set particle ranks when adding locally
lmoresi Aug 22, 2025
098669c
rbf interpolator does not need write access to vars
lmoresi Aug 22, 2025
7512104
Update test_0503_evaluate2.py
lmoresi Aug 23, 2025
3ebf2e4
Tests passing again
lmoresi Aug 23, 2025
fe575bf
Fixing serious bug in kd-tree based particle migration
lmoresi Aug 25, 2025
2b81b66
Fix a swarm issue
lmoresi Aug 25, 2025
c0d2dea
Update swarm.py
lmoresi Aug 25, 2025
d239bd6
Update swarm.py
lmoresi Aug 26, 2025
cf42885
Swarm fixes, derivative changes
lmoresi Aug 28, 2025
04171b3
Corrected swarm rank indexing, points_in_domain return if empty
Aug 28, 2025
d2bf127
Update swarm advection to use global evaluation for mid-point calcula…
lmoresi Aug 29, 2025
99b84eb
Moving PIC swarm to its own file
lmoresi Sep 1, 2025
5c3acc8
Moving NodalPointUWSwarm to NodalPointSwarm
lmoresi Sep 1, 2025
24115dd
Update swarm.py
lmoresi Sep 1, 2025
6cb735b
Refactor discretisation into two files
lmoresi Sep 1, 2025
5d24f12
Updating the swarm.particle_coordinate and hiding it so we can wrap i…
lmoresi Sep 3, 2025
b4d8b96
Updating swarm so particle updates are through the data variable
lmoresi Sep 3, 2025
af308d8
Implementation of swarm.points
lmoresi Sep 6, 2025
d00f613
First pass at updating the ddt.py code to work with the swarm changes
lmoresi Sep 9, 2025
d6120f1
Fixing up Semi-Lagrange ddt so that it uses the global evaluation
lmoresi Sep 15, 2025
51fea08
Implementing NDArray_with_callback for meshVariable / swarmVariable
lmoresi Sep 17, 2025
ddbd0b5
Adding examples and re-working their structure to be more AI friendly
lmoresi Sep 20, 2025
494fae9
Ensure solver internal expressions use the unique-name option
lmoresi Sep 21, 2025
f2ad242
First pass at AI training examples and documentation
lmoresi Sep 21, 2025
589308a
Moving examples code into underworld3 and re-factoring
lmoresi Sep 23, 2025
b1de287
Update docs
lmoresi Sep 25, 2025
65a9e5b
Lots or renumbering of files and re-structuring of where docs live
lmoresi Sep 29, 2025
d7ce754
Clean up repository and fix regression tests
lmoresi Oct 10, 2025
ee29df2
Complete data access migration and universal units system
lmoresi Oct 10, 2025
c1b484f
Fix MPI hanging in global statistics and add parallel testing infrast…
lmoresi Oct 13, 2025
790d7b3
Add planning documentation for coordinate interface and units system …
lmoresi Oct 13, 2025
9b738ea
Bug fixes and follow-up changes for units system and coordinate inter…
lmoresi Oct 13, 2025
a6dfcb0
Add tutorial 13 (Coordinate Units and Gradients) and ignore visualiza…
lmoresi Oct 13, 2025
ccaeb02
Minor improvements to Units System tutorial (notebook 12)
lmoresi Oct 13, 2025
99cde09
Add uw.expression shorthand for uw.function.expression
lmoresi Oct 13, 2025
60ba830
Consolidate parallel tests into modern pytest suite
lmoresi Oct 13, 2025
a8f0ca1
Improve units handling in geometric calculations (WIP)
lmoresi Oct 13, 2025
d76b3fe
Fix infinite loop in mesh geometric calculations with units
lmoresi Oct 13, 2025
54d1181
Document internal coordinate access pattern and deprecate mesh.data
lmoresi Oct 13, 2025
60d56b5
Rename internal _points to _coords and deprecate points properties
lmoresi Oct 13, 2025
0bd538a
Fix coordinate units arithmetic and test assertion issues
lmoresi Oct 21, 2025
3762958
Improve Notebook 12 to suppress reference quantities warnings
lmoresi Oct 22, 2025
d16b3f2
Clarify that reference quantities are optional but recommended
lmoresi Oct 22, 2025
bbb23b6
Fix reference quantities timing and clarify optional nature
lmoresi Oct 22, 2025
cd29f34
Fix reference quantities parameter names to match expected values
lmoresi Oct 22, 2025
bbb0333
Improve Notebook 14: enforce Units Everywhere principle in constituti…
lmoresi Oct 29, 2025
021e45b
Fix unit system consistency in semi-Lagrangian characteristic tracing
lmoresi Oct 29, 2025
75d52e1
Fix UnitAwareArray non-dimensionalisation import errors
lmoresi Nov 1, 2025
509e3fb
fix(coords): Properly scale variable-specific DOF coordinates with units
lmoresi Nov 1, 2025
7e821ae
fix(coords): Properly dimensionalise meshVariable.coords using uw.dim…
lmoresi Nov 1, 2025
7b475c9
Fix multiplication between UWexpression and MeshVariable objects
lmoresi Nov 3, 2025
0b07a5a
Fix critical units system bugs affecting visualization, SymPy compati…
lmoresi Nov 10, 2025
18e4235
Fix parameter units with lazy evaluation in constitutive models
lmoresi Nov 12, 2025
0afd4af
Fix non-dimensionalisation of parameters during JIT compilation
lmoresi Nov 12, 2025
d03988a
Migrate DiffusionModel to Parameter descriptor pattern
lmoresi Nov 12, 2025
538be1a
Migrate DiffusionModel and DarcyFlowModel to Parameter descriptor pat…
lmoresi Nov 12, 2025
fcd3754
Fix show_nondimensional_form() to handle all expression types univers…
lmoresi Nov 12, 2025
99e74a2
Many fixes for unit aware quantities and non-dimensionalisation
lmoresi Nov 12, 2025
2f780cb
Fix critical bugs in non-dimensionalization and visualization
lmoresi Nov 14, 2025
6576946
Clean up _apply_scaling_to_unwrapped after scaling fix
lmoresi Nov 14, 2025
fe079aa
Refactor: Consolidate UWQuantity unwrapping into main JIT flow
lmoresi Nov 14, 2025
45654c6
Add TODO list for future work
lmoresi Nov 14, 2025
f150554
Refactor: Switch evaluate() to use unwrap_for_evaluate()
lmoresi Nov 14, 2025
97b56a5
Refactor: Move EnhancedMeshVariable to enhanced_variables.py
lmoresi Nov 14, 2025
0887023
Fix: Critical non-dimensionalization bug in units.py
lmoresi Nov 14, 2025
7cc9dbb
Enhance: Improve units handling in mesh variable array property
lmoresi Nov 14, 2025
6e03bd2
Add: Architecture analysis document
lmoresi Nov 14, 2025
07a6708
Major cleanup: Organize 73 markdown files and prevent future clutter
lmoresi Nov 14, 2025
2c0bb95
Cleanup: Remove temporary debug and demo scripts from root
lmoresi Nov 14, 2025
e5351fd
Add GitHub integration for architectural reviews
lmoresi Nov 18, 2025
61ff9cf
Add Review System Infrastructure review (meta-review)
lmoresi Nov 18, 2025
3df5265
[REVIEW] Review System Infrastructure (#10) (#35)
lmoresi Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
130 changes: 130 additions & 0 deletions .github/ISSUE_TEMPLATE/architectural-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: Architectural Review
description: Submit a formal architectural review for approval
title: "[REVIEW] "
labels: ["architectural-review", "review:submitted"]
assignees: []

body:
- type: markdown
attributes:
value: |
## Architectural Review Submission

This template is for formal architectural reviews documented in `docs/reviews/`.
These reviews cover system design, implementation rationale, and architectural decisions.

**See**: `docs/developer/CODE-REVIEW-PROCESS.md` for the full review process.

- type: input
id: review-doc
attributes:
label: Review Document Path
description: Path to review document in docs/reviews/
placeholder: docs/reviews/2025-11/FUNCTION-EVALUATION-SYSTEM-REVIEW.md
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
description: Urgency level for this review
options:
- HIGH
- MEDIUM
- LOW
validations:
required: true

- type: dropdown
id: review-type
attributes:
label: Review Category
description: Primary focus area of this review
options:
- System Architecture
- Code Implementation
- Testing Infrastructure
- Documentation
- Performance Optimization
validations:
required: true

- type: textarea
id: summary
attributes:
label: Executive Summary
description: 2-3 sentence overview of what this review covers
placeholder: |
This review documents the merger of evaluate() and global_evaluate() code paths,
introducing automatic lambdification optimization that provides ~10,000x speedup
for pure SymPy expressions through cached compiled functions.
validations:
required: true

- type: textarea
id: scope
attributes:
label: Scope & Key Changes
description: What files, systems, or components are affected?
placeholder: |
**Files Modified**:
- src/underworld3/function/functions_unit_system.py
- src/underworld3/function/pure_sympy_evaluator.py

**Systems Affected**:
- Function evaluation system
- Expression unwrapping
- DMInterpolation caching

- type: textarea
id: metrics
attributes:
label: Key Metrics
description: Quantified impacts (performance, test coverage, LOC, etc.)
placeholder: |
- Performance: 22s → 0.003s (7,400x faster)
- Test coverage: 20 comprehensive tests, all passing
- New code: ~360 lines in pure_sympy_evaluator.py

- type: textarea
id: dependencies
attributes:
label: Dependencies & Blockers
description: Does this review depend on or block other reviews?
placeholder: |
**Depends on**: None
**Blocks**: #XXX (Related feature implementation)
**Related**: #YYY (Units system review)

- type: checkboxes
id: checklist
attributes:
label: Pre-Submission Checklist
description: Ensure review is ready for formal evaluation
options:
- label: All referenced tests are passing
required: true
- label: Review document follows template structure
required: true
- label: Sign-off table is included
required: true
- label: Known limitations are documented
required: true
- label: Testing instructions are provided
required: true
- label: Tracking index (REVIEW-TRACKING-INDEX.md) is updated
required: true

- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other information reviewers should know
placeholder: |
- Background discussions: Link to GitHub Discussions
- Related PRs: #XXX, #YYY
- External references: Papers, benchmarks, etc.

# Reviewed for: Review System Infrastructure & GitHub Integration (Review #10, 2025-11-17)
# Part of formal architectural review process implementation
136 changes: 136 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/architectural-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
<!--
This PR template is for architectural review submissions.
For regular code changes, delete this template and use the default.
-->

## Architectural Review Submission

**Review Type**: [Code Implementation / System Architecture / Testing / Documentation / Performance]
**Priority**: [HIGH / MEDIUM / LOW]
**Review Period**: [YYYY-MM]

---

### 📄 Review Document
- **File**: `docs/reviews/YYYY-MM/[NAME]-REVIEW.md`
- **Related Issue**: Closes #XXX
- **Tracking Index**: `docs/reviews/YYYY-MM/REVIEW-TRACKING-INDEX.md`

### 📋 Executive Summary
<!-- 2-3 sentence overview of what this review documents -->



### 🎯 Scope
**Systems Affected**:
- [ ] Core solvers (Stokes, Poisson, Advection-Diffusion)
- [ ] Variable system (Mesh/Swarm variables, arrays)
- [ ] Units & non-dimensionalization
- [ ] Parallel operations (MPI, collective operations)
- [ ] Testing infrastructure
- [ ] Documentation & examples
- [ ] Other: _________________

**Files Changed**:
- New files: [count]
- Modified files: [count]
- Total LOC: ~[count]

### ✅ Testing Status
- [ ] All tests passing: `pixi run underworld-test`
- [ ] New tests added: [count] tests
- [ ] Test coverage: [X]% (or N/A)
- [ ] Regression tests validated
- [ ] Performance benchmarks run (if applicable)

**Test Results**:
```bash
# Command used
pixi run -e default pytest tests/test_XXXX*.py -v

# Results summary
[X] passed, [Y] failed, [Z] skipped
```

### 📊 Key Metrics & Impact
<!-- Quantify the changes: performance, coverage, complexity -->

**Performance**:
- Before: [metric]
- After: [metric]
- Improvement: [X]x faster / [Y]% reduction

**Quality**:
- Test coverage: [X]%
- Code complexity: [increase/decrease/unchanged]
- Documentation: [X pages / X examples]

### 🔍 Review Checklist (for Reviewers)

**Design & Architecture**:
- [ ] Design rationale is clear and well-justified
- [ ] Trade-offs are documented with alternatives considered
- [ ] System architecture is comprehensible
- [ ] Integration points are identified

**Implementation**:
- [ ] Implementation matches documented design
- [ ] Code quality meets project standards
- [ ] Breaking changes are identified and justified
- [ ] Backward compatibility is addressed

**Testing & Validation**:
- [ ] Testing strategy is adequate
- [ ] Test coverage is sufficient
- [ ] Edge cases are covered
- [ ] Performance impact is assessed

**Documentation**:
- [ ] Known limitations are clearly documented
- [ ] Benefits are quantified
- [ ] User-facing changes are documented
- [ ] Migration guide provided (if needed)

### ⚠️ Known Limitations
<!-- List any current constraints or future work needed -->

1.
2.

### 🔗 Dependencies & Related Work
**Depends on**:
- [ ] Review #XXX (must be approved first)

**Blocks**:
- [ ] Review #YYY (waiting on this review)

**Related**:
- Discussion: [Link to GitHub Discussion]
- Prior art: [Links to related reviews]

---

## 🖊️ Sign-Off

**This PR merge represents formal approval of the architectural review.**

Reviewers: Please review the full document at `docs/reviews/YYYY-MM/[NAME]-REVIEW.md` and approve this PR only when satisfied with the design, implementation, and documentation.

| Role | GitHub Handle | Sign-Off Date | Status |
|------|---------------|---------------|--------|
| **Author** | @username | YYYY-MM-DD | ✅ Submitted |
| **Primary Reviewer** | @reviewer1 | | ⏳ Pending |
| **Secondary Reviewer** | @reviewer2 | | ⏳ Pending |
| **Project Lead** | @lead | | ⏳ Pending |

---

### 📝 Additional Context
<!-- Optional: Any other information reviewers should know -->



<!--
REVIEW HISTORY:
- Review #10 (2025-11-17): Template created as part of Review System Infrastructure review
-->
Loading