Bidomain
Purpose: This wiki is intended to be a collection site of changes that CMISS developers (mainly T. Austin) have made to routines employed by monodomain/bidomain problems (and coupled problems), in particular, when Grid-based FEM is employed as discretization.
- General Parallelization changes and New Features
- On 22 June 05 Changed ASSEMBLE10_FE so that construction of matrix is performed in parallel. Appears to be close to speedup of p for p processors. Needs to be tested and then submitted.
- Learned from above changes that ASSERT causes problems (if not carefully accounted for) for parallel runs in that it caused me grief by causing code to die.
- MARCH8 class of subroutine changes and new features
- FUTURE PLANS: Plan in the near future to add second-order time-stepping using Strang Splitting (reaction solve - diffusion solve - reaction solve). This will require a better coding of the reaction solve in MARCH8.
- ASSEMBLE10 class of subroutine changes and new features
- See OpenMP changes.
- Also fixed change that Leo made which worked for non-lattice but not
for lattice-based.
- FUTURE PLANS: Need to parallelize assembly routine for ASSEMBLE10_FV.
- CALC_FE_GRID_COEF and CALC_FE_COEF changes and new features.
- For parallelization of assembly in ASSEMBLE10_FE I split up work
done in CALC_FE_GRID_COEF and CALC_FE_COEF by creating CALC_FE_GRID_stncl and CALC_FE_STNCL. These new routines are called first to set-up the stencil pattern. Then once setup we call CALC_FE_GRID_COEF and CALC_FE_COEF to compute stencil entries.
Note 1: MARCH8 class of subroutines consists mainly of MARCH8, MARCH8_COUPLED, and newer subroutines, which perform time-stepping for monodomain/bidomain or m/b/torso problems. Most routines written by M. Buist.
Note 2: ASSEMBLE10 class of subroutines consists of ASSEMBLE10_FE, ASSEMBLE10_FD, and ASSEMBLE10_FV. These names were changes from ASSEMBLE10 and ASSEMBLE10_FE in order to better describe the subroutines.