代码
(sde:set-process-up-direction"+z")
;---------creat structre---------
(sdegeo:create-rectangle(position 0 0 0)(position -5 5 0) "Silicon" "p_region")
(sdegeo:create-rectangle(position 0 0 0)(position 5 5 0) "Silicon" "n_region")
(sdegeo:create-rectangle(position -5 0 0)(position -6 5 0) "Aluminum" "Anode_region")
(sdegeo:create-rectangle(position 5 0 0)(position 6 5 0) "Aluminum" "Cathode_region")
;---------Doping---------
(sdedr:define-refeval-window "RefEvalWin_p_region" "Cuboid" (position 0 0 0)(position -5 5 0))
(sdedr:define-constant-profile "ConstantProfileDefinition_p_region" "BoronConcentration" 1.8e15)
(sdedr:define-constant-profile-placement "ConstantProfilePlacement_p_region" "ConstantProfileDefinition_p_region" "RefEvalWin_p_region")
(sdedr:define-refeval-window "RefEvalWin_n_region" "Cuboid" (position 0 0 0)(position 5 5 0))
(sdedr:define-constant-profile "ConstantProfileDefinition_n_region" "PhosphorusConcentration" 1.8e16)
(sdedr:define-constant-profile-placement "ConstantProfilePlacement_n_region" "ConstantProfileDefinition_n_region" "RefEvalWin_n_region")
;---------Mesh Definition---------
(sdedr:define-refeval-window "RefEvalwin_1" "Rectangle" (position -6 0 0)(position 6 5 0))
(sdedr:define-refinement-size "RefinementDefinition_1" 0.2 0.2 0.1 0.1 )
(sdedr:define-refinement-placement "RefinementPlacement_1" "RefinementDefinition_1" "RefEvalwin_1")
(sdedr:define-refinement-function "RefinementDefinition_1" "DopingConcentration" "MaxTransDiff" 1)
;---------Contact Definition---------
(sdegeo:define-contact-set "Anode" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "Anode")
(sdegeo:set-contact-boundary-edges (list(car (find-body-id (position -5.2 0.2 0))) ) "Anode")
(sdegeo:delete-region (list (car (find-body-id (position -5.2 0.2 0)))))
(sdegeo:define-contact-set "Cathode" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "Cathode")
(sdegeo:set-contact-boundary-edges (list(car (find-body-id (position 5.2 0.2 0)) )) "Cathode")
(sdegeo:delete-region (list (car (find-body-id (position 5.2 0.2 0)))))
;----------save file---------
(system:command "snmesh n@node@_msh")
(sde:build-mesh "n@node@")
代码解释
(sde:set-process-up-direction"+z")
确定坐标系
;---------creat structre---------
(sdegeo:create-rectangle(position 0 0 0)(position -5 5 0) "Silicon" "p_region")
创建p区
(sdegeo:create-rectangle(position 0 0 0)(position 5 5 0) "Silicon" "n_region")
创建n区
(sdegeo:create-rectangle(position -5 0 0)(position -6 5 0) "Aluminum" "Anode_region")
创建金属区
(sdegeo:create-rectangle(position 5 0 0)(position 6 5 0) "Aluminum" "Cathode_region")
创建金属区
;---------Doping---------
(sdedr:define-refeval-window "RefEvalWin_p_region" "Cuboid" (position 0 0 0)(position -5 5 0))
在n区恒定掺杂
(sdedr:define-constant-profile "ConstantProfileDefinition_p_region" "BoronConcentration" 1.8e15)
n区掺杂元素是硼,掺杂浓度是1.8e15
(sdedr:define-constant-profile-placement "ConstantProfilePlacement_p_region" "ConstantProfileDefinition_p_region" "RefEvalWin_p_region")
(sdedr:define-refeval-window "RefEvalWin_n_region" "Cuboid" (position 0 0 0)(position 5 5 0))
在p区恒定掺杂
(sdedr:define-constant-profile "ConstantProfileDefinition_n_region" "PhosphorusConcentration" 1.8e16)
p区掺杂元素是磷,掺杂浓度是1.8e16
(sdedr:define-constant-profile-placement "ConstantProfilePlacement_n_region" "ConstantProfileDefinition_n_region" "RefEvalWin_n_region")
;---------Mesh Definition---------
(sdedr:define-refeval-window "RefEvalwin_1" "Rectangle" (position -6 0 0)(position 6 5 0))
定义网格区域
(sdedr:define-refinement-size "RefinementDefinition_1" 0.2 0.2 0.1 0.1 )
定义xy方向最大最小长度
(sdedr:define-refinement-placement "RefinementPlacement_1" "RefinementDefinition_1" "RefEvalwin_1")
(sdedr:define-refinement-function "RefinementDefinition_1" "DopingConcentration" "MaxTransDiff" 1)
;---------Contact Definition---------
(sdegeo:define-contact-set "Anode" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "Anode")
(sdegeo:set-contact-boundary-edges (list(car (find-body-id (position -5.2 0.2 0))) ) "Anode")
定义阳极
(sdegeo:delete-region (list (car (find-body-id (position -5.2 0.2 0)))))
删除金属区域
(sdegeo:define-contact-set "Cathode" 4 (color:rgb 1 0 0) "##")
(sdegeo:set-current-contact-set "Cathode")
(sdegeo:set-contact-boundary-edges (list(car (find-body-id (position 5.2 0.2 0)) )) "Cathode")
定义阴极
(sdegeo:delete-region (list (car (find-body-id (position 5.2 0.2 0)))))
删除金属区域
;----------save file---------
(system:command "snmesh n@node@_msh")
(sde:build-mesh "n@node@")
生成网格文件