Project Possibilities
A. Student-proposed projects
B. Instructor-suggested projects
Overview of the components and structure of a modern, modular, numerical simulator: slides: animated, non-animated
B1: modelling.
B1.1: MNA_EqnEngine and STA_EqnEngine for pyMAPP, assuming pyModSpec models- background materials:
- A
MATLABpython implementation is provided for reference: springMass1d_EqnEngine implementation. - see also the pyModSpec project, below.
- A
B1.2: pyModSpec skeleton, with hand-coded implementations of R, C, L, indep. sources, controlled sources, diode, BJT and SH-MOS (without using automatic differentiation). Demonstrated with check_ModSpec.
- background materials:
- A MATLAB implementation will be provided for reference.
- CICC paper on ModSpec/MAPP.
- Overview of devices and ModSpec (slides).
- ModSpec concepts, step by step: animated slides, non-animated slides
B1.3: pyModSpec backend for VAPP, demonstrated to produce correct pyModSpec models from VA.
- background materials:
- VAPP code will be provided.
- VAPP poster and overview slides (animated).
- VAPP guide.
B1.4: ME/MEMS equation engine, demonstrated in DC, transient and AC.
- background materials:
- SUGAR web page: see their user manual, especially.
B1.5: RRE equation engine (including devising a good RRE netlist format), demonstrated in DC and transient.
- background materials:
- RRE slides (animated).
- A MATLAB implementation will be provided for reference.
B1.6: Optics equation engine (including devising a good netlist format), demonstrated in DC and transient.
- background materials:
- A MATLAB implementation will be provided for reference.
B1.7: Multi-physics Master Equation Engine.
- dependencies: EE + at least one other equation engine.
- background materials:
- A MATLAB implementation will be provided for reference.
B1.8: Automatic differentiation for pyDAE and pyModSpec: implement pyvecvalder (and/or use an existing python AD package), demonstrate in pyDAE and pyModSpec.
- background materials:
- A MATLAB implementation (vecvalder) will be provided for reference.
- autograd.
- other python AD packages.
- Neidinger's intro paper on AD.
B2: analyses and algorithms.
B2.1: Timestep control for transient (LTE and NR failure/iteration based), demonstrated on "difficult" problems without using NR convergence aids.- background materials:
- Jian Yao's paper.
- Local truncation error concepts: go through pages 45,80-90 of these slides.
- Chua and Lin's chapter on transient and LTE.
B2.2: Implement homotopy in pyMAPP, demonstrate on folds and hysteresis.
- depends to an extent on transient timestep control.
- background materials:
- A MATLAB implementation will be provided for reference (if needed).
- slides explaining homotopy: animated, non-animated.
B2.3: Implement (non-oscillator) shooting in pyMAPP, demonstrate on DAEs.
- background materials:
- A MATLAB implementation can be provided for reference (but should not be needed).
- slides explaining shooting: animated, non-animated.
B2.4: Implement (non-oscillator) HB in pyMAPP, demonstrate on DAEs.
- background materials:
- A MATLAB implementation will be provided for reference (if needed).
- slides explaining HB: animated, non-animated.