def guess_density(self, run_type="rks", force=False):
        if (self.is_finished_guess_density == True) and (force == False):
            logger.info("guess_density has been calced.")
            return

        self.cd_work_dir("guess_density")

        guess_density_matrix_path = "guess.density.{}.mat".format(run_type)

        # 既存のデータを消去する
        if os.path.exists(guess_density_matrix_path):
            os.remove(guess_density_matrix_path)

        pdfsim = pdf.PdfSim()
        pdfsim.setup()

        for frg_name, frg in self.fragments():
            logger.info(
                "fragment name={}: {} atoms".format(
                    frg_name, frg.get_number_of_all_atoms()
                )
            )
            if frg.parent == None:
                logger.warn(
                    "guess_density(): parent == None. frg_name={}".format(frg_name)
                )

            frg.set_command_alias(self._cmds)
            frg_guess_density_matrix_path = frg.prepare_guess_density_matrix(run_type)

            logger.debug(
                "guess_density() [{}@{}] ext: {} from {}".format(
                    frg_name,
                    frg.parent.name,
                    guess_density_matrix_path,
                    frg_guess_density_matrix_path,
                )
            )
            if os.path.exists(frg_guess_density_matrix_path):
                pdf.run_pdf(
                    [
                        self._cmds["mat-extend"],
                        "-d",
                        guess_density_matrix_path,
                        frg_guess_density_matrix_path,
                        guess_density_matrix_path,
                    ]
                )
            else:
                logger.warn(
                    "not found: frg.guess.dens.mat={}".format(
                        frg_guess_density_matrix_path
                    )
                )

        self.pdfparam.guess = "density_matrix"
        logger.info(
            "initial guess (density matrix) created at {}".format(
                guess_density_matrix_path
            )
        )

        # check
        self._check_path(guess_density_matrix_path)

        self.is_finished_guess_density = True
        self.save()

        self.restore_cwd()