# Tips for Using MLFMM

Several tips are presented to reduce runtime and memory consumption when using the multilevel fast multipole method (MLFMM).

• Change the preconditioner
The sparse LU is the default preconditioner and it is the most memory intensive. Consider changing to another preconditioner.
• Use the sparse approximate inverse (SPAI) preconditioner.
• The default (accelerated SPAI) is fast.
• The non-accelerated SPAI takes longer than its accelerated counterpart or the sparse LU.
• Use the incomplete LU decomposition (ILU) preconditioner.
Note: The incomplete LU decomposition (ILU) preconditioner is only suitable for sequential solution.
• Decrease the number of parallel processes
When using parallel solving for the MLFMM, the total memory increases with the number of processes due to parallel overhead1. Reduce memory usage by decreasing the number of parallel processes.
Note: Due to unavoidable communication between parallel processes, the solution could be slowed down by using too many parallel processes.
• Reduce the box size
The default box size is 0.23 for all MLFMM models. The box size can be reduced to 0.2. Reducing the box size reduces memory and conversely.
• Reduce runtime for the MLFMM
• Use the combined field integral equation (CFIE) on surfaces of the model that forms the boundary of a closed metallic region. The CFIE provides faster convergence on closed metallic problems but should be applied with caution on faces with many sharp corners.
• If multiple plane waves are used, then each plane wave requires a new set of iterations. Reduce the number of angles to reduce the runtime.
• In the case of RCS, the first incident angle of the plane wave should be set to a direction where the least number of multiple reflections on the model are expected. For example, for an aircraft, the first incident angle should not be set to directly illuminate the engine inlets. The Solver uses the solution from the previous angle as a phase corrected initial guess for the next incident angle. Subsequent angles, including those for cavities such as engine inlets, will then converge faster.

## Parallel MLFMM and Load Balancing

A load imbalance increases the memory requirements as well as the runtime. A load imbalance is detected by running the Solver with the special execution option, --estimate-resource-requirements-only.

The .out file will contain the following text, for example, The local near field matrix with maximum size is located on process 3 where this maximum size = 3.44 x size of an ideal uniform distribution.

A uniform mesh of a sphere has a very good load balance, which is very close to 1, while a large horn with fine corrugations has a load imbalance of more than 3 x size of an ideal uniform distribution.