csrc-sdsu / csrc-sdsu/mole

Missing Mathematical Examples Documentation

Open
#141 7 comments 1 reaction 2 assignees Claimed by @pritkc View on GitHub
Documentation Examples Good first issue Help wanted
Dominant language
MATLAB
Stars
41
Forks
85
Avg merge
2d 31m
Merged PRs (30d)
7

Description

This issue tracks MATLAB/Octave examples that lack corresponding mathematical documentation. The MOLE library has extensive MATLAB/Octave implementations, but many are missing proper mathematical documentation for users.

## Current Status

- **Total MATLAB Examples:** 65 files
- **Currently Documented:** ~25~ 35 examples
- **Missing Documentation:** ~48~ 38 examples

## Missing Examples by Category

### Elliptic PDEs (~21~ 11 examples)

#### ~1D Boundary Condition Variations~
- [x] `elliptic1DHomogeneousDirichlet.m` - Homogeneous Dirichlet BC
- [x] `elliptic1DNonHomogeneousDirichlet.m` - Non-homogeneous Dirichlet BC
- [x] `elliptic1DLeftDirichletRightNeumann.m` - Mixed Dirichlet-Neumann BC
- [x] `elliptic1DLeftDirichletRightRobin.m` - Mixed Dirichlet-Robin BC
- [x] `elliptic1DLeftNeumannRightNeumann.m` - Pure Neumann BC
- [x] `elliptic1DLeftNeumannRightRobin.m` - Mixed Neumann-Robin BC
- [x] `elliptic1DLeftRobinRightRobin.m` - Pure Robin BC
- [x] `elliptic1DNonPeriodicBC.m` - Non-periodic BC example
- [x] `elliptic1DPeriodicBC.m` - Periodic BC example
- [x] `elliptic1DaddScalarBC.m` - Advanced BC handling

#### 2D Boundary Combinations
- [ ] `elliptic2DXDirichletYDirichlet.m` - Dirichlet in both directions
- [ ] `elliptic2DXPeriodicYPeriodic.m` - Periodic in both directions
- [ ] `elliptic2DXPerYDirichlet.m` - Periodic X, Dirichlet Y
- [ ] `elliptic2DPeriodic.m` - General periodic example

#### 3D Advanced Examples
- [ ] `elliptic3DaddScalarBC3D.m` - Advanced 3D BC handling
- [ ] `elliptic3DXDirichletYDirichletZDirichlet.m` - Dirichlet in all directions
- [ ] `elliptic3DXDirichletYPeriodicZPeriodic.m` - Mixed BC (1 Dirichlet, 2 Periodic)
- [ ] `elliptic3DXDirichletYPerZNeumann.m` - Mixed BC (Dirichlet-Periodic-Neumann)
- [ ] `elliptic3DXDirichletYPerZPer.m` - Alternative mixed BC
- [ ] `elliptic3DXNeumannYPeriodicZPeriodic.m` - Mixed BC (1 Neumann, 2 Periodic)

#### Special Applications
- [ ] `helmholtz2D_wifi.m` - Helmholtz equation for WiFi modeling

### Other Fundamental PDEs (~8~ 9 examples)

#### Parabolic PDEs
- [ ] `examples/matlab/terzaghi1D.m` - 1D Terzaghi equation - cc: @cpaolini
- [ ] `parabolic2D.m` - 2D parabolic equation with diffusion
- [ ] `backward_euler.m` - Backward Euler time integration
- [ ] `richards.m` - Richards equation for subsurface flow

#### Sturm-Liouville Problems
- [ ] `sturmLiouvilleChebyshev.m` - Chebyshev differential equation
- [ ] `sturmLiouvilleHermite.m` - Hermite polynomials
- [ ] `sturmLiouvilleLaguerre.m` - Laguerre polynomials
- [ ] `sturmLiouvilleLegendre.m` - Legendre polynomials
- [ ] `sturmLiouvilleBessel.m` - Bessel functions

#### Schrödinger Equations
- [ ] `schrodinger2D.m` - 2D Schrödinger equation

### Advanced Applications (8 examples)

#### Hyperbolic PDEs
- [ ] `wave1DTimeVaryingBC.m` - Wave equation with time-varying BC

#### Sturm-Liouville Helmholtz
- [ ] `sturmLiouvilleHelmholtzDirichletDirichlet.m` - Helmholtz with Dirichlet BC
- [ ] `sturmLiouvilleHelmholtzDirichletRobin.m` - Helmholtz with mixed BC

#### Mixed/Coupled Systems
- [ ] `convection_diffusion3D.m` - Detailed 3D convection-diffusion implementation
- [ ] `KG_product.m` - Klein-Gordon product operations
- [ ] `lock_exchange.m` - MATLAB implementation of lock exchange

#### Time Integrators
- [ ] `van_der_pol.m` - Van der Pol oscillator

#### Grid Generation
- [ ] `genCurvGrid.m` - Curved grid generation

### Test Cases & Utilities (10 examples)

#### Curved Grid Operations
- [ ] `test_grad2DCurv.m` - 2D curved gradient tests
- [ ] `test_grad3DCurv.m` - 3D curved gradient tests
- [ ] `test_div2DCurv.m` - 2D curved divergence tests
- [ ] `test_div3DCurv.m` - 3D curved divergence tests
- [ ] `test_lap3DCurv.m` - 3D curved Laplacian tests
- [ ] `test_lap3DCurv_case2.m` - Alternative 3D curved Laplacian
- [ ] `test_nodal2DCurv.m` - 2D curved nodal tests

#### Vector Operations & Utilities
- [ ] `test_curl.m` - Curl operator tests
- [ ] `compact.m` - Compact finite difference operators

## Documentation Template

Each mathematical example should include:

```markdown
# [Example Title]

## Mathematical Problem
- Governing equations with proper LaTeX formatting
- Domain specification and coordinate system
- Physical interpretation (if applicable)

## Boundary Conditions
- Detailed specification of all boundary conditions
- Classification (Dirichlet/Neumann/Robin/Periodic)

## Exact Solution
- Analytical solution (when available)
- Solution properties and behavior

## MOLE Implementation
- Key discretization details
- Boundary condition treatment in MOLE
- Reference to MATLAB file: `examples/matlab/[filename].m`

## Results
- Convergence behavior
- Error analysis
- Example plots
```

## How to Contribute

1. **Choose the example(s)** from the categories
2. **Announce** the selected example(s) here in the thread.
3. **Study the MATLAB code** in `examples/matlab/[filename].m`
4. **Create documentation** following the template above
5. **Place the file** in the appropriate `doc/sphinx/source/examples/[category]/` directory
6. **Update index files** to include your new example 📌📌
7. **Test the documentation** builds correctly

---

**Total Progress:** ⬜ 10/47 examples documented
**Current Focus:** High Priority Elliptic PDEs (21 examples)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.