Development
相场程序的框架
欢迎访问PFCSU软件文档。
简介
MesoSpire采用了基于C++语言的反射机制开发,用户可以通过调整配置文件来实现对MesoSpire功能的定制。MesoSpire的配置文件是一个JSON格式的文件,其路径为config.json。用户可以通过修改config.json来实现对MesoSpire功能的选择。
MesoSpire -i config.json
AlSi凝固过程模拟
DualPhaseFieldAccelerated
DualPhaseFieldAccelerated
{
"omp_threads": 64,
"type": "DualPhaseFieldAccelerated",
"path": "results/DualPhaseFieldAccelerated",
"clear": true,
"mesh": {
"nx": 100,
"ny": 100,
"nz": 1,
"dx": 1e-07,
"dt": 1e-07,
"current_time": 0,
"simulation_time": 0.02
},
"parameter": {
"T": 750,
"P": 1e-04,
"Vm": 1e-05,
"mu": 3e-12,
"sigma": 0.2,
"eta": 6.0e-7
},
"alpha": {
"type": "BinaryLinearDiagramLiquid",
"name": "liquid",
"D": 1.0e-9
},
"beta": {
"type": "BinaryLinearDiagramSolid",
"name": "solid",
"Tm": 933.5,
"ke": 0.1305,
"me": -659.626,
"D": 2.5e-16
},
"boundary_condition": {
"BC0X": {
"type": "PERIODIC"
},
"BCNX": {
"type": "PERIODIC"
},
"BC0Y": {
"type": "PERIODIC"
},
"BCNY": {
"type": "PERIODIC"
}
},
"nucleation": [
{
"type": "SetWhole",
"variable": [
{
"varname": "phi",
"value": [
1.0,
0.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
},
{
"type": "SetSphere",
"point": [
50,
50,
0
],
"radius": 10,
"smooth": true,
"smooth_variable": "phi",
"width": 6,
"variable": [
{
"varname": "phi",
"value": [
0.0,
1.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
}
],
"flag": {
"average": true,
"rotation": false
},
"anisotropy": {
"type": "CubicAnisotropyYang",
"parameters": [
0.3
],
"mobility": [
0.3
]
},
"output": {
"output_time": 0,
"output_interval": 1.0e-5,
"every_number": 10,
"factor": 2
}
}
MultiPhaseField
MultiPhaseField
{
"omp_threads": 64,
"type": "MultiPhaseField",
"path": "./results/MultiPhaseField",
"clear": true,
"mesh": {
"nx": 100,
"ny": 100,
"nz": 1,
"dx": 1e-07,
"dt": 1e-07,
"current_time": 0,
"simulation_time": 0.02
},
"parameter": {
"T": 750,
"P": [
1.0e-4
],
"Vm": 1.0e-5,
"mu": [
3.0e-12
],
"sigma": [
0.2
],
"eta": 6.0e-7
},
"phase": [
{
"type": "BinaryLinearDiagramLiquid",
"name": "liquid",
"D": 1.0e-9
},
{
"type": "BinaryLinearDiagramSolid",
"name": "fcc",
"Tm": 933.5,
"ke": 0.1305,
"me": -659.626,
"D": 2.5e-16
}
],
"boundary_condition": {
"BC0X": {
"type": "PERIODIC"
},
"BCNX": {
"type": "PERIODIC"
},
"BC0Y": {
"type": "PERIODIC"
},
"BCNY": {
"type": "PERIODIC"
}
},
"nucleation": [
{
"type": "SetWhole",
"variable": [
{
"varname": "phi",
"value": [
1.0,
0.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
},
{
"type": "SetSphere",
"point": [
50,
50,
0
],
"radius": 10,
"smooth": true,
"smooth_variable": "phi",
"width": 6,
"variable": [
{
"varname": "phi",
"value": [
0.0,
1.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
}
],
"flag": {
"average": true,
"rotation": false
},
"anisotropy": {
"type": "CubicAnisotropyYang",
"parameters": [
0.3
],
"mobility": [
0.3
]
},
"output": {
"output_time": 0,
"output_interval": 1.0e-5,
"every_number": 10,
"factor": 2,
"variable": [
"dG_liquid_fcc"
]
}
}
MultiComponentMultiPhaseField
MultiComponentMultiPhaseField
{
"omp_threads": 64,
"type": "MultiComponentMultiPhaseField",
"path": "./results/MultiComponentMultiPhaseField",
"clear": true,
"mesh": {
"nx": 100,
"ny": 100,
"nz": 1,
"dx": 1.0e-7,
"dt": 1.0e-7,
"current_time": 0,
"simulation_time": 0.02
},
"parameter": {
"T": 750,
"P": [
1.0e-4
],
"Vm": 1.0e-5,
"mu": [
3.0e-12
],
"sigma": [
0.2
],
"eta": 6.0e-7
},
"component": [
"Si"
],
"phase": [
{
"name": "liquid",
"element": [
"Si"
],
"D": [
1.0e-9
],
"type": "MultiComponentLinearDiagramLiquid"
},
{
"name": "solid",
"element": [
"Si"
],
"D": [
2.5e-16
],
"Tm": 933.5,
"ke": [
0.1305
],
"me": [
-659.626
],
"type": "MultiComponentLinearDiagramSolid"
}
],
"boundary_condition": {
"BC0X": {
"type": "PERIODIC"
},
"BCNX": {
"type": "PERIODIC"
},
"BC0Y": {
"type": "PERIODIC"
},
"BCNY": {
"type": "PERIODIC"
}
},
"nucleation": [
{
"type": "SetWhole",
"variable": [
{
"varname": "phi",
"value": [
1.0,
0.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
},
{
"type": "SetSphere",
"point": [
50,
50,
0
],
"radius": 10,
"smooth": true,
"smooth_variable": "phi",
"width": 6,
"variable": [
{
"varname": "phi",
"value": [
0.0,
1.0
]
},
{
"varname": "c",
"value": [
0.1128,
0.1128
]
}
]
}
],
"flag": {
"average": true,
"rotation": false
},
"anisotropy": {
"type": "CubicAnisotropyYang",
"parameters": [
0.3
],
"mobility": [
0.3
]
},
"output": {
"output_time": 0,
"output_interval": 1.0e-4,
"every_number": 10,
"factor": 2,
"variable": []
},
"information": [
1.0e-9,
1.0e5,
0.03
]
}