Author Topic: GNR p and n doping how???  (Read 9398 times)

0 Members and 1 Guest are viewing this topic.

Offline Umberto Martinez

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 479
  • Country: dk
  • Reputation: 26
    • View Profile
Re: GNR p and n doping how???
« Reply #15 on: July 6, 2015, 09:52 »
Nope. to dope tagged atoms use:
Code: python
 external_potential = AtomicCompensationCharge([
                         ('tag1_name', -0.25),
                          ('tag2_name', -0.002),
                        ])
bulk_configuration.setExternalPotential(external_potential)
to add 0.25 and 0.002 electrons to each atom tagged by "tag1_name" and "tag2_name", respectively.

Offline sathyajit

  • Heavy QuantumATK user
  • ***
  • Posts: 31
  • Country: in
  • Reputation: 0
    • View Profile
Re: GNR p and n doping how???
« Reply #16 on: July 6, 2015, 11:56 »
In the code below, len(left_electrode_elements) can include un-tagged elements. So I need to replace len(left_electrode_elements) by number of tagged atoms ?
Code
# Calculate charge per atom
doping_left = doping_density * volume_left / len(left_electrode_elements)
Code
# -------------------------------------------------------------
# Add Doping
# -------------------------------------------------------------
doping_density = 1e+19

# Calculate the volume  and convert it to cm^-3
# Note: right and left electrodes have the same volume,
volume_left = left_electrode_lattice.unitCellVolume()
volume_left = float(volume_left/(0.01*Meter)**3)

volume_right = right_electrode_lattice.unitCellVolume()
volume_right = float(volume_right/(0.01*Meter)**3)

# Calculate charge per atom
doping_left = doping_density * volume_left / len(left_electrode_elements)
doping_right = doping_density * volume_right / len(right_electrode_elements)

# Add p- and n-type doping to the central region
external_potential = AtomicCompensationCharge([
        ('p-side', -1*doping_left), ('n-side',doping_right)
        ])
central_region.setExternalPotential(external_potential)

# Add doping to left and right electrodes
left_electrode.setExternalPotential(
      AtomicCompensationCharge([(Phosphorus, -1*doping_left)]))
right_electrode.setExternalPotential(
      AtomicCompensationCharge([(Tungsten, doping_right)]))

Offline Umberto Martinez

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 479
  • Country: dk
  • Reputation: 26
    • View Profile
Re: GNR p and n doping how???
« Reply #17 on: July 6, 2015, 12:40 »
Oh I see, yes, you should normalize the doping concentration to the number of atoms you actually want to dope. If you tagged your atoms in the left electrode with "doping_left", for example, you can use:
Code: python
doping_left = doping_density * volume_left / len(left_electrode.indicesFromTags('doping_left'))

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5576
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: GNR p and n doping how???
« Reply #18 on: July 6, 2015, 22:49 »
Just note, that the concept of doping is "macroscopic", so doping only some atoms, and leaving other ones close by undoped, may not make physical sense. Unless of course you mean e.g. to avoid doping passivating H atoms on an edge, or something like that.