|
Methods defined here:
- __init__(self, xtl)
- initialise
- __repr__(self)
- Return repr(self).
- absorption(self, energy_kev=None)
- Returns the sample absorption coefficient in um^-1 at the requested energy in keV
- atomic_neighbours(self, structure_index=0, radius=2.5, disp=False, return_str=False)
- Returns the relative positions of atoms within a radius of the selected atom
vector, label = atomic_distances(idx, radius)
idx = index of central atom, choosen from xtl.Structrue.info()
radius = radius about the central atom to find other ions, in Angstroms
disp = False*/True display the output
vector = [nx3] array of atomic positions relative to central atom
label = labels of the neighboring ions
- atoms_per_volume(self)
- Return no. atoms per volume in atoms per A^3
- beamline_info(self, energy_kev=None)
- Prints various properties useful for experiments
- density(self)
- Return the density in g/cm
- diamagnetic_susceptibility(self, atom_type='volume')
- Calculate diamagnetic contribution to susceptibility
type = 'volume' > returns volume susceptiblity in -dimensionless-
type = 'cgs volume' > returns volume susceptiblity in emu/cm^3
type = 'mass' > returns mass susceptiblity in m^3/kg
type = 'cgs mass' > returns mass susceptiblity in emu/g
type = 'molar' > returns molar susceptiblity in m^3/mol
type = 'cgs molar' > returns molar susceptiblity in emu/mol
- exchange_paths(self, cen_idx=None, nearest_neighbor_distance=7.0, exchange_type='O', bond_angle=90.0, search_in_cell=True, group_neighbors=True, disp=False, return_str=False)
- Calcualte likely exchange pathways between neighboring ions within a certain radius
Ions in exchange path are selected by being close to the bond between neighboring atoms of the same type to the
central atom.
:param cen_idx: index of central ion in xtl.Structure, or None to select 1st magnetic ion in list
:param nearest_neighbor_distance: Maximum radius to serach to
:param exchange_type: str or None. Exchange path only incoroporates these elements, or None for any
:param bond_angle: float. Search for exchange ions withing this angle to the bond, in degrees
:param search_in_cell: Bool. If True, only looks for neighbors within the unit cell
:param group_neighbors: Bool. If True, only shows neighbors with the same bond distance once
:param disp: Bool. If True, prints details of the calcualtion
:param return_str: Bool. If True, returns a formatted string of the results
:return: exchange_path, excange_distance (, output_str)
- fdmnes_runfile(self, output_path=None, comment='', energy_range=None, radius=4.0, edge='K', absorber=None, green=True, scf=False, quadrupole=False, magnetism=False, spinorbit=False, azi_ref=(1, 0, 0), correct_azi=False, hkl_reflections=(1, 0, 0))
- Write FDMNES run file
:param output_path: Specify the output filename, e.g. 'Sim/Crystal/out'
:param comment: A comment written in the input file
:param energy_range: str energy range in eV relative to Fermi energy
:param radius: calculation radius
:param edge: absorptin edge, 'K', 'L3', 'L2', 'L23'
:param absorber: absorbing element, 'Co'
:param green: True/False, Green's function (muffin-tin potential)
:param scf: True/False, Self consistent solution
:param quadrupole: False/True, E1E2 terms allowed
:param magnetism: False/True, allow magnetic calculation
:param spinorbit: False/True, allow magnetic calculation with spin-orbit coupling
:param azi_ref: azimuthal reference, [1,0,0]
:param correct_azi: if True, correct azimuthal reference for real cell (use in hexagonal systems)
:param hkl_reflections: list of hkl reflections [[1,0,0],[0,1,0]]
:return: None
- info(self)
- Prints various properties of the crystal
- latex_table(self)
- Return latex table of structure properties from CIF
- magnetic_form_factor(self, hkl)
- Return the magnetic form factor for given hkl reflections
:param hkl: [nx3] array of (h,k,l) reflections
:return: [nxm] array of scattering factors for each atom and reflection
- molcharge(self, element=None, element_no=None, latex=False)
- Generate molecular charge composition of crystal
element : str : specify element that will have a coordination number
element_no : float : The coordination number of element
latex : True/False : if true, outputs in latex format
charge: True/False : if true, outputs chemical charge format
:return: str
- molfraction(self, Z=1)
- Display the molecular weight of a compound and atomic fractions
:param Z: filling number
:return: str
- molname(self, element=None, element_no=None, latex=False)
- Generate molecular name of crystal
element : str : specify element that will have a coordination number
element_no : float : The coordination number of element
latex : True/False : if true, outputs in latex format
:return: str
- neutron_scatteringlengths(self)
- Return the bound coherent neutron scattering length for each atom in the structure
:return: [m] array of scattering lengths for each atom
- orbitals(self)
- Return orbital Compound from classes_orbitals
- relative_positions(self, position, min_distance=0.0, max_distance=3.2, elements=None)
- Returns atomic positions relative to given position
rel_pos, atom_type, label, occ, uiso, mxmymz = Properties.relative_positions([0, 0, 0])
rel_distance = np.sqrt(np.sum(np.square(rel_pos), axis=1))
Note: all output positions are sorted in increasing order of distance from position.
:param position: [x,y,z] position vector in Angstroms
:param min_distance: min distance to find atoms, in Angstroms
:param max_distance: max distance to find atoms, in Angstroms
:param elements: str or list of str, atom types to return
:return relative_position: [[dx,dy,dz], ...] relative positions in Angstroms
:return atom_type: ['El', ..] elements
:return label: ['El1', ..] site labels
:return occ: [occ, ..] occupancy
:return uiso: [uiso, ..] Uiso parameters
:return mxmymz: [[mx,my,mz], ..] magnetic moments
- resonant_element(self)
- Returns the likely x-ray absorbing element in this material
Returns the first d or f block element,
otherwise returns the first element
- update_cif(self, cifvals)
- Update cif dict with new values
:param cifvals: cif dict from readcif
:return: cifvals
- volume(self)
- Returns the volume in A^3
- weight(self)
- Return the molecular weight in g/mol
- xray_attenuation_length(self, energy_kev=None, grazing_angle=90)
- Calcualte X-Ray Attenuation Length
Equivalent to: https://henke.lbl.gov/optical_constants/atten2.html
Based on formulas from: Henke, Gullikson, and Davis, Atomic Data and Nuclear Data Tables 54 no.2, 181-342 (July 1993)
:param energy_kev: float or array, x-ray energy in keV
:param grazing_angle: incidence angle relative to the surface, in degrees
:return: float or array, in microns
- xray_edges(self)
- Returns the x-ray absorption edges available and their energies
string, energies = self.xray_edges()
E.G.
string = ['Ru K', 'Ru L1', 'Ru L2' ...]
energies = [22., ...]
- xray_reflectivity(self, energy_kev=None, grazing_angle=2)
- Calculate the specular reflectivity of a material
From: https://xdb.lbl.gov/Section4/Sec_4-2.html
:param energy_kev: float array
:param grazing_angle: incidence angle relative to the surface, in degrees
:return: float or array
- xray_scattering_factor(self, hkl)
- Return the x-ray scattering factor for given hkl reflections
:param hkl: [nx3] array of (h,k,l) reflections
:return: [nxm] array of scattering factors for each atom and reflection
- xray_transmission(self, energy_kev=None, thickness_um=100)
- Calculate transmission of x-ray through a slab of material
Equivalent to https://henke.lbl.gov/optical_constants/filter2.html
Based on formulas from: Henke, Gullikson, and Davis, Atomic Data and Nuclear Data Tables 54 no.2, 181-342 (July 1993)
:param energy_kev: float or array, x-ray energy in keV
:param thickness_um: slab thickness in microns
:return: float or array
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
|