55 Hexagonal
66
77
8- function Oblique(a:: T , b:: T , θ:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" C " ) where T
8+ function Oblique(a:: T , b:: T , θ:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" q " ) where T
99 lattice = BravaisLattice(ObliqueLattice(a, b, θ), Primitive())
1010 basis = [Atom(atomic_symbol, [zero(a),zero(b)], charge = charge)]
1111 return Crystal(lattice,basis,N)
1212end
1313
14- function Oblique(a:: T , b:: T , θ:: T , atomic_mass:: Number , N:: SVector{2} ; charge = 0.0 u" C" ) where T
14+ function Oblique(a:: T , b:: T , θ:: T , atomic_mass:: Number , N:: SVector{2} ;
15+ charge = 0.0 u" q" , atomic_symbol:: Symbol = :unknown) where T
1516 lattice = BravaisLattice(ObliqueLattice(a, b, θ), Primitive())
16- basis = [Atom([zero(a),zero(b)], atomic_mass, charge = charge)]
17+ basis = [Atom(atomic_symbol, [zero(a),zero(b)]; charge = charge, mass = atomic_mass )]
1718 return Crystal(lattice,basis,N)
1819end
1920
2021# ####
2122
22- function Rectangular(a:: T , b:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" C " ) where T
23+ function Rectangular(a:: T , b:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" q " ) where T
2324 lattice = BravaisLattice(RectangularLattice(a, b), Primitive())
2425 basis = [Atom(atomic_symbol, [zero(a),zero(b)], charge = charge)]
2526 return Crystal(lattice,basis,N)
2627end
2728
28- function Rectangular(a:: T , b:: T , atomic_mass:: Number , N:: SVector{2} ; charge = 0.0 u" C" ) where T
29+ function Rectangular(a:: T , b:: T , atomic_mass:: Number , N:: SVector{2} ;
30+ charge = 0.0 u" q" , atomic_symbol:: Symbol = :unknown) where T
2931 lattice = BravaisLattice(RectangularLattice(a, b), Primitive())
30- basis = [Atom([zero(a),zero(b)], atomic_mass, charge = charge)]
32+ basis = [Atom(atomic_symbol, [zero(a),zero(b)]; mass = atomic_mass, charge = charge)]
3133 return Crystal(lattice,basis,N)
3234end
3335
3436# ####
3537
36- function RectangularCentered(a:: T , b:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" C " ) where T
38+ function RectangularCentered(a:: T , b:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" q " ) where T
3739 float_type = typeof(ustrip(a))
3840 half_a = float_type(0.5 ) * a
3941 half_b = float_type(0.5 ) * b
@@ -43,40 +45,43 @@ function RectangularCentered(a::T, b::T, atomic_symbol::Symbol, N::SVector{2}; c
4345 return Crystal(lattice,basis,N)
4446end
4547
46- function RectangularCentered(a:: T , b:: T , atomic_mass:: Number , N:: SVector{2} ; charge = 0.0 u" C" ) where T
48+ function RectangularCentered(a:: T , b:: T , atomic_mass:: Number , N:: SVector{2} ;
49+ charge = 0.0 u" q" , atomic_symbol:: Symbol = :unknown) where T
4750 float_type = typeof(ustrip(a))
4851 half_a = float_type(0.5 ) * a
4952 half_b = float_type(0.5 ) * b
5053 lattice = BravaisLattice(RectangularLattice(a, b), Primitive())
51- basis = [Atom([zero(a), zero(b)], atomic_mass, charge = charge),
52- Atom([half_a, half_b], atomic_mass, charge = charge)]
54+ basis = [Atom(atomic_symbol, [zero(a), zero(b)]; mass = atomic_mass, charge = charge),
55+ Atom(atomic_symbol, [half_a, half_b]; mass = atomic_mass, charge = charge)]
5356 return Crystal(lattice,basis,N)
5457end
5558
5659# ####
5760
58- function Square(a:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" C " ) where T
61+ function Square(a:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" q " ) where T
5962 lattice = BravaisLattice(SquareLattice(a), Primitive())
6063 basis = [Atom(atomic_symbol, [zero(a),zero(a)], charge = charge)]
6164 return Crystal(lattice,basis,N)
6265end
6366
64- function Square(a:: T , atomic_mass:: Number , N:: SVector{2} ; charge = 0.0 u" C" ) where T
67+ function Square(a:: T , atomic_mass:: Number , N:: SVector{2} ;
68+ charge = 0.0 u" q" , atomic_symbol:: Symbol = :unknown) where T
6569 lattice = BravaisLattice(SquareLattice(a), Primitive())
66- basis = [Atom([zero(a),zero(a)], atomic_mass, charge = charge)]
70+ basis = [Atom(atomic_symbol, [zero(a),zero(a)]; mass = atomic_mass, charge = charge)]
6771 return Crystal(lattice,basis,N)
6872end
6973
7074# ####
7175
72- function Hexagonal(a:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" C " ) where T
76+ function Hexagonal(a:: T , atomic_symbol:: Symbol , N:: SVector{2} ; charge = 0.0 u" q " ) where T
7377 lattice = BravaisLattice(Hexagonal2DLattice(a), Primitive())
7478 basis = [Atom(atomic_symbol, [zero(a),zero(a)], charge = charge)]
7579 return Crystal(lattice,basis,N)
7680end
7781
78- function Hexagonal(a:: T , atomic_mass:: Number , N:: SVector{2} ; charge = 0.0 u" C" ) where T
82+ function Hexagonal(a:: T , atomic_mass:: Number , N:: SVector{2} ;
83+ charge = 0.0 u" q" , atomic_symbol:: Symbol = :unknown) where T
7984 lattice = BravaisLattice(Hexagonal2DLattice(a), Primitive())
80- basis = [Atom([zero(a),zero(a)], atomic_mass, charge = charge)]
85+ basis = [Atom(atomic_symbol, [zero(a),zero(a)]; mass = atomic_mass, charge = charge)]
8186 return Crystal(lattice,basis,N)
8287end
0 commit comments