QuantumATK Forum
		QuantumATK => General Questions and Answers => Topic started by: xiaolight on May 26, 2017, 21:40
		
			
			- 
				# Calculate conductance for parallel spin
 transmission_para = nlread('mgo_para.nc', TransmissionSpectrum)[0]
 conductance_para_uu = transmission_para.conductance(spin=Spin.Up)
 conductance_para_dd = transmission_para.conductance(spin=Spin.Down)
 conductance_para = conductance_para_uu + conductance_para_dd
 
 # Calculate conductance for anti-parallel spin
 transmission_anti = nlread('mgo_anti.nc', TransmissionSpectrum)[0]
 conductance_anti_uu = transmission_anti.conductance(spin=Spin.Up)
 conductance_anti_dd = transmission_anti.conductance(spin=Spin.Down)
 conductance_anti = conductance_anti_uu + conductance_anti_dd
 
 print 'Conductance Parallel Spin (Siemens)'
 print 'Up=%8.2e, Down=%8.2e' % (conductance_para_uu.inUnitsOf(Siemens),
 conductance_para_dd.inUnitsOf(Siemens))
 print 'Total = %8.2e' % (conductance_para.inUnitsOf(Siemens))
 print
 
 print 'Conductance Anti-Parallel Spin (Siemens)'
 print 'Up=%8.2e, Down=%8.2e' % (conductance_anti_uu.inUnitsOf(Siemens),
 conductance_anti_dd.inUnitsOf(Siemens))
 print 'Total = %8.2e' % (conductance_anti.inUnitsOf(Siemens))
 print
 
 print 'TMR (optimistic)  = %8.2f percent' % \
 (100.*(conductance_para-conductance_anti)/conductance_anti)
 print 'TMR (pessimistic) = %8.2f percent' % \
 (100.*(conductance_para-conductance_anti)/(conductance_para+conductance_anti))
 In the MTJ tutorial the TMR can be calculated by this code, so what does[0] mean? does it mean the TMR of zero energy?
- 
				It means that it's evaluated for the first energy, for which the transmission spectrum was computed. In this particular case, T(E) is only computed for E=0 so yes, it is at the Fermi level.
			
- 
				THX, so if I want to calculate the TMR of specific energy level, what should I do?
			
- 
				I'm not sure that makes sense, if you consider what TMR actually is.
 
 But technically you can of course always change the energy at which the transmission spectrum is calculated.
- 
				For i in range(0,201):
 transmission_para = nlread('mgo_para.nc', TransmissionSpectrum)[ i ]
 
 I got err "index out of range". How can I do to deal with TransmissionSpectrum with energy (-1,1,201)
- 
				You should first read the transmission spectrum (TS) object, e.g., the last one in the nc-file:
 transmission_para = nlread('mgo_para.nc', TransmissionSpectrum)[-1]
 
 If you have many TS objects in the nc-file, then you have to specify the object's number instead of reading the last one [-1].
 
 To get the information from TS object, read https://docs.quantumwise.com/manual/Types/TransmissionSpectrum/TransmissionSpectrum.html.