def __init__(self, name, *args, **kwargs):
        """
        create QcFrame object.

        name: name of the frame molecule
        """
        # mandatory parameter
        self._name = name
        self._fragments = OrderedDict()
        self._charge = 0
        self._state = {}  # 状態保持
        self._cmds = self._get_default_cmds()  # 外部コマンド

        self._initialize()

        self._prepare_work_dir()
        self._load()

        # cache data
        self._cache = {}

        if (len(args) > 0) and isinstance(args[0], QcFrame):
            self._copy_constructor(args[0])