doping

 

Creates a doping profile for the grid.

Format

doping / constant / field_out / set [add | sub] / 1st point, last point, stride / xcon

doping / gaussian / field_out / set[add | sub] /1st point, last point, stride / igeom / x1, y1, z1 / x2, y2, z2 / lateral_diffusion / concentration / standard_deviation /

doping / table / field_out / set [add | sub] / linear [log, asinh] / cmo_geometry / table_geometry /

doping / constant / field_out / set/

 

doping Parameters

Parameters

Type/Value

Description/Default

constant

constant

Profile is invariant over the specified region with value xcon.

field_out

char*32

Name of the field.

set add sub

set add sub

Indicates if the calculated or input-value added to, subtracted from or used to set the existing field node value.

1st point, last point, stride

reaks

Specify a point set restriction.

xcon

 

 

gaussian

gaussian

Profile contains a bounding box (x1,y1,z1) to (x2,y2,z2) where the peak concentration will be. z1=z2 in 2D. The doping varies according to the gaussian distribution below.

igeom

integer

igeom = xyz [rtz, rtp]

x1, y1, z1

x2, y2, z2

reals

 

lateral_diffusion

 

 

concentration

 

 

standard_deviation

 

 

table

table

Reads in doping data from a DATEX2.1 format file.

linear log asinh

linear

 

 

log

 

 

asinh

 

cmo_geometry

 

 

table_geometry

 

 

constant

constant

 

set

set

 

Notes

Gaussian distribution:

doping = concentration * exp(-(L/std_dev)**2)

where L is the effective distance and can be represented as:

L = sqrt( dy**2 + (1/lateral_diffusion)*(dx**2 + dz**2) )

where

dy = y-y1 (or y2 for that matter)

dx = x-x1 if x < x1 < x2

= 0 if x1 < x < x2

= x-x2 if x1 < x2 < x

dz similar to dx.

If the values to be doped are integers, doping works in two ways. If the second field is integer1, the new nodal attributes are based on element material types. Use field_out and att_table_field set to imt1 in this case. The integer1 option is implemented only for setting node material (imt1). The imt1 values of the active mesh object nodes will be set by determining which element in the reference mesh object the node falls in. This element's material (itetclr) value is then assigned to the node imt1.

The integer2 option sets node based attributes in the active mesh object by determining which voronoi cell in the reference mesh object the node falls in. Then the value for the node corresponding to this voronoi cell is copied to the active node.

If the second field is integer2, the new nodal attributes are based on the table attribute types using the Voronoi cells around the table nodes.
For integer doping, function can be min or max to choose what happens if a cmo_out node falls on a boundary between two elements or Voronoi cells. For 3d, Voronoi cell based doping, function can also be minp or maxp which makes any cmo_out nodes that fall outside the cmo_table geometry set to the maxium number of materials plus one. Mapset can be set to create, use, or left blank. If create is used then an idop attribute is formed that maps the cmo_table nodes to the cmo_out nodes. If use is used, doping will read and use this previously formed and saved mapping. Note that doping of integers should be done without child/parent relationships. If parents exist, the doping results are unpredictable at interface boundaries because the value of parent nodes are unpredictable there.

Examples

doping / constant / ric / set / pset, get, doping / gaussian / ric / add / pset

doping / table / pic / set /1, 0,

doping / table / Saturation / set / 1, 0, 0 / cmo_course / linear / zx / yx /

doping / integer1 / imt1 / set / 1, 0, 0 / cmo_old / imt1 / min

doping / integer2 / rad2 / set / 1, 0, 0 / cmo_old / rad1 / min / create