File format for upload

Protium 的存储文件被设计为人类易读的 json 格式,以方便理解工作流背后的含义,一个工作流文件的示意如下:

JSON 说明

  • Name
    key
    Type
    string
    Description

    key 是单个工作流中节点的唯一标识符,用于与其它节点产生联系。可使用自定义字符串来定义,默认使用 “0”, “1” 等顺序增长的字符。

  • Name
    template
    Type
    string
    Description

    Node 所使用的模版,你可以在 Flociety 社区 查看目前可用的所有 Node 模版及它们的 key。

  • Name
    params
    Type
    object
    Description

    在 template 中指定模版后,可以在对应 node 的介绍页面查看这个 node 的结构,params 即为该 node body 部分需要接受的参数。

    在 node 中,body 是一个对象列表,因此,每个输入参数都隶属于一个 body ,需要按照模版中参数与对象的关系进行输入。

  • Name
    handles
    Type
    object
    Description

    target_handles 接受一个对象,这个对象的 key 是 node 模版中对应的每个 target handle 的 key,这个对象的值是一个列表,列表包含所有连接到该 target_handle 的 node 的 唯一标识符 (key)。

JSON

{
    "0": {
        "template": "ABACUS_SIAB",
        "params": {
            "abacus_siab": {
                "jY_type": "reduced",
                "max_steps": 1000,
                "optimizer": "bfgs",
                "environment": "",
                "mpi_command": "mpirun -np 8",
                "spill_coefs": [0, 1],
                "spill_guess": "atomic",
                "nthreads_rcut": 4,
                "abacus_command": "abacus"
            },
            "bohrium_job_config": {}
        },
        "handles": {
            "abacus-input": ["1"],
            "siab-oribital": ["2"],
            "siab-system": ["3"]
        }
    },
    "1": {
        "template": "ABACUS_INPUT",
        "params": {
            "abacus_input": {
                "ecutwfc": 60,
                "pseudo_name": "Si_ONCV_PBE-1.0.upf",
                "smearing_sigma": 0.01,
                "bessel_nao_rcut": [6, 7, 8, 9, 10],
                "bessel_nao_smooth": 0
            }
        }
    }
}

Was this page helpful?