Contents
Where are the important files?
- Electrophysiology
- pcty/server/problem/Electrophysiology/Electrophysiology.py
- pcty/server/problem/Electrophysiology/ContODESolver.py
- src/ep/? (f2py wrappers)
- src/ep/electrophys/? (actual fortran source)
- Biomechanics
- pcty/server/problem/Biomechanics/SolversBM.py
- pcty/server/problem/Biomechanics/SolversBMParallel.py
- src/bm/? (f2py wrappers)
- src/biomechanics/? (actual fortran source)
PDEs Solvers
How does it work?
- Iterations or time sequences of linear solves
Where are they found?
- Biomechanics (SolversBM*.py)
- Electrophysiology
-
Electrophysiology.py, Cont2Axb(), calls p_cont2axb()
-
Linear Solvers
Where are they found?
- Used within the time iterations or time sequences for both Biomechanics and Electrophysiology
- For Biomechanics uses nonlinear Newton iterations within timestep loop
- For Electrophysiology uses time steps
- Used for consistent stress and consistent strains
- Also maybe used by fitting (at least it could be used)
What do we use?
- A direct linear solver
- SuperLU
- Uses a sparse matrix representation
- Sparse global matrix is assembled by summing element matrices
-
Previously we have used LaPack and NAG although they are MUCH slower
- SuperLU
- Solves an [A][x] = [b] problem, by reducing it to [L][U][x] = [b]
- Requires 2 steps
- Factorize
- Back subsitution
What could we use?
- Distributed SuperLU
- Solves the linear problem in parallel
- A lot of communications overhead–need fast interconnect between nodes
- An “indirect” or “iterative” solver
- How does it work?
- [A][X*] – [b] until = 0
- Advantages?
- matrix-vector-product can be done matrix free (much less memory required, less communication overhead)
- Disadvantages?
-
Requires a preconditioner
- Not currently implemented in Continuity 6, although it was implemented in Continuity 5
-
See page 783 and references 8,18,21,28 of Vetter et al 2000
-
-
- PETSc
-
http://www-unix.mcs.anl.gov/petsc/petsc-as/ (has python bindings; looks very promising)
- How does it work?
ODE Solvers
Where are they found?
- Biomechanics: circulatory model
- Electrophysiology
- pcty/server/problem/Electrophysiology.py calls cont2ODESolver() (line 1026)
- cont2ODESolver.py alls p_odesolver() (line 86)
- pcty/server/problem/Electrophysiology.py calls cont2ODESolver() (line 1026)
What do we use?
- Radau
- Could be another implicit ODE solver e.g. Runge-Kutta