Tips for Using MLFMM

Several tips are presented to reduce runtime and memory consumption when using the マルチレベル高速多重極法 (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 不完全LU分解 (ILU) preconditioner.
    Note: The 不完全LU分解 (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 混合界形積分方程式 (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 ソルバー 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 ソルバー 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.

1 Parallel overhead is the time spent to coordinate parallel tasks.