# Continuity 6 Solvers

### 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

• 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
• matrix-vector-product can be done matrix free (much less memory required, less communication overhead)
• Requires a preconditioner

• Not currently implemented in Continuity 6, although it was implemented in Continuity 5
• PETSc

### 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)