Size: a a a

Язык программирования Julia / Julia programming language

2020 January 20

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
т.е. у меня там обёртки всякие над Tuple, и я их применяю и получаю Tuple той же длины, что и внутри обёртки был
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
пришлось вытаскивать отдельно тип N в обёртку и писать NTuple{N}(...)
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Ну, просто наверное так глубоко они не анализируют
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
т.е. если раньше там было factors :: T, то теперь factors :: NTuple{N, T} в структуре
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
А так - ты прокручиваешь итератор.
А вдруг у тебя будет Nothing?
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Значит как минимум тип должен быть Union{Int, Nothing}
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Ну и так далее
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
unit_cell[.!((-a1 .< unit_cell[:, 1] .< a1) .| (-b1 .< unit_cell[:, 2] .< b1) .| (-c1 .< unit_cell[:, 3] .< c1)), :]
что тут не так не гляните?
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Андрей Оськин
А есть пример с M и a?
Нужен так называемый MWE - минимальный работающий пример.
)
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Нужны unit_cell
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
n = 1
atoms = []
for i = -n:n
   for j = -n:n
       for k = -n:n
           push!(atoms, (a1 .+ [i j k]));
           push!(atoms, (a2 .+ [i j k]));
           push!(atoms, (a3 .+ [i j k]));
           push!(atoms, (a4 .+ [i j k]));
           push!(atoms, (a5 .+ [i j k]));
           push!(atoms, (a6 .+ [i j k]));
           push!(atoms, (a7 .+ [i j k]));
           push!(atoms, (a8 .+ [i j k]));
           push!(atoms, (a9 .+ [i j k]));
           push!(atoms, (a10 .+ [i j k]));
           push!(atoms, (a11 .+ [i j k]));
           push!(atoms, (a12 .+ [i j k]));
           push!(atoms, (a13 .+ [i j k]));
           push!(atoms, (a14 .+ [i j k]));
           push!(atoms, (a15 .+ [i j k]));
           push!(atoms, (a16 .+ [i j k]));
           push!(atoms, (a17 .+ [i j k]));
           push!(atoms, (a18 .+ [i j k]));
           push!(atoms, (a19 .+ [i j k]));
           push!(atoms, (a20 .+ [i j k]));
           push!(atoms, (a21 .+ [i j k]));
           push!(atoms, (a22 .+ [i j k]));
           push!(atoms, (a23 .+ [i j k]));
           push!(atoms, (a24 .+ [i j k]));
           push!(atoms, (a25 .+ [i j k]));
           push!(atoms, (a26 .+ [i j k]));
           push!(atoms, (a27 .+ [i j k]));
           push!(atoms, (a28 .+ [i j k]));
           push!(atoms, (a29 .+ [i j k]));
           push!(atoms, (a30 .+ [i j k]));
           push!(atoms, (a31 .+ [i j k]));
           push!(atoms, (a32 .+ [i j k]));
           push!(atoms, (a33 .+ [i j k]));
           push!(atoms, (a34 .+ [i j k]));
           push!(atoms, (a35 .+ [i j k]));
           push!(atoms, (a36 .+ [i j k]));
       end
   end
end
atoms = vcat(atoms...)
unit_cell = similar(atoms); mul!(unit_cell, atoms, M1);
unit_cell = round.(unit_cell, digits = 5)
unit_cell = unique(unit_cell, dims = 1)
unit_cell[.!((-a1 .< unit_cell[:, 1] .< a1) .| (-b1 .< unit_cell[:, 2] .< b1) .| (-c1 .< unit_cell[:, 3] .< c1)), :]
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
перед n

M = [a b*cosd(gamma) c*cosd(beta); 0 b*sind(gamma) (c/sind(gamma))*(cosd(alpha)-cosd(beta)*cosd(gamma)); 0 0 (c*((1-cosd(alpha)^2 - cosd(beta)^2 - cosd(gamma)^2 + (2)*cosd(alpha)* cosd(beta)* cosd(gamma))^0.5))/(sind(gamma))]
M1 = M .* abc
T1 = [0 0 0]
T2 = [0 0 0.5]
T3 = ([0 0 0] + [2/3 1/3 1/3]) - floor.([0 0 0] + [2/3 1/3 1/3])
T4 = ([0 0 0.5] + [2/3 1/3 1/3]) - floor.([0 0 0.5] + [2/3 1/3 1/3])
T5 = ([0 0 0] + [1/3 2/3 2/3]) - floor.([0 0 0] + [1/3 2/3 2/3])
T6 = ([0 0 0.5] + [1/3 2/3 2/3]) - floor.([0 0 0.5] + [1/3 2/3 2/3])
a1 = [x y z] + T1
a2 = [-y x - y z] + T1
a3 = [-x + y -x z] + T1
a4 = [y x -z] + T2
a5 = [x - y -y -z] + T2
a6 = [-x -x + y  -z] + T2
a7 = [-x  -y  -z] + T1
a8 = [y  -x + y  -z] + T1
a9 = [x - y  x  -z] + T1
a10 = [-y  -x  z] + T2
a11 = [-x + y  y  z] + T2
a12 = [x  x - y  z] + T2
a13 = [x  y  z] + T3
a14 = [-y  x - y  z] + T3
a15 = [-x + y  -x  z] + T3
a16 = [y  x  -z] + T4
a17 = [x - y  -y  -z] + T4
a18 = [-x  -x + y  -z] + T4
a19 = [-x  -y  -z] + T3
a20 = [y  -x + y  -z] + T3
a21 = [x - y  x  -z] + T3
a22 = [-y  -x  z] + T4
a23 = [-x + y  y  z] + T4
a24 = [x  x - y  z] + T4
a25 = [x  y  z] + T5
a26 = [-y  x - y  z] + T5
a27 = [-x + y  -x  z] + T5
a28 = [y  x  -z] + T6
a29 = [x - y  -y  -z] + T6
a30 = [-x  -x + y  -z] + T6
a31 = [-x  -y  -z] + T5
a32 = [y  -x + y  -z] + T5
a33 = [x - y  x  -z] + T5
a34 = [-y  -x  z] + T6
a35 = [-x + y  y  z] + T6
a36 = [x  x - y  z] + T6
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
a = 1
b = 1
c = 1
alpha = 90
beta = alpha
gamma = 120
a1 = 4.7606
b1 = a1
c1 = 12.994
abc = [a1 b1 c1]
#=*****************************************=#
Al = [0.0 0.0 0.35217]
O = [0.69365 0.0 0.25]
x = Al[1,1]
y = Al[1,2]
z = Al[1,3]
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
а альфа-бета-гамма )
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
alpha = 90
beta = alpha
gamma = 120
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
нехорошо что-то в коде, начиная с similar
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
там получаются NaN-ы всякие и крошечные числа
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
там получаются NaN-ы всякие и крошечные числа
using LinearAlgebra
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
аа, пардон
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
он и должен быть таким ) он же не инициализирован
источник