stabilize(iterations = this.options.stabilization.iterations) {
    if (typeof iterations !== "number") {
      iterations = this.options.stabilization.iterations;
      console.error(
        "The stabilize method needs a numeric amount of iterations. Switching to default: ",
        iterations
      );
    }

    if (this.physicsBody.physicsNodeIndices.length === 0) {
      this.ready = true;
      return;
    }

    // enable adaptive timesteps
    this.adaptiveTimestep = true && this.options.adaptiveTimestep;

    // this sets the width of all nodes initially which could be required for the avoidOverlap
    this.body.emitter.emit("_resizeNodes");

    this.stopSimulation(); // stop the render loop
    this.stabilized = false;

    // block redraw requests
    this.body.emitter.emit("_blockRedraw");
    this.targetIterations = iterations;

    // start the stabilization
    if (this.options.stabilization.onlyDynamicEdges === true) {
      this._freezeNodes();
    }
    this.stabilizationIterations = 0;

    setTimeout(() => this._stabilizationBatch(), 0);
  }
Find a stable position for all nodes
@param {number} [iterations]