# The ACA or other algorithm to accelerate bempp?

**URL:** <https://bempp.discourse.group/t/the-aca-or-other-algorithm-to-accelerate-bempp/42>\
**Category:** Bempp\
**Created:** [29 October 2020 07:15 UTC](https://bempp.discourse.group/t/the-aca-or-other-algorithm-to-accelerate-bempp/42 "2020-10-29T07:15:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![hellojxt](https://avatars.discourse-cdn.com/v4/letter/h/9f8e36/32.png) [@hellojxt](https://bempp.discourse.group/u/hellojxt)\
**Post date:** [29 October 2020 07:15 UTC](https://bempp.discourse.group/t/the-aca-or-other-algorithm-to-accelerate-bempp/42/1 "2020-10-29T07:15:53Z")

</div>

Hi,  
Does bempp support The Adaptive Cross Approximation Algorithm? I can’t find the relevant description in the document. But I saw the relevant introduction in an article citing bempp:

 ![image](https://global.discourse-cdn.com/free1/uploads/bempp/original/1X/733e1f1a36a5ada33eab515ed8940a11eccd9e82.png)

When I select the assember as ‘fmm’, the Gmres iteration is slow as it call [ExaFMM](https://github.com/exafmm/exafmm-t) frequently. When I select the default assembler (‘dense’), the Gmres iteration is fast but It took too long to assembler the boundary layer. Is there a better acceleration strategy？ I have already set the device\_interface to opencl with 1080ti.

---

<div class="post-metadata">

**Author:** ![mscroggs](https://yyz2.discourse-cdn.com/free1/user_avatar/bempp.discourse.group/mscroggs/32/3_2.png) [@mscroggs](https://bempp.discourse.group/u/mscroggs)\
**Post date:** [29 October 2020 16:57 UTC](https://bempp.discourse.group/t/the-aca-or-other-algorithm-to-accelerate-bempp/42/2 "2020-10-29T16:57:28Z")

</div>

Hello,

The paper you quoted is using the old version of Bempp (3.something). This included Hmatrix compression using ACA.

The new version of Bempp (bempp-cl) uses the Fast Multipole Method (FMM) to accelerate computations. You’re seeing slow gmres iterations, as an fmm computation is being done each step. However as you refine your mesh, you should see that the time taken for a compution with FMM scales much better than a dense computation.

If you’re interested, [this paper](https://mc.stanford.edu/cgi-bin/images/f/fa/Darve_bbfmm_2009.pdf) gives a good introduction to how FMM works.
