radtools.SpinHamiltonian.add_bond#
method
- SpinHamiltonian.add_bond(atom1: Atom, atom2: Atom, R, J: ExchangeParameter = None, **kwargs)[source]#
Add one bond to the Hamiltonian.
More straightforward syntax is advised:
>>> import radtools as rad >>> Cr = rad.Atom("Cr") >>> J = rad.ExchangeParameter(iso=1) >>> model = rad.SpinHamiltonian(rad.Crystal()) >>> model[Cr, Cr, (1,0,0)] = J >>> (Cr, Cr, (1,0,0)) in model True
It is equivalent to
>>> import radtools as rad >>> Cr = rad.Atom("Cr") >>> J = rad.ExchangeParameter(iso=1) >>> model = rad.SpinHamiltonian(rad.Crystal()) >>> model.add_bond(Cr, Cr, (1,0,0), J=J) >>> (Cr, Cr, (1,0,0)) in model True
- Parameters:
- atom1
Atomor str Atom object in (0, 0, 0) unit cell. str works only if atom is already in the Hamiltonian.
- atom2
Atomor str Atom object in R unit cell. str works only if atom is already in the Hamiltonian.
- Rtuple of ints
Vector of the unit cell for atom2. In the relative coordinates (i,j,k).
- J
ExchangeParameter, optional An instance of
ExchangeParameter.- ** kwargs
Keyword arguments for the constructor of
ExchangeParameter. Ignored if J is given.
- atom1