Lattices

In the next section, a brief description of the available methods to generate new atomic lattices is provided. These lattices can be useful, among other things, to benchmark and test new EnergyFunction and EnergyFunctionComponent instances, for example.

ProtoSyn.Materials.primitiveFunction
primitive([unit_cell_dims::Vector{T} = [1.0, 1.0, 1.0]]) where {T <: AbstractFloat}

Creates a primitive lattice Pose. If given, the unit_cell_dims vector determines the size of the unit cell. This must be a 1x3 Vector{T} of X, Y and Z lengths of the cubic unit cell (in Angstrom, [1.0, 1.0, 1.0] by default, using the ProtoSyn.Units.defaultFloat as type T).

See also:

merge! symexp!

Examples

julia> pose = ProtoSyn.Materials.primitive()
Pose{Topology}(Topology{/primitive:12909}, State{Float64}:
 Size: 1
 i2c: false | c2i: false
 Energy: Dict(:Total => Inf)
)
source

ProtoSyn Primitive Lattice

Figure 1 | An example of the primitive lattice.

ProtoSyn.Materials.body_centeredFunction
body_centered([unit_cell_dims::Vector{T} = [1.0, 1.0, 1.0]]) where {T <: AbstractFloat}

Creates a body-centered lattice Pose. If given, the unit_cell_dims determine the position of the body-centered Atom (half of it in all dimensions). This must be a 1x3 Vector{T} of X, Y and Z lengths of the cubic unit cell (in Angstrom, [1.0, 1.0, 1.0] by default, using the ProtoSyn.Units.defaultFloat as type T).

See also:

merge! symexp!

Examples

julia> ProtoSyn.Materials.body_centered()
Pose{Topology}(Topology{/primitive:51728}, State{Float64}:
    Size: 2
    i2c: false | c2i: false
    Energy: Dict(:Total => Inf)
)
source

ProtoSyn Body Centered Lattice

Figure 2 | An example of the body_centered lattice.