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
}
}
}
}