NQCBase
NQCBase.Atoms — Type
Atoms{T<:AbstractFloat}Basic atomic parameters: element symbols, numbers and masses
Masses are converted to atomic units. Constructed using either element symbols or masses.
julia> Atoms(:H)
Atoms{Float64}([:H], [1], [1837.4715941070515])
julia> Atoms([:H, :H, :H, :C])
Atoms{Float64}([:H, :H, :H, :C], [1, 1, 1, 6], [1837.4715941070515, 1837.4715941070515, 1837.4715941070515, 21894.713607956142])
julia> Atoms([100, 200])
Atoms{Float64}([:X, :X], [0, 0], [100.0, 200.0])NQCBase.PeriodicCell — Type
PeriodicCell{T<:AbstractFloat} <: AbstractCellOptionally periodic cell
NQCBase.Structure — Type
Structure(file::String)Use ExtXYZ.jl to read a structure from an ExtXYZ file
NQCBase.Structure — Type
Structure{T}Structures are storage types to keep atoms, positions, cells and further information in one place. Many functions in the NQCD packages use only parts of the structure information for efficiency, e.g. integration routines, but it can be convenient to have it all in one type.
If you are developing in NQCD, please include multiple dispatch versions of your functions using Structure types where this would be convenient to the user.
NQCBase.Supercell — Type
Supercell{T}(cell::PeriodicCell, replicas::AbstractVector)This type carries information about how to replicate periodic copies of a structure based on the unit cell provided.
NQCBase.Supercell — Method
Supercell(cell::PeriodicCell, x_range, y_range, z_range)Creates a Supercell which can be applied to a matrix of positions to generate all periodic copies, e.g. for plotting purposes in the following way:
sc = Supercell(cell, -1:1, [1,2], 1)
sc(positions) # Gives a total matrix containing the initial positions and all possible translations in the respective directionsThree iterators must be supplied, for which all possible translations will be generated. These can be integers (e.g. leave z_range = 0 to generate no replicas in z-direction), or any other iterable that produces an Integer.
All translations have to be (signed) integers, so [1,0,0] is one unit cell translation along the positive x direction.
Arguments
cell: Specification for a unit cellx_range: Iterator yieldingInts to specify all x translations.y_range: Iterator yieldingInts to specify all y translations.z_range: Iterator yieldingInts to specify all z translations.
NQCBase.check_atoms_in_cell — Method
check_atoms_in_cell(cell::PeriodicCell, R::AbstractMatrix)::BoolTrue if all atoms are inside the cell, false otherwise.
NQCBase.read_extxyz — Method
read_extxyz(file)Uses ExtXYZ.jl to read a .extxyz file
NQCBase.write_extxyz — Method
write_extxyz(file, atoms, R, cell)Uses ExtXYZ.jl to write a .extxyz file
R can be either a single configuration (Matrix) or many (Vector{<:Matrix}).