Tools

Cahn-Hilliard模块

Cahn-Hilliard模块

在曙光超算中,已发布版本位于/work/share/ac21ujhbvo/local/mesospire/,用户可查看目录获取最新版本。

基本参数说明

NameTypeExplanation
typestring模块名称
omp_threadsintOpenMP线程数
pathstring结果输出路径
meshInputParameter网格设置
mesh.nxint网格x方向节点数
mesh.nyint网格y方向节点数
mesh.nzint网格z方向节点数
mesh.dxdouble网格间距,单位:米
mesh.dtdouble时间步长,单位:秒
mesh.current_timedouble当前时间
mesh.simulation_timedouble总模拟时间
outputInputParameter输出设置
output.output_timedouble输出时间
output.output_intervalint输出间隔
output.every_numberint每隔多少个输出一次
output.factorint输出间隔的放大倍数
output.variableVector待输出变量
initialInputParameter初始条件设置
Vmdouble摩尔体积,单位:m^3/mol
temperaturedouble温度,单位:开尔文
enable_elastic_energybool是否启用弹性能量贡献
elasticInputParameter弹性性质设置
elastic.lambda_matrixMatrix基体的弹性张量矩阵,单位:Pa
elastic.lambda_precipitateMatrix沉淀相的弹性张量矩阵,单位:Pa
elastic.xe_matrixdouble基体的平衡成分,单位:at.
elastic.xe_precipitatedouble沉淀相的平衡成分,单位:at.
elastic.epsilon_0double1/a * da/dX
elastic.average_strainVector平均应变,单位:1
phase.typestring调幅分解的能量类名称

配置文件示例

config.json
{
    "type": "CahnHilliard",
    "omp_threads": 5,
    "path": "results",
    "mesh": {
        "nx": 16,
        "ny": 16,
        "nz": 16,
        "dx": 1.0e-10,
        "dt": 0.1,
        "current_time": 0.0,
        "simulation_time": 3610
    },
    "output": {
        "output_time": 0,
        "output_interval": 10,
        "every_number": 5,
        "factor": 2,
        "variable": [
            "M", "kappa", "dfgibbsdc"
        ]
    },
    "enable_elastic_energy": false,
    "initial": [
        {
            "type": "SetWhole",
            "variable": [
                {
                    "value": [
                        0.5
                    ],
                    "varname": "c"
                }
            ]
        },
        {
            "point1": [8, 0, 0],
            "point2": [16, 16, 16],
            "type": "SetCuboid",
            "variable": [
                {
                    "value": [
                        0.2
                    ],
                    "varname": "c"
                }
            ]
        },
        {
            "point1": [0, 0, 0],
            "point2": [8, 16, 16],
            "type": "SetCuboidRandom",
            "variable": [
                {
                    "value": [
                        0.6
                    ],
                    "noise": [
                        0.05
                    ],
                    "varname": "c"
                }
            ]
        }
    ]
    "Vm": 11e-6,
    "elastic": {
        "lambda_matrix": [
            [548.500e9, 128.500e9, 128.500e9, 0, 0, 0],
            [128.500e9, 548.500e9, 128.500e9, 0, 0, 0],
            [128.500e9, 128.500e9, 548.500e9, 0, 0, 0],
            [0, 0, 0, 169.000e9, 0, 0],
            [0, 0, 0, 0, 169.000e9, 0],
            [0, 0, 0, 0, 0, 169.000e9]
        ],
        "lambda_precipitate": [
            [413.500e9, 157.000e9, 157.000e9, 0.0, 0.0, 0.0],
            [157.000e9, 413.500e9, 157.000e9, 0.0, 0.0, 0.0],
            [157.000e9, 157.000e9, 413.500e9, 0.0, 0.0, 0.0],
            [0.0, 0.0, 0.0, 256.000e9, 0.0, 0.0],
            [0.0, 0.0, 0.0, 0.0, 256.000e9, 0.0],
            [0.0, 0.0, 0.0, 0.0, 0.0, 256.000e9]
        ],
        "xe_matrix": 0.1,
        "xe_precipitate": 0.8,
        "epsilon_0": 0.048,
        "average_strain": [0.0001, 0.0001, 0.0001, 0.0, 0.0, 0.0]
    },
    "temperature": 1173.15,
    "phase": {
        "type": "SpinodalProperty_TiAlN"
    }
}
config.yaml
type: CahnHilliard
omp_threads: 64
path: results
mesh:
  nx: 64
  ny: 64
  nz: 64
  dx: 1.0e-10
  dt: 0.1
  current_time: 0
  simulation_time: 3610
output:
  output_time: 0
  output_interval: 10
  every_number: 5
  factor: 2
  variable: [M, kappa, dfgibbsdc]
enable_elastic_energy: false
initial:
  - type: SetWhole
    variable:
    - value: [0.5]
      varname: c
  - point1: [8, 0, 0]
    point2: [16, 16, 16]
    type: SetCuboid
    variable:
    - value: [0.2]
      varname: c
  - point1: [0, 0, 0]
    point2: [8, 16, 16]
    type: SetCuboidRandom
    variable:
    - value: [0.6]
      noise: [0.05]
      varname: c
Vm: 11e-6
elastic:
  lambda_matrix:
  - [548.500e9, 128.500e9, 128.500e9, 0, 0, 0]
  - [128.500e9, 548.500e9, 128.500e9, 0, 0, 0]
  - [128.500e9, 128.500e9, 548.500e9, 0, 0, 0]
  - [0, 0, 0, 169.000e9, 0, 0]
  - [0, 0, 0, 0, 169.000e9, 0]
  - [0, 0, 0, 0, 0, 169.000e9]
  lambda_precipitate:
  - [413.500e9, 157.000e9, 157.000e9, 0.0, 0.0, 0.0]
  - [157.000e9, 413.500e9, 157.000e9, 0.0, 0.0, 0.0]
  - [157.000e9, 157.000e9, 413.500e9, 0.0, 0.0, 0.0]
  - [0.0, 0.0, 0.0, 256.000e9, 0.0, 0.0]
  - [0.0, 0.0, 0.0, 0.0, 256.000e9, 0.0]
  - [0.0, 0.0, 0.0, 0.0, 0.0, 256.000e9]
  xe_matrix: 0.1
  xe_precipitate: 0.8
  epsilon_0: 0.048
  average_strain: [0.0001, 0.0001, 0.0001, 0.0, 0.0, 0.0]
temperature: 1173.15
phase:
  type: SpinodalProperty_TiAlN