From 6ba8970c50082b7286b40575c5601d8d50a00099 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Mon, 4 Mar 2024 16:49:35 -0500 Subject: [PATCH 01/21] ignore LocalPreference.toml, minor updates to Project.toml --- .gitignore | 1 + Project.toml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 9b5363f..33cfd98 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ docs/build/ docs/src/generated/ Manifest.toml +LocalPreferences.toml # LAMMPS artifacts log.lammps diff --git a/Project.toml b/Project.toml index dd803ef..712397f 100644 --- a/Project.toml +++ b/Project.toml @@ -26,3 +26,6 @@ Unitful = "1" UnitfulAtomic = "1" julia = "1.9" ACE1 = "0.12.2" + +[extras] +LAMMPS_jll = "5b3ab26d-9607-527c-88ea-8fe5ba57cafe" From 020c7ce617ae6fba75cd60a31dd6a8063bed04c5 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Wed, 6 Mar 2024 18:57:27 -0500 Subject: [PATCH 02/21] initial draft of lammps-based POD calculations --- Project.toml | 1 + src/BasisSystems/POD/lammps_pod.jl | 138 +++++++++++++++++++++++++++ src/BasisSystems/POD/pod.jl | 6 ++ src/BasisSystems/basis_systems.jl | 2 +- src/types.jl | 1 + test/POD/pod_test.jl | 2 + test/POD/sample_6body_hfo2_param.pod | 43 +++++++++ test/POD/sample_monoclinic_HfO2.xyz | 14 +++ test/Project.toml | 5 +- 9 files changed, 210 insertions(+), 2 deletions(-) create mode 100644 src/BasisSystems/POD/lammps_pod.jl create mode 100644 src/BasisSystems/POD/pod.jl create mode 100644 test/POD/pod_test.jl create mode 100644 test/POD/sample_6body_hfo2_param.pod create mode 100644 test/POD/sample_monoclinic_HfO2.xyz diff --git a/Project.toml b/Project.toml index 712397f..0e17808 100644 --- a/Project.toml +++ b/Project.toml @@ -12,6 +12,7 @@ JuLIP = "945c410c-986d-556a-acb1-167a618e0462" LAMMPS = "ee2e13b9-eee9-4449-aafa-cfa6a2dbe14d" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a" diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl new file mode 100644 index 0000000..672a407 --- /dev/null +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -0,0 +1,138 @@ + +using LAMMPS +using Printf: @sprintf + +# species map can conceivably be separate from species in pod_spec... +struct LAMMPS_POD <: BasisSystem + lmp::LMP + param_file::String + species_map::Vector{Symbol} # index corresponds to lammps type + pod_spec::Union{POD,Nothing} +end + +function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_param_file=false) + lmp = initialize_pod_lammps(param_file,lammps_species) + if parse_param_file + println("Sorry, I haven't implementing parsing POD parameter files yet") + else + lmp_pod = LAMMPS_POD(lmp,param_file,lammps_species,nothing) + @warn "Until POD param parser implemented, assuming species_map is the same order as species in POD parameter file" + end + lmp_pod +end + +function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol}) + num_types = length(lammps_species) + atomtype_str = "" + for elem_symbol in lammps_species + atomtype_str = atomtype_str * " " * string(elem_symbol) + end + + lmp = LMP(["-screen", "none"]) + command(lmp, "log none") + + command(lmp, "units metal") + command(lmp, "boundary p p p") + command(lmp, "atom_style atomic") + command(lmp, "neighbor 0.5 bin") + command(lmp, "neigh_modify delay 0 every 1 check no") + + command(lmp, "region main prism 0.0 1.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0") + command(lmp, "create_box $(num_types) main") + + # Does the cutoff matter here? If it does, need to pass in cutoff, which means I'd have to parse from param file + command(lmp, "pair_style zero 10.0") + command(lmp, "pair_coeff * * ") + + command(lmp, """compute ld all pod/atom $(param_file) "" "" $(atomtype_str)""") + command(lmp, """compute dd all podd/atom $(param_file) "" "" $(atomtype_str)""") + + lmp +end + +function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) + # TODO: Will eventually need to ensure unit consistency + # For now, just trusting that it's correct. + + lmp = pod.lmp + + atom_syms = atomic_symbol(A) + unq_syms = unique(atom_syms) + @assert all(in.(unq_syms, (pod.species_map,))) + atom_types = map(sym->findfirst(isequal(sym),pod.species_map), atom_syms) + + # the way POD is constructed, the number of types initialized should equal the number of species modelled by POD + # However, some systems will have only a subset of these species, so need to account for that here + for unq_sym in unq_syms + atype = findfirst(isequal(unq_sym),pod.species_map) + mass = ustrip(atomic_mass(A)[findfirst(isequal(unq_sym),atom_syms)]) + + command(lmp, "mass $(atype) $(mass)") + end + + bbox = ustrip.(bounding_box(A)) + @assert iszero([bbox[1][2],bbox[1][3],bbox[2][3]]) #needs to conform to lammps triclinic requirements + bbound_str = "" + cart_name = ["x", "y", "z"] + for i in 1:3 + bbound_str = bbound_str * " $(cart_name[i]) final" * (@sprintf " %.27f" 0.0) * (@sprintf " %.27f" bbox[i][i]) + end + + if !iszero(bbox[2][1]) + bbound_str = bbound_str * " xy final" * (@sprintf " %.27f" bbox[2][1]) + end + + if !iszero(bbox[3][1]) + bbound_str = bbound_str * " xz final" * (@sprintf " %.27f" bbox[3][1]) + end + + if !iszero(bbox[3][2]) + bbound_str = bbound_str * " yz final" * (@sprintf " %.27f" bbox[3][2]) + end + + bbound_str = bbound_str * " boundary p p p" + command(lmp, "change_box all" * bbound_str) + + atom_pos = ustrip.(position(A)) + for i in 1:length(atom_pos) + xyz_str = "" + for j in 1:3 + xyz_str = xyz_str * @sprintf " %.27f" atom_pos[i][j] + end + command(lmp, "create_atoms $(atom_types[i]) single" * xyz_str) + end +end + +function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) + lmp = pod.lmp + setup_lammps_system!(A,pod) + command(lmp, "run 0") + + atomids = extract_atom(lmp, "id") + sort_idxs = sortperm(atomids) + + + raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' + raw_types = extract_atom(lmp,"type") + sorted_ld = raw_ld[sort_idxs,:] + sorted_types = raw_types[sort_idxs,:] + + # This block is where the assumption that the species order of pod.species_map should match the POD species order matters + # Once a param parser is implemented, I won't need this assumption (but will need a bit of extra logic) + num_pod_types = length(pod.species_map) + num_perelem_ld = size(sorted_ld)[2] + total_num_ld = num_pod_types*(num_perelem_ld+1)# including 1-body terms + final_ld = zeros(total_num_ld) + for i in 1:size(sorted_ld)[1] + atype = sorted_types[i] + final_ld[(atype-1)*(num_perelem_ld+1) + 1] += 1.0 # one-body terms + start = (atype-1)*(num_perelem_ld+1) + 2 # +2 accounts for both skipping 1-body term and 1-indexing + stop = (atype-1)*(num_perelem_ld+1) + (num_perelem_ld+1) + final_ld[start:stop] += sorted_ld[i,:] + #@show sorted_ld[i,:] + end + + @show final_ld + command(lmp,"delete_atoms group all") + +end diff --git a/src/BasisSystems/POD/pod.jl b/src/BasisSystems/POD/pod.jl new file mode 100644 index 0000000..48c3dc3 --- /dev/null +++ b/src/BasisSystems/POD/pod.jl @@ -0,0 +1,6 @@ +struct POD <: BasisSystem + species::Vector{Symbol} + rcutoff::Real +end + +include("lammps_pod.jl") \ No newline at end of file diff --git a/src/BasisSystems/basis_systems.jl b/src/BasisSystems/basis_systems.jl index e56eea1..726438b 100644 --- a/src/BasisSystems/basis_systems.jl +++ b/src/BasisSystems/basis_systems.jl @@ -4,5 +4,5 @@ include("ACE/ace.jl") include("SNAP/snap.jl") - +include("POD/pod.jl") diff --git a/src/types.jl b/src/types.jl index f5463b7..ded74c0 100644 --- a/src/types.jl +++ b/src/types.jl @@ -3,6 +3,7 @@ export AbstractPotential, NonTrainablePotential, TrainablePotential, EmpiricalPotential, MixedPotential export BasisPotential, NeuralNetworkBasisPotential, LinearBasisPotential, BasisSystem export ACE, SNAP, LBasisPotential, NNBasisPotential +export POD, LAMMPS_POD """ diff --git a/test/POD/pod_test.jl b/test/POD/pod_test.jl new file mode 100644 index 0000000..18b75a1 --- /dev/null +++ b/test/POD/pod_test.jl @@ -0,0 +1,2 @@ + +lmp_pod = LAMMPS_POD("./POD/sample_6body_hfo2_param.pod", [:Hf,:O]) diff --git a/test/POD/sample_6body_hfo2_param.pod b/test/POD/sample_6body_hfo2_param.pod new file mode 100644 index 0000000..e8a90db --- /dev/null +++ b/test/POD/sample_6body_hfo2_param.pod @@ -0,0 +1,43 @@ +# chemical element symbols +species Hf O + +# periodic boundary conditions +pbc 1 1 1 + +# inner cut-off radius +rin 1.0 + +# outer cut-off radius +rcut 5.5 + +# polynomial degrees for radial basis functions +bessel_polynomial_degree 4 +inverse_polynomial_degree 8 + +# one-body potential +onebody 1 + +# two-body linear POD potential +twobody_number_radial_basis_functions 8 + +# three-body linear POD potential +threebody_number_radial_basis_functions 6 +threebody_angular_degree 4 + +# four-body linear POD potential +fourbody_number_radial_basis_functions 4 +fourbody_angular_degree 2 + +true4BodyDesc 1 + +# five-body linear POD potential +fivebody_number_radial_basis_functions 4 +fivebody_angular_degree 2 + +# six-body linear POD potential +sixbody_number_radial_basis_functions 3 +sixbody_angular_degree 2 + +# seven-body linear POD potential +sevenbody_number_radial_basis_functions 0 +sevenbody_angular_degree 0 diff --git a/test/POD/sample_monoclinic_HfO2.xyz b/test/POD/sample_monoclinic_HfO2.xyz new file mode 100644 index 0000000..892c16b --- /dev/null +++ b/test/POD/sample_monoclinic_HfO2.xyz @@ -0,0 +1,14 @@ +12 +Lattice="5.136475506554316 0.0 0.0 0.0 5.19341333754447 0.0 -0.883442968274303 0.0 5.246159804521277" Properties=species:S:1:pos:R:3:forces:R:3 energy=-111.08588366253844 stress="-0.007422386161272368 -0.0 0.0003029920130158191 -0.0 -0.008315753520861434 -0.0 0.0003029920130158191 -0.0 -0.008800540741686744" free_energy=-10702.146503816806 pbc="T T T" +Hf 0.79296806 2.37891959 3.71379301 -0.07001808 -0.03483151 0.00308918 +Hf 3.01834094 4.97562678 4.15544259 0.07001808 -0.03483151 -0.00308918 +Hf 3.46006345 2.81449477 1.53236422 0.07001808 0.03483151 -0.00308918 +Hf 1.23469006 0.21778759 1.09071465 -0.07001808 0.03483151 0.00308918 +O 1.43661056 3.85624494 5.13377423 0.01613599 -0.00420273 -0.02090924 +O 2.37469844 1.25953776 2.73546188 -0.01613599 -0.00420273 0.02090924 +O 2.81642044 1.33716942 0.11238300 -0.01613599 0.00420273 0.02090924 +O 1.87833256 3.93387661 2.51069536 0.01613599 0.00420273 -0.02090924 +O 0.04523848 1.71776788 1.81649659 0.01180265 -0.00296422 -0.00803315 +O 4.64951503 4.31447506 0.80658229 -0.01180265 -0.00296422 0.00803315 +O 4.20779252 3.47564649 3.42966065 -0.01180265 0.00296422 0.00803315 +O -0.39648403 0.87893931 4.43957495 0.01180265 0.00296422 -0.00803315 diff --git a/test/Project.toml b/test/Project.toml index c2f7691..236669f 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,8 +1,8 @@ [deps] ACE1 = "e3f9bc04-086e-409a-ba78-e9769fe067bb" AtomsBase = "a963bdd2-2df7-4f54-a1ee-49d51e6be12a" +AtomsIO = "1692102d-eeb4-4df9-807b-c9517f998d44" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" -LAMMPS = "ee2e13b9-eee9-4449-aafa-cfa6a2dbe14d" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -12,3 +12,6 @@ UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a" [compat] AtomsBase = "0.3" ACE1 = "0.12.2" + +[extras] +LAMMPS_jll = "5b3ab26d-9607-527c-88ea-8fe5ba57cafe" From 2369a2e57d30b85d4229624a062bb3da6f43b371 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:19:27 -0500 Subject: [PATCH 03/21] finishing up the potential energy portion of lammps POD --- Project.toml | 1 + src/BasisSystems/POD/lammps_pod.jl | 26 +- src/InteratomicPotentials.jl | 2 + src/types.jl | 3 +- test/POD/pod_test.jl | 20 + test/POD/sample_6body_2elem_coeffs.pod | 1123 ++++++++++++++++++++++++ 6 files changed, 1162 insertions(+), 13 deletions(-) create mode 100644 test/POD/sample_6body_2elem_coeffs.pod diff --git a/Project.toml b/Project.toml index 0e17808..7aeca95 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.2.9" [deps] ACE1 = "e3f9bc04-086e-409a-ba78-e9769fe067bb" AtomsBase = "a963bdd2-2df7-4f54-a1ee-49d51e6be12a" +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" JuLIP = "945c410c-986d-556a-acb1-167a618e0462" diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 672a407..f9d3c13 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -21,6 +21,11 @@ function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_pa lmp_pod end +function LBasisPotential(lmp_pod::LAMMPS_POD, coeff_fname::String) + coeffs = vec(readdlm(coeff_fname, ' '; skipstart=1)) + LBasisPotential(coeffs,zeros(1),lmp_pod) +end + function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol}) num_types = length(lammps_species) atomtype_str = "" @@ -111,7 +116,6 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) atomids = extract_atom(lmp, "id") sort_idxs = sortperm(atomids) - raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' raw_types = extract_atom(lmp,"type") sorted_ld = raw_ld[sort_idxs,:] @@ -120,19 +124,19 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) # This block is where the assumption that the species order of pod.species_map should match the POD species order matters # Once a param parser is implemented, I won't need this assumption (but will need a bit of extra logic) num_pod_types = length(pod.species_map) - num_perelem_ld = size(sorted_ld)[2] - total_num_ld = num_pod_types*(num_perelem_ld+1)# including 1-body terms - final_ld = zeros(total_num_ld) - for i in 1:size(sorted_ld)[1] + num_atoms = size(sorted_ld)[1] + num_perelem_ld = size(sorted_ld)[2] + 1 # including 1-body terms + total_num_ld = num_pod_types*(num_perelem_ld) + final_ld = [zeros(total_num_ld) for _ in 1:num_atoms] #for consistency, vec{vec} not matrix + for i in 1:num_atoms atype = sorted_types[i] - final_ld[(atype-1)*(num_perelem_ld+1) + 1] += 1.0 # one-body terms - start = (atype-1)*(num_perelem_ld+1) + 2 # +2 accounts for both skipping 1-body term and 1-indexing - stop = (atype-1)*(num_perelem_ld+1) + (num_perelem_ld+1) - final_ld[start:stop] += sorted_ld[i,:] - #@show sorted_ld[i,:] + final_ld[i][(atype-1)*num_perelem_ld + 1] = 1.0 # one-body terms + start = (atype-1)*num_perelem_ld + 2 # +2 accounts for both skipping 1-body term and 1-indexing + stop = (atype-1)*num_perelem_ld + num_perelem_ld + final_ld[i][start:stop] = sorted_ld[i,:] end - @show final_ld command(lmp,"delete_atoms group all") + final_ld end diff --git a/src/InteratomicPotentials.jl b/src/InteratomicPotentials.jl index 2ec66e8..2131f5c 100644 --- a/src/InteratomicPotentials.jl +++ b/src/InteratomicPotentials.jl @@ -10,6 +10,8 @@ using UnitfulAtomic using Distances using NearestNeighbors +using DelimitedFiles: readdlm + import Flux: gradient, Chain, Dense import Zygote: withgradient diff --git a/src/types.jl b/src/types.jl index ded74c0..a69112d 100644 --- a/src/types.jl +++ b/src/types.jl @@ -74,6 +74,5 @@ Abstract type to define methods for producing a set of local and force descripto """ abstract type BasisSystem end -include("BasisSystems/basis_systems.jl") include("BasisPotentials/basis_potentials.jl") - +include("BasisSystems/basis_systems.jl") \ No newline at end of file diff --git a/test/POD/pod_test.jl b/test/POD/pod_test.jl index 18b75a1..5750985 100644 --- a/test/POD/pod_test.jl +++ b/test/POD/pod_test.jl @@ -1,2 +1,22 @@ +using AtomsIO + +sample_hfo2_sys = load_system("./POD/sample_monoclinic_HfO2.xyz") lmp_pod = LAMMPS_POD("./POD/sample_6body_hfo2_param.pod", [:Hf,:O]) + +ld = compute_local_descriptors(sample_hfo2_sys,lmp_pod) +@test typeof(ld) <: Vector{Vector{Float64}} +@test size(ld)[1] == 12 +@test size(ld[1])[1] == 1122 + +#= Reference Test +Reference value obtained with LAMMPS compiled w/ Apple clang version 12.0.5 (clang-1205.0.22.11) +targetting macOS (arm64-apple-darwin22.4.0) + +using the eapod branch of the cesmix-mit/lammps @ the following commit: +https://github.com/cesmix-mit/lammps/commit/adf9fc11f17efaba7b62ba332b5c5f5c9f579dee +=# + +hfo2_lbp = LBasisPotential(lmp_pod, "./POD/sample_6body_2elem_coeffs.pod") +pe = potential_energy(sample_hfo2_sys,hfo2_lbp) +pe ≈ -111.05104842466731441 diff --git a/test/POD/sample_6body_2elem_coeffs.pod b/test/POD/sample_6body_2elem_coeffs.pod new file mode 100644 index 0000000..713d5b7 --- /dev/null +++ b/test/POD/sample_6body_2elem_coeffs.pod @@ -0,0 +1,1123 @@ +POD_coefficients: 1122 +-0.22930593 +29.94662825 +-15.62103487 +-1.60358683 +-2.19963764 +-1.85850061 +-2.88546913 +-0.16695726 +-0.11012510 +0.85475693 +-7.28823437 +-0.82649160 +-0.20594121 +-0.68164707 +-0.85990801 +-0.02445050 +-0.00518830 +-11.97556442 +28.12229369 +-26.21037532 +3.53716027 +0.59056955 +4.30915514 +-6.37172832 +0.14011687 +0.46483926 +0.90181139 +-0.22648433 +0.66273620 +0.47957165 +0.04643062 +0.05341162 +-0.02490126 +0.09098956 +0.14227291 +-0.12134761 +-0.06645764 +0.01246320 +-0.02408259 +-0.03421705 +0.03071568 +0.00837515 +-0.01085486 +0.00579533 +0.01441847 +-0.04065533 +0.00873566 +13.78678757 +-3.41886676 +11.82188140 +-3.08424523 +0.18303055 +-0.41524052 +2.03913284 +3.13078639 +0.08898469 +-1.28853776 +0.32847643 +-0.45299258 +-0.63758755 +0.26466324 +0.33684295 +0.09530348 +0.01682738 +-0.14406887 +-0.04289475 +-0.02476439 +-0.01435470 +0.04055683 +0.01221403 +-0.06575208 +-0.01101874 +0.01325336 +-0.01160421 +-0.03842751 +0.03738934 +0.01467008 +-8.08156810 +-4.90626096 +4.03376830 +-3.31669653 +-0.17426561 +-0.23402016 +-0.20356878 +-0.44292807 +0.84662223 +0.07167772 +0.11867790 +0.00998598 +0.12055592 +0.17576243 +0.12544294 +0.02016133 +-0.00498139 +-0.03888575 +0.04343364 +0.11632464 +0.00131358 +-0.00857393 +-0.01286516 +0.03096537 +0.04249654 +-0.00259108 +0.01055961 +0.00067343 +-0.01481391 +0.01075701 +12.98143212 +-48.30464971 +21.19021364 +16.38775690 +-1.51348101 +3.24642023 +0.06453199 +-0.76429114 +-0.09155930 +0.24901053 +0.12699789 +-0.13604071 +-0.00143073 +0.00573528 +0.00153436 +0.01187974 +-9.45119278 +2.10936651 +5.94067664 +7.69815138 +-1.11674248 +0.21601402 +0.63452606 +0.04387932 +-0.02314689 +0.04590620 +0.12424315 +-0.07843119 +-0.00516069 +0.00144538 +-0.00227384 +-0.03206425 +-0.21317595 +10.01044223 +-2.82430888 +3.20549161 +0.29289951 +-0.29494049 +0.03555131 +-0.26341100 +0.04278454 +-0.03900165 +-0.11538447 +0.02451009 +-0.00390772 +0.00299186 +0.00034849 +0.00715680 +1.94426625 +7.16456383 +1.97478252 +-1.65104010 +0.02208051 +0.43953232 +0.31679177 +0.58376661 +0.00173144 +0.00963741 +0.00562598 +0.00819265 +-0.00297143 +0.00084891 +0.00669663 +0.00120522 +-10.01179431 +23.95214747 +-0.53587513 +-0.17040066 +-0.31677010 +-1.25871738 +0.44646925 +-0.15454355 +-0.06359623 +0.02770289 +-0.02237438 +-0.04330102 +1.23375345 +6.90018558 +0.01954125 +1.70629910 +0.67665103 +-0.34370384 +-0.30240612 +-0.14156400 +0.04175799 +-0.03394174 +0.00414204 +0.04434945 +2.50049031 +2.99934463 +1.48410055 +0.81656185 +-2.70189204 +-0.50924054 +-0.25520259 +0.33062088 +0.04280424 +0.01403652 +0.00451411 +0.00135173 +-7.27361999 +-1.04021857 +1.55579841 +0.02394022 +-0.21917205 +0.01310270 +-0.00500347 +-0.40074383 +-0.52212512 +-1.62873587 +0.07663852 +-0.34185771 +-0.04747453 +-0.01102384 +3.26040925 +-0.23108301 +1.78390231 +0.09129722 +-0.72167278 +-0.02529974 +-0.05595165 +2.39604571 +-0.56418748 +-0.01341577 +-1.30730662 +0.18468716 +0.08284412 +-1.07046509 +0.15583030 +-0.04142276 +0.29605741 +-0.39342654 +-0.17971874 +-0.07990865 +0.02447755 +-0.03265117 +0.03977698 +-0.19902148 +0.02937821 +0.06011102 +0.04438193 +-0.01246167 +0.06849532 +0.33535306 +0.14747984 +0.02446371 +-0.05348546 +-0.04312269 +0.24126710 +0.06378354 +-0.12875401 +-0.04412754 +-0.01704482 +-0.00335571 +0.05247709 +-0.00482933 +0.07275215 +0.12093912 +-0.03997359 +-0.01128909 +2.50041463 +-16.46930240 +-16.29119658 +-0.86610227 +-0.17808145 +-0.73836875 +-0.17846476 +0.08667322 +0.55116998 +0.00151447 +-0.02178823 +0.03355627 +2.76925814 +-3.99033429 +-6.27863343 +0.17446505 +0.10819782 +-0.52638900 +0.03089413 +-0.04477756 +-0.01023160 +0.02291411 +-0.00251391 +-0.09562147 +-2.97434601 +-0.20556882 +-2.31908464 +0.36594317 +-0.67667432 +-0.01214276 +-0.35486462 +0.59302653 +-0.28655881 +-0.43999240 +-0.13725555 +0.14044673 +-0.01215469 +-0.06146311 +0.92754648 +0.18301232 +0.00435245 +-0.53280439 +-0.10623343 +0.02819323 +0.06850042 +0.04274621 +-0.18232988 +-0.01016990 +-0.01140641 +-0.02238160 +0.02350062 +-0.21829809 +-0.23008162 +-0.01633778 +-0.00008424 +0.02759311 +0.20757825 +0.00565214 +0.01231673 +0.18710463 +0.00425730 +0.03044674 +0.04421910 +-0.00571097 +0.55118812 +-2.51988968 +-2.48745455 +-0.26299149 +0.00755685 +0.15447261 +-0.08217495 +-0.01366282 +0.05397331 +0.00018445 +0.00003300 +0.02380667 +0.45384460 +-0.02070452 +-0.19082629 +-0.03445572 +0.14043697 +0.01084097 +0.03186788 +0.45854390 +0.13702274 +-0.02059869 +0.00913774 +-0.06026909 +-0.02093708 +0.00779524 +0.00694438 +-0.01144349 +0.00753811 +-0.00131145 +-0.00084721 +-0.00429414 +2.34968337 +-2.10773196 +-1.79704785 +-2.54302858 +-0.09721638 +0.31887798 +-0.02155226 +-0.20336548 +0.00450035 +-0.03840940 +-0.06155193 +0.03627731 +-0.25081115 +-0.80756127 +0.25022496 +-2.27260600 +-0.04559033 +0.22984960 +0.27727599 +-0.38587853 +0.04491295 +-0.02247942 +-0.05939385 +0.13540637 +-0.04675906 +1.23878137 +5.04462951 +-4.89498433 +-0.28805501 +-0.41178862 +-0.11836143 +-0.21559313 +-0.06907814 +0.01990396 +0.15067246 +-0.03673620 +-0.32751568 +-0.75531558 +-1.15958554 +1.14062060 +-0.08447493 +0.84315956 +0.04483556 +-0.37025600 +0.00574932 +0.01327897 +-0.04626264 +-0.04156993 +1.44946753 +0.23478992 +-0.42196543 +0.02766085 +-0.13109292 +0.91692090 +-0.00333189 +-0.25411914 +-0.00792068 +0.05425539 +-0.44259275 +0.18327086 +0.86776773 +-0.01065602 +-0.08914058 +-1.41349318 +0.01646676 +-0.61898929 +0.00559110 +-0.03695370 +-0.06773731 +0.04723867 +-0.50812743 +-0.01979548 +0.53520517 +0.00793783 +0.10510688 +0.00620602 +-0.06496879 +0.00994780 +0.04768702 +-0.03170711 +0.02706663 +0.08166177 +0.01644663 +-0.04264001 +0.05458647 +-0.03349568 +0.02365847 +-0.05069995 +-0.04665171 +-0.96717844 +-1.49231689 +-1.75916003 +0.13165256 +0.24293871 +-0.06985534 +0.17465034 +0.01632520 +0.00396327 +-0.00014059 +0.00940428 +-0.32760150 +3.68467873 +1.64799131 +3.26616984 +-0.07146518 +-0.07090370 +0.44924930 +-0.09227132 +0.01789419 +-0.03376396 +-0.06646683 +-0.01071518 +-0.44763444 +1.51522860 +2.33904613 +-1.67727278 +-0.04974901 +-0.25140870 +0.13884767 +0.54211933 +-0.00776147 +-0.01364392 +0.02625864 +0.04512096 +-0.43965643 +0.17094317 +-0.25970235 +0.03685063 +0.17640066 +0.50857225 +-0.05625970 +0.34596672 +0.02156148 +-0.20533092 +-0.32506452 +0.04742309 +-0.09371502 +-0.01432926 +0.01296271 +0.13890766 +-0.03032247 +-0.20178385 +0.04753654 +0.09042299 +-0.02010092 +-0.04235583 +-0.04275597 +-0.04827636 +0.06354072 +0.04083251 +-0.00163763 +0.00739202 +-0.00467094 +0.00172975 +-0.44762870 +-0.43406662 +0.18456266 +-0.79985446 +0.00643653 +-0.02167785 +-0.07989301 +0.03168316 +-0.02042962 +0.01803716 +0.03205920 +0.00217850 +-0.01668230 +0.05129141 +0.08138957 +0.44451293 +0.01940973 +0.02856618 +-0.00602291 +-0.07475082 +0.00110209 +0.00466592 +-0.00284160 +-0.01440916 +-0.32511391 +0.06716337 +0.01089924 +-0.00019244 +-0.02662726 +-0.11205152 +-0.00010967 +0.01901339 +-0.00408880 +0.01089003 +0.02780762 +0.02096636 +-0.03674449 +0.00336768 +-0.01032036 +-0.00776852 +-0.00146340 +0.00753452 +-0.00005158 +-0.01296353 +-0.09747513 +0.85436204 +-7.28818087 +-0.82666626 +-0.20635958 +-0.68123948 +-0.85992381 +-0.02438712 +-0.00519061 +-2.72678421 +-1.03255129 +-0.37052408 +0.47217832 +-0.38534914 +-0.21372181 +0.16589393 +0.19871019 +-4.68481935 +0.59414404 +13.26990488 +0.99926692 +0.91393352 +2.76295056 +0.31637268 +0.06296914 +-0.12663518 +-0.29265751 +0.20085440 +0.00930974 +-0.18688763 +-0.09928370 +-0.03334081 +0.00058723 +-0.02739408 +-0.06000941 +-0.01595649 +-0.03621182 +-0.00902582 +0.02327568 +0.03235443 +-0.03033303 +-0.02942460 +-0.00583371 +-0.02236310 +-0.00181260 +0.00962836 +0.00390808 +15.58320629 +6.87726403 +-7.50371867 +2.46793895 +3.75154753 +0.16620594 +0.32635823 +1.75313166 +-0.44001999 +-0.47524746 +0.16705372 +-0.46089991 +-0.84175983 +-0.07745961 +-0.08605702 +-0.10642346 +0.05842744 +-0.15666010 +-0.17216140 +0.01454364 +-0.00125202 +0.00016888 +0.02756443 +-0.02901467 +-0.07047330 +0.00901092 +0.00967598 +0.05746374 +-0.01647344 +-0.04310683 +-4.76751618 +4.13614394 +12.38103843 +-1.31774295 +-2.07496046 +-0.25975312 +0.37072296 +1.75210136 +-0.14469386 +-0.77740528 +0.20814226 +-0.59518254 +-0.59525440 +0.59295901 +0.69606814 +-0.14853894 +0.10842636 +0.05574174 +-0.16649437 +-0.24877475 +0.01221849 +-0.03885747 +-0.05797771 +0.12667121 +0.13944852 +0.00305157 +0.01686946 +-0.05905191 +-0.04466155 +0.07389150 +13.19721405 +2.57295054 +-15.09633100 +-2.45480277 +-0.53296163 +0.36211579 +-0.14652341 +-0.42783966 +0.00978670 +0.04812434 +-0.00377508 +-0.01541302 +-0.00018130 +-0.00104160 +-0.00076553 +-0.00666705 +-12.75263258 +-0.79107862 +2.78874155 +0.32854633 +-0.46077364 +-0.11614865 +-0.35497871 +0.15787217 +0.01426222 +-0.02758652 +-0.05725233 +-0.09579850 +0.00488096 +0.00258900 +0.00073537 +-0.00166280 +-3.67134204 +-3.28414961 +6.30492703 +2.68866390 +0.05633901 +0.10627225 +-0.06036687 +0.08065585 +-0.00658649 +0.02843383 +-0.00364318 +0.01465277 +0.00786032 +0.00012711 +0.00335462 +-0.01083431 +7.31308673 +-6.15187813 +-13.44913012 +1.11486384 +0.06336680 +0.35863399 +-0.71659233 +-0.07577718 +0.01132542 +-0.06744244 +-0.01945648 +0.08003828 +0.00223529 +-0.00419785 +0.00863552 +-0.01153833 +-4.77091927 +-1.39977675 +4.31464193 +-0.28204244 +-0.09505331 +0.08402330 +-0.11973141 +-0.10473838 +-0.00660550 +-0.00777157 +0.01057242 +0.01706281 +5.57822127 +0.66811929 +1.63943252 +0.42248441 +0.05743434 +-0.61456520 +0.05112145 +0.01227079 +0.03153000 +-0.01282658 +-0.01250277 +0.01658307 +1.62128808 +-4.60495548 +1.24663506 +-0.54786844 +0.77457435 +-0.17663609 +-0.00710096 +-0.13283947 +0.02822758 +0.02284935 +-0.02276115 +0.02282957 +-0.68175894 +-0.37495558 +0.43646220 +0.09715519 +0.35446807 +0.00282982 +-0.00538361 +-1.17920333 +-0.32252827 +-0.52789494 +0.01179433 +0.31158276 +0.01327732 +-0.00478029 +2.46795929 +0.62411720 +-0.26971985 +-0.02262438 +0.35216417 +-0.03339940 +-0.01351096 +-0.06748017 +0.14655786 +-0.01202831 +-0.18153307 +-0.02710960 +-0.00712852 +0.56035618 +-0.17684903 +0.00419244 +0.04068614 +-0.10929536 +0.07666852 +-0.00884965 +0.00731785 +0.00077674 +0.08306324 +-0.02463241 +0.08638055 +-0.01268784 +0.00959109 +0.02802242 +0.04385078 +-0.04158818 +-0.01285174 +-0.00410011 +0.00205490 +-0.02009682 +0.03832413 +0.01218544 +-0.05199207 +-0.05541607 +-0.01363857 +-0.07152324 +-0.06133357 +0.01044581 +-0.06526088 +0.01805471 +-0.02612463 +0.03023811 +1.62141379 +-7.88209486 +-10.29876302 +0.36927897 +0.48356036 +-0.29825576 +-0.18099495 +0.03109757 +0.20512545 +-0.03072922 +0.01395296 +-0.01985224 +0.89733025 +1.06770809 +-0.67541656 +-0.27253513 +-0.40784366 +-0.04611414 +0.10843511 +0.01962636 +-0.07860010 +-0.00300129 +0.01860558 +-0.01210578 +-5.53474936 +0.83810811 +0.85014831 +0.02913805 +1.78432090 +0.09018981 +-0.00037797 +2.48478301 +0.85639603 +0.21789284 +-0.00483838 +0.14683494 +-0.03866463 +-0.03346477 +-0.42397504 +0.23582860 +0.10897520 +1.20444463 +-0.04393106 +-0.02029853 +0.04385060 +-0.40015251 +-0.19764867 +0.01283605 +0.01415534 +-0.01494898 +-0.08270028 +-0.02499591 +0.19287745 +-0.02319121 +0.01894170 +0.02954611 +-0.08880037 +0.04478452 +0.00683795 +-0.09804689 +-0.01039129 +-0.03928871 +0.01394084 +-0.00206229 +-2.89482824 +2.07593645 +4.86208903 +0.07676632 +-0.09412445 +-0.15178857 +-0.02417975 +0.06149516 +0.08300153 +-0.00106251 +0.00192573 +0.00029719 +0.11771957 +-0.09865841 +0.15100154 +-0.01290518 +0.12851474 +-0.01870065 +-0.03643572 +-0.00474460 +-0.10312193 +0.02957379 +-0.01009009 +-0.10249983 +0.08989636 +0.00311426 +-0.00268090 +-0.00441530 +0.02812091 +0.00233185 +-0.04549622 +0.01089558 +0.63755991 +-0.37338025 +-0.42908924 +0.65456164 +0.02184184 +-0.06208077 +-0.06394842 +0.11403701 +-0.01303324 +-0.02264909 +-0.00719555 +0.00266779 +-1.05031009 +0.88832927 +0.00060896 +-0.20638434 +-0.08883774 +0.02856695 +0.08763294 +0.05588140 +-0.01125637 +-0.00909646 +-0.00198795 +0.03432767 +-0.16209150 +0.54271112 +1.43132754 +-1.46397495 +-0.01254254 +-0.07038408 +0.26268183 +-0.00349978 +0.01516473 +-0.01993408 +0.00241813 +-0.01124414 +-0.28135622 +3.51135176 +-0.04684420 +-2.27407402 +0.00363664 +-0.11543885 +0.06778269 +0.17131869 +-0.01143850 +-0.01187755 +0.01020939 +-0.02930632 +0.29594443 +0.13856785 +-0.07216977 +0.00787640 +0.06681985 +-0.74984456 +-0.02983110 +-0.10494807 +0.01446143 +-0.00281669 +-0.46974930 +-0.00876556 +-0.06283225 +-0.01217404 +-0.02452131 +-0.29184991 +-0.05464296 +0.04785463 +0.00200802 +0.01799543 +0.02076448 +0.02528195 +0.12936593 +0.00332901 +-0.07375273 +-0.00470151 +-0.03153928 +-0.00276182 +-0.00430045 +0.00011476 +0.01722544 +0.01218505 +-0.02943887 +-0.01689846 +0.05608195 +-0.00234314 +0.00419330 +-0.00028544 +-0.03556356 +0.01120518 +-0.16212356 +-0.64889734 +-0.41530080 +-0.29649990 +-0.10040792 +0.05964101 +-0.09915401 +0.09223368 +-0.01680331 +0.00057172 +0.01140707 +0.01280370 +-0.28138396 +2.52861160 +1.45197795 +1.14309130 +0.09417680 +0.11141494 +-0.15838744 +-0.22775541 +-0.01773664 +0.04287791 +0.01351005 +0.02257759 +-0.03581218 +-1.43021295 +0.14715766 +1.00390066 +0.06833330 +0.12269714 +-0.06354903 +-0.36374334 +0.01566673 +-0.00197445 +-0.02938860 +0.03116312 +-0.46960203 +-0.08975844 +0.09752249 +0.02772614 +0.01846462 +1.98336014 +-0.15493059 +-0.05465432 +-0.00294999 +0.35505631 +-0.16002329 +-0.07466787 +-0.18448104 +0.00069583 +-0.01776289 +0.15226867 +0.05288375 +-0.14462053 +0.00387180 +-0.12261076 +0.00392106 +-0.01011891 +0.02869574 +-0.02673693 +0.01808578 +0.02173352 +0.01637590 +-0.00199328 +0.00497797 +0.01188559 +-0.03582363 +-0.20411004 +-0.08010834 +-0.64287530 +-0.02741396 +-0.10340939 +0.00265383 +0.06647046 +0.00267439 +-0.01616359 +-0.00610779 +-0.01265756 +0.29768930 +0.08353170 +-0.47069089 +-0.33610737 +-0.00549591 +0.01385819 +0.07419912 +0.03631025 +-0.00627713 +0.02016034 +0.02114165 +-0.02313183 +-0.16035048 +0.06331549 +0.07288559 +-0.00300659 +-0.00577034 +-0.06781825 +-0.02263191 +-0.05302590 +0.00132958 +-0.01211358 +0.00150843 +0.00250974 +-0.02281968 +-0.00973680 +0.00988509 +0.01084213 +-0.01471712 +0.00793107 +-0.00985926 +0.01912716 From 295171389f3e9bfaadcdc679e7f34777a59e93a0 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:37:28 -0500 Subject: [PATCH 04/21] working LAMMPS POD force descriptors --- src/BasisSystems/POD/lammps_pod.jl | 90 ++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 6 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index f9d3c13..f823737 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -2,12 +2,17 @@ using LAMMPS using Printf: @sprintf -# species map can conceivably be separate from species in pod_spec... -struct LAMMPS_POD <: BasisSystem +# species map can differ in order from species in pod_spec +# tradeoff between RefValue for the cache vs. just using a mutable struct? +mutable struct LAMMPS_POD <: BasisSystem lmp::LMP param_file::String species_map::Vector{Symbol} # index corresponds to lammps type pod_spec::Union{POD,Nothing} + type_cache::Matrix{Int32} # extra logic for compute dd, this is the output type we receive + c_dd_cache::Int64 # extra logic for compute dd + + LAMMPS_POD(lmp,param_file,species_map,pod_spec) = new(lmp,param_file,species_map,pod_spec,Int32[-1;;],-1) end function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_param_file=false) @@ -42,15 +47,14 @@ function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol command(lmp, "neighbor 0.5 bin") command(lmp, "neigh_modify delay 0 every 1 check no") - command(lmp, "region main prism 0.0 1.0 0.0 1.0 0.0 1.0 0.0 0.0 0.0") + command(lmp, "region main prism 0.0 2.0 0.0 2.0 0.0 2.0 0.0 0.0 0.0") # dummy triclinic system command(lmp, "create_box $(num_types) main") - + # Does the cutoff matter here? If it does, need to pass in cutoff, which means I'd have to parse from param file command(lmp, "pair_style zero 10.0") command(lmp, "pair_coeff * * ") command(lmp, """compute ld all pod/atom $(param_file) "" "" $(atomtype_str)""") - command(lmp, """compute dd all podd/atom $(param_file) "" "" $(atomtype_str)""") lmp end @@ -64,7 +68,7 @@ function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) atom_syms = atomic_symbol(A) unq_syms = unique(atom_syms) @assert all(in.(unq_syms, (pod.species_map,))) - atom_types = map(sym->findfirst(isequal(sym),pod.species_map), atom_syms) + atom_types = map(sym->findfirst(isequal(sym),pod.species_map), atom_syms) # atomic sybol --> lammps type based on order of symbol in pod.species_map # the way POD is constructed, the number of types initialized should equal the number of species modelled by POD # However, some systems will have only a subset of these species, so need to account for that here @@ -140,3 +144,77 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) final_ld end + +function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) + lmp = pod.lmp + + atomtype_str = "" + for elem_symbol in pod.species_map + atomtype_str = atomtype_str * " " * string(elem_symbol) + end + + setup_lammps_system!(A,pod) + atomids = extract_atom(lmp, "id") + sort_idxs = sortperm(atomids) + raw_types = extract_atom(lmp,"type") + sorted_types = raw_types[sort_idxs,:] + + #= Why is the following necessary? + The output of podd/atom depends on the number and types of atoms in the system, so if that changes, this compute needs to change. + (When the compute is defined, it looks at the current atom list to figure out it's output) + Unfortunately, uncompute'ing a compute id does not free it up, and that compute id cannot be reused, hence this extra logic + + For standard MD simulations, there should only be one of these podd/atom computes (unless the simulation can have variable numbers of atoms). + + However, using a single LAMMPS_POD instance for computing descriptors of a training set may result in many of these computes. + In the worst case scenario, for randomized diverse training sets, every time the next configuration has different #/types of atoms, a new compute is added. + stochastic batch methods may be particularly problematic (at least if descriptors aren't cached). + + I'm not sure if there's any huge consequence for having many computes in terms of lammps performance (or if there are a maximum number of computes). + Testing is needed + =# + if sorted_types !== pod.type_cache + pod.type_cache = sorted_types # this should be OK because sorted_type is a copy of the lammps types array + if pod.c_dd_cache == -1 + pod.c_dd_cache = 0 + command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") + else + command(lmp, "uncompute dd$(pod.c_dd_cache)") + pod.c_dd_cache += 1 + command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") + end + end + + command(lmp, "run 0") + + + # This block is needed to set up the full force descriptor array (i.e., across all elements) + # TODO: I probably shouldn't do this every single force/energy call... maybe set up a dummy system to get num descriptors during init + raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' + num_pod_types = length(pod.species_map) + num_atoms = size(raw_ld)[1] + num_perelem_ld = size(raw_ld)[2] + 1 # including 1-body terms + total_num_ld = num_pod_types*(num_perelem_ld) + final_dd = [[zeros(total_num_ld) for _ in 1:3] for __ in 1:num_atoms] # for consistency, vec{vec{vec}} + + raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' + sorted_dd = raw_dd[sort_idxs,:] + + for i in 1:num_atoms + for alpha in 1:3 + for j in 1:num_atoms + jtype = sorted_types[j] + fstart = (jtype-1)*(num_perelem_ld)+2 # +2 accounts for both skipping 1-body term and 1-indexing + fend = fstart + num_perelem_ld -2 + dd_start = (i-1)*3*(num_perelem_ld-1) + (alpha-1)*(num_perelem_ld-1) +1 + dd_end = dd_start + (num_perelem_ld-1) -1 + + final_dd[i][alpha][fstart:fend] += sorted_dd[j,dd_start:dd_end] + end + end + end + + command(lmp,"delete_atoms group all") + + final_dd +end \ No newline at end of file From 7f1f9ecacab7932c3c7f73e1e7a15573391ba70a Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Tue, 12 Mar 2024 10:44:37 -0400 Subject: [PATCH 05/21] update tests for LAMMPS POD implementation --- test/POD/pod_test.jl | 18 +++++++++++++++++- test/runtests.jl | 5 +++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/test/POD/pod_test.jl b/test/POD/pod_test.jl index 5750985..7355e3e 100644 --- a/test/POD/pod_test.jl +++ b/test/POD/pod_test.jl @@ -16,7 +16,23 @@ targetting macOS (arm64-apple-darwin22.4.0) using the eapod branch of the cesmix-mit/lammps @ the following commit: https://github.com/cesmix-mit/lammps/commit/adf9fc11f17efaba7b62ba332b5c5f5c9f579dee =# +pe_ref = -111.05104842466731441 +fref= [ [-0.02746378868026378, -0.13394934659545488, 0.08657660722828064], + [ 0.02746406274624429, -0.13395092253488361, -0.08652751636541850], + [ 0.02745734695881662, 0.13395043848863539, -0.08657510305372776], + [-0.02746261612019874, 0.13395036752584755, 0.08652643153718376], + [ 0.09241905860511784, 0.28929482830562214, 0.27397806493641080], + [-0.09240998240311563, 0.28930056117127434, -0.27396630756291218], + [-0.09241824026227247, -0.28929473367162378, -0.27397790785541454], + [ 0.09241063937722754, -0.28930102483050857, 0.27396588530562915], + [-0.28422330256274186, 0.18503621409597582, -0.01150920040065329], + [ 0.28421014150064283, 0.18502385240845623, 0.01148476431584359], + [ 0.28422541598839063, -0.18503778824998007, 0.01150954295384406], + [-0.28420873514784484, -0.18502244611335428, -0.01148526103906378]] hfo2_lbp = LBasisPotential(lmp_pod, "./POD/sample_6body_2elem_coeffs.pod") pe = potential_energy(sample_hfo2_sys,hfo2_lbp) -pe ≈ -111.05104842466731441 +@test pe ≈ pe_ref + +f = force(sample_hfo2_sys, hfo2_lbp) +@test f ≈ fref \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 6f3f2e1..2588235 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -52,4 +52,9 @@ include("mocks.jl") @time @testset "ACE" begin include("ACE/ace_test.jl") end + + @time @testset "POD" begin + include("POD/pod_test.jl") + end + end From 63ce2068b04c1d86961fc4725b72179df68167b8 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:04:55 -0400 Subject: [PATCH 06/21] after much trial and error, resetting the pair style every force call seems to fix the compute podd/atom command --- src/BasisSystems/POD/lammps_pod.jl | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index f823737..e67b412 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -60,10 +60,10 @@ function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol end function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) - # TODO: Will eventually need to ensure unit consistency - # For now, just trusting that it's correct. + # TODO: Will eventually need to ensure unit consistency + # For now, just trusting that it's correct. - lmp = pod.lmp + lmp = pod.lmp atom_syms = atomic_symbol(A) unq_syms = unique(atom_syms) @@ -173,12 +173,14 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) I'm not sure if there's any huge consequence for having many computes in terms of lammps performance (or if there are a maximum number of computes). Testing is needed =# - if sorted_types !== pod.type_cache + if sorted_types != pod.type_cache pod.type_cache = sorted_types # this should be OK because sorted_type is a copy of the lammps types array if pod.c_dd_cache == -1 + println("first compute!") pod.c_dd_cache = 0 command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") else + println("New compute") command(lmp, "uncompute dd$(pod.c_dd_cache)") pod.c_dd_cache += 1 command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") @@ -209,12 +211,16 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) dd_start = (i-1)*3*(num_perelem_ld-1) + (alpha-1)*(num_perelem_ld-1) +1 dd_end = dd_start + (num_perelem_ld-1) -1 - final_dd[i][alpha][fstart:fend] += sorted_dd[j,dd_start:dd_end] + final_dd[i][alpha][fstart:fend] += sorted_dd[j,dd_start:dd_end] end end end command(lmp,"delete_atoms group all") + command(lmp, "pair_style none") + command(lmp, "pair_style zero 10.0") + command(lmp, "pair_coeff * * ") + final_dd end \ No newline at end of file From bd9960aaef06585a0ecd125c190202876c12788d Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Mon, 18 Mar 2024 16:59:36 -0400 Subject: [PATCH 07/21] initialize the number of local descriptors at the beginning --- src/BasisSystems/POD/lammps_pod.jl | 31 ++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index e67b412..d27725a 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -9,18 +9,20 @@ mutable struct LAMMPS_POD <: BasisSystem param_file::String species_map::Vector{Symbol} # index corresponds to lammps type pod_spec::Union{POD,Nothing} + num_perelem_ld::Int64 type_cache::Matrix{Int32} # extra logic for compute dd, this is the output type we receive c_dd_cache::Int64 # extra logic for compute dd - LAMMPS_POD(lmp,param_file,species_map,pod_spec) = new(lmp,param_file,species_map,pod_spec,Int32[-1;;],-1) + LAMMPS_POD(lmp,param_file,species_map,pod_spec,num_perelem_ld) = new(lmp,param_file,species_map,pod_spec,num_perelem_ld,Int32[-1;;],-1) end function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_param_file=false) lmp = initialize_pod_lammps(param_file,lammps_species) + num_perelem_ld = get_num_perelem_ld(lmp,lammps_species) if parse_param_file println("Sorry, I haven't implementing parsing POD parameter files yet") else - lmp_pod = LAMMPS_POD(lmp,param_file,lammps_species,nothing) + lmp_pod = LAMMPS_POD(lmp,param_file,lammps_species,nothing,num_perelem_ld) @warn "Until POD param parser implemented, assuming species_map is the same order as species in POD parameter file" end lmp_pod @@ -59,6 +61,23 @@ function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol lmp end +function get_num_perelem_ld(lmp::LMP, lammps_species::Vector{Symbol}) + # These masses will get overwritten + for i in 1:length(lammps_species) + command(lmp, "mass $(i) 1.0") + end + # need to have one dummy atom for this to work + command(lmp, "create_atoms 1 single 0.25 0.25 0.25") + command(lmp, "run 0") + + raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' + num_perelem_ld = size(raw_ld)[2] + 1 # including 1-body terms + + command(lmp,"delete_atoms group all") + + num_perelem_ld +end + function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) # TODO: Will eventually need to ensure unit consistency # For now, just trusting that it's correct. @@ -189,13 +208,9 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) command(lmp, "run 0") - - # This block is needed to set up the full force descriptor array (i.e., across all elements) - # TODO: I probably shouldn't do this every single force/energy call... maybe set up a dummy system to get num descriptors during init - raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' num_pod_types = length(pod.species_map) - num_atoms = size(raw_ld)[1] - num_perelem_ld = size(raw_ld)[2] + 1 # including 1-body terms + num_atoms = length(A) + num_perelem_ld = pod.num_perelem_ld total_num_ld = num_pod_types*(num_perelem_ld) final_dd = [[zeros(total_num_ld) for _ in 1:3] for __ in 1:num_atoms] # for consistency, vec{vec{vec}} From 6a79e43afc86387c9a326a667ceb50b983fa0b38 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 21 Mar 2024 17:26:31 -0400 Subject: [PATCH 08/21] wrapping atoms, fixing the change_box command --- src/BasisSystems/POD/lammps_pod.jl | 45 +++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 4 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index d27725a..376cb4a 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -28,6 +28,8 @@ function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_pa lmp_pod end +Base.length(lmp_pod::LAMMPS_POD) = length(lmp_pod.species_map)*lmp_pod.num_perelem_ld + function LBasisPotential(lmp_pod::LAMMPS_POD, coeff_fname::String) coeffs = vec(readdlm(coeff_fname, ' '; skipstart=1)) LBasisPotential(coeffs,zeros(1),lmp_pod) @@ -108,24 +110,32 @@ function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) if !iszero(bbox[2][1]) bbound_str = bbound_str * " xy final" * (@sprintf " %.27f" bbox[2][1]) + else + bbound_str = bbound_str * " xy final" * (@sprintf " %.27f" 0.0) end if !iszero(bbox[3][1]) bbound_str = bbound_str * " xz final" * (@sprintf " %.27f" bbox[3][1]) + else + bbound_str = bbound_str * " xz final" * (@sprintf " %.27f" 0.0) end if !iszero(bbox[3][2]) bbound_str = bbound_str * " yz final" * (@sprintf " %.27f" bbox[3][2]) + else + bbound_str = bbound_str * " yz final" * (@sprintf " %.27f" 0.0) end bbound_str = bbound_str * " boundary p p p" command(lmp, "change_box all" * bbound_str) - atom_pos = ustrip.(position(A)) - for i in 1:length(atom_pos) + # LAMMPS needs wrapped coordinates to create_atoms + # If this incurs too much a perf penalty, can check to see if needed + wrapped_pos = wrap_positions(A) + for i in axes(wrapped_pos,2) xyz_str = "" for j in 1:3 - xyz_str = xyz_str * @sprintf " %.27f" atom_pos[i][j] + xyz_str = xyz_str * @sprintf " %.27f" wrapped_pos[j,i] end command(lmp, "create_atoms $(atom_types[i]) single" * xyz_str) end @@ -138,6 +148,7 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) atomids = extract_atom(lmp, "id") sort_idxs = sortperm(atomids) + @assert length(A) == length(atomids) raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' raw_types = extract_atom(lmp,"type") @@ -174,6 +185,8 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) setup_lammps_system!(A,pod) atomids = extract_atom(lmp, "id") + @assert length(A) == length(atomids) "$(length(A)) vs $(length(atomids))" + sort_idxs = sortperm(atomids) raw_types = extract_atom(lmp,"type") sorted_types = raw_types[sort_idxs,:] @@ -238,4 +251,28 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) command(lmp, "pair_coeff * * ") final_dd -end \ No newline at end of file +end + + +#This should live somewhere else eventually +function wrap_positions(A::AbstractSystem) + cart_pos = reduce(hcat,ustrip.(position(A))) + + cry_to_cart = reduce(hcat, ustrip.(bounding_box(A))) # effectively performs transpose of cell matrix + cart_to_cry = inv(cry_to_cart) + + cry_pos = cart_to_cry*cart_pos + new_cry_pos =zeros(size(cry_pos)) + for i in axes(new_cry_pos,2) + new_cry_pos[:,i] = cry_pos[:,i] + for j in 1:3 + if new_cry_pos[j,i] > 1.0 + new_cry_pos[j,i] -= 1.0 + elseif new_cry_pos[j,i] < 0.0 + new_cry_pos[j,i] += 1.0 + end + end + end + new_cart_pos = cry_to_cart * new_cry_pos + new_cart_pos +end From c46c192a566b7ccb638f9a7e44facaabe1b291bb Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:22:36 -0400 Subject: [PATCH 09/21] no SNAP tests, fixing regression by resetting pair style everywhere extract is called --- src/BasisSystems/POD/lammps_pod.jl | 9 ++++++++- test/runtests.jl | 10 +++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 376cb4a..d32d71d 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -77,6 +77,10 @@ function get_num_perelem_ld(lmp::LMP, lammps_species::Vector{Symbol}) command(lmp,"delete_atoms group all") + command(lmp, "pair_style none") + command(lmp, "pair_style zero 10.0") + command(lmp, "pair_coeff * * ") + num_perelem_ld end @@ -85,6 +89,7 @@ function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) # For now, just trusting that it's correct. lmp = pod.lmp + command(lmp,"delete_atoms group all") atom_syms = atomic_symbol(A) unq_syms = unique(atom_syms) @@ -170,7 +175,9 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) final_ld[i][start:stop] = sorted_ld[i,:] end - command(lmp,"delete_atoms group all") + command(lmp, "pair_style none") + command(lmp, "pair_style zero 10.0") + command(lmp, "pair_coeff * * ") final_ld end diff --git a/test/runtests.jl b/test/runtests.jl index 2588235..c38ef87 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -43,11 +43,11 @@ include("mocks.jl") include("integration/lj_clusters/lj_1000.jl") end - @time @testset "SNAP" begin - include("SNAP/snap_test_single_element.jl") - include("SNAP/snap_test_multi_element.jl") - # include("SNAP/snap_test_performance.jl") - end + #@time @testset "SNAP" begin + # include("SNAP/snap_test_single_element.jl") + # include("SNAP/snap_test_multi_element.jl") + # # include("SNAP/snap_test_performance.jl") + #end @time @testset "ACE" begin include("ACE/ace_test.jl") From e8e396e6c64d4a5c0300a9ce204ed10610ff8d0d Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 4 Apr 2024 11:48:01 -0400 Subject: [PATCH 10/21] including atom_modify sort for every new structure --- src/BasisSystems/POD/lammps_pod.jl | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index d32d71d..49f139f 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -1,6 +1,7 @@ using LAMMPS using Printf: @sprintf +using LinearAlgebra: norm # species map can differ in order from species in pod_spec # tradeoff between RefValue for the cache vs. just using a mutable struct? @@ -105,7 +106,8 @@ function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) command(lmp, "mass $(atype) $(mass)") end - bbox = ustrip.(bounding_box(A)) + # Doing it this way avoids the ReinterpretArray type, which is annoying for dispatch on the longest_diag fn + bbox = [ustrip.(box_arr) for box_arr in bounding_box(A)] @assert iszero([bbox[1][2],bbox[1][3],bbox[2][3]]) #needs to conform to lammps triclinic requirements bbound_str = "" cart_name = ["x", "y", "z"] @@ -134,6 +136,10 @@ function setup_lammps_system!(A::AbstractSystem, pod::LAMMPS_POD) bbound_str = bbound_str * " boundary p p p" command(lmp, "change_box all" * bbound_str) + max_diag = longest_diagonal_length(bbox[1],bbox[2],bbox[3]) + sort_binsize = 0.5*max_diag + 1.0 # half the max diag length, plus a buffer + command(lmp, "atom_modify sort 1 $(sort_binsize)") + # LAMMPS needs wrapped coordinates to create_atoms # If this incurs too much a perf penalty, can check to see if needed wrapped_pos = wrap_positions(A) @@ -283,3 +289,16 @@ function wrap_positions(A::AbstractSystem) new_cart_pos = cry_to_cart * new_cry_pos new_cart_pos end + + +function longest_diagonal_length(a::Vector{T}, b::Vector{T},c::Vector{T}) where T <: Real + # the four possible diagonals in the parallelepiped + d1 = a + b + c + d2 = a + b - c + d3 = a - b + c + d4 = a - b - c + + max_length = maximum(map(x->norm(x), [d1,d2,d3,d4])) + + max_length +end \ No newline at end of file From 20733581c7f2bcab566ff8b7667b794006b193f3 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:02:41 -0400 Subject: [PATCH 11/21] fixing type stability, ensuring non-allocating nested for loop in compute force descriptors, leading to better speed performance --- src/BasisSystems/POD/lammps_pod.jl | 36 +++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 49f139f..ad91ba7 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -197,12 +197,14 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) end setup_lammps_system!(A,pod) + num_atoms = length(A)::Int64 atomids = extract_atom(lmp, "id") - @assert length(A) == length(atomids) "$(length(A)) vs $(length(atomids))" + @assert num_atoms == length(atomids) - sort_idxs = sortperm(atomids) - raw_types = extract_atom(lmp,"type") - sorted_types = raw_types[sort_idxs,:] + sort_idxs = sortperm(atomids)::Vector{Int64} + @assert sort_idxs == [Int64(i) for i in 1:num_atoms] #so we can use raw_dd + raw_types = extract_atom(lmp,"type")::Vector{Int32} + sorted_types = raw_types[sort_idxs,:]::Array{Int32} #= Why is the following necessary? The output of podd/atom depends on the number and types of atoms in the system, so if that changes, this compute needs to change. @@ -221,11 +223,9 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) if sorted_types != pod.type_cache pod.type_cache = sorted_types # this should be OK because sorted_type is a copy of the lammps types array if pod.c_dd_cache == -1 - println("first compute!") pod.c_dd_cache = 0 command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") else - println("New compute") command(lmp, "uncompute dd$(pod.c_dd_cache)") pod.c_dd_cache += 1 command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") @@ -235,30 +235,31 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) command(lmp, "run 0") num_pod_types = length(pod.species_map) - num_atoms = length(A) num_perelem_ld = pod.num_perelem_ld total_num_ld = num_pod_types*(num_perelem_ld) final_dd = [[zeros(total_num_ld) for _ in 1:3] for __ in 1:num_atoms] # for consistency, vec{vec{vec}} - raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' - sorted_dd = raw_dd[sort_idxs,:] + raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)::Array{Float64,2} + raw_dd = raw_dd' for i in 1:num_atoms + fddi = final_dd[i] for alpha in 1:3 + fddialph = fddi[alpha] for j in 1:num_atoms - jtype = sorted_types[j] - fstart = (jtype-1)*(num_perelem_ld)+2 # +2 accounts for both skipping 1-body term and 1-indexing - fend = fstart + num_perelem_ld -2 - dd_start = (i-1)*3*(num_perelem_ld-1) + (alpha-1)*(num_perelem_ld-1) +1 - dd_end = dd_start + (num_perelem_ld-1) -1 + jtype = sorted_types[j] + fstart = (jtype-1)*(num_perelem_ld)+2 # +2 accounts for both skipping 1-body term and 1-indexing + dd_start = (i-1)*3*(num_perelem_ld-1) + (alpha-1)*(num_perelem_ld-1) +1 - final_dd[i][alpha][fstart:fend] += sorted_dd[j,dd_start:dd_end] + #non-allocating, essential to prevent too many GC calls + for k in 1:num_perelem_ld-1 + fddialph[fstart+k-1] += raw_dd[j,dd_start+k-1] + #@inbounds fddialph[fstart+k-1] += raw_dd[j,dd_start+k-1] #is 2x speedup worth the risk? + end end end end - command(lmp,"delete_atoms group all") - command(lmp, "pair_style none") command(lmp, "pair_style zero 10.0") command(lmp, "pair_coeff * * ") @@ -290,7 +291,6 @@ function wrap_positions(A::AbstractSystem) new_cart_pos end - function longest_diagonal_length(a::Vector{T}, b::Vector{T},c::Vector{T}) where T <: Real # the four possible diagonals in the parallelepiped d1 = a + b + c From eafc492532997987f3a585acea123d87c4eabf60 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Fri, 5 Apr 2024 13:05:32 -0400 Subject: [PATCH 12/21] stress testing the LAMMPS POD implementation across diverse configs --- test/POD/pod_test.jl | 44 +- test/POD/stress_test_hfo2_configs.xyz | 1031 +++++++++++++++++++++++++ 2 files changed, 1074 insertions(+), 1 deletion(-) create mode 100644 test/POD/stress_test_hfo2_configs.xyz diff --git a/test/POD/pod_test.jl b/test/POD/pod_test.jl index 7355e3e..7f50dcf 100644 --- a/test/POD/pod_test.jl +++ b/test/POD/pod_test.jl @@ -1,4 +1,5 @@ using AtomsIO +#using PotentialLearning sample_hfo2_sys = load_system("./POD/sample_monoclinic_HfO2.xyz") @@ -35,4 +36,45 @@ pe = potential_energy(sample_hfo2_sys,hfo2_lbp) @test pe ≈ pe_ref f = force(sample_hfo2_sys, hfo2_lbp) -@test f ≈ fref \ No newline at end of file +@test f ≈ fref + + +#= Reference Stress Test +During preliminary testing, many isues arised where the first configuration would produce correct +forces, but later configurations would result in junk forces. Likewise, there were issues that +only appeared with large configurations, or orthogonal systems, etc. +TODO: wrapped atom example, gas example beyond cutoff + +Reference value obtained with LAMMPS compiled w/ Apple clang version 12.0.5 (clang-1205.0.22.11) +targetting macOS (arm64-apple-darwin22.4.0) + +using the eapod branch of the cesmix-mit/lammps @ the following commit: +https://github.com/cesmix-mit/lammps/commit/adf9fc11f17efaba7b62ba332b5c5f5c9f579dee +=# + +ref_configs = load_trajectory("./POD/stress_test_hfo2_configs.xyz") +@testset "LAMMPS POD Stress Test, First Order" begin + lmp_pod2 = LAMMPS_POD("./POD/sample_6body_hfo2_param.pod", [:Hf,:O]) + hfo2_lbp2 = LBasisPotential(lmp_pod2, "./POD/sample_6body_2elem_coeffs.pod") + + @testset for config_num in eachindex(ref_configs) + config = ref_configs[config_num] + check_energy = potential_energy(config,hfo2_lbp2) + @test check_energy ≈ config.system_data.energy + check_forces = force(config, hfo2_lbp2) + @test check_forces ≈ config.atom_data.forces + end +end + +@testset "LAMMPS POD Stress Test, Reverse Order" begin + lmp_pod3 = LAMMPS_POD("./POD/sample_6body_hfo2_param.pod", [:Hf,:O]) + hfo2_lbp3 = LBasisPotential(lmp_pod3, "./POD/sample_6body_2elem_coeffs.pod") + + @testset for config_num in reverse(eachindex(ref_configs)) + config = ref_configs[config_num] + check_energy = potential_energy(config,hfo2_lbp3) + @test check_energy ≈ config.system_data.energy + check_forces = force(config, hfo2_lbp3) + @test check_forces ≈ config.atom_data.forces + end +end \ No newline at end of file diff --git a/test/POD/stress_test_hfo2_configs.xyz b/test/POD/stress_test_hfo2_configs.xyz new file mode 100644 index 0000000..d06b5ac --- /dev/null +++ b/test/POD/stress_test_hfo2_configs.xyz @@ -0,0 +1,1031 @@ +128 +Lattice="14.2121085805106002 0.0000000000000000 0.0000000000000000 0.0000000000000000 14.2121085805106002 0.0000000000000000 0.0000000000000000 0.0000000000000000 14.2121085805106002" Properties=species:S:1:pos:R:3:forces:R:3 stress="4739.5200950459202431 641.4413973324733433 -333.5767336464682558 641.4413973324733433 4750.0095571128704250 -715.0904288559202087 -333.5767336464682558 -715.0904288559202087 4829.1090560195725629" pbc="T T T" energy=-911.5958055704877552 +Hf 0.113482269999999996201722752 14.208134870510599867543533037 0.049020399999999998696953440 -0.658250065487487212578798790 0.517734741022175315450226663 0.396960297925344596237096084 +Hf 1.825312269999999958969283398 1.794469150000000068345684667 1.812920730000000091308720584 -0.025152687055754255340822567 0.110969105121514199918664190 0.060987284297825711254503744 +Hf 14.185961140510599420849757735 0.006710960000000000189035454 3.466320490000000198449470190 0.142978750586908787134632348 -0.086273930995480613281856108 0.292449888785383305123133368 +Hf 1.709510590000000052057771427 1.838432889999999986230250215 5.252931770000000000209183781 -0.005945809240556071406658134 -0.592528055040799639385795672 0.245157515804232950529240043 +Hf 14.101160330510600360298667511 0.011354049999999999212563218 7.067073320000000435925358033 0.662311621234409342307003499 -0.386250841881200401850549042 0.442035163261247421306876504 +Hf 1.804268399999999994420818439 1.846513889999999991076151673 8.851468929999999346591721405 -0.432668392204472285200722581 -0.210118620951696977172673542 0.065426880949833121636771693 +Hf 14.168410610510600022848848312 0.064042600000000005078248932 10.652825269999999235892573779 -0.053306776022755464339297760 0.053864832470726486945977740 -0.293488438968749321134055208 +Hf 1.690474889999999952294729155 1.879140629999999978494429342 12.407267429999999208689587249 0.617413649469621850229827942 -0.398827098148710756930768184 -0.221858325081824292457355341 +Hf 0.090421699999999993746513383 3.574387939999999819207232576 14.099254490510599424624160747 -0.884178279137123768194328477 0.141924481951046371763780485 0.869045217171429684732686383 +Hf 1.835336070000000097124370768 5.290596700000000041086423153 1.801551040000000103447064248 -0.488107751645097787118743327 -0.101657620998750572449687013 0.252897875758899270959290106 +Hf 14.164849060510599443318824342 3.499299689999999962708443491 3.635345099999999884943235884 0.225623710876630106936246989 0.174379362291625955583285190 -0.526978560012891006358870527 +Hf 1.802423670000000033297737900 5.439236880000000162738160725 5.256039959999999844342255528 -0.266992793355617874517804466 -0.202848105394611094576262644 -0.048398500945222480695839806 +Hf 0.070749300000000001076294609 3.521263080000000211811084228 7.106800429999999835217749933 -0.151178408179979295589134836 0.263952216750662105315683448 -0.012610263942033975159695558 +Hf 1.727920949999999900015268395 5.291902789999999967562871461 8.956369920000000206528056879 -0.018333636660525551298484004 0.324175429445876517320357380 -0.710914324364205096884461454 +Hf 14.125920670510600629654618388 3.627127660000000197726421902 10.696337059999999397064129880 0.170846997015380502871195745 -0.607016632619118867708607468 0.109524151001959765827642457 +Hf 1.805550329999999981112068781 5.258474490000000223233200813 12.569014019999999121068867680 0.249730325129728258914951766 0.659443310886895561750975503 -0.879538763990091232436441260 +Hf 14.168132050510600095094559947 7.091606259999999828380623512 14.211803020510600958914437797 -0.143258363671051103249709513 -0.372077602213359337479658961 0.329451548498917667906482620 +Hf 1.844474450000000098626173894 8.934896849999999446367837663 1.738386750000000091631591204 -0.211915730178231842550928832 -0.053720213098488817093922876 -0.308296869987468136198316415 +Hf 0.036415690000000000559055024 7.173622919999999680840119254 3.454299890000000150536152432 -0.140518483306817487665796307 -0.303454702029984424438424639 0.064539877050132254954206701 +Hf 1.697960410000000086583327175 8.650739950000000177965375769 5.420992789999999672545527574 0.813112427659524517054023818 1.278778644489091620428666829 -0.678128394528393130258336896 +Hf 14.181671930510599821673167753 7.138463579999999808478605701 7.031248859999999822889549250 -0.121942199479893931268748020 -1.241285677034698498033549185 0.775014802779756983852621488 +Hf 1.639139329999999894482698437 8.946444180000000301333784591 8.976887939999999233009475574 1.065015606861504648961158637 0.102583452447103082305623900 -1.242145279728638751493008385 +Hf 0.154138839999999999186286459 7.216665710000000011348220141 10.655360710000000068475856096 -0.944248930825200005756414612 -0.879744989882733197106290390 0.702980517334509280580334689 +Hf 1.713403280000000084015709945 8.867538559999999847605067771 12.498766409999999993374331098 0.780891723697012984928278456 0.030781289279929360813703454 0.020740452771396453157670692 +Hf 0.067750539999999997986535050 10.667801989999999179303813435 14.157623620510600304100989888 -0.500556354062919983682888869 -0.273106016843335686061777778 0.858423918967927912504478627 +Hf 1.836512829999999985020053828 12.470279659999999211095200735 1.688337390000000048928541219 -0.018015750567511132351761205 -0.386538566428079544134988055 0.652687520717159297412024443 +Hf 14.132451130510601089440569922 10.611904340000000601662577537 3.429576509999999966993300404 0.820756185621872136337628945 0.125214468733959666257860022 0.789961687281556912409996585 +Hf 1.805523329999999981865244081 12.289980590000000759687281970 5.330471610000000026730049285 -0.224547372106631698551737486 0.487321678861335261245812944 -0.511302056325889875409984597 +Hf 0.034069269999999998721484928 10.685440630000000439281393483 7.028585510000000091679339675 0.201757654369481564948785035 -0.275385725729114239079819981 0.429170574271042493119665551 +Hf 1.799612509999999998555608727 12.418404040000000421173353971 8.973626259999999632555045537 -0.230812371205438016108502097 0.056473876712603107708154937 -0.404395613355998662097334773 +Hf 0.015293650000000000646616094 10.596293760000000006016307452 10.721300629999999998176463123 -0.388379525476805875783270494 -0.024325151831850383432609419 0.359409142681061333224334930 +Hf 1.623515959999999980212237460 12.460830030000000334666765411 12.543861429999999757001205580 0.753808813299037816513248345 0.188834770195807938319987329 -1.149116808868915207142435975 +Hf 3.557945960000000074074932854 14.147993490510600622656056657 0.012205360000000000167408309 0.073993588939336302212623764 0.409195249756426571163814288 -0.186393300897467056875811409 +Hf 5.361921589999999682163434045 1.890665229999999974452862261 1.805504849999999938958694656 -0.296502348677215143979424283 -0.634459619098668214931535658 -0.262689333031117910888241340 +Hf 3.520677539999999883235659581 0.047147250000000001657340931 3.652830259999999995557118382 0.076663327319874630116913750 -0.505974011673377965792042232 -0.250317290595358399318826059 +Hf 5.277174780000000176016783371 1.787562069999999891933839535 5.241245150000000130319222080 0.620892892829008613553298801 -0.054769211395230540939671471 0.257623692559907357946258344 +Hf 3.510161999999999782318127473 0.022273219999999999824114028 7.106877169999999743765783933 0.041399409580363311089712397 -0.159371975536475196655317177 -0.252604098503967533506653353 +Hf 5.445281289999999607687186653 1.619080360000000107234541247 8.879803609999999736146492069 -0.622926841726249458375264112 0.698880757593691281925885050 -0.026880348441302753109694024 +Hf 3.546358820000000022787389753 0.107464859999999995388009211 10.634636609999999379283508461 -0.105068347741462619904240228 -0.337491909808982415430733681 0.391344971517484985223944705 +Hf 5.285049710000000011689280655 1.764518550000000018940227164 12.503686639999999741235114925 -0.079175586671057604504220251 0.393446219256109119832842680 -0.308902508164069833362930240 +Hf 3.516328639999999783327666592 3.573236759999999900827560850 0.042927670000000001104822900 0.492405690934390682933496919 -0.078384455239767614198598267 -0.210204107385285415832143485 +Hf 5.379149499999999584076704195 5.343740040000000135478330776 1.697619320000000042725218918 -0.492552183811539978641746984 -0.073976854011171655489675913 0.239568251088039640972482403 +Hf 3.577260209999999940322368275 3.565020740000000021296955310 3.617943789999999992801349435 0.015330594031284561218342333 0.255941075720972743834380481 -0.321803539563647933441359328 +Hf 5.320908280000000267762061412 5.261706320000000047798494052 5.377114330000000386178271583 0.589844675719606637009917449 0.289050167544376068740064056 -0.133701751662095025263710113 +Hf 3.527910090000000220555875785 3.514222399999999968400743455 6.948035540000000231941612583 0.039152699391626126501630978 0.179960184313728149829714198 0.871006790188089130566595486 +Hf 5.481070220000000325910605170 5.331990890000000149484549183 8.866934540000000808390723250 -0.690989065118026934975148379 -0.208836645784242297407828914 -0.061265058698309782236890442 +Hf 3.487352990000000207970742849 3.581891940000000218446984945 10.562260020000000082518454292 0.857248091712715876155925798 -0.097669129217188788150139089 0.488849564182199436412901150 +Hf 5.496473299999999895248947723 5.472771769999999591505002172 12.469001990000000645864020044 -1.104898645050155225888488530 -0.375559470758719038396833412 -0.283746633438365147839022029 +Hf 3.534015609999999973922513163 7.067285080000000441202701040 0.118514770000000005389928504 0.198500040375013009352755944 0.161412874946938705855714602 -0.449499544577318721483294439 +Hf 5.377519379999999848962488613 8.838089650000000574436853640 1.806467009999999984160012900 -0.097285499665761582255285589 0.310234605936508422985298239 -0.173733442666276438615113875 +Hf 3.627166030000000152000438902 7.125604469999999857066086406 3.522398630000000085971123553 0.048701721491079368042687037 -0.019565584369476585191449658 0.075036635588610775537965480 +Hf 5.398793480000000144514160638 8.901616349999999400210981548 5.366152529999999920562459010 0.030427538630528237761918575 -0.234983690544091627927514310 -0.482409199421225731718720908 +Hf 3.650876090000000129265345095 7.008579120000000273194018519 7.079506069999999873232354730 -0.375200413802065035895338951 0.127687204899379957989680179 0.591792335728500096259097063 +Hf 5.281601850000000375473518943 8.811159119999999234096321743 8.926376689999999669566932425 0.715065580297594927117188490 0.250449399180437293210843563 -0.217165023376842181157542200 +Hf 3.554670059999999853772578717 7.128341719999999881451913097 10.662851910000000543732312508 -0.331714867974085836355158108 -0.276073044524974942071082751 0.203920698676768041845974722 +Hf 5.313581939999999725898760516 8.954940179999999472215677088 12.497363670000000368531800632 0.136837555684753503504325067 -0.623712992881590322369333990 -0.340255408150948845946714982 +Hf 3.533144409999999790983338244 10.758154040000000861709850142 14.113789210510599758663374814 -0.203087785164453415998053742 -0.408593657696090795106158566 0.483981717065729399873674765 +Hf 5.282903680000000434802132077 12.372601259999999712135831942 1.812753030000000098453938335 0.410887455314982441567650540 0.520467335396351593601593777 -0.404165990595621804626347284 +Hf 3.623689750000000042717829274 10.621476200000000034151526052 3.416234180000000009158611647 -0.253404872234807454489668999 -0.160733288254357953306339368 1.012661479230136718499011295 +Hf 5.468672999999999895237579040 12.402377050000000124896359921 5.405355209999999743786247564 -0.767120448915672104028828926 0.187983555506374189203455671 -0.517508469660632242081987897 +Hf 3.642355929999999908375230007 10.691274699999999242550074996 7.059337669999999675951585232 -0.367737004564201275247370404 -0.347329514939334282885852190 0.526915221436348391037540750 +Hf 5.367296610000000356421878678 12.473173239999999495353222301 8.905158009999999180195118242 0.057385670691674689480876737 -0.121664250185346323185342499 -0.204519376158311699809289053 +Hf 3.557187030000000138585392051 10.643465170000000696859387972 10.651705350000000294130586553 -0.325603015249982363776837246 -0.069851989265350244995289586 0.352501210933315489715056401 +Hf 5.301359530000000042093688535 12.343273149999999915849002718 12.437806410000000312265910907 0.426479899123065608890215117 0.496736943260874641570268295 -0.123844528978728912749218694 +Hf 7.108466090000000292548065772 0.039856439999999999923563365 14.155129390510600373431771004 -0.281874140838123843355589315 -0.380445706851434473083628518 0.155802436926089665769623593 +Hf 8.955977669999999335459506256 1.665568170000000014496777112 1.773688209999999987331875673 -0.377876350132529459369123970 0.773015137199651758415086533 -0.226648356927688532369558061 +Hf 7.161875189999999946621755953 14.187976420510599595559142472 3.582719079999999944874389257 -0.379630126342077989232137725 0.047793592514126403969498824 -0.238208177962201506083772529 +Hf 8.815641619999999178958205448 1.838800980000000029335183171 5.320275839999999867302449275 -0.015497770164820651173087640 -0.027118766969853540238499789 -0.004130665394080981767110927 +Hf 7.100082360000000036848177842 0.014251899999999999638089498 7.023213329999999920971731626 0.235181071469427072084812380 0.260339218296627705750978521 0.161479427979358269862331099 +Hf 8.975252129999999439746716234 1.745400419999999952480607135 8.860161050000000315662873618 -0.417891562129343863141173188 -0.173938509938743518512538344 0.136285608550454601095580642 +Hf 7.048436979999999962842593959 0.006278910000000000393716171 10.683642799999999439819475811 0.459492330580992147659458169 -0.128373720314819361743019499 0.771680054729985798189773050 +Hf 8.857243309999999425485839311 1.876060870000000102564285953 12.508451960000000369177541870 0.261605467694380866561232324 -0.472052155398083428394784278 -0.185301826303711780763450179 +Hf 7.042074219999999940000634524 3.676976629999999968134716255 14.134203490510600431662169285 0.525622898108231373370813344 -0.582221590867454841244921226 0.573168600748972356662136463 +Hf 8.881763460000000165450728673 5.480675119999999900244347373 1.743193280000000067175847107 0.117163079902753528016567941 -1.188332893490264385860655239 -0.398104875215606002214485670 +Hf 7.016009209999999995943653630 3.606139220000000200627710001 3.472032340000000161239768204 0.549710651315610809852785223 0.149812987355186555404884530 0.114895996147381884711080602 +Hf 8.792832609999999604610820825 5.224643989999999682538600609 5.383356290000000043960426410 0.174327832578065000657119299 0.069210832107013148251084544 -0.179184426987717415613587946 +Hf 7.045262000000000135457867145 3.485300759999999886673549554 7.177747270000000234801973420 0.168511330227536282322375882 -0.205653354538574889565083481 -0.112968728313916022543139661 +Hf 8.864599489999999804012986715 5.295050769999999573656168650 8.924496429999999591586856695 0.577543993038048153465524592 -0.196449025757838485750639279 -0.547654107458959593657255027 +Hf 7.240563370000000276149876299 3.538103009999999937207348921 10.727129010000000519653440278 -0.782859861220464803288621169 -0.224335063471222728725962270 -0.365925787937577629005403423 +Hf 8.889690970000000191930666915 5.276057709999999900674083619 12.409353769999999173023752519 0.311881212836820187472852695 0.255070481341672372632700672 0.264205745711936890174342807 +Hf 7.102664700000000053137227951 7.141942710000000360537342203 0.067560099999999997932853546 0.224780726235471794982601068 0.252148081256440281805453196 -0.038193843723991149907703857 +Hf 9.002317670000000049412847147 8.887067419999999273727553373 1.711751840000000024488713279 -0.397659412244044663253816907 -0.116900339125884572544222806 0.226765857428219697045079783 +Hf 7.145907890000000151076164912 7.023140849999999879571532801 3.516484970000000043199861466 -0.083369556016470836024012669 0.392988555203652722980223189 0.405161593901446015486556007 +Hf 8.891773049999999400938577310 9.079783609999999782758095535 5.243003189999999591464074911 -0.178722175607831407218029085 -1.430434190973374874999990425 -0.409929996580845834586170895 +Hf 7.230730010000000262948560703 7.100048250000000393811205868 7.147901840000000284192083200 -0.326306214369328495550348634 0.318207518379096832017438601 -0.358864727166783803458116608 +Hf 8.888005420000000711411303200 8.786036380000000534096216143 8.922887610000000080390236690 0.071049805512984801070253127 0.561194227922937494135169345 0.210732302482891986628033010 +Hf 7.165945540000000058000750869 6.917114259999999958949956635 10.580141700000000426484803029 -0.067696095050223448197357357 1.032093725208254264558149771 0.260886226452923919438831035 +Hf 8.801465040000000072950570029 8.770231089999999340989234042 12.436473319999999276319613273 0.609052351454851370604615113 0.306945461588396639740494720 -0.235660932406664858085321157 +Hf 7.152634479999999683741407352 10.508886450000000323257154378 0.026045109999999999789155325 -0.068978163220335758643031454 0.562649398177207160642865347 0.124847055326590336554737348 +Hf 8.883002749999999281271811924 12.472803730000000754785105528 1.746821640000000064318896875 0.006829761550483740353834072 0.516988509019544517641975290 -0.220066840456700330008743549 +Hf 7.158685990000000387567524740 10.771841730000000225686562771 3.543630100000000116011733553 -0.069589463183653346711743382 -0.262155095337249288700576244 -0.155778752879936366326774078 +Hf 8.883933649999999460078470293 12.533324569999999553715497314 5.325802930000000046106833906 0.027833300613640712950491718 -0.280166892212054374766694309 -0.000612235092390743529389141 +Hf 7.168591830000000442169039161 10.594386500000000594923221797 6.986732270000000077914137364 -0.002059437619490175203074145 0.201167512197657105676995570 1.013662168630243609612762157 +Hf 8.778597760000000249647200690 12.461463889999999210544956441 8.916001850000000672480382491 0.225956998615530063601042343 -0.067695196562258558303781797 -0.131112230455727396538634366 +Hf 7.173561809999999816511717654 10.701599800000000328736859956 10.780474160000000694026311976 -0.525775203704204052712611883 -0.455522901026870319363126782 -0.583728670743452249247695818 +Hf 8.868352910000000477452886116 12.310764369999999345850483223 12.452433510000000538298081665 0.286684202007184418814489391 0.705720703522053294243221444 0.100809636037333893998635403 +Hf 10.786461720000000141794771480 0.092063199999999997813482366 14.209507760510600604675346403 -0.650122303428136039116225220 -0.816147039580742195141738193 -0.266665280204630483762429094 +Hf 12.403856530000000546465344087 1.829126800000000052648374549 1.690419459999999984844976098 0.488953819262744893148209258 0.254271837963498115176008696 0.305901385998423758216802071 +Hf 10.647876610000000852096491144 0.098171560000000004930775788 3.541968699999999969918462739 0.425196734597991399251526445 -0.347782224535086004202355525 0.448099520537197704150855770 +Hf 12.518650570000000143977558764 1.800816280000000046968011702 5.364755480000000353868472303 -0.499977132993326967014269258 -0.154837720016735569394938921 0.209982893943902015898572699 +Hf 10.635782100000000127693056129 14.140908760510599861959235568 7.147449899999999800570549269 0.320027998148168291159265664 -0.135014809308388272768297611 -0.257325492382329046314737298 +Hf 12.293903130000000345489752362 1.732876709999999986777652339 8.826631850000000056866156228 0.473381298863051802605639296 0.396409455712508296265639274 -0.099012499587192923100609221 +Hf 10.726173960000000562331479159 14.208116400510601096129903453 10.703090650000000039199221646 -0.239322741569051034016268886 -0.377073317023678022952282163 0.192782018921196729444034190 +Hf 12.453419829999999635106178175 1.773888600000000037582026380 12.497460320000000066897882789 0.584215826361824563939251220 0.015344092383714216798473728 -0.259474056406575837030459297 +Hf 10.701191910000000362401806342 3.485094689999999939544750305 14.131220360510599931558317621 -0.436331899925225363823244606 0.442628268277782233042216831 0.560864416570867718725423856 +Hf 12.373011990000000182021722139 5.243919870000000038601228880 1.931532150000000003231548362 0.401214731306154370749084137 -0.006241769817325715230538208 -0.695678539380728988561486403 +Hf 10.720995070000000737309164833 3.563258439999999804825847605 3.683460189999999911947270448 -0.656283507964856571703649024 -0.461458777294749211694835367 -0.386367553222971393811491225 +Hf 12.441002720000000181244104169 5.249255100000000062721028371 5.285471809999999770468548377 0.179234270545367446736406691 0.753847615818756477956696926 0.213295311839702961265174963 +Hf 10.598543539999999651968209946 3.525941710000000117730678539 7.071183460000000309264578391 0.265860374458201653702360545 0.185407932555040955158176530 0.007723559586246681041288298 +Hf 12.468697849999999860415300645 5.274099279999999723145265307 8.953574400000000821364665171 0.022899366272071008943100878 0.608162285135741109698415130 -0.538650772043869019434225720 +Hf 10.724940350000000677255229675 3.518298440000000137928282129 10.631946259999999426781869261 -0.486368755628318383266162073 -0.257408092891788176093115226 0.182785914430476481573606407 +Hf 12.283786949999999649207893526 5.276317790000000229611032410 12.384755450000000109866959974 0.762144792793815084586128705 0.430048678700275133213182244 -0.045642324810017884106905228 +Hf 10.681510989999999594601831632 7.056742540000000118993739306 14.158567300510600972529573482 0.216271597719932290315725254 0.053496351509534079138319385 0.398036464511567877888609246 +Hf 12.489629439999999860333446122 8.927542080000000268569237960 1.817993030000000009849259186 -0.845004273593643828732524526 -0.047077063624282169951307253 -0.764231626408660713600795589 +Hf 10.578578370000000674622242514 7.089389169999999573690274701 3.401526070000000068205281423 0.302031772640381335204295965 0.227643852302277877042158138 1.212473042121796629189134364 +Hf 12.460389449999999200713318714 8.831716939999999738120095572 5.381918019999999636127085978 -0.096214567022039759747187304 0.456819717917912759830301184 -0.885253894145924702385741512 +Hf 10.718752390000000573877514398 7.175638199999999855549503991 7.072073139999999646931883035 -0.632087485867820264573424538 -0.614950723899906903646694900 -0.008386133630301982957999662 +Hf 12.544186890000000644818101136 8.827736129999999903361640463 8.725661920000000293384800898 -0.263475834538990316691098315 0.608590247238261272677561919 0.551884457002590811391939951 +Hf 10.634126390000000483837538923 7.063365379999999582594227832 10.674289809999999434353412653 0.095280657959833675585414881 0.219544621832435060682087169 -0.192672128202333509117138988 +Hf 12.385298360000000172931322595 8.879202440000000251529854722 12.498386950000000439331415691 0.074361127298434193111376089 0.180015240234541212815955191 -0.129122802315840057296725263 +Hf 10.624132440000000343616193277 10.756806740000000033319338399 0.062634179999999997634496651 0.340025697053311148909671147 -0.358763549364278067077549395 -0.288493441814296258662864147 +Hf 12.390797020000000827621988719 12.433467459999999249475877150 1.854134420000000060824163484 -0.001100651641194980157045791 0.155272987831604342146007980 -0.503315868050717041271013841 +Hf 10.581625439999999827023202670 10.747374159999999676529114367 3.558680719999999908509380475 0.479240296835235723982293621 -0.091766462810726256993376637 -0.016773578794476055181528196 +Hf 12.466244839999999882707015786 12.335467859999999618025867676 5.362202990000000113468558993 -0.277207088030610115936269722 0.415631219824217079672479258 -0.584266184800401933152613765 +Hf 10.577761170000000490176716994 10.608482070000000874188117450 6.972585539999999859617219045 0.183186590991219755419905368 0.294359748638850504676156561 0.993395991130303190885797449 +Hf 12.467377550000000141494638228 12.255571650000000261115928879 8.951817780000000723816810932 0.379256187303716851833002011 0.765633416937611110952843774 -0.804116783938469081860489496 +Hf 10.789906739999999274459696608 10.696941069999999385231603810 10.572912000000000531940713699 -0.711175577183741580711284769 -0.620788059188062790738626973 0.558198315378788834095757920 +Hf 12.583435050000000288150658889 12.451478460000000580976120546 12.501135570000000640789039608 -0.369440094574974065011474522 -0.001084887578421150911012205 -0.251567592316732313584282110 +128 +Lattice="15.3904560459206809 0.0000000000000000 0.0000000000000000 0.0000000000000000 15.3904560459206809 0.0000000000000000 0.0000000000000000 0.0000000000000000 15.3904560459206809" Properties=species:S:1:pos:R:3:forces:R:3 stress="36663.9676126136546372 21762.6436859229179390 -11556.7104946600593394 21762.6436859229179390 62038.1665898417340941 -796.1503466990525339 -11556.7104946600593394 -796.1503466990525339 29044.7542138868411712" pbc="T T T" energy=-704.0725800596701447 +Hf 15.277857925920681481102292310 15.192559405920681214752221422 15.062996385920680353365241899 0.567706725567641790064499219 0.236261604510676626045295734 0.991716879769665826671598552 +Hf 2.154200589999999859713852857 2.632071180000000065746235123 3.484802479999999924586973066 -8.398352300857762742225531838 -3.983440104141843463025907113 -8.969236775236350212026081863 +Hf 0.695913329999999996644532985 15.333106585920681652623898117 3.508879310000000195657321456 -0.714647842415221057343899247 2.805399813753427729068334884 -0.924071660074734957390774071 +Hf 2.458479140000000118249090519 0.893726860000000011829968116 5.046091910000000346769866155 0.753365067293762957767455646 -1.537126438882229662041822849 2.866246837793948287753664772 +Hf 0.652181349999999993016785993 1.144258860000000099788053376 7.239250359999999773208401166 -2.191437192885416607168735936 -1.465297377620232266437483304 -0.749873010364389580573174499 +Hf 2.429371170000000024202790883 1.627482239999999968915744830 9.496494679999999632968865626 1.084876978573060757327084502 -1.780442675135925023610639073 5.681638990365581065589140053 +Hf 0.197842770000000001129336624 14.630072095920681363168114331 11.830855950000000120780896395 0.746408719328889525002068694 3.136171626844284077151314705 -0.040406540979137983704561066 +Hf 2.312388320000000163645381690 1.232064489999999956637566356 14.024756229999999490587470063 0.216208496143843298398223851 -0.078992205133574300290888459 -0.081259980882245189115486994 +Hf 14.860819665920681487136789656 3.909034239999999993386836650 0.174709379999999997457038603 3.300273255560445484491083334 -1.810843858025704689040935591 -0.834592628114307677478223013 +Hf 1.124752999999999891755919634 6.133170609999999633998868376 2.012088199999999993394794728 0.807085545510135782265592752 -1.045771796675930342956917229 0.580706715687842267570317745 +Hf 14.438651755920680841427383712 4.525571300000000185548287845 5.037577910000000436241407442 8.927004169306412606488265737 -5.481794572894637340709778073 -2.815681908701552327300987599 +Hf 2.009391790000000010962821761 6.034359259999999558488070761 4.905871000000000314855697070 -0.337697250503658397136064195 1.248882928318492124830640932 1.457667779772773286595111131 +Hf 0.868332609999999949224047668 3.382291270000000071860313255 8.774082059999999572141859971 -3.204172911659064482137182495 4.097351648147902203334069782 0.577739418666108117683677392 +Hf 1.543702759999999951645577312 6.350999429999999890128492552 10.384116150000000544650902157 2.627588995533087334877109242 -1.097994254223622956345707280 -0.402036840840768572302721395 +Hf 15.348272345920680237441047211 4.014594299999999726935584476 12.160517979999999838014446141 4.882645754520829051159580558 2.522807829815790547911547037 -3.421765100633806788721358316 +Hf 1.996169850000000023371171665 5.509464679999999781045971758 13.850913329999999135111465876 -2.488470576641848897025965925 -0.287753966273482042481646204 -2.871882788210476267209969592 +Hf 15.192423965920680117847041402 7.418041289999999676751940569 15.322839615920681666239033802 -1.383158259483870722306164680 -4.970098757303109238137039938 4.557452941245469624220731930 +Hf 2.288942500000000102033936855 10.227307409999999876504261920 2.038158090000000033370497476 -2.266489774065627127441757693 -6.951516424695482143647495832 0.824385454760482638825180857 +Hf 0.417079819999999990010053352 8.256322499999999564579411526 4.041810790000000430666204920 -1.250199221824162876259833865 -0.950515600736601684594972994 -2.701688466157534662670514081 +Hf 0.866422649999999960890306738 9.676652280000000772020030126 6.144497979999999692779510951 0.815283267569276048902793264 2.434266870021040585214677776 1.925236265208231101198066426 +Hf 14.864962775920680826402531238 7.771846329999999802851107233 8.085035949999999971282704792 2.948990507568082897194017278 1.551947768793132231834874801 -2.982672697641866488282857972 +Hf 2.689416019999999907241772235 10.524920350000000368595465261 9.882004059999999867613951210 -9.703593212032220804985627183 -6.001353732474865587676049472 -4.824022046908810423815339163 +Hf 14.812609065920680606609494134 7.883003900000000285785972665 11.047968080000000412610461353 -1.151542569551406547390115520 -0.881798508647306578112079478 2.472905219664575326987687731 +Hf 0.929306520000000024772646157 9.087308619999999947935975797 14.862104770000000186769284483 6.554403172245822695174410910 6.818480827100146690611381928 -2.533668670456476590402417060 +Hf 0.538404320000000047308219564 11.471222550000000239833752858 0.562450369999999977288496211 -2.270502441345005895101394344 4.047176854177893190467329987 -1.998334757561420760296755361 +Hf 2.522141770000000171592091647 12.424353489999999666792973585 2.500805979999999983931502356 2.739254293280043661695799528 6.014098749274882749205062282 2.328711437054747257491271739 +Hf 15.342794885920680414415073756 13.127001679999999339543137467 3.063305600000000072924422057 -2.505373646168159496028238209 -4.634236992884974704054457106 -2.521310710266035925997130107 +Hf 2.495363910000000018385435396 13.096008380000000670406734571 6.619744490000000425311554864 -0.171487305084977670333046262 -0.200966984654212421634866814 -0.354119952465760778892445160 +Hf 14.555469935920680057961362763 12.053949850000000409977474192 8.515388500000000249201548286 4.279582964443179093905200716 3.403789296599984748326050976 -5.756229970438422327561056591 +Hf 1.718910790000000021748860490 13.498068659999999496790223930 9.874613560000000234140316024 0.539587499964868100299497655 0.103853703283774551069384984 -1.861680241615757847029044569 +Hf 14.978234995920681527081796958 11.912057539999999278279574355 12.184345479999999284359546436 3.471390860190211924418690614 -2.933092535001131651029027125 -2.381144621381195314313572453 +Hf 2.592571570000000047429011829 12.984836960000000871673364600 13.370224750000000213390194403 -3.620624248959407598391635474 5.088859305673291366645116796 -3.873156798088801533452851800 +Hf 3.991470140000000110802602649 14.755085695920680421977522201 1.073341179999999894789652899 -0.874249644837065020830380035 -0.646719228187242256566946708 -0.771943157574916383190100078 +Hf 5.268990350000000155716861627 1.537649690000000068934582487 2.325396329999999789350795254 0.678222323351824085690964239 2.618052829555300942132589626 -2.085619328372524172721114155 +Hf 4.646377140000000238728716795 15.164901215920680854765123513 4.151335429999999604433469358 -5.021172566830423455996879056 0.856258978474081944298745839 0.783807969443387930752464854 +Hf 5.770463730000000346365141013 1.583485550000000019466028789 6.240068100000000228533281188 -0.070832109195442041760237828 -0.060898262437122874235484460 0.350051976482997295736510068 +Hf 3.364055120000000176361254489 0.717756999999999978356868269 7.443518649999999681199369661 3.174906620222579967105502874 -5.788200893741469954534295539 0.369565174312225686037436390 +Hf 6.968379879999999637618657289 1.373747489999999960019749778 10.162251949999999922624738247 -0.517398612308983985030863550 1.485754400395761898323598871 -2.943037938154533073031871027 +Hf 4.964556349999999618205492879 15.278573585920680599770093977 11.250705010000000783065843279 -7.395622932676950256336567691 3.584784060185619569693926678 3.546284897030492988534433607 +Hf 5.426414699999999591284449707 1.241569640000000029900206755 14.225521649999999240776560328 -0.225774575718500458698656530 0.055899603043443324423833474 -0.397323363542367857803583320 +Hf 3.735157490000000191088247448 3.614223899999999822796326043 0.172873300000000007514699973 0.293087797412414918785117379 -6.285988650007659828133910196 0.011825410352915680795016229 +Hf 5.557101219999999841547833057 5.207699390000000150280357047 2.169631059999999944665205476 0.441730924374765021589439584 -0.454443101821431716391685995 1.227440488581153621439057133 +Hf 3.465704459999999986763441484 3.871306080000000093832568382 4.424563730000000028041995392 8.788542669529977757747474243 4.968387392514594047554510325 2.936179645940987459340476562 +Hf 5.035897270000000425227426604 5.178000429999999987273895385 6.138155580000000277607341559 1.454430088724983693992953704 1.461564657611904571865579783 0.664401384185458687703373926 +Hf 3.245359300000000057906390794 3.215066269999999892803543844 7.319776309999999952538018988 0.589174510667540785036067064 3.487496692585257740404358628 -1.193985906080788472749532048 +Hf 5.308600760000000029492639442 6.334750180000000341351551469 9.242819949999999451506482728 0.313040454011990876281856799 0.917438398312923508726157706 -0.220040336697176153180066649 +Hf 5.320726900000000370027919416 4.172609650000000058867044572 10.723257159999999288402250386 -6.036945969015143909075504780 -1.955073972935583270782444743 0.916740029910986020666996410 +Hf 5.154993239999999588007995044 6.089007689999999861640844756 13.058377180000000805648596724 0.512323433665563654493269041 -0.862283704818058494012689152 -1.055051983226271250515537758 +Hf 3.700276559999999825834038347 5.850152429999999625920281687 0.162143070000000000252526888 0.960342234733920774303328471 7.651500566658762103600111004 3.335384195463069634257635698 +Hf 4.783544580000000046027253120 9.830393700000000123395693663 1.956485559999999956914962240 4.435139195163026570867259579 3.334188562985076931255434829 -2.232965888756814898385982815 +Hf 3.998432789999999847907474759 7.866799290000000333122898155 3.128502650000000162577862284 -2.303308407495164633616013816 -3.841148994143390282829386706 2.191632360844456339776797904 +Hf 5.597741260000000274033027381 11.485592620000000252389327215 5.975101389999999845770162210 5.270774887551167076082947460 -0.924516645075745935322686364 3.296935828037641957877212917 +Hf 3.632693989999999928386387182 8.399073590000000422151060775 8.012413009999999502497303183 0.294069125955063570554415264 0.485924553128840530646925799 -1.157316653430513930800316302 +Hf 6.213841219999999943013335724 9.434625049999999291117092071 10.209172829999999976280378178 -1.465898078629361167557476620 5.032806419973283595936663914 -6.427393925389097262268478516 +Hf 4.043874650000000237071162701 8.683880139999999414612830151 10.978547889999999753740667074 -1.576474623711599409858763465 -3.603943204478856632277938843 2.921864420134484330304758259 +Hf 6.042231479999999876895344642 8.795599460000000036075107346 13.549358890000000599229679210 -2.544680386294758012155625693 1.901342237930587986127761724 3.600188954145485453750552551 +Hf 3.377217030000000175249397216 11.930487610000000131549313664 15.125380065920680294766498264 3.641629620324289717814281175 -3.847097926852953708731774896 5.341747360119487808560734265 +Hf 5.774702259999999753858901386 13.072317849999999239685166685 3.629766720000000113088844955 -7.016209504685155806669172307 -1.403985243331646426412362416 -4.334295027364824193227832438 +Hf 4.020912090000000382872258342 10.206771919999999553851921519 5.158877790000000018721948436 -5.630186286147477403574157506 -4.097022233037292515689387074 -2.962759604606186147890412030 +Hf 5.502571299999999610008671880 13.799176770000000757931957196 6.520522220000000146455931826 -0.283757012852898671262380503 3.193811312016044734463093846 0.879168074340079153117244459 +Hf 4.509177379999999679682787246 11.770129830000000126233317133 9.004024709999999487308741664 3.871479899737605645526627995 -0.919789369483482666112195147 -7.958931588142771573757272563 +Hf 5.363655500000000131421984406 14.060659080000000642485247226 9.376115150000000397767507820 2.572855269167273917219063151 0.628824884999471755975264387 -2.521960325711806394366476525 +Hf 3.652264489999999863556467972 11.993166779999999249639586196 11.147508930000000759719114285 3.827268283133415049945824649 3.952375781149125355540263627 9.258632269774738077217079990 +Hf 5.915497229999999717620084994 13.303953449999999847364051675 12.776365540000000464715412818 -0.516089523624395640766238103 -3.091099118385266741881878261 2.336518136477860885236168542 +Hf 8.029419459999999730825948063 15.320758825920680834542508819 14.871876165920680179510782182 -0.316942845052454513776751810 -0.775730360032440335871228854 0.369166170691189787778085929 +Hf 9.537931939999999997326085577 1.182308680000000000731574801 2.875397360000000013258159015 -5.283815833472502276890736539 -1.501349005923096058268129127 -1.527668429063237409692987967 +Hf 7.121013190000000214752162719 15.251246295920681816937758413 4.321490769999999592698713968 4.896781773079903921086497576 1.719832698164242890115360751 -0.348059394713486458527995637 +Hf 10.072717969999999354513420258 2.137869779999999941821897664 5.645210040000000262239154836 -1.777477030525994372567311075 0.067771825505090754759862648 2.880416679019931702754320213 +Hf 8.263158940000000285408532363 14.483330255920680684766921331 7.068502490000000193504092749 -2.062978927989547628385480493 4.619776081598349293244609726 6.420865718528439458623324754 +Hf 9.206749340000000003669811122 1.855213280000000075631305663 8.702919669999999996434780769 1.711731061689620414512091884 0.360132898670761480985902381 -0.200665027350726582477946636 +Hf 7.330603489999999666792973585 15.328400185920681764173423289 11.960780639999999408473740914 3.089358964979562749419983447 -0.446502203713522116679257579 4.430657543573886414378648624 +Hf 10.151895709999999795059011376 2.458240589999999947679043544 12.356458489999999628139448760 -3.052255956729334140931086949 -3.755370546363902217734676015 1.377874134018729046502471647 +Hf 8.464989380000000451786945632 3.486447720000000138895757118 15.210059895920680972380978346 -0.605241825701707814033625255 -0.160523654355948647287632980 -0.353130123575687959736058019 +Hf 9.717386199999999973897502059 6.859864850000000124907728605 1.936578010000000071855197348 0.857560743596027630353262339 -6.899307716063407092121906317 4.164773358355771115668630955 +Hf 6.978971589999999558528998023 3.030707070000000058485056798 4.147920290000000065333551902 0.759261623637925930907499605 1.254241816011161470001411544 -0.310160852016084676030516221 +Hf 10.295767229999999159417711780 6.095146950000000174441083800 5.103172029999999637084329152 -6.577370334920446204307609150 -4.231820317505800232993351528 1.888722424014266820790908241 +Hf 6.451311340000000171812644112 3.291558370000000177668653123 8.441740550000000453678694612 0.551313310699137137937952957 2.066223171499941724249538311 -2.002913832810815808471716082 +Hf 9.336435469999999625656528224 5.283041830000000160794115800 9.546604459999999292563188646 0.692963792102609610346064528 0.540560703356894656224085338 -0.409086305349600332093018551 +Hf 7.561868180000000272400484391 4.069102680000000304971763398 11.329827350000000407703737437 4.044032420328226073991118028 0.059340189966363171558683121 2.446490368149560445942825027 +Hf 9.814543069999999147512426134 5.624906949999999739020495326 13.223622969999999199330886768 -3.255613898417362150894405204 -2.618481080798015003807677203 2.104018986652615996746362725 +Hf 9.046967159999999452679730894 8.092660390000000703025762050 15.299595405920680235567488126 -5.302501750503537003567089414 -3.312868708634777448196473415 -9.124925703453993008906763862 +Hf 10.050511079999999708434188506 9.150469519999999690185177315 1.467521539999999902192939771 4.636755581361070355228548578 10.068818643501300513776186563 6.603116094976774874680813809 +Hf 6.908911159999999718195340392 7.352484109999999795093117427 4.517805270000000206209733733 -0.003869447350016333442290772 0.260073744802757800265169408 0.070554185025866106295566738 +Hf 9.118497380000000873678800417 9.231845010000000684158294462 5.809609359999999611545717926 0.021716214089990519553463599 -4.709055469790570214172475971 -4.190774897774640628256292985 +Hf 7.265692709999999721048880019 7.820577130000000209975041798 7.738261279999999686651790398 -0.194959070938267114980746442 0.018948976812721035622999466 -0.636495131646665601721224448 +Hf 9.220140569999999868855411478 8.890994120000000222603375732 9.979053190000000128634383145 1.591563617141274589172894594 -0.642951446036253315696740174 -1.744684910168478486625076584 +Hf 7.246600850000000093587004812 8.219565469999999152150849113 11.708083200000000800855559646 3.847380438492958187879366960 -9.513446820321895813776791329 0.650437206380738430766541569 +Hf 9.382742280000000434370122093 9.586230269999999720198502473 13.019205389999999766814653412 6.267628523834967602113010798 -4.926094992105109149349573272 5.047307032135937454597751639 +Hf 6.675388690000000124769030663 11.046002720000000607569745625 14.946558355920680938311306818 0.801589496083022101657888925 1.606388755430661063883235329 0.991546922671474928456802900 +Hf 9.306045479999999869846760703 13.092998010000000519426066603 1.700088260000000017768684302 0.844705080745082881321650348 1.078496392859432662092444843 -1.380938344359174063669115640 +Hf 7.700360739999999815097453393 12.120989129999999889264472586 3.805648849999999860926891415 5.610662723232854531829616462 -5.696218550078132381031537079 0.329960223824289300420531390 +Hf 9.227238650000000319550963468 13.328084150000000462910065835 5.508585889999999984922851581 5.516756938840913448984792922 -1.569697199670404552662716924 -5.164691723785931998236264917 +Hf 9.432491929999999413780642499 11.039354039999999201882019406 7.096446939999999869996827329 -2.428762953583093242571067094 3.261469878776948050358441833 4.392456949018312961641186121 +Hf 9.660162939999999309748091036 14.747798310000000299169187201 11.090011719999999684205249650 2.031884820146660608486399724 -0.341608131866534381337885407 -1.278285629665167455470964342 +Hf 8.116152380000000832183104649 10.813914640000000133568391902 11.857090519999999855826899875 -5.905326277863190753691924328 7.691666535352135625203118252 -5.096356125019925187302760605 +Hf 9.499586620000000536379047844 12.325529830000000686140992912 13.694427790000000655368239677 0.723677927176201718495462956 2.545861270604565795849794085 1.333836102215900654144320470 +Hf 10.459635569999999660240064259 1.249492639999999932243213152 0.171759030000000006976890177 1.284808103625246777923507580 0.523396327864277477459609145 -0.694365761745093568180209331 +Hf 13.047622329999999379879227490 1.618694290000000091112042355 1.652717970000000091701508609 3.980904340773316896218148031 -0.896468356859486781296197933 -2.261390106419954193484045391 +Hf 11.609998290000000054078554967 1.710900050000000005567812877 3.656806219999999996161932359 3.599048695081978443965908809 -6.057767448020975997735604324 1.271422730906957454521943873 +Hf 12.886211839999999639871930412 0.055768860000000003429576623 5.826726619999999634558207617 0.468266124724645793619970391 4.764646168837467499201920873 -6.965155706503594501555198804 +Hf 11.957128490000000553550307814 15.149613875920680428066589229 7.714456860000000304466993839 -4.019312657819506640066720138 -1.482297217120541077406414843 7.544553975572552140249626973 +Hf 13.136331379999999668939381081 1.714298270000000012913687897 10.726766180000000261429704551 -0.107820348561061651881942680 -0.582815117231962220856189560 -0.686732615051264483341242340 +Hf 11.680631249999999354827195930 15.264188125920680860758693598 13.212247879999999611300154356 -0.384361005261521504472455035 0.723782908107069578029779677 0.271853586269460156810140461 +Hf 13.586837729999999169194779824 3.083383990000000185460748980 13.128423760000000442005330115 -4.263078630265983548497388256 -4.407086072457876646524255193 5.114794216235193147213067277 +Hf 12.126971400000000400609678763 4.046075479999999835456492292 1.605236880000000088131173470 -5.164522717696666376241410035 -3.283975677194542974746127584 -4.501023713516238089482612850 +Hf 13.414090630000000459176590084 5.738408490000000305997218675 1.124656040000000079004394138 0.837708114345343202167271102 7.360901271820644353738316568 2.689901920334690110792053019 +Hf 11.948902289999999482006387552 3.900711080000000219314415517 3.886134779999999899757767707 -0.772915118219959618173220406 4.962641105804702412740425643 5.002889474797110658244037040 +Hf 12.915601459999999534034031967 5.718619440000000331281171384 5.822932869999999816457147972 -1.137894097212904132021549231 8.110906700715098338605457684 0.143109789657186126099475132 +Hf 12.038013030000000114227987069 4.720883879999999699350610172 7.546628550000000323905169353 -3.402941577820371765739082548 -3.731972683808286728179837155 5.357805948495599324132854235 +Hf 14.422993509999999517390278925 5.636005009999999870728970564 9.348637030000000791574166215 -2.304484570766248463513647948 -3.067357125188662436698905367 1.289769368812947902824816993 +Hf 11.721720689999999720498635725 4.130784550000000443503722636 11.739005710000000703985278960 1.969361202102609009756406522 5.068794812339047162197402940 -3.635461928596925407219941917 +Hf 13.831930740000000668032953399 6.370003559999999787066826684 13.836637140000000556483428227 -2.773531119398932265340818049 -3.828650189144719995226751053 -6.492364793882480000775103690 +Hf 12.433969449999999312694853870 8.347378589999999931592356006 15.228476115920681621673793416 -3.413986646769052946126521420 -1.638519434100586202873728325 0.683237719275501476090539654 +Hf 13.850543959999999543697413174 9.829922749999999709302755946 1.619636190000000031119498090 1.192718111206915176936149692 -0.146974130204029607149607273 1.195450383166037688909000281 +Hf 11.749086459999999121350811038 7.685972200000000142949829751 4.551214869999999912408839009 1.481072690569231742330202906 3.086188062624813710499438457 -3.100735793300853249121473709 +Hf 12.995628749999999840269993001 9.753532220000000307891241391 4.352567180000000313100372296 1.683118548668662839418175281 3.662862435811278682962210951 1.418757756800412384023957202 +Hf 12.297269879999999986353032000 7.926671240000000118186562759 8.639689519999999234300958051 -2.174052226093631912107184689 0.514935401109163803923252090 0.225528261717396760754894558 +Hf 14.605411970000000465574885311 10.164914500000000074919626059 9.979591859999999314823071472 -0.266852542586103136379449552 -2.279103814538751660023763179 1.002965165688645354791219688 +Hf 11.248080939999999472433955816 7.358269380000000303709839500 12.335873760000000132208697323 3.014221263296377628648770042 2.742120322664908904641833942 -2.264756538776177663407906948 +Hf 13.620335060000000382274265576 9.660318390000000476902641822 13.308906099999999739225131634 0.133155540833904989517222361 0.320658503438970343690783693 -1.431002384532455318222332608 +Hf 11.992823570000000543700480193 11.299558940000000717418515706 15.347589005920680094163799367 -0.602249134065913738211861528 1.162321162952619557628963776 -0.043046128733205096805747303 +Hf 12.569474720000000544928298041 14.315409609999999673846104997 1.235482710000000095007521850 -0.450512148150053359785260909 -1.337698260680773909570007163 -0.175403058318164883910839080 +Hf 11.619729669999999899232534517 12.418275799999999975398168317 3.536415910000000106805373434 -0.015988214234201294366988222 -0.119886606052265420885305502 0.425833176443636107766366194 +Hf 14.193514119999999678611857235 13.616339690000000217651177081 5.329959640000000220538822759 1.871741939356526440718653248 -3.790374560372981704858830199 1.213530370626869192562935496 +Hf 11.929022440000000671034285915 11.361862580000000377822289011 7.184997469999999886169916863 2.803405409637583112214542780 -0.013257554707437169128070309 -1.031936849819530266358924564 +Hf 12.636941860000000303898559650 12.217350319999999541664692515 9.848580600000000018212631403 1.237428794486548522257862714 8.022022578175393547894600488 0.277498933424299765171383569 +Hf 11.351053869999999434980963997 10.773565480000000249560798693 10.705568910000000215632098843 -5.305483022359705813641994609 -6.013709982963853839521561895 4.144486779355311512063053669 +Hf 13.788654319999999131596268853 13.520026220000000094501046988 13.393915279999999867754922889 -3.971506622463478297646588544 0.282646265036028021544467492 3.205306831619155527590692145 +128 +Lattice="12.7346616901037635 0.0000000000000000 0.0000000000000000 -6.3673308450518817 11.0285353901721130 0.0000000000000000 0.0000000000000000 0.0000000000000000 20.2066734981253866" Properties=species:S:1:pos:R:3:forces:R:3 stress="8649.6945392262005043 526.3943594581477328 -262.3180493220017979 526.3943594581477328 6842.7992602301328589 -1146.4946871070751513 -262.3180493220017979 -1146.4946871070751513 25914.8564894538503722" pbc="T T T" energy=-932.2351241224517935 +Hf 1.705315099999999972624209477 0.915072039999999975457001256 1.311937579999999492486040253 -0.612392452473060733275644907 0.336471113264875998360992071 -0.122063289811451938793318561 +Hf 0.048799220000000032015918805 1.856046379999999995646930984 3.825158720000000123206973512 -0.183460270678658138310268555 0.086746980197877646134863028 -0.439851566135566196535933159 +Hf 1.565685900000000074783201853 0.925756419999999913272858976 6.227879929999999397693954961 0.270807802666430785798468150 -0.160226244525889238712323959 0.528295501485156027143830215 +Hf -0.067003420000000035727794057 1.900010250000000011638690012 8.763810799999999900933289609 0.398679121850384232672581675 -0.740476918909869219476149738 0.725130224260072342445937466 +Hf 1.480884520000000259543071479 0.930398199999999953035967337 11.327273999999999176679921220 0.594692484181262193132511129 -0.438299104065428934973169817 0.022395694253531953088476314 +Hf 0.027755199999999868865074859 1.908090389999999914039108262 13.860989029999998933817551006 -0.160730980849956128775346542 -0.507488152143436455077107894 0.331094927326479715468110498 +Hf 1.548134989999999655552187505 0.983087869999999863779294174 16.411666629999999145184119698 0.437804412035766976618589297 -0.117955793314857657061445195 0.240816383378150006278062278 +Hf -0.086037920000000100984038909 1.940716600000000013892531570 18.915429740000000435884430772 1.015682175430594913478898889 -0.497617939723753899272651324 0.092595855848554592393284679 +Hf 0.090421190000000262187995759 3.697540860000000151330823428 1.150063480000000026848283596 -0.198912599097423592464650710 -0.063259237583027760898346514 1.001816547696882775397853038 +Hf -1.533010039999999962745391713 4.556281120000000406378148909 3.813787939999999210272108030 -0.385709091208139343009975164 0.131814806147399099511829945 -0.243098388204767090758906534 +Hf -0.047259599999999846176024221 3.622452200000000122059873320 6.396903279999999192284576566 0.681369961013839509078593437 0.821801737401964604856630103 -0.876226964287085463567450461 +Hf -1.565922770000000019408048502 4.704921370000000102606918517 8.766919330000000343261490343 0.194383527105024711545411265 -0.626887865114267306410056335 0.687452613159694969624524674 +Hf 0.070748689999999836430788491 3.644415669999999884964836383 11.366999780000000441759766545 -0.790809017711511907933186194 0.306584260686888598890220692 0.098088982286032674884346250 +Hf -1.640424359999999914805357548 4.557587700000000019429080567 13.965890809999999433443917951 0.266211545048871678353918924 0.306620172424107717557006936 -0.857996614917316824389104113 +Hf -0.086188190000000108881295091 3.750281460000000066656866693 16.455178430000000133759385790 0.761815195041986914503695516 -0.196664173277744991352733450 -0.114824222030869782518180955 +Hf -1.562796410000000024709265745 4.524159209999999653462054994 19.077175230000001704411261017 -0.324548242691625965505863860 1.081721524212300611367254533 -1.193324756510597106640148013 +Hf -1.635809320000000344208501701 6.418866750000000287457169179 1.262611139999999965155552673 0.317734219214213575721572624 -0.025970208898149934467758371 0.259830829122654594076635703 +Hf -3.115705630000001669088760536 7.404690020000000316713339998 3.750624019999999614327634845 -0.477071647882445604160750463 -0.699080760010989621378030279 -0.268613974135395172648799189 +Hf -1.555416670000000056717226471 6.500883059999998714317825943 6.215858409999998279715782701 -0.133959366354898828932462607 -0.345751945329452969879469038 0.713007415585389048295894554 +Hf -3.262219179999999774111074657 7.120532599999999767703684483 8.931872670000000624668246019 0.580860618511216841852728976 1.547653856614775058631039428 -1.450184014411939781297178342 +Hf -1.622268549999999809330120115 6.465725209999999556487182417 11.291450120000000367781467503 0.490377953121797272029169790 -0.280554525626618866951389464 0.988621705615186252558146407 +Hf -3.321039310000000188694002645 7.416237810000000152399479703 13.986408889999996318920238991 1.351260262202276685172819271 -0.493516889666271607595149362 -0.617482539137116703820140629 +Hf -1.437693639999999994927293301 6.543926220000000348875346390 16.414203380000000009886207408 -1.400891154477508449005540569 -0.893423459961861232692115209 0.535594619471498667451214715 +Hf -3.246775860000000069049974627 7.337331299999998890370989102 19.006929559999999668207237846 0.165308125917503323520918457 -0.271677511926317838408806438 -0.570907728545555492871699244 +Hf -3.115915750000000095099039754 9.199170679999999933329490887 1.208432799999999973650233187 -0.558511850035572354755686320 -0.267177511111820642497605149 0.375460537329855070787232307 +Hf -4.715498779999999889867012826 10.144180629999999254664544424 3.700574249999999398852423838 -0.320748442387085885840747324 -0.073495904257772415313354486 0.467609074889528741891808750 +Hf -3.263322000000000056019189287 9.143273150000000626391738479 6.191135339999999764870608487 0.245376773102108480806293755 0.219848606047481381908781373 1.018484194102902806733368379 +Hf -4.746488570000000351001290255 9.963882019999999783976818435 8.841352150000000520435605722 0.045585426823029913390161738 0.726556108230907105038909322 -0.499215753281453678003032337 +Hf -3.149596380000000195309439732 9.216809460000000342461135006 11.288784760000000417790033680 -0.081347868239686552116474161 -0.096595050187955791565208585 0.731896058736489996121576951 +Hf -4.752400000000001512034941697 10.092304710000000511627149535 13.983147549999999981196197041 -0.054496635093111006620247849 0.411899683635033819761872564 -1.023951428202023228308803482 +Hf -3.168372370000000159961928148 9.127663000000000081968209997 16.480142180000001417283783667 -0.128941265957988077106577407 0.650527968304403292343351950 0.126096234289186648336311691 +Hf -4.928494910000000395200459025 10.134730239999999668043528800 19.052024270000000427671693615 1.322740360792804326095506440 -0.055198737214416503105152145 -0.682484974767457064359632568 +Hf 4.780416259999999972762907419 0.854930049999999885912416175 1.275122950000000088266460807 0.055608573902160667035143859 0.650023956074574082997230562 0.091964552981357416960861428 +Hf 3.216045849999999983737097864 1.952242739999999976419076120 3.817742060000000048347601478 0.315754401343188328965538858 -0.558642476297843249000152355 0.084461136933675920457353925 +Hf 4.743148270000000721324795450 0.966191519999999970380599734 6.414387969999999938863766147 0.249906667409367511112350257 -0.640906662395728243808434854 -0.762138416473453705890506171 +Hf 3.131300490000000102952526504 1.849137819999999932107925815 8.752124200000000797672328190 -0.144978373814172001310396354 -0.756790332758061290441276014 0.544681111302267040308322521 +Hf 4.732631989999999788665263623 0.941318179999999893325934863 11.367077460000000854734025779 0.183354839805756453241514237 -0.370004768841795950162776307 -0.321710428998087105689762666 +Hf 3.299405670000000956321173362 1.680656979999999967034796100 13.889323649999999688020579924 -0.907493457950361626096480450 1.144874263501055366987202433 -0.254437169484769409866231626 +Hf 4.768830259999999654496605217 1.026510519999999981877181199 16.393477719999999919764377410 0.024763822295056199529472707 -0.591121070120743996589851577 0.640161443071450397823696221 +Hf 3.139174329999999457641024492 1.826094450000000035672087506 19.011848959999998243119989638 0.086644848084184530878637531 0.103680871274249894464780652 -0.534203747901205616699371603 +Hf 3.146966670000000299012299365 3.696389640000000031960780689 1.305845319999999976090521159 0.682875308389479740434069299 -0.134526102572512795685355513 -0.371606610781632595852386203 +Hf 1.641441860000000474428816233 4.609424139999999781025508128 3.709856549999999142386286621 -0.366569707494613372666947271 -0.180410520809088342764070489 1.018967200591073041238132646 +Hf 3.207899480000000025370354706 3.688173239999999353244675149 6.379502630000000173993157659 -0.430388909811017295048429787 0.112500238462216961554673844 -0.603432404448189352308418165 +Hf 1.583199880000000003832383300 4.527391269999999856565864320 8.887994120000000108916538011 -0.092247553741213642042318099 0.711441485106012572181555242 -0.695460931742805210653557424 +Hf 3.158548849999999852400378586 3.637375949999999580342091576 11.208235469999999978085725161 0.189623650752630545923693717 -0.197197576980015859549055790 1.399409957612349320044131673 +Hf 1.743361179999999066581040097 4.597675139999999771589500597 13.876455279999998282391970861 -1.203760244254793221330146480 -0.305858402278810448393642218 -0.289747791368478002649311520 +Hf 3.117991499999999582826148981 3.705044120000000162917785929 16.321102809999999294632289093 0.318756822973292941458822725 -0.544201266484784063059976233 0.830940392679161643485485911 +Hf 1.758765019999998902022753100 4.738455550000000293664470519 18.977163560000001041316863848 -1.378063556998695649014052833 -1.235082848917008258027294687 -0.294966372872455306897165883 +Hf 1.572821129999999900661578067 6.394546090000000404529600928 1.381431899999999934891548037 0.069483949535490641125079492 0.552594747579840728235467395 -0.843116481037449849722520412 +Hf 0.047979109999999991487129591 7.307882389999999617202774971 3.818704799999999899284830462 -0.024799027680132364886977925 0.263210793461904846157750626 -0.582851451841690515465188582 +Hf 1.665971360000000345280568581 6.452864469999999741389729024 6.283957009999999954175109451 -0.226841617231281739153203603 -0.122548772427223687242481276 0.156464473239032286766558855 +Hf 0.069253639999999450083123520 7.371409250000000135116806632 8.877032129999998133484950813 -0.217872047242865074512252477 0.019839548421234042691052579 -0.560783471762615892686199004 +Hf 1.689682030000000612091071162 6.335839299999999063572886371 11.339705580000000395557435695 -0.328192048300618655076732466 0.633811281239146540045226175 0.166007341555550580469713395 +Hf -0.047938360000001623006937734 7.280951130000000048880792747 13.935898129999996442052179191 0.402201202846349192832065000 0.432685832586118646059247794 -0.881763563959023111138435524 +Hf 1.593475479999999944169530863 6.455602429999999891663264862 16.421692629999999013534761616 0.193005574514918176731725907 0.031798015081055577835122961 -0.021406978036943798832103525 +Hf -0.015959080000000014365468815 7.424733100000000085572082753 19.005526199999998482326191152 0.021409220779626141062390587 -0.869322170376692238136229207 -0.185880212732289495924931089 +Hf -0.019882629999999679171196476 9.289523100000000255249688053 1.164597550000000092396135187 0.291770167158421966924208846 -0.681559194137687729408980886 1.029246946635875348263766682 +Hf -1.638469589999999698193278164 10.046500679999999405822563858 3.824990629999999836030610822 0.503586834825733409282122466 0.657416627715090240435813485 -0.368815521742450025399762126 +Hf 0.070663360000000174920842255 9.152844520000000372306203644 6.177793229999999802259935677 -0.238770614673051606580145290 0.361961385107016531126333803 1.086679924492030657745544886 +Hf -1.452701440000000232544152823 10.076278139999999439169187099 8.916234510000000668128450343 -0.908037979588293686639133284 0.082400171788945514306234941 -0.894740668320000653856993722 +Hf 0.089328559999999335161646741 9.222644479999999589381332044 11.319537690000000651480149827 -0.295573977311782420951402628 -0.398949262693191974982198644 0.653825273866804335121116765 +Hf -1.554076989999999547364950558 10.147073940000000291661308438 13.914679639999997462496139633 -0.227595597274850736102536075 -0.686376505847478890487423087 -0.209032132038250079153485217 +Hf 0.004160409999999892249888944 9.174834739999999655424289813 16.410545979999998422727003344 0.173343233101715343824622551 0.337285553789854919415347467 0.211083581731085351274046502 +Hf -1.620013240000000465101948066 10.017172750000000291947799269 18.945968730000000590507625020 -0.025867386032313543359206776 0.942771725512315694750498096 -0.432415567210218398930265948 +Hf 7.961574229999998308926478785 0.958902200000000037860559132 1.205938079999999912317321105 0.219884670591877079415255025 -0.329419759901167064075622193 0.241140284885141470416769494 +Hf 6.440741079999998675020833616 1.727144859999999892963273851 3.785927050000000182450321518 -0.676726348886751094546809782 0.662311258741212549594479242 0.001438829485714082645486656 +Hf 8.014984669999998700973264931 0.894913069999999977177651544 6.344277289999999069891600811 -0.463391873364679685032285761 0.603455385397587584783707371 -0.242883878762985616628355956 +Hf 6.300405099999999869453404244 1.900378279999999753258066448 8.831155510000000319337232213 0.438215662294544838761822803 -0.329732923150554635416398241 0.028381314902707954761496012 +Hf 7.953192269999998842422428424 0.933297889999999963350774124 11.283413279999999545566424786 -0.018873829667458017628201006 -0.114274490513823684390004587 0.361862060983206001996137502 +Hf 6.460014989999999457381818502 1.806977180000000071657950684 13.869681710000000052218638302 -0.899629517256886557241557512 0.118026555378164421661324468 0.198085063087027751782542850 +Hf 7.901545579999998736298039148 0.925323439999999997063184765 16.442484509999999886531441007 0.493913516178848988058547320 -0.290339760542564995215997214 0.299811538788751996698067614 +Hf 6.342006699999999774775005790 1.937637360000000086301952251 19.016614270000001596372385393 -0.110159909101626818372920980 -1.086123917124612869855582176 -0.432690843847204575922660297 +Hf 6.303351899999999119472704479 3.800128749999999833164565644 1.185012479999999923663267509 0.359573906806427756599475742 -0.786639113741323892092793812 0.978608093387233535231928272 +Hf 4.774693299999997364579940040 4.746359950000000438308234152 3.755431360000000218235527427 0.162865103387761750441953268 -1.183213066181957984213113377 0.090148365104862474006530704 +Hf 6.277285329999999774486241222 3.729293460000000060006186686 6.233591429999999711242253397 0.392724040973877752680465392 -0.813008834901526644678426692 0.759993960080673769397208162 +Hf 4.685763340000000276575065072 4.490328309999999767399003758 8.894235379999999580036273983 0.751470569452274417265869033 1.033756199430681421702615808 -0.489602988210345702047021632 +Hf 6.306538119999999914000454737 3.608452989999999971360011841 11.437947120000000467143763672 0.382438731439502743736369439 0.482864913504151671563846548 -0.424213122776299633720498150 +Hf 4.757529530000000228540102398 4.560734430000000116933733807 13.934017219999995873536136060 0.626206399088645948580733602 -0.413905960257937410862183469 -0.590616985744907174726847643 +Hf 6.501840709999999745605236967 3.661255989999999904682681517 16.485970840000000237068888964 -0.898308666591583149241273532 -0.348935384161739692299164517 -0.732842133330913525490757365 +Hf 4.782620630000000261361492448 4.541743229999999797996679263 18.917515680000001054850145010 -0.329663088837290341182040265 0.298799325143074057109515707 -0.046646678657949566804141739 +Hf 4.772108170000000093580183602 6.469204320000000230095338338 1.330477979999999949001221466 0.255733011640107033013435966 -0.212978835935129645617891470 -0.734407350265307901082678654 +Hf 3.303414539999999455233137269 7.356859899999999008457507443 3.723989480000000185100361705 -0.814263658618948227285727626 0.317992589773649303452884851 0.952547198597360700311753590 +Hf 4.815351259999999911087797955 6.350402659999999421813754452 6.278044310000000294280653179 -0.407605236040240404005174923 0.927090658377834553327545564 0.513685762007665136508194337 +Hf 3.192870039999998965640770621 7.549574810000000191223534785 8.753881579999999829055923328 -0.004609718700518520423381474 -1.674268841147677822078776444 0.140824640424986241571403411 +Hf 4.900173020000002210849743278 6.427309829999999557514911430 11.408102169999997599347807409 -0.909375618148739128798752063 -0.471008334513607462845641294 -0.415911530038861387836846006 +Hf 3.189103119999999513822785957 7.255829459999999286878846760 13.932407559999996138344613428 0.094664912548837062966633482 0.738325938389675084927432636 -0.255917044918854752477699321 +Hf 4.835389250000001304385932599 6.244375139999998935991243343 16.338983549999998245993992896 -0.208742259308620947688694969 1.370546522030962943716758673 0.563118535918896379044440437 +Hf 3.102563459999998940475052223 7.240023200000000436205027654 18.944635410000000064201230998 1.043879361480272827122917079 1.027065479714408535727443450 0.116374588821881591593765393 +Hf 3.230246270000000308186827169 9.040256109999999623028088536 1.288962979999999980407210387 -0.405496015114486685337880090 1.296145811391528068767797777 -0.397578779123159531394549049 +Hf 1.592266959999999009767179814 10.146704639999999386645868071 3.759059460000000019164190235 0.240643773089885715243951836 -0.317521328265321312045443847 -0.253081143016870013795482919 +Hf 3.236296510000002513152139727 9.303211590000000086320142145 6.305188239999999666451913072 -0.364011381559505242666574532 -0.562976339920663093607799965 -0.037837730375672902483064064 +Hf 1.593197870000000015977548173 10.207226119999999625065356668 8.836682350000000241152520175 0.201929135565660472506621659 -0.473794551546334541392013762 -0.339181428350939118132600925 +Hf 3.246204070000000996287781163 9.125756620000000651771188132 11.246932290000000165264282259 -0.620188014407663690263916578 0.253231957714907085499334016 1.228097370153348411037086407 +Hf 1.487863109999999267074599629 10.135364420000000151844687934 13.925521930000000381255631510 1.074721917283045335977931245 -0.580448429781963648466103223 -0.255026469833667945863453497 +Hf 3.251173140000001460236944695 9.232969739999999703172761656 16.539316329999998345101630548 -0.039181436218829981954492325 -0.361027237345852958227965246 -0.567316790987290375802842846 +Hf 1.577618280000000261509285338 9.984664979999999800952537043 18.960595770000001181188054034 0.383905572130433581090613870 1.007808075318683993515378461 -0.092341485791059121912560670 +Hf 11.270208709999998575312929461 1.011109220000000030736941881 1.260315080000000032001139516 -0.654181618942602960409260504 -0.527657525053043308105316100 0.258189196973605483709235386 +Hf 9.519257670000000004506546247 1.890702490000000013381509234 3.702657649999999911472059466 0.336327586267169686973232956 -0.291802445399736376518973202 0.472301911317614231400341396 +Hf 11.131623749999999262172423187 1.017216759999999942110093798 6.303527640000000431541593571 -0.015097777342917950704759278 -0.629607236257467617335237264 -0.064191611513017277079740097 +Hf 9.634051729999999480469341506 1.862392059999999904817968854 8.875633860000000652235030429 -0.478824471902549730906173409 -0.173535586171627065343869845 -0.091859958171582573038804753 +Hf 11.119529639999997883137439203 0.847845760000000003842046681 11.407650090000000631107468507 0.081266894521653559868568095 0.310850535093564472877147864 -0.024008148669176471168285047 +Hf 9.409304049999999364217728726 1.794453910000000096403027783 13.836152619999998236721694411 1.241749059241492814109619758 -0.103765607946799079397415255 0.358352498179168588166021436 +Hf 11.209921539999999851033862797 0.915052940000000036846472540 16.461932889999999929386831354 -0.531024029259430152549725790 -0.093476113788582185226694321 -0.504305684468220549732109248 +Hf 9.568820970000000869504219736 1.835464619999999991151184986 19.005621709999996227224983159 -0.185952965899854605336116720 -0.438149494759002167132422301 -0.665818279786943634235285572 +Hf 9.593107249999999197598299361 3.608246680000000150556616063 1.182030020000000014590568753 -0.476555812858788230279571962 0.596761824898953241458343655 0.859282907460100942031999693 +Hf 7.896580329999999037227098597 4.509603489999999936799213174 3.943769360000000112620455184 0.727452662051522813690951352 0.363428175959492727464805739 -1.503958140824545042235627079 +Hf 9.612910919999997361173882382 3.686412040000000001072066880 6.445018649999999738042788522 -0.555206342168372835033096635 0.107342727924676320516716999 -1.082047740651979728099263411 +Hf 7.964570690000002173292159569 4.514939309999999927924818621 8.796350399999997904387782910 -0.634962248022830522131698672 0.260511226232046089190674820 0.254706060643674014887238854 +Hf 9.490458230000003325699253764 3.649094379999999748775962871 11.331383470000000457389432995 0.519909512968129372545433853 0.222792937484985575924412160 0.267977835949573583995686477 +Hf 7.992266039999998739062903041 4.539784639999999704684796598 13.963095550000000244494913204 -0.143936259593570176074095457 0.440096202463431174223273956 -0.568062193222001687864519681 +Hf 9.616854840000000237409949477 3.641452309999999137346549105 16.390788159999999606952769682 -0.308620342893231924819019696 0.157679656248221222725192092 0.651711837329126630891096283 +Hf 7.807354930000000692302819516 4.542003020000000113043370220 18.892918680000001074859028449 1.421343425368861046464985520 0.651365420115677995482883489 0.517523481443808885948953957 +Hf 7.981593120000000318725597026 6.384003060000000395746155846 1.209376439999999774954630993 -0.120233048225849459278435916 0.258638174190787495376753213 0.692956517079031719674730994 +Hf 6.421365290000000669579094392 7.397334479999999601318450004 3.830230939999999861811375013 -0.112684244739512315347518268 0.071520757793641337451973072 -0.618082823573055328836289846 +Hf 7.878660120000000155471298058 6.416650920000000368759174307 6.163084699999997972952314740 0.794970442129975918277295932 0.188999239406580338274110886 1.351397632325944453413058000 +Hf 6.392125230000000435381934949 7.301509969999999682954694435 8.892797639999999503856997762 -0.184284841373107771689277001 -0.331332707120665981292972901 -0.912288181183095181481235159 +Hf 8.018834359999999605861376040 6.502898959999999561887307209 11.332272349999998439784576476 -0.271567782407651003850901361 -0.801657962750176533717194616 0.508308515969970953207734965 +Hf 6.475923129999999972028490447 7.297529109999999263891368173 13.735182030000000708014340489 -0.728195952422505010659392610 0.143849357137867894795846269 1.105991744924999631294326718 +Hf 7.934208710000000941420239542 6.390626359999999728245256847 16.433132180000001199005055241 0.368490356700374221965432753 0.181940387250961649323599545 0.195748551825120936653590320 +Hf 6.317034029999999411586486531 7.348994979999999621611550538 19.006548790000000082045517047 0.064273836643866155693416431 0.129659378098810618151759400 -0.497636675694124619440117385 +Hf 6.332381840000000039481165004 9.288174500000000222144080908 1.325550940000000066376628638 0.362872004682926463381420490 -0.658248373453612423134018172 0.122127907919335060293875017 +Hf 4.730701409999999995648067852 10.107367269999999237484189507 3.866371909999999800788827997 0.387508452725510155190136174 0.528481752550657213340912222 -0.732174828894953555469271578 +Hf 6.289874809999998817033883824 9.278743210000000019022081688 6.320240609999999925605607132 0.641120347538347679083869934 -0.559127403495372377051353396 0.053218545910121074771215177 +Hf 4.806147920000002571327968326 10.009368950000000708655534254 8.873081830000000280733729596 0.061071117605657240789973628 1.258661775626704892871998709 -0.648424173376145995817410039 +Hf 6.286009840000001069881818694 9.139851350000000707041181158 11.232785359999997609747879324 0.872680926360185349466291882 0.345212588382163509947986313 1.162047122428910395086631979 +Hf 4.807281300000001422745299351 9.929471689999999739484337624 13.961338169999999436754478666 -0.328710416762022394898679067 0.842827546801504623452672149 -0.518424030120129497589687162 +Hf 6.498156569999999909725829639 9.228310130000000555128281121 16.331752810000001119306034525 -0.820722573446425407439619448 -0.666560671910431112863193448 0.952900905224450811559222529 +Hf 4.923338639999999877261416259 10.125379170000000428331077273 19.009298210000000750596882426 -1.356015705910378787990566707 -0.115229544007050294096572429 -0.308926523751112569460275381 +2 +Lattice="3.1984856917173921 0.0000000000000000 0.0000000000000000 -1.5992428458586958 2.7699685711695547 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.0751843773898049" Properties=species:S:1:pos:R:3:forces:R:3 stress="-21554.8636157337168697 0.1267210452523855 0.0000003767666357 0.1267210452523855 -21554.1504755499590829 -0.0000003493323455 0.0000003767666357 -0.0000003493323455 -654.4970242223685091" pbc="T T T" energy=-14.6766478933341968 +Hf -0.000001600000000046009063226 1.846647630000000539496340934 1.268796089999999932018681648 0.000008327798840593314544378 -0.000007152811684257853741542 0.000002262489115984125598248 +Hf 1.599244449999999817535467628 0.923322219999999971307147462 3.806388600000000455025883639 -0.000008327798840579436756570 0.000007152811684257853741542 -0.000002262489115986379976437 +2 +Lattice="29.9999999937019588 0.0000000000000000 0.0000000000000000 0.0000000000000000 29.9999999937019588 0.0000000000000000 0.0000000000000000 0.0000000000000000 29.9999999937019588" Properties=species:S:1:pos:R:3:forces:R:3 stress="0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 36605.6700711448356742" pbc="T T T" energy=129.2781047605362517 +Hf 15.000000000000000000000000000 15.000000000000000000000000000 11.000000999999999251599547279 0.000000000000000000000000000 0.000000000000000000000000000 -560.802410917744282414787448943 +Hf 15.000000000000000000000000000 15.000000000000000000000000000 12.099999000000000393129084841 0.000000000000000000000000000 0.000000000000000000000000000 560.802410917744282414787448943 +12 +Lattice="5.1364755065543157 0.0000000000000000 0.0000000000000000 0.0000000000000000 5.1934133375444702 0.0000000000000000 -0.8834429682743030 0.0000000000000000 5.2461598045212767" Properties=species:S:1:pos:R:3:forces:R:3 stress="25150.2335777482476260 0.0211344946132310 -4037.0559443441497933 0.0211344946132310 26153.6973362182179699 0.2726414448236537 -4037.0559443441497933 0.2726414448236537 26605.5188178124299156" pbc="T T T" energy=-111.0510484246673144 +Hf 0.792968059999999863585173898 2.378919590000000194862650460 3.713793009999999839010342839 -0.027463788680263778729795376 -0.133949346595454876762687491 0.086576607228280644257267795 +Hf 3.018340939999999417153730974 4.975626779999999804715571372 4.155442589999999825067789061 0.027464062746244292945174692 -0.133950922534883609671396698 -0.086527516365418499777462102 +Hf 3.460063449999999818373908056 2.814494770000000034571030483 1.532364220000000054611177802 0.027457346958816623849752858 0.133950438488635387157543732 -0.086575103053727758828372885 +Hf 1.234690059999999922624169812 0.217787590000000003120916858 1.090714650000000007779021871 -0.027462616120198735103485888 0.133950367525847546801287535 0.086526431537183756681486102 +O 1.436610560000000091918082035 3.856244940000000287483317152 5.133774230000000216023181565 0.092419058605117843097076502 0.289294828305622142572417488 0.273978064936410803387190072 +O 2.374698440000001298244569625 1.259537759999999950721871755 2.735461879999999901258433965 -0.092409982403115625837486391 0.289300561171274339677950138 -0.273966307562912181339243034 +O 2.816420439999999913993633527 1.337169419999999941950363791 0.112382999999999996787458656 -0.092418240262272466356563427 -0.289294733671623782722548412 -0.273977907855414537507954265 +O 1.878332560000000039934775486 3.933876610000000439981704403 2.510695360000000597722191742 0.092410639377227543622694839 -0.289301024830508568541631575 0.273965885305629153201323334 +O 0.045238480000000247382985208 1.717767880000000024764972295 1.816496590000000077580466495 -0.284223302562741864107920264 0.185036214095975815041583701 -0.011509200400653285534247061 +O 4.649515029999999882193151279 4.314475060000000361526417691 0.806582290000000257101930856 0.284210141500642832212975009 0.185023852408456229712285790 0.011484764315843590601340374 +O 4.207792519999999925062184047 3.475646490000000365938603863 3.429660650000000199355554287 0.284225415988390628374560265 -0.185037788249980073018718940 0.011509542953844063839508038 +O -0.396484029999999987303738180 0.878939310000000140199460930 4.439574949999999908811787463 -0.284208735147844837598540835 -0.185022446113354277485996136 -0.011485261039063776600244182 +96 +Lattice="10.8581273411817705 0.0000000000000000 0.0000000000000000 0.0000000000000000 10.8581273411817705 0.0000000000000000 0.0000000000000000 0.0000000000000000 10.8581273411817705" Properties=species:S:1:pos:R:3:forces:R:3 stress="80951.7874165881221415 14837.9395435799251572 -30303.3657656599643815 14837.9395435799251572 25047.7878323153418023 14219.3792907122278848 -30303.3657656599643815 14219.3792907122278848 -1318.2315192127973660" pbc="T T T" energy=-801.9953753696777312 +Hf 0.834703340000000015841408185 9.238739710000000826539690024 7.272780209999999634362666256 -0.201493944245271450199652463 -1.484931160873433686475664217 -4.921068402019018073190181894 +Hf 0.798364439999999953023746002 10.790399770000000501113390783 10.031199510000000429954525316 0.971089138179314304011313652 -2.328627847073898582408446600 3.030571462668817606100901685 +Hf 6.724709719999999890660546953 4.137110469999999651236066711 1.557549510000000081433313426 4.166662805642621592028262967 0.159196859716486532887458338 -1.164307587566923540833840889 +Hf 4.998770200000000052398263506 1.837970419999999993621031535 0.420134610000000019436328103 1.477222042038532245911142127 -4.126084103910435452178262494 -3.303485713355946096214665886 +Hf 10.833599919999999272590684996 8.849820049999999937995198707 3.094599950000000099237240647 0.611558354610730603440060804 -1.682218161312530213535865187 1.704342132640416229705238038 +Hf 2.294859779999999904731566858 0.438750870000000015025420907 2.148850550000000136918743010 1.360195052134853366254674256 -2.009309680618866167378655518 0.294974937851647800446386327 +Hf 3.206639539999999843900013730 8.538640239999999437259248225 4.316509540000000200166141440 -3.135983185267397388429344574 3.762818582216113316718519854 0.047738194293132196754925189 +Hf 5.117719899999999988438048604 0.117318809999999995596908775 4.870760480000000391953562939 -3.884824744554522979456123721 -0.726568031597689234502013278 0.779866951486795967340981406 +Hf 6.853139650000000138163613883 7.609850139999999818485321157 10.341200130000000712016117177 -3.045197574632701797980871561 -0.999642822959325938469987705 1.388665691235321464347407527 +Hf 1.723800460000000089877403298 5.929069580000000172503860085 1.193560100000000012698819774 1.202328669795220683624847879 1.054868279288565302564961712 4.587439727798265032276958664 +Hf 9.401420520000000280447238765 5.046139870000000193783762370 3.419310079999999807398580742 -0.535650279506141302476862620 -3.196956230494154560517472419 -0.570334166174961465500814484 +Hf 8.850349930000000142626959132 1.192030190000000100525312519 0.736799949999999981287146511 0.559440799488706730357989727 4.140242936163232911894738209 0.727709844168825448207371664 +Hf 1.347920329999999999870397005 3.253570540000000121949597087 3.270539620000000091692982096 -4.382484287061570782384478662 -3.581998522952053676249306591 1.315908843222247881499242794 +Hf 2.121569500000000108030917545 2.753779619999999983548377713 10.238100040000000845452632348 -0.525962929899619902052165799 0.610121893456454844617553590 1.756650986112815449047275251 +Hf 9.769709739999999698056853958 8.499889749999999466467670572 0.525770069999999978271887358 -0.132784744585089597990190668 0.914938464055493616555736480 -2.938533880858759772536359378 +Hf 7.062589660000000435502442997 10.163800050000000751992956793 2.266470120000000143534180097 -0.987778142952230764350929348 -0.637763577812884507878266049 1.662394413792348313307911667 +Hf 5.062259840000000288284809358 4.903290339999999858378032513 8.209670470000000719323907106 -0.595793234827642459450203205 -3.385950813248481683359614181 8.182389333358109695382154314 +Hf 9.440279589999999387828211184 5.121430120000000307811660605 0.012325060000000000529074562 7.321074663668529325377676287 -4.785841531771700019248783065 -10.141947055146502520983631257 +Hf 5.981360150000000430736690760 0.318198509999999989972252479 8.140760450000000147952050611 -2.835552226761618221928529238 -0.853555715741005194274748646 -1.440758301483345826810023027 +Hf 5.511409539999999829262833373 5.232899660000000174875367520 5.609599580000000251800429396 9.389738580204589624145228299 6.666007468414440140236365551 -7.589036054442358292249082297 +Hf 8.206400000000000360955709766 8.449479809999999702085915487 5.284789560000000108175299829 -2.058388349980988074605647853 -1.609802453863992788285486313 1.746858283994920491011271224 +Hf 3.997300140000000112650013762 4.263970320000000313598320645 2.956900440000000074292074714 1.535905015336521239888156742 2.224202813019889646284354967 2.656453293214117827858444798 +Hf 3.034139730000000145793137563 2.670390289999999833270294403 6.056230189999999957706222631 -1.311104738141354530966964376 -1.958765632184873428656146643 -0.004061802777191397817446727 +Hf 1.737400269999999968817405716 5.876540130000000416998773289 8.892120059999999881483745412 2.847863721920725232905624580 -1.623288962733162366092187767 -3.172160275275733631872299156 +Hf 7.288579870000000404672846344 2.403589810000000159817545864 4.994599589999999977862898959 2.988855001535493993713998861 -2.237911464603422384556097313 1.287706227954732662865922066 +Hf 3.399009720000000012163354768 8.732519699999999218675839074 10.592000069999999212200236798 3.373590137311022640886903901 2.950934462192690510562442796 0.897088627570285401802152592 +Hf 8.679829549999999116494109330 9.933830340000000092004484031 8.228230269999999180186023295 2.116894519269359342672487401 0.660052762612120536012128014 0.308820375164207350238143590 +Hf 10.506599810000000871923475643 0.638357990000000041774796955 5.015690420000000315781107929 -0.270816741594785526103805751 2.937051517388765464744437850 1.524541750925000771488271312 +Hf 0.689862430000000026453221835 5.913790020000000424715835834 5.710440099999999574720277451 -0.704567540401861425181095910 -0.510932485754528542543084768 0.406429615160321944244969927 +Hf 8.255210540000000207783159567 5.917529560000000188324520423 7.628300270000000438130882685 -2.021568157792912767689585962 1.188780525366992746327809982 1.069850498309111275219152049 +Hf 5.293340340000000310283212457 7.205479359999999999786268745 2.400109780000000192501374841 -2.276234810635116900812136009 0.323989569471600624694929138 1.400282620090673946222636914 +Hf 10.790699460000000797776920081 2.345079709999999817426896698 7.647359540000000066584107117 -1.059794112649069752762898133 1.604211116948757620548349223 0.054432558916977846763529669 +O 5.089860119999999987783212418 10.611899760000000014770193957 1.456869689999999994967083694 4.277918878205439590090009006 2.085502200032756991987525907 -1.105651758625068925567802580 +O 9.087899699999999469923750439 8.627870160000000510081008542 2.421329819999999966029236020 -2.447280170579360536464719189 0.820072382807308764007814261 0.609825741231830420474580023 +O 2.025060289999999874055447435 3.581839959999999933870640234 1.590660280000000037503582462 2.894595354466611425436894933 5.225784018929462426683585363 -5.141245994941703756353490462 +O 3.258260159999999849844698474 1.882100019999999984676719578 1.107359600000000110497921924 1.187638802459843878622791635 -1.262896548135984176042256877 2.093065209404727067266094309 +O 10.626399700000000336785888067 9.104729790000000377858668799 9.458959910000000803620423540 -4.857548334238699361264934851 -1.368304852907177959764339903 0.199286680755278000631847135 +O 0.011972170000000000728013205 3.891330250000000212651229958 4.534439759999999708384166297 -3.474639270063259566256874677 1.906307958855937734199414990 2.754233314699365386957197188 +O 1.331879620000000041812882046 4.586319890000000398799784307 6.978300189999999680878772779 1.811989897407014993291340943 -0.024523916479123997191891249 -1.072790934169735033165693494 +O 10.782900059999999342608134612 10.215100350000000162253854796 1.301610410000000106478523776 -0.206972761001572802541659257 -2.239787270656654172285016102 -0.040780900052238555630879091 +O 7.883229560000000191166691366 4.157490089999999582914824714 4.422659679999999760013906780 3.995171052903703667880108696 2.165164275346288302870334519 0.112424085469441728535322511 +O 0.645072659999999964419714615 10.219999539999999882411430008 4.245090209999999864010078454 1.461817692153607239902157744 -4.616564041625437653237895574 -2.294961969621218678128116153 +O 6.264480390000000120664935821 1.779629700000000092074969871 6.726869399999999998840394255 -0.543215327892061061731965310 -1.425756673546633379601189517 -0.198150042044873520019621083 +O 3.827330270000000034258391679 2.030580570000000140140627991 9.656900309999999265642145474 2.750562049936482011958105431 -2.617158973094332097275582782 -1.207512977474241244735253531 +O 10.221099470000000408731466450 8.939950109999999838805706531 5.540719969999999605647644785 -2.732987028512753546749536326 0.781287248463642614026980482 -0.381030269042152092140440800 +O 0.346252649999999995156230170 7.594440289999999649239725841 1.542120109999999932881564746 1.795538303790288559014243219 -2.142628707306395874354620901 -0.702350088832763730373187627 +O 6.619340280000000298343820759 6.060270499999999671558725822 9.256970510000000373906914319 -0.110487439251433686160375203 -0.797605880208498763117574981 -1.944794346399358886401387281 +O 9.890970049999999957890395308 0.570595680000000049503228183 10.129600200000000498334884469 -5.062765710161137633349426324 1.088075852019257938607665892 -0.821336745515394373029494091 +O 4.148159709999999833485162526 6.972919990000000289853687718 4.159599830000000331153842126 2.485052874174910275684169392 -3.375439437876082582334902327 0.295010491679202735415543657 +O 9.160690410000000838408595882 7.781670229999999577330527245 7.519150029999999595986537315 -1.116594137150070498165632671 1.235921242371441186591596306 0.059579767489191970408768384 +O 1.176390150000000023311486075 1.878549409999999975084961079 6.157000130000000126528902911 -1.672516681485974210374934046 0.102961983771105214380270354 1.550481380740705850129756982 +O 7.711330199999999912563453108 9.302109919999999476658558706 0.435126420000000013743601812 0.367139147610842431213029613 -0.786485856954164397336626280 0.010354289325874288518747335 +O 3.760470269999999892718278716 5.897579920000000086588443082 1.788910140000000037474592318 -0.044923433632767392764684189 -2.047046827131253188269965904 -0.052089657552811044483043190 +O 8.902510200000000040176928451 6.871779789999999721317180956 10.068999910000000497234395880 0.191887563015617268469270584 0.792075982361945873932995710 0.947115465317472260409203955 +O 6.668450499999999614431089867 3.222810550000000162640390045 10.562699410000000455056579085 -2.539104419202121487586509829 -0.012738719932939745332900472 1.795338398281259628674888518 +O 8.739949920000000815889507066 0.544120310000000051431356951 2.698250069999999833925130588 0.899152297498145514076384188 -3.059981210917193550358206267 -1.780527842348835321217848104 +O 9.344609710000000291074684355 4.463439550000000366480890079 8.036789539999999121278051462 0.094991915001340687663144990 -0.508336051504867048045355205 -0.114156120999615168232210749 +O 0.733668459999999966747452618 5.506399599999999949773155095 10.573599890000000556256054551 -2.153866999125847669915856386 -1.795406989840764078181223340 -2.408629732901755193807957767 +O 1.210879899999999897985958341 1.177739810000000053591406868 3.790940350000000069741190600 -1.020557765114438186770939865 4.261650788142755885701262741 -1.448160144411854588497590157 +O 2.312419549999999990319565768 9.793899480000000323798303725 5.665199710000000443699263997 -2.993913988508566159651991256 -3.025289047931542185665421130 3.264362266357230701885328017 +O 4.134859579999999645849584340 4.411299910000000323861968354 6.177819500000000019213075575 -7.285156335392305670950463536 -3.836067207400305267839257795 3.911260298035117877191169100 +O 5.895549449999999858107457840 3.488659849999999895686642049 4.521730319999999636593202013 -7.118921841283066598293771676 -0.595087084731636295487078314 -1.173626698644129273674252545 +O 1.513809710000000086083105089 6.878889690000000278757852357 4.380370530000000428572093369 1.256110895019769246871987889 2.847795513262181277269746715 -0.999297474125707019254605257 +O 4.701770009999999722083430242 7.222360489999999799692886882 10.702599870000000237268977799 2.190702663009772344082648488 1.887128156354753505397070512 1.016285190806843319322183561 +O 10.359899999999999664623828721 0.312672810000000023222810341 7.547750340000000335294316756 -0.238650390507229470671290983 -3.789658626711133404540987613 -0.688690113024612804437651903 +O 3.002120199999999794471250425 2.600219640000000165258597917 4.128160120000000432582965004 5.124204115053382579958451970 -2.269031348245833523691317168 -0.418608273720815993179655834 +O 9.670329649999999332976585720 6.754319830000000024483597372 3.988620150000000030843239074 0.803199420218600135257247530 1.976213417182912435166031173 2.375950383691578071676531181 +O 6.743670179999999625408690918 0.824043909999999990567687291 3.840110290000000148324943439 -2.222462802516666169339032422 -1.787893710794422830190342211 0.792858946789784635456044271 +O 7.325739640000000107988853415 0.493821120000000002292495083 9.371369570000000592813194089 2.783901786280252643734911544 -0.370032975106930617226197455 0.108496747107169833057582764 +O 1.327189989999999930603280518 7.197779869999999746710273030 7.186900020000000388620264857 -1.610631823830583453371900760 -0.134621150163683811484816033 -0.160536467025145290765664186 +O 2.166230060000000179343260243 7.432929989999999875749381317 10.175699469999999635660969943 -2.231929275401947521118017903 -4.043370366238484336918190820 -0.140257182358300730440348048 +O 4.053269440000000223278675548 6.288599549999999815952378412 7.922909500000000271313638223 -3.512591364156096407356244526 3.765248686224123009225195347 -1.509098431359603642576416860 +O 0.222429820000000000312923021 4.779609759999999596402631141 2.230420060000000148647814058 -2.286650665771628343492238855 3.104439435960720583551619711 -2.249895938347722612604684400 +O 5.019069469999999810738700035 3.286459810000000203444869840 1.667190530000000059374087868 -0.235025531110677504686989892 0.166189344077780631891982921 0.071316478897469295916700105 +O 4.828769929999999988012859831 9.797110229999999475580807484 9.252250480000000720792741049 -0.660205107179894223889959903 0.838681068094363046938610751 0.158559527125797267155249415 +O 8.968539559999999966066752677 1.652349639999999952877374199 6.201210080000000068878307502 0.434621941545811796281384431 1.800965422137084992471045553 -2.101361288220024992057233248 +O 4.746509839999999869064595259 9.220970389999999738961378171 5.398329740000000320776507579 0.679795419723111304932672283 -0.824760144993079702402383191 0.958438761233387226390334490 +O 7.798679489999999603355718136 2.600889589999999973457533997 2.297819710000000181793211596 -0.087325912389843496352881402 2.009178528788971185292666632 -2.310948790198676050522408332 +O 2.427520040000000101088062365 10.477400140000000305917637888 0.240406540000000001899849167 2.060302610468059292259113136 -0.753634047714718091626195928 1.228486969493338909487079036 +O 7.243160320000000318430011248 9.880399660000000139348230732 6.713449840000000001793978299 1.666625331623800443381355763 0.212105672902599434737069828 1.952596093610971417220412150 +O 2.533630000000000048743231673 4.593880399999999752935764263 4.062960320000000180584720511 -2.404481381500916725713068445 4.834088312471463311226216319 2.234637651275717118437569297 +O 6.633059519999999764650056022 6.411479889999999848271272640 1.282269920000000062998424255 -0.308103799425202162787229554 0.363714985517447852991779200 -0.985597608072689479463690532 +O 3.737630199999999902615854808 10.540599869999999427250259032 3.438910079999999869215798753 0.054910255911921557192556520 2.214227062670635071128799609 2.124250194414854853164342785 +O 6.543460419999999722051597928 8.652330259999999384490365628 3.768989560000000071937620305 1.312649898673668547033344112 0.809412888942458552676839645 -2.595795785071591588177852827 +O 5.878770389999999679275788367 5.523300270000000011805241229 3.608240410000000064627556640 -1.551745998004975479744871336 0.846436349814316368878053254 -3.698413209350851271750570959 +O 0.712155259999999956654903599 3.614959419999999923334144114 8.940289970000000252525751421 0.949935780523954553800081158 1.623112429267106193719882867 2.191344088884958463125940398 +O 3.696040309999999884382759774 0.816001300000000040490988340 6.244429769999999990659489413 2.987550001762291351781186677 2.390847043480768263634672621 -0.483432785181392155049451276 +O 1.692620269999999926824330032 9.533300080000000065183485276 8.805840290000000791792444943 5.981933970062500272035777016 0.315689480112830267444223864 0.324400024433219802411088040 +O 6.663980210000000070635906013 4.506280290000000299244220514 7.184299499999999838451003598 1.406876325319898590748834977 -0.134390156898470086721530947 -0.757017023436037161943090723 +O 9.133689499999999128476702026 3.128490339999999925169049675 10.790114199999999655688043276 1.356124023495974384445617034 -0.590338715090376608962685623 0.778824514761706998555723658 +O 6.731500389999999889312221057 6.937499690000000107659161586 6.227409650000000240765984927 2.763424002487525399374135304 0.310433979579345875610130179 -0.164900273078987580355203590 +O 3.339320429999999895187556831 4.227010339999999644078343408 9.458779670000000194818312593 -1.472487642603224733406364066 3.186126840623801914631485488 -0.565884317483598464626481928 +O 1.230030380000000089779632617 1.384160410000000007713083505 8.964819560000000464583536086 2.223641943971015777492539200 2.264320443116501380131921906 -0.318276561914639266603899159 +O 3.379970000000000140971678775 8.647879509999999214642230072 2.074600499999999847489107196 0.517509719148321778448007535 -1.946746368932223525405333930 -1.079033794902017673322802693 +O 8.520839419999999719834704592 5.302170170000000126719896798 1.389460270000000052803557082 -3.509522970057871393834147966 0.943782827377637967281032161 10.879724591323569171663621091 +O 1.058650040000000069895236265 1.487090030000000062671006162 1.181580330000000067514065449 -3.010648381517603500157065355 1.549373037203485514723411143 -3.269089143015258436264502961 +96 +Lattice="11.1073899150502058 0.0000000000000000 0.0000000000000000 0.0000000000000000 11.1073899150502058 0.0000000000000000 0.0000000000000000 0.0000000000000000 11.1073899150502058" Properties=species:S:1:pos:R:3:forces:R:3 stress="11715.0371127045364119 2381.0546201633283090 39781.2395892516142339 2381.0546201633283090 4719.7182135242592267 18369.0322200808695925 39781.2395892516142339 18369.0322200808695925 -35884.5120348523632856" pbc="T T T" energy=-799.0401492900069798 +Hf 10.249381809999999148885763134 8.094985799999999898091118666 4.246845000000000425188773079 10.025270666617821291310974630 -1.624912905768890691859951403 0.993536305618454185228927145 +Hf 2.037183059999999823475036465 0.456412649999999975314324274 5.402937689999999903989191807 -1.093996265860577299378064708 -6.635915615701743597298900568 -3.956507070469005515889193703 +Hf 5.015007650000000261059085460 6.209577450000000276020273304 6.315369780000000154984718392 -1.871534712246923914946705736 5.226125018076192674243429792 0.598947497075075108163844106 +Hf 3.520941529999999985989234119 4.231912229999999830454271432 4.369668299999999838689745957 0.490180229824163260499148009 -2.339837663934193123793647828 -1.359608370202742388954675334 +Hf 4.073850730000000197605913854 7.822981369999999934350398689 1.799551560000000050010271480 10.834952893936918627559862216 5.024741586235268009374976828 6.081620796773411719016166899 +Hf 3.925371590000000132647528517 8.564897260000000400737008022 8.520603210000000871104930411 0.525890949517358041731540652 1.359092780409776990424575160 -3.480073462938606088101778369 +Hf 1.495161310000000076669834925 0.307373689999999977207068014 9.467280499999999321403265640 -1.019654018745438150972404401 1.730918541683502898109736634 -0.395671303562093790162634832 +Hf 11.045166319999999871015461395 2.742953280000000049199115892 6.954146889999999636700067640 1.409755606172865327607723884 -3.764299271930488632875722033 3.795961418503557727177621928 +Hf 0.994931119999999946656998873 5.182247180000000064126197685 9.386686380000000440304575022 -0.437108512702624629753245245 -0.684460123788962038204886085 0.703506319020444470524466851 +Hf 6.427888750000000150919277075 3.333810880000000143041916090 4.614652890000000340364749718 4.851991867797550206375944981 -7.009061658294997165796758054 -4.571529522744784301835352380 +Hf 6.487372159999999610136001138 11.076753509999999636193024344 6.015672409999999636909251421 -0.278212993039145317641924748 0.637195234906530183494055564 1.987569866706863974670227435 +Hf 3.245673749999999913029569143 2.998664279999999848769220989 8.299127410000000537593223271 -0.037484664853302485099106889 -0.273265398926834879311797977 1.202959779809437579345399172 +Hf 7.370231940000000037116478779 7.564702340000000191366780200 9.146487970000000800041561888 -1.542475309156849938574396219 -4.552072835991429755608805863 -1.207953020182855219388784462 +Hf 4.793821750000000214697593037 1.937339839999999924202711554 10.986540400000000872182681633 -2.076967418731292980282887584 0.124065763746541768419717755 -2.138379055937945860677018572 +Hf 9.706639190000000638747224002 6.121193719999999949266111798 7.230950820000000334175638272 -1.636679529068436167449362983 0.031132373383454314819118736 2.688197613463052526583396684 +Hf 1.565221179999999989718162396 6.714872609999999575336460111 6.140045190000000374652699975 1.710440130291943638951579487 2.199230472034475969422828712 2.540096458965507508764858358 +Hf 9.720839989999999986025613907 6.200480490000000344252839568 1.253623340000000085936449068 -1.974950284135203126822943887 -2.107411903687758325531831360 -2.479788288505500037928186430 +Hf 0.916492960000000023157440410 2.547883080000000077802724263 1.747670049999999974943420966 0.961267067598387203730680994 1.283723879334214057479357507 -0.404479790072007849843771510 +Hf 10.108493449999999214128365566 9.434299319999999156038938963 6.894579069999999809681412444 4.395945606529910065773947281 3.271669948778527903243684705 1.565961722156343771672482035 +Hf 1.535903220000000013456542547 5.733128179999999574079083686 2.888836630000000127438397612 -0.089325278387210715891342261 0.487894578372687071077251630 -1.526498669522517115382242991 +Hf 10.370089150000000088880369731 10.867188170000000368986547983 0.988844269999999969655846144 3.128344234872500351229973603 -1.919976050762148833683795601 -0.468942982699629307141719892 +Hf 7.052663879999999885228589847 8.308429840000000510258360009 3.414745990000000119835021906 -7.215382214115082071259621443 -1.412696592609052004263503477 -0.821076323248934536458421007 +Hf 8.724833670000000651612026559 10.829980629999999663937160221 9.455222309999999907859091763 0.283432487491472040463946769 0.344025548358676103166686744 -5.961352545644058587015479134 +Hf 6.612465799999999838121311768 5.021715399999999718261278758 1.220954290000000108662447929 0.870805690716337288392878691 -1.539234528971561655197319851 1.143451433498907654495724273 +Hf 4.783660710000000371167061530 5.862979120000000321510924550 9.718221979999999149413270061 -0.488716138787519738251319268 -3.888590109660852167650091360 -0.685901004031363559221290416 +Hf 1.660749170000000107805249172 8.048854589999999475935510418 11.012101839999999697283783462 -5.307447709207584907176169509 2.856901166513312162464899302 -4.648724377369012117355850933 +Hf 7.387994879999999930930698611 4.042305749999999697763541917 7.580493719999999768788256915 0.128133116156774973237730819 -3.063979060980805524394554595 0.538115059353677871456511639 +Hf 3.651747700000000040887471187 0.528028660000000038543532810 2.381855359999999866005282456 -1.978338649436590213070985556 -2.544051918879270068885034561 2.409273208690186240943376106 +Hf 6.516194719999999662718437321 10.224532359999999542310433753 0.269711860000000025472388643 -2.598259368050954698503574036 1.732797655661332036913790944 0.446189561236081777551021332 +Hf 8.495089529999999555798240181 2.506149279999999812673650013 10.845644269999999309561644623 2.025252441709690653937059324 1.449082705936556303427664716 1.248797111050758301686869345 +Hf 9.487955789999999112183104444 0.340319319999999980730365223 4.026183370000000039112819650 0.769471411326602350300163380 -1.399576496718091034310305076 -2.062365778952264250278858526 +Hf 10.209537380000000439395080321 3.543715010000000109613438326 4.085993329999999978952018864 -3.900530139839460286310668380 -1.753988679959760821347458659 1.029885064145078743536032562 +O 1.045094320000000021053665478 0.289581870000000018983143946 7.555966380000000093275502877 0.263404414729413227647114581 -2.246653135122220312780427776 0.462249692498725717193508444 +O 6.839651909999999723765995441 10.422742619999999291735548468 3.971547230000000094918277682 -0.165981380082592833158372514 -1.149869008918152024634196096 2.452927797393305020534626237 +O 4.088004879999999729989212938 0.689345720000000050653454764 9.365857809999999616934474034 -2.173321985436827752380395395 2.860492988649724122041106966 0.576263657296160247689442713 +O 7.488345699999999993679011823 10.730195170000000004506546247 7.706654780000000037887275539 3.735640116133903010364747388 0.090320455076914635261786657 -0.638041246976280618241617049 +O 2.019643380000000210117150345 9.547462519999999841502358322 9.385816679999999578853930871 2.655237330586308619473356885 -2.818267463555528262730831557 0.343761215559263477725693292 +O 10.870417079999999288020262611 6.800260670000000118307070807 2.558779420000000026647057894 1.067286437109281393986748299 2.263801144911046225871587012 3.426833495118692063385879010 +O 8.718616869999999963170012052 8.694970350000000181012183020 3.819238260000000106941797640 -2.584666808933092863043157195 3.338102738403776026387959064 -0.872470575997276731605722944 +O 1.429627710000000107015694084 3.762536139999999917904460744 0.458590810000000015378418539 -0.038673579410903435871205147 0.222025371417462646927987180 -0.989312003489347335793979710 +O 5.599186379999999907397523202 4.702314630000000050813468988 8.079954170000000601703504799 -1.489664699304991568595823992 -1.556661419664508105853428788 -1.593700774416977106184845070 +O 2.205622180000000209787458516 10.415198480000000813561200630 3.436577569999999859362560528 0.481602143862394527218384610 1.464904646441445246196622065 -0.588180155579981267521816335 +O 11.053716789999999292604115908 9.165651549999999758711055620 0.058701440000000000563051827 1.323913896713555082840230170 -0.674183047963981429973046033 1.466022779160467415238144895 +O 9.006412669999999565106918453 8.189758489999999113706508069 6.135763289999999869905877858 0.065757906249345077220880285 -1.884823364850656712832233097 0.478083632834357230567690067 +O 10.391074339999999409656084026 0.906250829999999951702704948 10.106617419999999185620254138 -2.787396485985821570352527488 -2.171460174643177865050347464 0.240931692455504498084906118 +O 3.702220790000000150143932842 1.146333730000000050708308663 4.394383350000000021395862859 0.347836944208860687766105002 0.343494481231216619576684934 -0.663266910876899151716656888 +O 5.257811860000000336867742590 7.262927890000000274994818028 4.326170649999999895385371929 2.905384152744705072990427652 1.423832657035548621138332237 0.588492918621567495662816327 +O 5.547501480000000206871391129 3.301176260000000084460225480 0.830840539999999960762977480 3.519673148794027373043036278 3.712445171801428855928861594 -0.365646018769058056552267999 +O 10.566629969999999261176526488 6.246309580000000138966242957 5.432602189999999886538262217 0.458410331715465968471789893 1.086415521897471148093927695 -0.908341742340949442890973842 +O 1.699720560000000046940726861 7.137835349999999579040377284 4.307809019999999655681222066 -1.467273168176111752813994826 -0.653753337196404160636120650 -1.786472146310050579387507241 +O 5.221470700000000242368969339 6.458414079999999835024482309 1.148800679999999907465735305 1.249715388570356910946657081 -1.848085374739162789481383697 -0.876001025766307450659553524 +O 3.072851640000000106311972559 1.938136239999999954619624987 1.300699800000000072586203714 -0.116707636910360859627822094 0.791370928402317486138883851 0.079092982915181256342584959 +O 4.964783370000000140009888128 7.695399669999999581193605991 10.041973520000000874574652698 -2.199349717484314403748157929 6.278479129869978692113363650 4.116752601065946315372912068 +O 4.896216339999999611620751239 3.454490450000000212327222471 3.264147560000000058977320805 -0.055316212737902173413040430 -2.192490371384653968789280043 1.426696234923436223951398460 +O 1.866783480000000050580410971 1.966584490000000018383730094 6.230854759999999714636942372 0.622495867545223013905797416 6.866952304080104596550881979 3.264009633806395527244603727 +O 8.100516170000000570894371776 6.695947839999999651183770766 2.416532639999999787505657878 -0.117529086302822660670130972 -0.727945273385957047906913431 -1.811052641122086859226669731 +O 8.770500600000000090972207545 0.325256590000000012086189827 1.734092380000000099826706901 -3.209693374919614594631411819 1.516087756202477265787820215 0.301632949845560827117907365 +O 7.610248190000000079180608736 6.081691400000000413683665101 7.547778010000000037393874663 0.015265500103334841974778158 -0.317994241388144582849406561 -2.431320890720057636968931547 +O 3.574985639999999964544485920 5.715977259999999837702944205 3.127240089999999916869910521 -2.427673503064400328810279461 -0.360450578594703141543931224 -1.037812201905099040999402860 +O 10.290386959999999305637174984 4.420997769999999604806362186 8.745688910000000149125298776 2.131776679004096841651971772 0.313519187015487643677147389 -2.777667929730552653921904493 +O 6.459113849999999601436684316 8.945514190000000809277480585 1.610827009999999948064441924 -0.115787580826517327858837803 -1.486621463134309317766224012 1.600569543596557675613212268 +O 3.171265340000000154674353325 5.392951029999999867925453145 5.921811629999999659901277482 0.216560637081972928719153515 0.036411516845350128113167898 1.305384267612093029953257428 +O 1.038073339999999955551857056 8.945152090000000555392034585 6.098554639999999693600329920 -2.240452430127039207263806020 -2.361690788685833375382117083 1.924830283218959880997545042 +O 2.040919580000000177477659236 4.332827309999999876310994296 7.835874829999999846563696337 -1.463588012707547791890760891 0.086114876301148335357993346 -1.951024126922147550189379217 +O 9.697678859999999900765033090 1.283407809999999926731106825 7.456967320000000398749762098 1.180886635301400922060111043 0.813935246617695673521097888 -1.705463753413976046857669644 +O 3.954971669999999939193457976 4.053801899999999847068465897 9.908028390000000129589352582 -1.313347995476032981088110319 -4.697612714667639188803605066 0.176491615696264536605752937 +O 0.679707839999999952063092223 6.275585330000000183758857020 0.125163620000000003207318855 -0.932760018720130812397428599 0.911652230023080933918322444 -1.550054281207656314833798206 +O 10.974693260000000449849721917 4.352275230000000050267772167 2.571866149999999962005858833 0.462983193862422925946020769 1.960965798281183447571152101 -0.286170314824730098735017236 +O 5.607242570000000370100678992 4.678327109999999677825144317 5.401331560000000031607214623 -1.251382541593439645666308024 1.345057532131013866560920178 1.437693224801982250227183613 +O 8.710095280000000883546817931 4.516874539999999882411430008 0.371321159999999983458707220 -1.471388597752443239130570873 1.445994860390305225550378054 0.719026020897933881848018700 +O 3.856250300000000130751232064 9.760600009999999215892785287 1.017236980000000068358190219 -0.165895544607357892097354579 -0.912957050746289744402872657 1.335922537520771058439095214 +O 7.134629760000000153752353071 0.933813820000000016641195089 10.338531939999999309520717361 0.395480860062610239946678803 -0.842249192651087330574455336 0.360972150203424935188678546 +O 2.798805680000000073448518378 6.246388450000000425177404395 8.949361789999999317046786018 -0.918679141149957967371619816 2.990014458642999084503344420 2.051770503093163888763683644 +O 5.240944179999999619212758262 7.156236960000000202342107514 8.110406190000000847817318572 4.180911870617101122604708507 -0.668423598616855629828137353 -3.609662706905982787475295481 +O 8.198070149999999500778358197 3.477328360000000007090648069 5.762012939999999971973920765 2.039418893703849100518255000 3.830677404358613369339536803 0.699033832487972128788555892 +O 10.380573410000000222908056458 9.910487570000000800973793957 2.710355310000000184089685717 0.659324581083923888513709244 0.080894873680239731683627724 -0.598191873242668425980639313 +O 0.284780150000000009669065548 6.574666249999999934061634121 8.035493510000000227933014685 2.086471493126312637400587846 1.227580015885247455287299090 -1.127644682811712373293744349 +O 1.022075360000000099347516880 0.719141299999999983327825248 0.893946070000000037047982460 0.216196870340974456325966457 -0.246897760894241757867462184 0.775595015311979052441415661 +O 9.796633489999999611086423101 2.673640939999999854848056202 1.325213799999999997325517143 2.520946988229964436101226966 -2.030434531842435053050621718 -0.493882151075773379034217214 +O 6.683426479999999614278749505 5.738864030000000227005330089 10.194695689999999643760020263 1.345317506048327782508522432 0.655006333480055658036178556 1.654480073025363040528645797 +O 0.181706900000000004524736141 4.014451750000000096463281807 5.531494620000000139725671033 0.154460958796244440804912301 1.735886585452544039753774996 1.939246522450597254305648676 +O 7.256075739999999996143742464 4.142260040000000032023308449 2.989457359999999841448925508 1.229952013053134507458707958 1.251031484034927476756138276 -0.712832600967007956604959418 +O 9.807690900000000766567609389 9.092257249999999402234607260 8.837640329999999266874510795 -1.644397173483078011813063313 2.521115853131509432216716959 -1.421027321115616803837156112 +O 1.478202550000000004004618859 2.292905160000000108766471385 8.869033140000000869918039825 0.610846350102949742222335772 0.769579063479834846184246544 0.716558840610353797728748759 +O 3.419762089999999865597146709 7.758114209999999566491624137 6.648621470000000144295881910 -1.498197422255118205214330374 -0.160148973110982695278181609 0.215177472833314648026359350 +O 1.954890629999999962507217788 3.464324940000000019324488676 3.595345490000000143737679537 -0.287881131243554189147459965 1.398580253122875038940264858 -1.955271099601964213121618741 +O 10.858762099999999861665855860 10.231920990000000770692167862 4.953239459999999816375293449 -2.881088930763154198899655967 0.879033248429026858872248340 1.641507418432173626143821821 +O 5.281971549999999737678990641 0.676015739999999976106437316 1.188023100000000109588427222 2.004688586866174127010253869 -2.177876998847662282088322172 0.813435278400782779684163870 +O 6.798585669999999581136762572 9.269223520000000604568413110 9.652231869999999602782736474 1.475124291888445071663227282 3.485742701385809105829594046 3.020593864872598288684457657 +O 9.056904649999999890042090556 6.789774180000000214363353734 9.186479009999999334468157031 1.143079679247285707077708139 0.187788007784605026628810265 0.883096592137440516978585947 +O 8.343380359999999384967850347 2.967199260000000116122009786 8.991792020000000107415871753 -1.368223652267979595364977285 1.450105040831198843775950991 -0.021268379674211634888791878 +O 5.345571350000000165891833603 9.820130060000000327136149281 7.062619439999999748636128061 -2.151960029784708794409198163 -0.281169150055299188473156846 0.152260320596545761784312845 +O 2.635198270000000064783307607 7.223063459999999658123215340 1.217710929999999969197688188 -7.541322700512001375727777486 -4.979689400193412218698085780 0.702044092435005206986886606 +O 6.508285149999999852354903851 2.018095010000000133487674248 6.541237439999999736528479843 -2.659123797138588152222382632 -0.149173204158694672205598408 -0.551643595839636069477762703 +O 8.189471920000000793038452684 1.697316920000000006751861292 4.273973690000000047461981012 0.592207378125294114923349298 0.393784589449979849362648565 -0.743034399681456458885975280 +O 0.189439870000000010197283018 1.926387960000000010296616892 4.509337060000000008130882634 -3.483605900646367103945522103 -3.676881274027866464138014635 -2.088200852427901210717209324 +96 +Lattice="11.3392145123717665 0.0000000000000000 0.0000000000000000 0.0000000000000000 11.4649097052414071 0.0000000000000000 -1.9502768608408696 0.0000000000000000 11.5813520990689547" Properties=species:S:1:pos:R:3:forces:R:3 stress="-202333.8191003412066493 -3145.9199381119310601 29256.6206662079239322 -3145.9199381119310601 -167030.0677602981741074 -24435.7809200054471148 29256.6206662079239322 -24435.7809200054471148 -146513.1010301884380169" pbc="T T T" energy=-720.2685527004448431 +Hf 3.777313470000000616977331447 3.408539530000000539189386473 1.177186220000000060892375586 3.586254999216075489698596357 -4.092243762077674595900589338 0.269833346080854574733365325 +Hf 1.258177700000000065472249844 0.786030950000000117050547033 0.813910669999999947243907172 -2.625297460433356100395485555 -0.071659215117303165509810015 3.391920075409974977276306163 +Hf 0.982587160000000126025554437 3.024085729999999916373099040 4.198175220000000429365627497 -2.441500388012074473920165474 -1.607423699530236227417390182 -2.714534428798145437866651264 +Hf 3.152002279999999601045601594 5.279791140000000382315192837 4.838792080000000161987827596 2.826294169792293420329087894 3.605818981062655748104361919 0.655164088414202816501585858 +O 3.648175689999999971036004354 1.683335880000000006617710824 0.039725800000000005551825666 -2.861382153022897334437857353 2.179946586752932624619916169 0.829874610814370972100562085 +O 2.060489489999999701552724218 4.722040129999999891197148827 3.150515710000000968449285210 3.661737459355863144594422920 0.028502399469903155759809010 -0.766243320559225948862547284 +O 1.342705870000000079045321399 4.602942089999999986105194694 6.580578209999999650392510375 1.282267459683642529810754240 -2.669550005907510570324348009 -2.570752330964727327966556913 +O 1.691838019999999609410679113 0.781513410000000185995361335 2.894278939999999966659061101 2.466627368400865272235478187 2.001806313732730213672539321 -2.130108541546302802771606366 +O 5.061004399999999847636900085 4.186326870000000255345184996 3.753815209999999957801719574 -1.115543145392734025733716408 -2.093766496089370487965197754 -0.845502323453694581978368205 +O -0.353363940000000431584936678 1.074352020000000296207076644 4.843496720000000088646174845 -1.205071175514536019335309902 0.031902268463389393815532458 1.296443547839276178024192632 +O -0.344910560000000310232337597 1.303016350000000045383785618 2.257744199999999867856104174 1.024661383773435741062485249 3.377454226846544393936255801 -1.931375863099174194914553482 +O 6.002036740000000314410044666 3.620616860000001047126261255 0.718635189999999979271194661 -3.860537433228014680963724459 2.077942828272908659670292764 -0.169764888702389343810850164 +Hf 2.826825359999999509597046199 3.148854510000000495040239912 7.181260619999999761375875096 0.530507135487453984623584802 -1.316903247127624965173708915 2.972811112616823070453619948 +Hf 0.570660709999999404828940897 11.010801375241406674376776209 7.071726080000000358438683179 -1.548248498591780819566565697 0.212208903452340669204545520 -2.714690640287849454637125746 +Hf -0.664199030000001355844574391 2.325973390000000140531710713 9.297243090000000265149537881 6.746511757889321891923373187 -0.819936813141142195604516019 1.744857900202005041023767262 +Hf 1.679440859999999924312419353 5.233465910000000498314420838 10.402241610000000804348019301 -1.355780687779608140175469089 -2.820688647795823733588349569 -4.878749831386389956833227188 +O 2.421161559999999823844518687 1.150314550000000268781263912 6.796885060000000144952991832 -1.327409981846491948687116746 -0.625245813686116092000588651 -0.186335503524458323543200322 +O 0.539898560000000138359155244 4.399165060000000515572082804 8.695880320000000551772245672 1.983043267907048656795154784 -0.875142094600586450958701334 0.996748158572468234694952116 +O -0.376154630000001821699129323 4.376561470000000397817530029 10.554312950000001691819306870 3.585708505811641799709832412 -0.115759542853696717479294875 2.481458230918724972013933439 +O 1.371191109999998936075371603 2.071803759999999883234522713 8.635368610000000444415491074 -0.514270791976891072927458026 -2.319987339208670285017888091 0.888755741673053267781767772 +O 3.119837459999999396131897811 4.111135410000001044750206347 9.430659159999999374690560217 -0.213718936094218076027217990 -1.410955930362451926640687816 -0.380970057055664113043746966 +O 8.746779792371764727931804373 0.932129919999999945190438666 11.168385839999999120664142538 5.040220284509255854743514647 2.167847875106143185064411227 -0.121067108943892609573822483 +O 10.139479122371765740240334708 1.659264990000000050685002861 7.123430630000000540746896149 -1.449852060895857164268818451 1.507922580811048796078921441 3.907769785781171734129202378 +O 4.729799549999999186411514529 4.176349499999999714816567575 6.584973290000000645250111120 -4.158970858007562831915038259 2.704666185073461459609234225 -0.341774216162861688150798045 +Hf 3.569124359999999995807229425 8.875597799999999537590156251 1.966281029999999985236058819 2.558558241882310291259727819 1.780833964182604534087772663 1.132389043314034671183776481 +Hf 1.729636160000000089098648459 6.076722479999999926292275632 1.388334870000000220713332055 -5.754159952390327070759212802 1.210551491014500324894243022 0.257017356378027361785143512 +Hf 0.106738289999999791390905557 8.695734050000000436853042629 3.939286210000000121311813928 1.414525252966408519483820783 -1.529218098127667957442099578 -2.530713641476761033288767067 +Hf 3.827464550000000187424120668 11.135853640000000552845449420 4.533334049999999670887973480 -1.816636177306949484488995950 1.175797947898516770948162957 1.376918331669528594574103408 +O 2.615661970000000113856231110 7.796204369999999883589225647 0.263678689999999993354151684 -0.329495800254075210666826479 -1.651409089993387757644427438 0.824834638935235786583177742 +O 1.598625139999999777984385219 9.904298150000000688919499225 3.286540930000000582111852054 1.156959031191509890135193928 -4.374527185472927293119482783 -2.047683967320663267486224868 +O 1.639236539999998854000295978 10.870627139999999855035639484 5.226770110000000357786120730 1.037458110855707937858483092 -1.074750790059523675168406953 3.062208770587441897248481837 +O 2.952627140000000149910874825 7.238420470000000328525402438 4.397249869999999560832293355 0.477632386669518627098085517 -1.061812484544476520298417199 -3.702274499751032621475133055 +O 4.849927189999999832537014299 9.472559820000000740947143640 3.563173540000000638627852823 -2.567482962016050862530391896 2.841773235720594481534817533 2.991334379695406386900913276 +O 0.469171339999999936765107122 6.699262359999999638660028722 4.834873250000001121406967286 -2.325109536921313058144278330 2.813135152882392020501356455 1.284757023242988793754193466 +O 0.056160859999999812597337723 7.579166129999999945709987514 2.079412370000000009895302355 1.129122159316088946923173353 1.491438186722009895390783640 2.602739172292044322887250019 +O 4.799565199999999087765445438 10.240230309999999391834535345 1.091078500000000062186700234 -1.020519215890354658426986134 -1.493695625337651433639507559 -0.028637042188578196166837131 +Hf 3.148649269999999944502633298 8.997328810000000842705958348 7.375764440000001087582859327 2.982208041940884069020967218 -1.505314757239329725990728548 -0.206930242466644154220034579 +Hf 0.611057799999999762263769298 6.410627190000000474867647426 7.018956770000000844333953864 -0.302048751151704486517246551 -1.716470167342473152061188557 -1.503497062795563055104253181 +Hf -0.263420160000001013500536828 7.905700360000000870286385179 9.730045040000000255986378761 -2.406299766053153099676364945 2.689276923711207523126631713 1.846288310526897014085534465 +Hf 2.410738550000000035566927181 0.092571074758595425779894583 9.353271290000000348641151504 0.343481313397413168253535787 -0.460980867329503218865482950 2.593936858687383661958847370 +O 2.774290779999999845273350729 6.700706979999999646224750904 6.388679009999999713897977927 0.149140291018051818205947257 0.945626692762779108569759501 4.124645168137485384818319289 +O 1.435637539999999212625425571 9.246756369999999947140167933 8.386766529999999164601831581 -0.375516156691046487647867025 1.452431269119670576017711028 -1.098082386175168290165515828 +O 1.320872209999998769802687093 10.507156560000000311561052513 10.735794809999999799288161739 0.484009521439646928087086053 1.756162846113152431470894044 -2.353431973404641386338198572 +O 0.889218929999999962987544677 6.554459460000000348145476892 9.043661970000000493996594741 1.075751121562926959640549285 1.795471232275842154990641575 0.958854785768506023835300311 +O 4.188472250000000229874785873 9.539318310000000522563823324 9.301222020000000867412381922 -1.325614788225937701326984097 -2.258209228622180653189843724 1.723946558424285679933518622 +O 9.399679292371764915969833964 6.925053339999999835185917618 10.210443330000000372592694475 1.322949348397667534982247162 0.436807784034703328046589377 -2.060150960006460252316173865 +O -1.035296370000001076050466509 7.795554630000001594680725248 7.113964649999999778628989588 -0.325641112758228601364862698 -3.102737023740306465668936653 0.674534014751427601908062570 +O 4.180196890000000387033196603 10.583374220000001386665644532 7.403643029999999569668034383 0.143234031232976510850107843 3.904939701286942010938219028 -2.445294564297816553022357766 +Hf 9.597969269999996555498000816 3.526039879999999904214291746 1.999316700000000279757728094 1.097247779267580991557906600 -1.914142317509031077094050488 0.626624535869191534587230308 +Hf 7.122207129999999608571670251 0.473944020000000076908719393 1.195729240000000137555957735 -0.162144162617109455215569369 1.133801755438785585639038800 1.102876540271328753561874692 +Hf 6.471302199999999338331235776 2.669745489999999943364628052 3.843161419999999939278723105 -0.932977781404951023169758173 0.415404728704652115300888227 0.866536542303941281772949878 +Hf 8.793302320000000449340404884 5.269991790000000619897946308 5.585326280000000309655661113 -4.355198663572363848572877032 1.964062834578222282999604431 -2.190514958954227431320305186 +O 8.982729570000000052232280723 2.066570710000000143935494634 0.096735970000000018331753893 -1.972168939955361910421061111 1.237500839995846035890281200 3.908126267193051450732355079 +O 7.936507870000000686161456542 4.438898810000001304842953687 3.439683819999999947469859762 1.911508135424140331082298871 -3.304981507243339944324134194 -0.688083538488854840053932094 +O 6.740295579999999731057869212 4.685407660000000085176452558 6.159511219999999731555817561 4.500480811895354982254957577 -0.129220902765537770662263028 -1.719975494321235087724630830 +O 8.425682720000001069138306775 1.543226269999999900051079749 3.400978550000000044661874199 -0.661610143868697431202008374 2.271055587553642673981357802 -1.513862839159159312529823183 +O 0.090675167628234354388894189 4.480181479999999716312686360 3.059637570000000028613840186 -4.363343161515709667241935676 -4.224467116991526438596338267 0.190382488699978758006636781 +O 4.970534479999999533106347371 1.499045290000000196783958017 5.231841010000000125046426547 -0.213583828710229628455863349 -2.430695393762433820228352488 -2.882804315796986927011857915 +O 5.674869790000000691065906722 2.005839009999999866806774662 1.722646670000000046485411076 1.591882389613625159441312462 -3.939659866901757290236218978 3.755076332065925726055866107 +O 10.874375889999999600377122988 5.765990580000000420568539994 0.807288569999999983117788815 -0.928029835218298515542301175 -2.278496421855765063924081915 -0.217002709372911439800191147 +Hf 8.986938679999999735059645900 3.423431320000000610548340774 7.664317960000000873321823747 -2.654881778435978834096431456 0.775265922566559129158747510 -0.589263941505873356518918627 +Hf 6.412984619999998692208009743 0.295352520000000062783129806 7.542209360000000195611846721 -2.873425049994195568103805272 2.940420697454155352090765518 -0.624929149875768641386741820 +Hf 4.820220709999998298656009865 2.755025450000000653005827189 10.049966230000002553879312472 1.435052382106923429816447424 -0.852333151394201293804542274 -0.677416564708814727957530977 +Hf 7.549409759999998748014604644 5.478036900000000208876826946 10.286112179999999938218024909 2.689720145699636688618738845 1.358630019513840769818102672 -0.006784361234295516185355268 +O 7.551042610000000543379883311 1.357882280000000108088897832 5.786155100000000217619344767 -0.526528167985795381156322037 -0.888350970838510556326639289 2.928249773165073399638913543 +O 6.979791130000000620725586487 4.548694150000000213651674130 8.140275819999999384890543297 1.946980121871470847949581184 -0.159037183630025946712294171 4.449748789889086175719512539 +O 5.653127979999998942162164894 4.327432059999999580668372801 11.461649680000000728341547074 6.401013772537879731316934340 0.331787647666284712943962631 -2.873998782894032988366461723 +O 6.489556059999999959586602927 2.102931040000000528777945874 9.232515460000000118157004181 0.680539406377533850900363177 -0.179813839445888024037856212 -3.092028831752756889983402289 +O 9.193712660000000980176082521 3.330786540000000961470050242 9.652387290000000064082996687 -3.492423389801353028616404117 0.769533346606272594669917453 -1.639529029394355852389253414 +O 5.210193310000000188608737517 0.283947539999999998272528501 10.137498170000000641266524326 -2.197730560444133729447457881 1.163651270919441760298695954 2.369734653053189088467433976 +O 4.338742929999999553558609477 2.127345500000000111384679258 7.966969540000000016277681425 0.151117246911308983348121160 -0.744599497037203073013245103 3.408943610764310072624994064 +O -1.100801872371767853309165730 5.089226570000000116067440104 7.646553950000000376974185201 -3.398125102456868606992657078 -0.896219963674871777925545757 -4.480120774239164660457390710 +Hf 8.522944830000000138170435093 8.707984939999999340898284572 1.803582580000000046283048505 2.497616135990027075308717031 1.964525110715932498806068907 -1.276126756436847031750403403 +Hf 7.193994560000001925459400809 5.730693870000000522679783899 1.129780369999999978247728905 -2.157394301165910466266950607 0.247245186730795485363643138 2.179697783169638913847165895 +Hf 6.582358460000000022205313144 8.475350750000002264528120577 4.607985769999999980939264788 -3.493735820907268418977764668 -3.843779192800923727446615885 -1.812354772817385217820174148 +Hf 9.087501639999999270003172569 11.441967070000000461504896521 5.078979320000000186041688721 -0.416862032779544033900265276 2.379491786150883303463388074 -2.703737758443546912445754060 +O 8.008259020000000560912667424 7.376736209999999793751612742 0.229900309999999996612984887 -0.777677791722478861657918969 -4.423922985507527272375227767 2.724558791276043390183758675 +O 7.694055050000000228749286180 10.549102579999999562687662547 3.142359410000000075058324001 -1.149769610989034518411244790 -0.335315936844295392482706575 -5.195213649560738389254765934 +O 7.484093619999999447145455633 10.019971740000000792747414380 5.396857190000000414897840528 0.063712006463764403463301278 -0.402731031430298480611185141 4.744845968838593996963481914 +O 7.679539719999999292099346349 6.448313070000000202242063096 3.111300169999999809533619555 2.666386533882954434915291131 3.210426461261110198108781333 -3.290649253179169342331533699 +O 9.535652349999999444207787747 9.671081120000000197478584596 4.117976360000000113359419629 4.812748491866331690403058019 -1.614968985581875848822619446 -0.120993161328050810587875219 +O 6.018923100000000303566594084 6.209083989999999886322257225 4.769926759999999710259999119 -1.479598010941785446448193397 1.049262761910173535895296482 0.920319041049275199384283042 +O 5.519299159999999204728737823 7.498952530000002170140760427 2.964211280000000225953726840 -1.395256805526271515205394280 0.966743320231915115314791365 -1.711826903843029823448773641 +O 10.281446090000001092334969144 10.208468039999999632527760696 0.685304710000000039116230255 0.685548019155595378393286410 -0.627177798964952071258949218 1.531416555045270522228406662 +Hf 8.312332530000000829772943689 8.319053280000000327731868310 7.319411940000000171835381479 1.090568448905817611205293360 2.026469767730629811808285012 1.944542792170463219036946612 +Hf 5.685721410000000197726421902 5.983999450000000663862920192 7.681291630000000481004462927 0.415968899466352626248522029 -1.431742374496567604680308250 -4.857622386205616038523658062 +Hf 5.386071330000000045856722863 8.202994150000002093747752951 9.989876329999999526876308664 1.620251798817542665531732382 0.507358397314682463274948532 -0.390856542493231484680649146 +Hf 7.947613500000000108514086605 10.865222870000000199297574000 10.302266019999999357992237492 0.273071853270172582028862962 -1.907011875169932535456496225 3.315990500490126002830493235 +O 7.194837060000000228399130719 7.099989070000002122640125890 6.265497720000000825280039862 2.662317039931825668475084967 0.927842520924185842901010801 -1.847685029332060135942583656 +O 7.437355649999998874477569188 9.498681969999999807896529092 8.930878740000000703957994119 -1.914044754169783146835470689 -0.043790176412036918573988942 -4.367346051430436304485738219 +O 6.768507539999999877977643337 9.213150340000002103124643327 11.261034029999999361848495028 -2.745949254605335454471060075 2.364354450314247291231595227 0.170134324524408631074123832 +O 7.303535909999999020669747551 6.985029840000001044586497301 8.499542959999999425235728268 -0.993841512274061589238272063 -0.683103015142394465186725938 4.048226526685528625648657908 +O -1.614490972371769084148240836 10.386423410000002576225597295 9.594313500000000161094249052 1.255508035356041496299894789 0.278570257135153820371442634 1.575379627122273973327537533 +O 4.412743769999998733055690536 6.019739519999999899368958722 10.260645439999999339875103033 0.170580202590191493117188770 3.676147850829305507858180135 -1.282854052498979768870412954 +O 5.081206339999999599399416184 8.395699570000001443759174435 7.046130070000000245045157499 0.126039986075945936727649155 -3.102972989847542883978803729 0.386214173961229645382076114 +O -1.212538492371766363220331186 9.797703860000000375407580577 7.414354050000000917464149097 0.727685964341660440624082185 3.277104321540377007693223277 -2.255519624705905279427042842 +96 +Lattice="10.3542061734513187 0.0000000000000000 0.0000000000000000 0.0000000000000000 10.4689825488840267 0.0000000000000000 -1.7808613365965862 0.0000000000000000 10.5753098920791988" Properties=species:S:1:pos:R:3:forces:R:3 stress="32337.2630713108264899 -23799.8226646954317403 38162.5881679608501145 -23799.8226646954317403 48993.5921812498709187 -21782.7563708978887007 38162.5881679608501145 -21782.7563708978887007 23449.9964490685051715" pbc="T T T" energy=-724.0493771064910788 +Hf 2.921531419999999990011474438 2.916864780000000489934564030 1.708888210000000018595756046 2.162847407862041215764747903 -1.644702544931424093022087618 0.215758964612513509662150568 +Hf 1.968626580000000014791794456 10.375142378884026683749652875 1.036259309999999933538106234 -6.466323046572446386903720850 -1.253259972665218047183088856 -0.108594265385436261617257969 +Hf 0.431813889999999034330357972 2.082301269999999870918827582 4.612056450000000751288098400 -2.202166155329762009529304123 0.752579625398981488793026529 -5.647461105389624869133058382 +Hf 3.077898579999999384426700999 5.265084850000000038505731936 4.424745760000000416312104790 -1.651298508886775984194628109 0.212990020321590006746603763 -2.046567187644662055845401483 +O 3.776516539999999810817143953 1.294114250000000021501023184 0.681779950000000134480160341 -3.559936158111746795640328855 1.899020352118833798726882378 0.444277798875508778131404597 +O 2.174678389999999517101514357 4.633596309999999718343133281 2.532048640000000183647443919 0.667763478560597478761451384 -4.302039077912390929725461319 -2.010476462753337578703849431 +O 1.603077550000000073282535595 3.671946300000000107388586912 4.851869190000000386930878449 -0.413181527777106372134596768 -0.492906736957170077406686914 0.407112361074157103058013263 +O 1.469793029999999056656179164 0.718598480000000039424890019 2.775335210000000163432787303 2.809975267809169174881844810 0.889345912524581394542622093 0.770185094310540274697984842 +O 4.464307110000000022864696803 3.834829360000000963992761172 3.862056780000000522079517395 0.894269737202521564078949723 -2.126091410811131954261554711 0.428928118075189768187982509 +O -0.522360380000000734668219593 10.131161038884025415995893127 4.953189240000000381769496016 0.803602086630373912967684191 3.439311456802384370234904054 1.210801418071211443816537212 +O 0.054282959999999824685090744 2.245577780000000078786115409 1.990207850000000000534328137 -0.077530537770055030222238202 1.118945773963909040560338326 -1.262432460710103399037507188 +O 5.526416729999999333244886657 3.303847030000000017935235519 0.644398160000000053138080602 -4.175650252292876452031578083 1.551293547814414974794772206 0.691703636566009305575164490 +Hf 2.789355839999999364664517998 2.292783640000000122682877191 6.410972420000001115170107369 4.119023112791897922591033421 3.848513243443106635055528386 1.207674689352100871886364075 +Hf 0.509297519999999837025939087 0.352764699999999986612664316 6.881247000000000113573150884 -2.417889727990963244508293428 -7.719284994734763927226595115 -8.452317870290956491885481228 +Hf 0.386009979999998309452280409 2.443151569999999939142298899 8.126977079999999631354512530 1.986278552675909025992950774 5.898154833575385502797416848 6.731525013221808073637930647 +Hf 3.078616119999998623768533434 4.736880550000000411614564655 10.069779240000000797294887889 -5.929039314177225072910459858 2.290912630118842940873946645 -11.529941064470866862734510505 +O 1.797105019999999830915271559 0.888684950000000140057920817 5.305379280000001251949015568 -0.546839274646876205565604323 0.157171380087888057364153838 0.715651515088582157453345189 +O 1.547021939999999817771936250 3.967621020000000608973778071 7.693017799999999795090843691 -3.921760057202462679271093293 -3.697251067068962004924514986 -1.046156354970923185732090133 +O 0.985782549999999035961195659 4.173851950000000421425738750 9.880692789999999448014023073 -1.094067509931059056782487460 -1.672705850205798316920891011 3.422764071825445952867994492 +O 2.495056169999999795550138515 1.183311809999999963949335324 8.013228879999999776373442728 -3.724871794483854081647677958 -1.979486471777488265644251442 0.238884485192893430971494695 +O 3.602105109999998333591975097 2.999746060000000102974127003 8.451214900000000085356077761 0.226686659291884529121574587 1.444508940364799931543871025 5.170049776100066551975942275 +O -1.390340030000001281251797991 1.562252980000000013305339053 10.520244150000001681632966211 1.657580533991353632927712169 -3.829706415268529617890180816 -0.500896855855443634553125776 +O -1.157512240000000636186427982 1.068103669999999949524749354 7.600346619999999830952219781 4.693766690467787050522474601 2.720605701168918422183651273 2.911845091034001242746853677 +O 3.255430759999999423826011480 4.160711430000000099482804217 6.288151860000001036610228766 2.477290076395763041006148342 1.709256287216298408893067062 -4.141905599319414932324434631 +Hf 4.291181680000000220331912715 7.944219129999999573499280814 1.692562740000000065521135184 -6.246233781608174773225528043 -1.358980390229003409885422116 -6.596305941669341699196138507 +Hf 1.279109969999999929513023744 4.912728109999999759338606964 0.651273360000000134384379180 -1.016461971106561890110242530 5.726682051508207749179746315 -1.323767695354889362135963893 +Hf 0.140523139999999879812264680 7.413962630000000331165210810 3.500477540000000331588125846 4.640470360889461076681072882 1.954065301708227231358705467 -0.136157683525552020142868059 +Hf 3.162906609999999840709961063 0.025203171115975486066274058 3.393124100000000087362650447 -0.155138775985187854500324534 -2.369111812695417818019905098 6.518012691211454878725817252 +O 1.636273133403413515551960700 6.722709609999999891272182140 10.422928072079198358323992579 0.215357618446914811372039367 -0.855363621194609180520274094 -1.188289406736456221835851466 +O 1.018426260000000027616806619 9.171809670000000025424924388 2.318822400000000172326508618 1.603938091603472670954033674 -0.848187156676409093059021416 1.479024282141249369004754044 +O 1.955900229999999684338263251 9.152351010000000286481736111 5.324662949999999561612185062 -2.365552320529917373903572297 0.231110031694728212947609336 1.711489936228089314695921530 +O 1.921841099999999746827938907 6.748035999999999923204541119 2.526532949999999999590727384 -2.441790455594529785088298013 0.260523307801563186458793098 2.253263716952880635346900817 +O 3.564540050000000626084784017 8.358829500000000578552317165 3.573962380000000216284661292 3.637404076925022877730953041 1.903291454048621655914530493 -1.676710414927244263694205983 +O -0.134579830000000233436452390 5.487302679999999988069703249 3.704795020000000160820263773 -0.729899249240511194258829164 4.265043320134608961780031677 3.516169914022304610057290120 +O 0.875775319999999801723333803 7.175165640000000344400632457 0.574968029999999963308709994 -1.002161219394000379878661988 -4.014128298980571329934718960 -1.934367863736480952496776808 +O 4.439103939999998971188688301 9.840490519999999463607309735 0.819480540000000035050220504 1.582096199014518145276042560 -1.367931928084735737627397612 2.950847923764554181502717256 +Hf 2.519260159999999082458543853 8.388943669999999741548890597 7.080767380000000166262452694 5.066260107626064268515619915 -3.921019808658805949619363673 -3.770429268757470087081173915 +Hf 0.840243829999999913837882559 5.179251579999999854919678910 6.359041930000000952816208155 -0.225450981285771900886061303 2.012531882344194222866917698 2.181437284604516246844241323 +Hf 0.066887139999999067896396809 7.663053770000000319839728036 9.122663429999999351593942265 -4.211075786196508907721636206 -8.750715388652213988507355680 7.264883291216570171400235267 +Hf 1.462480889999999700279431636 0.014479321115973673231303032 9.382504309999999847491380933 10.462905397606741431104637741 1.484342292894181403184461487 4.430885761004741851820654119 +O 2.139349839999999947082187646 6.644045600000000995066784526 5.807353260000000183538304555 -1.964093786502326910436977414 -0.498087594721234927508390911 -2.795542507745059968016221319 +O 0.870152989999998904835365465 9.101065589999999261294760800 8.136783550000000531099431100 -1.718045686644438019285985320 1.472498274565114284584410598 -2.799880803978466392578638988 +O 2.576317016596585851573308901 8.502422669999999627066245012 0.729890767920801430967969736 0.262775781673147801331680284 1.906016799980414067050560334 -1.580468963203917054372027451 +O 2.382782399999999078943346831 5.703892999999999879889855947 8.129425850000000508543962496 -2.937496582442419956748835830 1.979819767691910037399338762 0.423756183736095637382135237 +O 3.122881389999999868223312660 8.269843379999999299911905837 9.317423979999999161805135373 -1.312386195759092322177252754 1.360118228765855086237479554 -3.263365040913198011907070395 +O -1.426989770000001600536165824 5.339766629999999736355675850 9.196945539999999752467374492 2.254899287166544308291804555 2.712963349186169548232783200 2.611733083061060334273406625 +O -0.483118980000000863839204612 6.624145850000000557145085622 7.430901070000000885329427547 1.910746238897388593613868579 2.361305156583222597532767395 -1.748866218058665600310064292 +O 4.120819779999999710184965807 9.386666699999999252668203553 6.139302899999999674207629141 2.530303455474560259119698458 -0.877244194061993276534394681 2.381532705998084420428995145 +Hf 8.395037120000001351627361146 2.739023009999999924701796772 1.431540449999999964347807691 4.583561397540152348994979548 -0.616756012653417728941462883 2.531301443572357534605998808 +Hf 6.561983340000000275438196695 0.214890160000000024487221140 1.065123730000000046302943701 -2.669706287418557977275668236 -2.914279429499891271859723929 0.823899055098526011953197212 +Hf 5.617988289999999551582732238 2.374494900000000185968929145 4.690981390000000139650637720 -6.773613604349282724115255405 7.524688640434880504415104951 -2.886736138501492909824719391 +Hf 8.126049339999999787664819451 4.205144429999999822200607014 4.649707450000000186207671504 7.647607428954972696999448090 3.618310958440013713754979108 -2.474604593215845138587383190 +O 8.233074560000000374770934286 1.067656369999999910191945673 0.141195130000000002024052037 -1.425755879685692617542258631 2.113454711406622887892581275 -0.130577547452112058268269834 +O 6.921836530000000209383870242 4.146156519999999900960574450 3.078542609999999957182126309 1.896616324307330181397901470 -1.055359317787504025432099297 1.109327518839445581022573606 +O 6.925712109999998311593571998 3.608232730000000554326788915 5.993786960000000441084466729 -4.169235298090208985399840458 -0.657125037610160056544827967 -1.338347130932160844452027959 +O 8.297627860000000410423126596 0.847202890000000041759165015 2.237069729999999978531377565 -2.013675778222567380737473286 1.683018012621785963744969195 2.400996529721870498264024718 +O -0.398534433451318614860525713 3.507815570000000438000142822 3.538178240000001029130771713 -4.498376895903778205365597387 -2.786024205685476484717355561 1.474029717371064140962744204 +O 3.913538929999999638198460161 1.243463540000000033813876144 5.093463879999999832648427400 4.167775283595677393577716430 -0.022077537980705282116833388 -1.460010138960726067125506233 +O 5.908829659999996763986018777 1.888408410000000037243239603 2.092893619999999899050635577 2.678904656237986792177707684 -2.362384925190536666406160293 3.473902503163492916371524188 +O 9.900142130000000761924638937 4.024090789999999806525465829 1.206155260000000284392740468 -1.913224096083455449957000383 2.689983569282810016431994882 -1.031401171466252986164136018 +Hf 8.218151040000000406848812418 2.908790570000000297312681141 7.820148820000000888796876097 -5.876750088281349704288913927 1.654138336209929782683047961 -3.389353837921289525070278614 +Hf 5.901384990000000385634848499 0.455476349999999974293984906 6.270296029999999909421148914 -0.771112842825084521258816039 -6.695706635321062805132896756 6.203488587586527103212574730 +Hf 5.223203119999998200739810272 2.214761590000000168743099493 9.579313949999999522333382629 -2.518156410371327424968512787 1.428222387167570106569769450 -9.188320537834856693848450959 +Hf 6.939723419999999975971149979 5.224272710000000152774646267 9.909242450000000701493263477 3.626101549141295343758883973 0.340627906713424744022944424 -5.718997415126292338527491665 +O 7.644180119999998801461060793 1.549063790000000162550009009 6.085574920000000886943780642 -2.069868413581863908490277026 -1.507278537695990294764669670 -3.838395858125686288531142054 +O 5.853057760000000442346390628 4.091552580000000105542312667 8.148660859999999672709236620 2.670255566324151175194856478 0.779479632067469507816781515 1.805059091713973939974380301 +O 5.584242899999998677174062323 3.966985270000000340928636433 10.500154919999999947322066873 2.890057660545824802511560847 -1.863616042555348517595348312 3.149309557009823290485428515 +O 7.151208079999999966958057485 1.315233719999999939531676318 8.431680659999999605247467116 -1.393256618241979438721500628 -1.219520193330724255886821084 1.677703071667342005213185985 +O 8.082151649999998355156094476 3.620132820000000251070559898 9.494155779999999822393874638 -1.392409149731605122468636182 -2.629492448060769316242613058 2.636324886655597499185432753 +O 3.738573549999999912074599706 10.269042828884026974378684827 9.748469580000000078712218965 0.596902574538866748099508186 3.584190446835550325488384260 0.590080217038068566282049687 +O 5.318275439999998965845406929 2.022634120000000201855527848 7.517495369999999788035438542 -1.539020263431429613731893369 -3.003905834958592979688773994 -4.414774150005404962371358124 +O 8.739983360000000089939931058 4.703081319999999898584519542 6.603405340000000123268364405 2.619344067128609232497638004 -0.378529368443736635718721573 -1.577419456049584001178232029 +Hf 8.490906719999999907599885773 7.710491560000001243224687641 1.452670279999999980447000780 -0.794350342396304975878251753 4.801730702766863423391896504 -0.884716832100501449076546123 +Hf 5.987511270000001495361630077 5.082150870000000431048192695 1.675919390000000452900508208 1.383013411020669103379532316 1.743979430551779730151906733 4.757221052348188372604909091 +Hf 5.547329119999998781054273422 8.089007170000000357390490535 3.966777150000000418117451773 4.313993285745782557683014602 0.303107689395444912516808245 3.971490384527718742191382262 +Hf 7.672464699999998138935097813 1.296941981115971920246465743 4.126248490000000046507011575 6.329824338160883634429865197 -7.798390483546854490271016402 -2.255541320570285002133914531 +O 5.402438573403412824802671821 6.243548009999999592878339172 10.531461902079199077775228943 2.103524753794150381480676515 4.693660618010456531123963941 3.424081708313166938495442082 +O 6.551062760000000650961737847 9.437543120000000840263965074 2.720646360000000374412820747 -3.208468487323099971320061741 -1.157406948395859558331721928 -3.092485077745213750688435539 +O 6.686563079999999992253378878 9.399942859999999456022123923 4.924064930000000117615854833 -0.701291226968106862216245645 1.801471152105727835390780456 2.856283514937908663000598608 +O 7.232621130000000064796950028 6.831587200000000414945589000 2.818931599999999981775999913 -1.133581463678343892453881381 -0.547410657031535796690491225 -3.250876922208922437107503356 +O 9.103106410000000536797415407 9.323581620000000569348230783 2.819977370000000149730112753 -0.780452716841923077595311042 -6.109652084202872757145996729 -0.356112375678788062316471041 +O 4.812207400000000134809852170 6.177302840000000294651272270 4.447031120000000115055627248 1.688043609976087822133195004 1.380998311766763464447649312 2.156735262966716693000535088 +O 4.130469899999999583428689220 5.978752649999999668750660931 2.259462769999999842696070118 4.634780583986495727799592714 -0.558875093281295476366210551 -1.717309008863193042770944885 +O 9.913977420000000151389940584 9.221284139999999851511347515 0.651313739999999974372713041 -1.930759069558388940635040854 2.010227784252048621738140355 -1.382443645138386134618713186 +Hf 8.140631170000000693676156516 7.903030099999999613658019371 6.714870440000000328950591211 -0.016012395298464543458294429 -0.334617795469089429616360576 -0.302763929613245941219190627 +Hf 5.893833659999997642842117784 5.368832959999999765443590150 5.965676320000000032450770959 -2.453980033884259892573709294 4.691939614935396463124561706 5.795471152096395961450525647 +Hf 5.238340969999997653872014780 7.752520320000001241567133548 8.563417219999999829838088772 -1.597295673116690961634844825 0.518970452862931641568877694 1.154993076244426264409526084 +Hf 7.591264949999998457030869758 10.213444880000000836162143969 9.552635300000000384557097277 0.048386225804394111804640488 -2.121293350697570190277474467 0.971918772054293889084419789 +O 7.295522929999998851258169452 6.744458620000000514949078934 5.069761029999999557560386165 0.127873168249109769867288833 -0.954170685478036406657054158 1.066786449930291924559355721 +O 6.884384329999999607707650284 8.757008779999999603660398861 7.976973619999999876029050938 -0.623669708626950480834238988 6.431493934707758874935734639 -0.459423951128934637821998876 +O 5.646951079999998235336988728 9.320181299999999779970494274 10.258449439999999697192833992 3.032011006757338922312783325 -2.940743826924635317965339709 1.020610218104345712220037967 +O 6.684123629999998428274921025 6.743734859999999997626218828 7.373053160000000438856204710 0.903132864567238513586744375 -3.870286673684750322621539453 1.130139034287446220261585950 +O 8.219647220000000586992427998 7.693689789999999639746874891 9.247054719999999505830601265 1.725548187001400002316131577 1.571093053494621694099464548 -0.367985631312613636900721303 +O 4.042376309999999861588548811 6.335741859999999725516772742 9.111244810000000526883923158 -1.891832501097663321587560858 -2.896368556411143213580317024 2.118991462189125041248871639 +O 4.556415019999998428090748348 6.324509619999999721073891124 7.204785919999999954654867906 0.211578486159181622383584909 1.698301208251552729677769094 -3.289962358247520146647957517 +O 8.446026409999999984279384080 10.026545249999999853685039852 6.481095250000000973500391410 0.117119253930297428922813197 -4.046533059922925446016961359 -0.220883011182926636273293752 +107 +Lattice="10.2602370015007303 0.0000000000000000 0.0000000000000000 -5.1301185007503651 8.8856217492246703 0.0000000000000000 0.0000000000000000 0.0000000000000000 16.2803900211832762" Properties=species:S:1:pos:R:3:forces:R:3 stress="193497.3085598245670553 3374.1147983724763435 -2667.2126470557723223 3374.1147983724763435 185841.3838711691787466 -2417.8836748005664958 -2667.2126470557723223 -2417.8836748005664958 231688.4571370253397617" pbc="T T T" energy=-875.0016802360834163 +Hf 1.763018580000000223861889026 1.020302590000000009240466170 1.403149999999999897326574683 -0.417145581057530190349780241 -0.775735588454403379721213696 1.019185663967044686017970889 +Hf -0.001282529999999448833136739 1.921334029999999915006014817 4.046402510000000063428160502 0.991805341228399583997088484 1.253065656589621212901874969 -1.509949587106445223483319751 +O 0.053589220000000548083107788 1.955598089999999400490082735 0.810760849999999977377740379 -0.260328941673250824351271149 0.330013460429382288197075468 0.281340393216283013444467542 +O 1.735722240000000304860350298 1.012348859999999906023049334 4.669349730000000420204742113 -0.483940631700411127980032688 -0.496362002693936932296026043 -0.509507168827077361328292682 +Hf 1.622074730000000020169181880 1.007967740000000000932800504 6.798524350000002769434104266 0.762198189939818360194578872 0.110543022762077725040796849 0.938571321678788095255185908 +Hf -0.001957649999999366841052506 2.005906089999999863948687562 9.565346030000000610016286373 0.253121475367210635454284784 0.834442453779933757118669746 -3.275553775527667355049743492 +O -0.083803559999999333030018533 2.041631209999999807536141816 6.175598690000000168254246091 0.709555710829503638592541392 0.216994310703883197533059501 0.649963546781234580151931368 +O 1.649906649999999697087105233 0.976112779999999680136113511 10.102883950000000723434823158 0.433204079280379072969253684 -0.349818361768980845560861326 -0.342856641526432026623183447 +Hf 1.666236840000000274386593446 0.890681939999999672252783967 12.266365739999999462384039361 0.694565268077584452299788609 1.243990924064467096243902233 1.087317883181860622698877705 +Hf -0.017114080000000031489548746 2.005688569999999781856558911 14.819074739999999579254108539 0.130962615371535306962869072 -0.503840808014631935662919204 0.195004482053138916697321292 +O 0.017493700000000167449343280 2.024706950000000116318688015 11.544718120000000638469828118 0.439028331017975226302496594 -0.214308046282870812149212725 1.810879975849193357362310053 +O 1.700919520000000240145254793 0.979989089999999785085549320 15.558382269999999181209204835 -0.052115371385176162410957090 0.040069287535985334547383729 -0.972522016043954384834080429 +Hf -0.008747879999999153000089791 3.976574419999998610819602618 1.344487090000000106826405499 0.460647481382081114276161316 -0.780715645878129915757881463 1.816267141224768844054437977 +Hf -1.719119129999998829561036473 4.931297680000000127620296553 4.078218480000002976737505378 0.301924716632028022900158248 0.407334985493689849533893721 -1.404066080059515719824503321 +O -1.639474039999998300487504821 4.967704079999997190952853998 0.726266770000000283502572529 -0.717212190858098619372640314 -0.012641500318980813943881003 0.717355399972768204008843895 +O -0.015925939999999805252173246 3.906133790000000161057869263 4.743426580000000392089987145 0.083888521245596009423550754 -0.030064780469434726484223575 -1.486014031806598856277901177 +Hf -0.007382239999998763124722245 4.033627489999998871894604235 6.819233620000000328786882164 0.993302567590366169980597988 -0.401364725651997156230521568 1.366405403969040088796305099 +Hf -1.713983880000000015186856217 4.959261960000000080128756963 9.468193899999999274541551131 -0.026055925698027060377626185 0.174076739171765471070330022 -1.472762215758290915701422819 +O -1.751140299999998317659333225 4.843908159999999796241354488 6.173081849999999981548626238 0.389447587981075926677476673 0.986880619025074512506989777 0.560507427250005463292836794 +O -0.044989089999998732594121975 4.013964770000000292782260658 10.154204630000000619816091785 0.355460740586475920643749760 -0.451781326301001262546463977 -0.677172006997735609346023011 +Hf 0.039501910000000695077915225 3.927725429999998851826603641 12.296184040000005310844244377 -0.565076772657746806416412255 0.514632211112456272594783968 0.925564250169085611652519674 +Hf -1.761107090000000319207629218 4.903086130000000153472683451 14.911947330000005607075763692 -0.468401537800243517040144070 0.897120853081437186204993850 -1.816498752635718361148065014 +O -1.682304369999999771323473396 4.930805190000000060024376580 11.560982649999999694045982324 0.042165490185916532084320352 0.415216960164090043150508791 1.197253939082186136033669754 +O -0.071918109999999924042413113 4.020816560000000094987626653 15.526993129999999254664544424 0.279626599502880934799975421 -0.806701434838325681653259380 -0.580075170594225641984564845 +Hf -1.681409679999998463273414018 6.878437239999997565575995395 1.454909820000000575390686208 -0.332652584623180369582939875 0.625624072952401411029654810 0.774106689354137844638614752 +Hf -3.365141249999998862563188595 7.858338090000000164536686498 4.073494669999999651111011190 -0.916795060993063515297762933 0.320396562975505450054924950 -1.624858355283969935101140436 +O -3.451651459999999449479446412 7.863586199999999415410911752 0.771240470000000066796985720 0.459904818744062637847491715 0.355979168052943162336987371 1.015578703698550855349935773 +O -1.741052429999998096832314332 6.923410929999997520667420758 4.708269879999999574238245259 1.160413569453713433787811482 -0.382873595897482210670403902 -0.549970965660341981617875717 +Hf -1.688082940000000142788394442 6.890420169999999622234554408 6.864458690000000196107521333 -0.479497054807976996748664078 -0.158306792575592603089518207 0.363146568833563332390212963 +Hf -3.383844629999999575886704406 7.878260390000000334964624926 9.487235880000005394663276093 -0.065638825745522488830374641 0.298836682754499705083617300 -2.033018563819475765797051281 +O -3.388354009999998694979694847 7.903801199999997528777839761 6.111249560000000080606241681 0.049052704166169025512544977 0.155386696022237202896576491 1.694281110168867510168411172 +O -1.660980519999999405200696856 6.954706709999999070248577482 10.057900000000000062527760747 -0.017451043934795462675424460 -0.140680363895126864237639097 -0.090962099245516181422743784 +Hf -1.702985929999997871675532224 6.911416720000000069035195338 12.320838359999999767069311929 0.049856946330816276358177674 0.056478768931047529378020045 0.050576813148565741284912178 +Hf -3.398561919999997904540123272 7.868797379999997509969489329 14.927959449999999463898348040 -0.247794419428219114820421964 0.156600241352967017860464694 -1.030921973605408492602464321 +O -3.436753599999998520786448353 7.901459819999997691297721758 11.521108290000000806685420685 0.742824389362193748809204408 -0.690672207965568496490504913 1.262858963205079732006197446 +O -1.676011769999998790581230423 6.904410000000000380282472179 15.601797440000000349868969352 -0.156641821405591963323189475 -0.262490411721766569996816543 -0.791311046040426457892635881 +Hf 5.130127729999999885990291659 1.010509199999999996322230800 1.360250919999999918985622571 0.644898826367734323561364818 -0.759848719707640452014629773 2.198561131818240532709296531 +Hf 3.404326120000000344134605257 1.985909909999999944929527373 4.081921399999999700014541304 1.270365305428634794537856578 0.085819006881308584899770153 -1.110659626325027238280540587 +O 3.451669930000000441339125246 1.933454449999999269493855536 0.753382529999999994707593487 -0.258646232174738088804843983 0.516581268179890806813148174 0.414801065306765304185887544 +O 5.206713219999999253673195199 0.935651529999999787001740970 4.791256730000002406200110272 -0.706601299492150558556602391 0.437965406747456320601941115 -1.792469838109095769951295551 +Hf 5.200690460000002346419023525 1.058955979999999907903429630 6.800634879999999604649474350 -0.811288545805569638602605664 -0.821691303580560861163917252 2.056353720735302204047911800 +Hf 3.350088449999999884454382482 1.993820560000000075007164924 9.523971630000000132554305310 0.810794307386421442274127003 -0.844411527121825100650198692 -1.630942101435653990293417337 +O 3.467046950000000737901473258 1.947280119999999392632616946 6.153458119999999809124346939 -0.674790349532222610839937715 0.378259999962154036534656143 1.437422081658348949062542488 +O 5.115378640000002974375092890 0.989503409999999972157525008 10.157404800000000122395249491 -0.022457902146551373540050989 -0.075047494502175543518163181 -1.280014980041827676870980213 +Hf 5.154631230000000563507001061 1.016147200000000028197177926 12.327824559999999820547600393 -0.054129343501712341713005827 -0.045427999557329151736340123 0.109537336600382992357616274 +Hf 3.410184710000000674057218930 2.015742579999999950501887724 14.924161110000000007858034223 -0.562419349694601389266779279 -1.075811827885368110457875446 -1.860795273256941051442936441 +O 3.476729530000000512046653967 1.965913739999999299001842701 11.591976780000004865200935456 -0.665963219004166773196118356 -0.222424599047037374610624738 1.377254723031140715150399956 +O 5.081917960000000178411028173 1.021754419999999941026658234 15.590784100000005807373781863 0.383529279406771894667116385 0.116025160681321348743466615 -1.304418417974991140084739527 +Hf 3.477081460000002177679334636 3.917614989999998797998159716 1.280709459999999966228756421 -0.909050285837170624070324720 0.477800648811058104037385874 2.251481876163749618058318447 +Hf 1.703683630000000448490027338 4.883463429999999938502242003 3.981302340000000050679318520 -0.376415244195753562195250197 0.380172694413878797803363341 -0.454928081354193936114427288 +O 1.679146270000000384925442631 4.994638229999999623487383360 0.697808980000000023125039661 0.460577409377212976249182930 -0.404903421533527985154421458 1.189971397777293660169561917 +O 3.418068680000000636454160485 3.990524240000000055772488849 4.709052739999999737108282716 0.149954781153006644345282439 -0.002099443625109527391398023 -0.520877124499200316876112993 +Hf 3.504941080000000486194267069 4.047549609999999908893641987 6.823570619999999919969013717 -0.078871368984789122502654379 -0.380107123730550888751622551 0.693372385444657735042994773 +Hf 1.630081820000000014658780856 4.969849489999999647693584848 9.423847110000000526497387909 0.942761826186959583928626216 -0.742552224364140034396086776 -0.817087378944459485907714225 +O 1.713704800000000805226818557 4.993264379999999391657183878 6.118769290000000360407739208 0.576394677735926785899778224 -0.464600449932813575060208677 0.772549863791558322212438270 +O 3.422832510000000105776507553 3.898856199999999994076915755 10.116033469999999638844201399 -0.450268454375766069563979954 0.868824224176484416481969220 -0.698931581384469757800559364 +Hf 3.426292260000002531938889661 3.948668629999998458401933021 12.240799279999999171764102357 0.046704640761408088012185402 -0.108602681666717743036443267 0.947309820151124082343585542 +Hf 1.638872790000000190246964848 4.928988099999999761280378152 14.929011130000004570206328935 0.315267818742790639774398187 0.765959243105066800438862629 -2.099626394445410770828175373 +O 1.699547719999999983997440722 4.924758830000000031645868148 11.589879579999999847927938390 0.271969627722143614256822275 -0.642909983015083508206544138 0.238907822321466123405286908 +O 3.357338340000000531659907210 3.949334519999999848494098842 15.476200849999999675787876185 0.272194489599848044036889405 0.586404900478775470418213445 -0.543379594983306346556162225 +Hf 1.669212309999999810372628417 6.919657739999999890301296546 1.378760390000000057852957980 0.775915715102296732474940200 0.360942131283563838461958539 1.079691677770282298709503266 +Hf 0.041595000000000936779542826 7.914195849999996923429534945 4.053764229999999635367657902 -0.713284611121083655937979984 -0.225349521407103514647474185 -1.457022004900357492473972343 +O 0.010051950000001141916072811 7.857637320000000258346517512 0.685187860000000314997237183 -0.289899457819956130055771837 0.410753708481724599810291920 1.536269906098792548121423351 +O 1.638664500000000856516635395 6.851658019999998572302501998 4.681003300000000422187440563 0.717213922221669131218391158 -0.242777728180210622399570752 -0.733595677337455898125995191 +Hf 1.673154290000002486493713150 6.893336129999997119455201755 6.883229789999999681526787754 0.358458242534089477349112940 0.410337419132792369236284458 0.008378236660925453965775844 +Hf 0.068872870000002528456661821 7.852337909999997478394107020 9.440343509999999938031578495 -0.698955075225135225025496766 1.586779574295741124245751053 -0.639132246799917647095412576 +O -0.042082359999998431021595025 7.867800079999997642232756334 6.103454860000000259390162682 0.110928627730765380632327322 0.456148678546074159978473972 1.688499058786915973939812829 +O 1.707538400000001121981085817 6.919293500000000207705852517 10.124288860000000056516000768 0.760603504585267820026217578 -0.067022356590264120512756563 -1.316484894301734431820705140 +Hf 1.730144780000001158981604021 6.837715379999997011850609852 12.124191689999999965721144690 -0.402679063721683994092614967 1.191805849186813981432919718 2.979606635922915192082882641 +Hf -0.043313589999998569624040101 7.967006310000000368631845049 14.940845290000000389341039408 -0.364429448786857401731964501 -0.299134859078437231882929837 -2.208752460939099826475739974 +O 0.006319280000000482289124193 7.964923489999998551525095536 11.638168360000005208121365285 0.062626552267835311482713223 -0.520340621125168101279712118 0.813136840543882355447635746 +O 1.687427310000002123047124769 7.016876559999997375882685446 15.444824020000000430741238233 -0.502779085189876795425334421 -0.959534384421339647808224527 -0.356357114947507380708913161 +Hf 8.588327280000005004012564314 0.955808789999999630637717019 1.330780440000000064415530687 -0.640996245634427808113287028 0.814800891377936320481012444 2.023605663631022011372806446 +Hf 6.845821990000000134557467391 1.944412379999999274104993674 4.062249450000000372540398530 -0.160828220314722214467906269 -0.860333744007071743453707313 -2.028269998417881581076471775 +O 6.795754090000000857685336086 1.987119590000000046714490054 0.703566000000000024705570922 0.642156737623658990798958257 -0.013944468849884011918405236 1.286133929503274320182981683 +O 8.658740210000001269463609788 0.977608719999999875582830100 4.677432740000000421787262894 -1.044128181555672441049864574 0.227403287017539756931228112 -0.388222116745751577582268510 +Hf 8.566864909999999611045495840 1.023881360000000073640080700 6.791229320000000235779680224 -0.345402783827334580735168856 -1.417890781623362794761078476 1.735241637659504343460525888 +Hf 6.818351240000000146324055095 2.015389630000000042997498895 9.431521760000000753620952310 -0.047919019113683902766354095 -0.620644513935572961216280419 -0.663514612890026889147065958 +O 6.866299370000000124036887428 1.992190199999999355995328187 6.142387330000000034146978578 0.470031255236842859801527084 0.114086937361940490842648899 0.643243363898825748492527055 +O 8.617705409999999233150447253 1.024646779999999868238091949 10.129921729999999513438524446 -1.059187365279140813356661965 -0.091203773579965563556015695 -0.693233902304821292261749477 +Hf 8.600877600000000455793269794 1.062715330000000069077259468 12.253850299999999862166077946 -0.316007865449113189981744654 -0.616394646815025204489302268 1.208145181736180795439850044 +Hf 6.871808099999999086548996274 1.966343639999999393097596112 14.890835859999999257752278936 -0.623711952942007430422677317 0.013992405575370625570030825 -1.391082021165535476114882840 +O 6.875474079999999155177192733 1.967194209999999277016513588 11.569397070000000837808329379 -0.296079085469253155959989954 -0.295338927839078446702103520 0.464830421758697764911261174 +O 8.481383800000001471630639571 0.972499120000000050190180900 15.587878399999999246006154863 0.876700140409960138043743427 -0.175060739667978637612577586 -1.515032829387383594976768109 +Hf 6.864790090000001399062057317 3.984616389999998453674834309 1.345875300000000107658593151 0.074291795005549943198275287 -0.363548691295413561874738662 2.111930647417265216603254885 +Hf 5.133839889999999961389676173 4.935010860000000221248228627 4.141488230000000214658939512 0.402323297019039460842293465 0.211708819194111774741884346 -0.393472705411093415239776050 +O 5.132966740000000527288648300 4.985045929999998293169483077 0.756615530000000036103813272 0.199636283910336359559423158 -0.248571443886322407390565559 0.287909322546104018414325765 +O 6.875791120000000589129740547 3.844126049999999406026063298 4.680903780000000402594650950 -0.340258339918781516075796389 0.999756171401628090933400017 -1.579840120316300833280820370 +Hf 6.813890080000000182280928129 3.965237880000000103564161691 6.685380620000002771519120870 -1.773482032601530367088571438 0.512681412513426248978021249 3.217172775700710918300728736 +Hf 5.127208700000000618501871941 4.922708840000000307668415189 9.510309100000000626096152700 -0.504920314215424936854503812 0.570520249523366107524680046 -2.364551146237903633817722948 +O 6.840095760000000524314600625 4.002213730000000246889158007 10.107051660000005099959707877 0.140985404608794162584217702 -0.417322447699376208873900396 -1.145747333084121244439756993 +Hf 6.883326240000000595387064095 3.926558839999998884451315462 12.153742189999999112615114427 -0.251780181326301644162413140 0.524292395437336189445431955 2.310983835026751087582397304 +Hf 5.125041740000002121746547346 4.887897899999999573594777758 14.893709760000000130730768433 0.533525295296379042930823289 -0.043103901426971291677148201 -1.518470200594528751736334016 +O 5.142366150000000857289705891 4.927340309999999945489435049 11.578228060000006038876563252 0.026861310784733638534760303 0.300001400142761109890443549 1.453289202517790146274023755 +O 6.857269340000001101032012230 3.886745019999998884685510347 15.587486459999999155456862354 -0.434634232431696965193168580 0.491168433881962851472735565 -1.110429163175732147905705460 +Hf 5.101186680000002304780082341 6.937792709999997420311501628 1.316677749999999980090592544 -0.263050341021339839642223524 0.033238733015443333584926222 1.800537531955261671967605253 +Hf 3.363757140000002365809450566 7.936259459999999599233433401 4.096124650000000144700607052 -0.194811191090647595203222409 -1.348725215115447628733136298 -1.742216799222146450532022754 +O 3.404916080000001343819349131 7.930375220000000169306986209 0.652755250000000009080736163 -0.200424808821731081920347606 -0.670374635983091993196580916 1.717141013712024655291088493 +O 5.110827199999999237434167298 6.931387239999999394512997242 4.623925599999999747069523437 -0.095485835366699411963509192 -0.269198747246454761494760533 -0.204864805234451496929182213 +Hf 5.214821890000001403109308740 6.864787019999996964259025845 6.917923759999999866465714149 -0.827662961423135445926391185 -0.078350469790473997733215583 -0.426376169071102317786881031 +Hf 3.456358860000001698153937468 7.948419889999998488860910584 9.521888799999999264400685206 -0.011108237124442421617231957 -0.373080873516055899763443904 -2.040907147429980916797376267 +O 3.359363710000002889444203902 7.876344809999997309546415636 6.113944919999999783044586366 0.493504674846422519696176323 -0.120647614651307813482539188 2.085512033295080946970756486 +O 5.192782900000000978479874902 6.944547019999999903916432231 10.145679400000004122261998418 -0.483894348424760423199586512 -0.305093958574737200706294971 -0.849077228944281170441854556 +Hf 5.105275390000002744272933342 6.993033819999997291461113491 12.232270970000005405609044828 0.467525950216716168483799265 -1.140875701982354772923144992 1.472568155540816992044028666 +Hf 3.402241240000001276655439142 7.858341169999997433137650660 14.916084259999999872547959967 0.556792666804037716943298619 0.973769534803033520731219141 -2.645167560203454559797364709 +O 3.412572270000003626932993939 7.915398350000000249337972491 11.586882570000003767063390114 -0.535363525021890329647078488 0.447881487733044370003199219 1.027756748747500559204581805 +O 5.066337790000000396162249672 6.846938309999999638932877133 15.472466130000004369549060357 0.602361658403315569643154959 0.173095409988113679844445869 -0.671301619678747130137708155 +107 +Lattice="10.2174900666099298 0.0000000000000000 0.0000000000000000 -5.1087450333049649 8.8486018349358648 0.0000000000000000 0.0000000000000000 0.0000000000000000 16.2125614932330393" Properties=species:S:1:pos:R:3:forces:R:3 stress="219736.8596887692401651 2139.0755827721177411 961.8769047471271278 2139.0755827721177411 207657.1880754350277130 -188.6760315440599243 961.8769047471271278 -188.6760315440599243 290511.0434580059954897" pbc="T T T" energy=-867.2404316835903728 +Hf 1.734954339999999817223397258 1.021202369999999914895738584 1.254514670000000053917688092 0.050113075726189726388781764 0.075252972558787045720407605 2.276613502849329506716458127 +Hf 0.062951999999999896928670751 2.062197040000000036741312215 4.169190630000000119537162391 -1.747515289274010008568893682 -1.152225248808871338468406975 -3.895668517574799594171963690 +O -0.070302460000000066564496137 1.831361460000000107584128273 0.743262120000000026109887585 1.717556077959969229596026707 1.902137644711540342967737161 1.256251981658936589525410454 +O 1.591106380000000264374193648 1.027461610000000025166855266 4.786949270000000034031018004 1.262004061579310665308639727 -0.476829980434790856591575903 -1.251438580780992460006473266 +Hf 1.691198959999999917869217825 1.037883450000000040702730075 6.793887060000000310822088068 0.506747918492388094158229705 -0.675350931271520127374685671 2.697420868516219094601638062 +Hf 0.037585039999999958482135298 2.032205639999999924327767076 9.581919270000000210529833566 1.110135407846300381606852170 -0.473576278387521476531674125 -3.545894634621618912717622152 +O -0.062260280000000056688236327 1.985255250000000026844304557 6.149649789999999782708073326 0.220980224683683168507286609 -0.442117185669921752833033679 2.463522269225784544488533356 +Hf 1.613406049999999147814833123 1.008091290000000084248199528 12.277304389999999401084096462 0.634952084760294632737043230 1.260368242407213790201581105 0.184496826002409797240488842 +Hf 0.002109909999999937113557280 2.065663840000000028851445677 14.766721260000005955248525424 0.104853564995727399633551613 -1.675866430830686759634318150 -0.151469129988017758847718142 +O -0.039741949999999803821992828 2.001319189999999803575292390 11.534186339999999759697857371 0.531780358165084177102244212 0.311377693818741807518790665 1.910572105928503683358599119 +O 1.762128769999999455819761351 1.033149679999999959179035613 15.460845420000000061122591433 -0.246994648464321592262749050 -0.289803995397791336330328704 -2.105896222972452491717376688 +Hf 0.105666219999999810852386872 4.057526740000000131658453029 1.322367999999999987892351783 0.812403435657211070441974243 -1.511984569769202924049977810 1.952981714105098909328717127 +Hf -1.652476709999999737732423455 4.913620600000001559237716720 4.126527499999999903934622125 0.922567775141474477607061999 -0.731039429309482624574911824 -3.481417459157894356280849024 +O -1.705297049999999092761981956 4.809371549999999828628460818 0.891545490000000384611666959 -0.651362922683990319683289272 0.466066255428802200810878276 0.403735750801932136155869557 +O 0.003409580000000023147777028 3.855097830000000058703335526 4.920502080000002997905994562 -0.135025501457287200324230980 1.851203264127348591117083743 -1.860880039202802649356272013 +Hf -0.101695699999999611407019984 3.988669030000000059743570091 6.882676029999999833819401829 1.651152285776014805307454480 -0.702613755715962851056133331 2.325248370406954201428106899 +Hf -1.734397479999999713839997639 4.860673570000000331958744937 9.373219880000000614472810412 -0.101243314789741134518408217 0.610298132527285375203973672 -1.161152806024614569935238251 +O -1.709713050000000178485493052 4.993085090000000114685008157 6.137630960000001856258222688 0.605478385548709141517065291 -0.257235914383034280916717762 0.283266736551706088675928186 +O 0.025013439999999942386921248 4.070917780000000263385118160 9.967342410000000541003828403 0.814681424132860487752338940 -0.449478790244778936280312109 -0.416532868094470209996416088 +Hf -0.039294420000000052084487834 4.049452879999999588278569718 12.129967160000004966491360392 0.855849069219284053211538321 -0.376855595004214061205516373 1.310077318526027267964195744 +Hf -1.720822520000000022122321752 4.901635490000000316967998515 14.957600319999999172182469920 -0.694962472594710334306000732 0.815456382020613546046661213 -1.715536946910357851692197073 +O -1.732293700000000047367620937 4.994137489999999957035470288 11.541924040000004936246114084 -0.103703028522229345753657981 -1.268953594435448417598877313 -0.183987706432520603527791536 +O -0.044725020000000004216644811 3.914732209999999934524339551 15.501247420000000332152012561 0.928261139563005377439708354 1.066209381697952096601511585 -0.817950364050103795321433608 +Hf -1.656254119999999385726141554 6.860169960000000344280124409 1.395093029999999956203282636 -0.523708788507198264028374979 0.470437957451540100795028820 0.216171027914909275047250503 +Hf -3.320173399999999830356500752 8.014291659999999595243025396 3.862409459999999850055019124 -1.430395168214400491990545561 -0.269840333587935354842102242 0.401246125757088956120810508 +O -3.414614680000001012416532831 7.880013410000000106947481981 0.741801020000000033149945011 -0.100501733115710756294447492 -0.448879781210009376479774801 0.333708089378501826516298934 +O -1.840431530000000037716745283 6.840806800000001075545696949 4.676944709999999894023403613 -0.125243442074675193076416235 0.066059286214204288034679280 -0.892133881876258194587592243 +Hf -1.520121389999999905739969108 6.869284989999999702092736698 6.673509700000000322006599163 -1.194041564317315895493720745 2.705713632252902733910104871 3.164831048714214833950109096 +Hf -3.367936080000000664824710839 7.827302400000001547653027956 9.456016290000000878990249475 -0.438384928637064241740972648 1.297448228892857935434790306 -2.216730836349809496965690414 +O -3.511969989999999430807520184 7.863039090000002673264134501 6.192033979999999715460035077 1.246701312981107534483271593 0.335118259838430354591309879 0.648861519008610443393081368 +O -1.727836830000000212237409869 6.812226429999999943731836538 10.094484769999999329570528062 0.357280925934538529098460913 0.560016510030669212305554083 -1.047901901089823395452071964 +Hf -1.667796819999999957673253448 6.844932619999999801052581461 12.133608669999999207789187494 -1.354292763996375992263665466 1.851563156111912133994223950 2.688942706602730492448927180 +Hf -3.505127339999999591668711219 7.870561210000001750586307026 14.665674369999999626656972396 1.546478606343242745424504392 -0.052391415261909379808002996 0.521459262941671219948602811 +O -3.548626259999999810190729477 8.128209520000000409822860092 11.445648719999999443075466843 0.828291676584459679588690051 -1.436824450696579269504127296 0.643005119290474214110986395 +O -1.509671959999999923951463643 6.904120500000001214857547893 15.482165240000000494546839036 -1.385539442503985751997674924 -0.606943967586391686097613274 -1.026783788259509222484666680 +Hf 5.134622869999999394963197119 0.980805480000000007301252936 1.463050580000000655545022710 -1.439508336246585695761268653 -0.375912335485615090036048969 0.473734105296496954551344061 +Hf 3.528574429999999928497800283 1.959685990000000099797716757 3.981269530000000056446651797 -1.111059244902019571554774302 0.587548460406270844913478868 -0.317690155997661927145259142 +O 3.343291489999999921423068372 2.043407080000000153319206220 0.594731490000000029283455660 1.257079783153814744878218335 -1.011208824488344815151208422 1.768912369342945156702739951 +O 5.161182209999999770388967590 0.982130689999999972883415467 4.754392260000000369757344743 -0.764291283946702093565761515 -0.726217276404145350987562324 -0.858315299804358500246337371 +Hf 5.102466390000001794646777853 1.008739080000000010173266674 6.836096530000002502447387087 -0.958527661885645532180433293 -0.136712232348017520555671922 1.375341998488470940387173869 +Hf 3.582266320000000003886952982 1.932055850000000019051071831 9.376705069999999864194251131 -2.177438396755948968319671621 -0.471253678274681675475221709 -0.391581114892589066123207431 +O 3.395213710000001050559603755 2.029197610000000207008952202 6.091941409999999557101091341 0.093674379377569880200660180 0.202436503592659938766118444 0.894762720538389122459932423 +O 5.134966180000001045868884830 0.985128499999999962533081543 10.237254780000000664585968480 0.301595773231842723127726913 -1.079665406335612143351454506 -1.402943325491917692104948401 +Hf 5.097461860000001010462256090 1.010452549999999893870494816 12.229188190000000346913111571 -0.359623527488123873041558909 0.600446181409914570004104917 1.601420783069544606647127694 +Hf 3.542008390000000339625785273 1.867066480000000083805389295 14.724388149999999342298906413 -1.845647291375643650468418855 1.370528785257266513042395673 -0.449107249169155342549686338 +O 3.283813439999999861385049371 1.995479900000000084148155111 11.610077770000005514816621144 -0.195527189856905869724812419 -0.714069391725990154640157925 0.202960615395420068685083947 +O 5.131165270000000333538991981 0.955236210000000141029374845 15.431224920000000011555130186 0.654744423681612897070181134 0.477967788560051565216468816 0.551558838105026927323137897 +Hf 3.489293289999999103656591615 3.973887389999999797396412760 1.423650910000000102684225567 -1.362068918091193125974314171 -0.742869429557153404530822627 1.437415537606895110656068937 +Hf 1.658766599999999868941813475 4.739639230000001646203600103 3.928007790000000110097744255 -0.296208102549433749395291215 1.788603750535046277292394734 0.045200011677462653691961236 +O 1.785538059999999482840848941 5.084172990000001668420281931 0.685782609999999959171645969 0.093868278419459647010647529 -0.869236768791100566922125381 0.046701815487732924181418781 +O 3.355115169999999924499434201 4.044635330000000195127540792 4.674079720000002602375843708 1.192218355914264060757545849 -0.612361545808711604799157158 -0.469536373237845583439309394 +Hf 3.510056250000000321875859299 4.009813109999999625188138452 6.928336970000002814629169734 -0.551746821638784634700414244 -0.840819027241443195386239040 -0.623804652379535529149734430 +Hf 1.795207900000000300622104987 5.022886439999999730332547188 9.335865760000006119412319094 -0.180439177464703587316918743 -0.838305348763711433157652664 -0.161335812912276416186685424 +O 1.759126869999999343008312280 4.894210440000000161830939760 6.155530980000002649887846928 -0.104661765377841053936691651 -0.796449523190348451784359440 1.083408338110882995763972758 +O 3.353693919999999550896063738 3.816228450000000549380274606 10.120554690000000519489731232 -0.650714962408767472190618264 0.277595613581439970563025099 -1.062794098098281070363668732 +Hf 3.484959030000000179683183887 3.951099319999999970320914144 12.239713220000000504228410136 -1.565689804272253127237490844 -0.519008550166612847576175227 1.347121383801580973837985766 +Hf 1.835484220000000110672999654 4.876400330000000060692855186 14.749995229999999679648681195 -0.189124267836964121691778473 0.701399170103991109748164945 0.072394762825016265028743589 +O 1.759515139999999977504785420 4.732040480000000215454747376 11.477921679999999682308953197 -0.244815448230676718788245694 1.112056562175090634880803009 1.078533210649254669988295063 +O 3.486379259999999202790377240 3.828129790000001531069528937 15.615429920000000407753759646 -0.126103087482271614128137571 0.823313228605749958255444199 -2.481627395355897380824217180 +Hf 1.746075050000000850047854328 6.939246179999999597498572257 1.522732980000000013731664694 -0.790268739707643108616252903 0.063642625153593285203257324 0.106923293011772765903621973 +Hf -0.184277540000000072950570029 7.893290010000000300749434246 3.946915259999999925355496089 1.746362918454277268764940345 -0.126557750482978181860715949 -0.361908593638916586954223931 +O 0.006123340000001142868768511 7.873767459999999829278749530 0.704605270000000283303620563 0.458314624104966095163860018 0.110210943382540518808987429 1.298005742589698474631632052 +O 1.669327400000000238833308686 6.773339690000000246072886512 4.725890569999999790695710544 0.041074683486609891991392374 0.202703773280739324436083848 -2.589940493084143646740358236 +Hf 1.785577909999998880152816128 6.861569760000001849675754784 6.716447679999999920141817711 -0.503196809042019022051306365 -0.230688295905672968721944471 2.027212816034418718658116632 +Hf 0.034993880000000032737261790 7.824402669999999559991010756 9.536067260000004708331289294 -0.260132495103269079095298366 0.330826670874861950011336376 -1.477330631503215307986920379 +O 0.130359849999999610759005009 7.920126250000002698925527511 6.091869880000002623887667141 -0.234287905943745433656744126 0.306671559991632536323891145 0.406710131140669006732935031 +O 1.838419699999999767925373817 6.913112909999999722288066550 10.097857559999999566002770734 -0.841773256569827821316209793 0.349672368118855270147093961 -0.944945128072892437387508835 +Hf 1.734812309999999691001448809 6.991720149999999911472059466 12.171232540000000099666976894 0.347222432107012757285247062 -1.982583457777727486970320570 1.627299969481545760530138978 +Hf 0.106263940000000722818640497 7.918353520000000145273588714 14.815570060000005980782589177 -0.211851439659396179049366538 -1.253022518020188158516248222 -1.320690083631172573319645380 +O -0.008936219999998940011209925 7.887538590000002791668975988 11.730000450000005685069481842 -0.005351851450057960868367246 0.087375587364534934575743819 -0.491071902239529789468974741 +O 1.745920770000001454036464565 6.938700570000000844572696224 15.411757540000005306524144544 0.402640693725956344550809263 -0.831252137230704679637938170 -0.817482085591623497400348697 +Hf 8.472078129999996320975697017 0.965530330000000103218837921 1.398076539999999923225004750 -0.329250896003744131235180248 -0.278781810058163159737887327 4.123701782053966979901815648 +Hf 6.779472229999999655092324247 1.976625560000000003668674253 4.130488820000000060872480390 0.476771735001973895329285824 0.952473049048826236884224272 -3.346027665143589402418911050 +O 6.719835800000000247678144660 1.924985350000000039472070057 0.641984310000000002460751602 0.532798627277275560487623807 -0.547441432191825505526594497 0.677349115470004536909698345 +O 8.505989979999998951143425074 0.976945309999999955685723307 4.698393259999999571618900518 0.608759746051979355740968458 -0.113996239928088716197862595 -1.233062126278363646036950740 +Hf 8.492078870000000279105734080 0.863834630000000047722608087 6.740369890000000197005647351 -0.091981561180686455259092327 1.218842018941557192590607883 1.811843296198112573947014425 +Hf 6.796854220000000168511178344 1.995867140000000095056975624 9.535992670000000615004864812 0.294019477262458694966085204 -0.196805407231255113931212009 -1.867751528513211134452376427 +O 6.739362449999998894156760798 1.813680100000000017246293282 6.054344110000002388005668763 1.233324323816379575191604090 1.102345740638685178680589161 3.074034958469970213457145292 +O 8.559021819999999891592779022 1.092781000000000002359001883 10.028032259999999808997017681 -0.304498734622778322034264420 -0.623944641606824390578367456 -0.315010771910764875158861287 +Hf 8.552413149999999575356923742 0.949449030000000027129658520 12.390182109999999582328200631 0.179103540954359985448718362 -0.246797253597237364886041178 -0.716517703129600835865176123 +Hf 6.896841560000000370678208128 1.883245880000000038734242480 14.797324679999999119672793313 0.171227011706746701236170338 0.161120559632917548231745286 -1.424421254128898528534818979 +O 6.887598809999999183162344707 1.941909600000000013508838492 11.685124209999999678188942198 -0.029324943632226041501098734 0.243030936819236764723228816 0.471085697312340567766142385 +O 8.571402349999999614738044329 1.074046209999999890172261985 15.734184740000005220394996286 -0.456955602230463941992866239 -0.593442965943502542813803302 -4.929084376703880110426325700 +Hf 6.826044569999998756770764885 3.740519920000000109183702079 1.415492250000000673537670082 0.267468079852190676604095643 1.164076859284868703525717137 1.762308358131678964753064065 +Hf 5.120656579999996793617356161 5.004441830000000202005594474 3.933086910000000102627382148 -0.847736787816395054306894963 0.218830454810403418619557669 0.080921151809290853273992639 +O 5.225026199999999398926320282 4.848612840000000367979282601 0.818421979999999993360404460 0.246279953030974857464130423 0.961703434381318444934549916 1.719577192229512441201677575 +O 6.794432669999999063747964101 4.108497709999999969454620441 4.719153160000000291063315672 0.200535181633791026456492546 -0.639306516943838332167615590 -1.638854104343670625709705746 +Hf 6.849011439999999950600795273 4.144296729999999762128481962 6.693141589999999752080839244 -1.947806962158866284084979270 -2.513059215828056913721866295 3.577822137398810387054481907 +Hf 5.019524889999999572864908259 4.816134510000001256457835552 9.535746429999999662641130271 -0.436026716059412289272501084 0.852357717377871026975810764 -2.658354756106910965485212728 +O 5.095880190000000808936420071 5.000521380000001236965090357 6.077944470000000265486050921 -0.173390814742493570843606676 -0.233541591718060131954715075 0.415121630188806933769996022 +O 6.743861209999999495323663723 4.015147660000000229274519370 10.092658899999999988494892023 1.015868570262899339695650269 -0.329137933450009967373262043 -1.200658616492151775645425005 +Hf 6.833410360000000238756001636 3.990389659999999949491211737 12.088406500000004939465725329 -0.022321769716190154042578797 -0.903615824562692182553291786 3.946585437990147049447386962 +Hf 5.149559820000000343043211615 4.930614330000000045117758418 15.043504889999999463157109858 -0.783892278520958329934842368 0.074453512322754100694055523 -3.628908955105172751132158737 +O 5.089585200000000142495082400 4.883064179999999865344761929 11.605125349999999784245119372 0.729184068016935027500835531 0.668159907941303532474819349 0.845259433216383970766116818 +O 6.750215459999999723095243098 3.836330339999999949895936879 15.464935479999999401456989290 0.986576515260450204181097433 -0.143978214672640270066494850 -0.346496541650899825270926158 +Hf 5.045585619999998883145053696 6.906234490000002779197529890 1.489874549999999908678205429 0.422557196065841189636103081 0.265920386463355029604826996 -0.153937471540938286551636338 +Hf 3.356480229999999842505076231 7.856082000000000675754563417 3.989134950000001289538431593 0.321743009959544634668304752 -0.626869950290898536593431345 -0.897797543092673455689123330 +O 3.341200989999999926283180685 7.871447060000000384150098398 0.651280190000000369643373688 0.859572863171429779605148269 -0.116146102080489602159651952 1.237806077616528277474117203 +O 5.138583170000001310029347223 6.963047829999999827066403668 4.811124870000000441905285697 0.669869386988973136709546452 -0.264098521137745567699539606 -2.509648953848408137190517664 +Hf 5.077319100000000418049239670 6.871229370000000002960405254 6.897467889999999712813405495 0.912318662172264538412491675 0.162197315139657849414334123 0.971171781853221394165132097 +Hf 3.470304090000001728810730128 7.985439510000001739342678775 9.344638500000000291834112431 0.381786015644676179903171942 -0.444508216627249319596870691 -0.380584378982519955236796250 +O 3.516154049999999919862148090 7.793869750000002483147909516 6.018920070000000066556822276 -1.202250494811826886376593393 0.663932391229044127634040251 1.260657738108163394841199079 +O 5.203599099999999921806193015 6.752050530000001771213646862 10.189950870000000548998286831 -0.125298900789303502278926317 0.696290664088522248675872106 -3.290304782532445404541476819 +Hf 5.033660789999998996790964156 6.895472410000000884622295416 12.096475249999999235228642647 0.369347517962542504221801209 0.401763918380894757831356401 3.758485470121579297142488940 +Hf 3.540142680000000652285052638 7.906198790000000364841525879 14.818714999999999193391886365 -1.379732406652395937385335856 0.318773159842890341231225193 -1.137373583638237928283842848 +O 3.370379080000000193706455320 7.875097770000002661561211426 11.443196520000006088935151638 0.670937968832254094664335753 1.094660605496016181348295504 0.467270723755280170674808460 +O 5.129378230000000371546775568 6.881922999999999568387920590 15.520986589999999694100552006 0.486327055702996169372909208 0.013817779548252140386921383 0.339242422871279369900321399 +3 +Lattice="3.6020568687189285 0.0000000000000000 0.0000000000000000 1.8010284343594642 3.1194712997323104 0.0000000000000000 1.8010284343594642 1.0398237665774368 2.9410686271383990" Properties=species:S:1:pos:R:3:forces:R:3 stress="103975.2407829689473147 0.0001683662077375 0.0001190562866737 0.0001683662077375 103975.2574189896695316 0.4071893027685542 0.0001190562866737 0.4071893027685542 103975.6662886034027906" pbc="T T T" energy=-27.0166175449584109 +Hf 0.000000000000000000000000000 0.000000000000000000000000000 0.000000000000000000000000000 -0.000000019719852417665606481 0.000004782089762844776714701 -0.000004764680609170568459376 +O 1.801028429999998792254700675 1.039824129999999957618683766 0.735266620000000203916101782 0.000000014698220085485047548 0.000000411437019010030269328 0.000002511751876210777112419 +O 5.403085299999998092346231715 3.119472739999999966187260725 2.205800210000000483034909848 0.000000005021631416246563617 -0.000005193526779231905088352 0.000002252928733237347103113 +2 +Lattice="19.9999996430165012 0.0000000000000000 0.0000000000000000 0.0000000000000000 19.9999996430165012 0.0000000000000000 0.0000000000000000 0.0000000000000000 19.9999996430165012" Properties=species:S:1:pos:R:3:forces:R:3 stress="0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 57979.5000364798470400" pbc="T T T" energy=38.8974633867369661 +Hf 9.999999819999999317587935366 9.999999819999999317587935366 9.999999819999999317587935366 0.000000000000000000000000000 0.000000000000000000000000000 -289.503674989171940978849306703 +O 9.999999819999999317587935366 9.999999819999999317587935366 10.999999799999999439137354784 0.000000000000000000000000000 0.000000000000000000000000000 289.503674989171940978849306703 From c17fadc08e05ca94f25ef6ae4e1cf2c2ea811343 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Fri, 5 Apr 2024 14:05:57 -0400 Subject: [PATCH 13/21] adding README file with installation instructions, notes, and todo's --- src/BasisSystems/POD/README.md | 45 ++++++++++++++++++++++++++++++ src/BasisSystems/POD/lammps_pod.jl | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/BasisSystems/POD/README.md diff --git a/src/BasisSystems/POD/README.md b/src/BasisSystems/POD/README.md new file mode 100644 index 0000000..41a7be8 --- /dev/null +++ b/src/BasisSystems/POD/README.md @@ -0,0 +1,45 @@ +## Installation + +Get the most recent version of POD, currently tested against the following kokkospod branch @ commit `4175984` +``` +git clone -b kokkospod git@github.com:cesmix-mit/lammps.git my_lammps +``` +Go into your cloned lammps repo, and make a folder called `build_*` e.g. +``` +cd my_lammps && mkdir build_kokkos && cd build_kokkos +``` + +Use cmake to set build this LAMMPS branch. The critical flags are `-DPKG_ML-POD=yes`, `-DBUILD_SHARED_LIBS=yes`, and `-DLAMMPS_EXCEPTIONS=yes`. The command I ran was +``` bash +cmake -DWITH_JPEG=no -DWITH_PNG=no -DPKG_MPI=yes \ +-DPKG_MOLECULE=yes -DPKG_KSPACE=yes -DPKG_SPIN=yes \ +-DPKG_ML-SNAP=yes -DPKG_ML-POD=yes \ +-DBUILD_SHARED_LIBS=yes -DLAMMPS_EXCEPTIONS=yes ../cmake +... +make -j 4 +``` + +Once compiled, go to or setup the Julia environment where you plan on using the LAMMPS_POD functionality (including the top level repo env if you're developing in this package), add LAMMPS to your Julia environment, then run +``` julia +using LAMMPS +LAMMPS.set_library!("path/to/my_lammps/build_kokkos/liblammps.0.dylib) +``` +Exit your Julia REPL, then all future uses of this Julia environment will be linked against this custom LAMMPS installation. + + +## Limitations + +- CPU-only, single-threaded (limited by the LAMMPS compute pod commands). I don't think multi-threading will work, perhaps if you had multiple parallel lammps instances, but you have to be careful there too. +- Compared to the fitpod command, we seem to run into memory-induced GC constraints fairly quickly. Even with a smaller data set (and after optimizing out most of the allocations), while the GC isn't a huge constraint, the linear solver seems much slower than with fitpod. This probably requires changes to PL.jl + +## Notes +- Most of the issues I encountered had to do with the implicit ordering of the underlying bd and bdd arrays (see the compute c++ files). These did not match the ordering of atomids called by `atomids = extract_atom(lmp, "id")` so I couldn't just sort the arrays based off of sorting the atom ids. Nominally, I think the LAMMPS `atom_modify map` command should provide a mapping between the expected atom index and the internal ordering, but there's no way of accessing this map via the LAMMPS C API. Instead, the best solution seems to be to use `atom_modify sort 1 binsize` where `binsize` has to be a bit longer than the largest possible distance between atoms in your system, subject to minimum image conventions. + +## Future TODOs +- GC finalizer +- Parse the parameter file +- Write parameter file from POD spec +- Need to further optimize the force routine call. That for loop is still too slow (especially for larger number of atoms). Possibly, there should be an alternative compute podd/atom where the exact array we needed is computed by the ML-POD library. But at the very least, the nested for loop should not be slower than the `raw_dd = extract_compute(...)`, so need to figure that out. +- More comprehensive verification (w/ respect to LAMMPS ), especially varying the POD parameters, basis set size, and testing against datasets other than our HFOx data +- Also need tests for gas molecule case where atoms are separated at distances beyond the cutoff (shoudl be zero, was a bug previously) +- More benchmarking, particularly for larger systems \ No newline at end of file diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index ad91ba7..985ca40 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -24,7 +24,7 @@ function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_pa println("Sorry, I haven't implementing parsing POD parameter files yet") else lmp_pod = LAMMPS_POD(lmp,param_file,lammps_species,nothing,num_perelem_ld) - @warn "Until POD param parser implemented, assuming species_map is the same order as species in POD parameter file" + #@warn "Until POD param parser implemented, assuming species_map is the same order as species in POD parameter file" end lmp_pod end From ecf9388c3288b903e2eb59eeec37e54c5e49905e Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:55:17 -0400 Subject: [PATCH 14/21] Using AbstractArray{T} instead of Vector{T} to type the arguments of longest_diagonal_length. Unclear if necessary though. --- src/BasisSystems/POD/lammps_pod.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 985ca40..c9372e7 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -291,7 +291,9 @@ function wrap_positions(A::AbstractSystem) new_cart_pos end -function longest_diagonal_length(a::Vector{T}, b::Vector{T},c::Vector{T}) where T <: Real +#function longest_diagonal_length(a::AbstractArray{T}, b::Vector{T},c::Vector{T}) where T <: Real +function longest_diagonal_length(a::AbstractArray{T}, b::AbstractArray{T},c::AbstractArray{T}) where T <: Real + # the four possible diagonals in the parallelepiped d1 = a + b + c d2 = a + b - c @@ -301,4 +303,4 @@ function longest_diagonal_length(a::Vector{T}, b::Vector{T},c::Vector{T}) where max_length = maximum(map(x->norm(x), [d1,d2,d3,d4])) max_length -end \ No newline at end of file +end From 8d57c74f30632c306bef92417d2b389146e6a806 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:52:56 -0400 Subject: [PATCH 15/21] making LAMMPS_POD compatible with LAMMPS.jl v0.7.2 --- Project.toml | 1 + src/BasisSystems/POD/lammps_pod.jl | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Project.toml b/Project.toml index 7aeca95..2f03d0d 100644 --- a/Project.toml +++ b/Project.toml @@ -28,6 +28,7 @@ Unitful = "1" UnitfulAtomic = "1" julia = "1.9" ACE1 = "0.12.2" +LAMMPS = "0.7.2" [extras] LAMMPS_jll = "5b3ab26d-9607-527c-88ea-8fe5ba57cafe" diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index c9372e7..72de6ee 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -73,7 +73,7 @@ function get_num_perelem_ld(lmp::LMP, lammps_species::Vector{Symbol}) command(lmp, "create_atoms 1 single 0.25 0.25 0.25") command(lmp, "run 0") - raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' + raw_ld = extract_compute(lmp,"ld", STYLE_ATOM,TYPE_ARRAY)' num_perelem_ld = size(raw_ld)[2] + 1 # including 1-body terms command(lmp,"delete_atoms group all") @@ -157,12 +157,12 @@ function compute_local_descriptors(A::AbstractSystem, pod::LAMMPS_POD) setup_lammps_system!(A,pod) command(lmp, "run 0") - atomids = extract_atom(lmp, "id") + atomids = extract_atom(lmp, "id", LAMMPS_INT) sort_idxs = sortperm(atomids) @assert length(A) == length(atomids) - raw_ld = extract_compute(lmp,"ld", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)' - raw_types = extract_atom(lmp,"type") + raw_ld = extract_compute(lmp,"ld", STYLE_ATOM,TYPE_ARRAY)' + raw_types = extract_atom(lmp,"type", LAMMPS_INT) sorted_ld = raw_ld[sort_idxs,:] sorted_types = raw_types[sort_idxs,:] @@ -197,14 +197,14 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) end setup_lammps_system!(A,pod) - num_atoms = length(A)::Int64 - atomids = extract_atom(lmp, "id") + num_atoms = length(A)::Int64 # Why do I have to type annotate this? Shouldn't there be a better way? + atomids = extract_atom(lmp, "id", LAMMPS_INT) @assert num_atoms == length(atomids) sort_idxs = sortperm(atomids)::Vector{Int64} @assert sort_idxs == [Int64(i) for i in 1:num_atoms] #so we can use raw_dd - raw_types = extract_atom(lmp,"type")::Vector{Int32} - sorted_types = raw_types[sort_idxs,:]::Array{Int32} + raw_types = extract_atom(lmp,"type", LAMMPS_INT)::Vector{Int32} + sorted_types = raw_types[sort_idxs,:]::Array{Int32} # is it Array because I'm slicing it? #= Why is the following necessary? The output of podd/atom depends on the number and types of atoms in the system, so if that changes, this compute needs to change. @@ -239,7 +239,7 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) total_num_ld = num_pod_types*(num_perelem_ld) final_dd = [[zeros(total_num_ld) for _ in 1:3] for __ in 1:num_atoms] # for consistency, vec{vec{vec}} - raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", LAMMPS.API.LMP_STYLE_ATOM,LAMMPS.API.LMP_TYPE_ARRAY)::Array{Float64,2} + raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", STYLE_ATOM, TYPE_ARRAY)::Array{Float64,2} raw_dd = raw_dd' for i in 1:num_atoms From 7d79ce93ac68f97c21efd59fbd33bea4799d7f53 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Wed, 20 Nov 2024 18:30:42 -0500 Subject: [PATCH 16/21] making LAMMPS POD compatible with current version of LAMMPS --- src/BasisSystems/POD/lammps_pod.jl | 50 ++++++------------------------ 1 file changed, 10 insertions(+), 40 deletions(-) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 72de6ee..c9deea9 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -59,7 +59,7 @@ function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol command(lmp, "pair_style zero 10.0") command(lmp, "pair_coeff * * ") - command(lmp, """compute ld all pod/atom $(param_file) "" "" $(atomtype_str)""") + command(lmp, """compute ld all pod/atom $(param_file) "" $(atomtype_str)""") lmp end @@ -197,7 +197,7 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) end setup_lammps_system!(A,pod) - num_atoms = length(A)::Int64 # Why do I have to type annotate this? Shouldn't there be a better way? + num_atoms = length(A)::Int64 atomids = extract_atom(lmp, "id", LAMMPS_INT) @assert num_atoms == length(atomids) @@ -206,59 +206,29 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) raw_types = extract_atom(lmp,"type", LAMMPS_INT)::Vector{Int32} sorted_types = raw_types[sort_idxs,:]::Array{Int32} # is it Array because I'm slicing it? - #= Why is the following necessary? - The output of podd/atom depends on the number and types of atoms in the system, so if that changes, this compute needs to change. - (When the compute is defined, it looks at the current atom list to figure out it's output) - Unfortunately, uncompute'ing a compute id does not free it up, and that compute id cannot be reused, hence this extra logic - - For standard MD simulations, there should only be one of these podd/atom computes (unless the simulation can have variable numbers of atoms). - - However, using a single LAMMPS_POD instance for computing descriptors of a training set may result in many of these computes. - In the worst case scenario, for randomized diverse training sets, every time the next configuration has different #/types of atoms, a new compute is added. - stochastic batch methods may be particularly problematic (at least if descriptors aren't cached). - - I'm not sure if there's any huge consequence for having many computes in terms of lammps performance (or if there are a maximum number of computes). - Testing is needed - =# if sorted_types != pod.type_cache pod.type_cache = sorted_types # this should be OK because sorted_type is a copy of the lammps types array - if pod.c_dd_cache == -1 + if pod.c_dd_cache == -1 pod.c_dd_cache = 0 - command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") + command(lmp, """compute dd$(pod.c_dd_cache) all pod/global $(pod.param_file) "" $(atomtype_str)""") else command(lmp, "uncompute dd$(pod.c_dd_cache)") pod.c_dd_cache += 1 - command(lmp, """compute dd$(pod.c_dd_cache) all podd/atom $(pod.param_file) "" "" $(atomtype_str)""") + command(lmp, """compute dd$(pod.c_dd_cache) all pod/global $(pod.param_file) "" $(atomtype_str)""") end end command(lmp, "run 0") - num_pod_types = length(pod.species_map) - num_perelem_ld = pod.num_perelem_ld + num_pod_types = length(pod.species_map)::Int64 + num_perelem_ld = pod.num_perelem_ld::Int64 total_num_ld = num_pod_types*(num_perelem_ld) - final_dd = [[zeros(total_num_ld) for _ in 1:3] for __ in 1:num_atoms] # for consistency, vec{vec{vec}} - raw_dd = extract_compute(lmp,"dd$(pod.c_dd_cache)", STYLE_ATOM, TYPE_ARRAY)::Array{Float64,2} + #raw_dd = extract_compute(lmp, "dd$(pod.c_dd_cache)", STYLE_GLOBAL, TYPE_ARRAY; + # size_2d=(total_num_ld, 3*num_atoms+1))::Array{Float64,2} raw_dd = raw_dd' - for i in 1:num_atoms - fddi = final_dd[i] - for alpha in 1:3 - fddialph = fddi[alpha] - for j in 1:num_atoms - jtype = sorted_types[j] - fstart = (jtype-1)*(num_perelem_ld)+2 # +2 accounts for both skipping 1-body term and 1-indexing - dd_start = (i-1)*3*(num_perelem_ld-1) + (alpha-1)*(num_perelem_ld-1) +1 - - #non-allocating, essential to prevent too many GC calls - for k in 1:num_perelem_ld-1 - fddialph[fstart+k-1] += raw_dd[j,dd_start+k-1] - #@inbounds fddialph[fstart+k-1] += raw_dd[j,dd_start+k-1] #is 2x speedup worth the risk? - end - end - end - end + final_dd = [[raw_dd[3*i+k+1,1:end] for k in 1:3] for i in 0:num_atoms-1] command(lmp, "pair_style none") command(lmp, "pair_style zero 10.0") From dc48b31f36429257c91164e30300a498baa17bff Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Wed, 20 Nov 2024 18:36:22 -0500 Subject: [PATCH 17/21] small fix to previous commit --- src/BasisSystems/POD/lammps_pod.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index c9deea9..7104790 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -224,6 +224,7 @@ function compute_force_descriptors(A::AbstractSystem, pod::LAMMPS_POD) num_perelem_ld = pod.num_perelem_ld::Int64 total_num_ld = num_pod_types*(num_perelem_ld) + raw_dd = extract_compute(lmp, "dd$(pod.c_dd_cache)", STYLE_GLOBAL, TYPE_ARRAY)::Array{Float64,2} #raw_dd = extract_compute(lmp, "dd$(pod.c_dd_cache)", STYLE_GLOBAL, TYPE_ARRAY; # size_2d=(total_num_ld, 3*num_atoms+1))::Array{Float64,2} raw_dd = raw_dd' From 53314af3b9b65c2edd74dc4ba80ae5103a8ebafd Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Wed, 20 Nov 2024 18:39:33 -0500 Subject: [PATCH 18/21] remove out-of-date README --- src/BasisSystems/POD/README.md | 45 ---------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 src/BasisSystems/POD/README.md diff --git a/src/BasisSystems/POD/README.md b/src/BasisSystems/POD/README.md deleted file mode 100644 index 41a7be8..0000000 --- a/src/BasisSystems/POD/README.md +++ /dev/null @@ -1,45 +0,0 @@ -## Installation - -Get the most recent version of POD, currently tested against the following kokkospod branch @ commit `4175984` -``` -git clone -b kokkospod git@github.com:cesmix-mit/lammps.git my_lammps -``` -Go into your cloned lammps repo, and make a folder called `build_*` e.g. -``` -cd my_lammps && mkdir build_kokkos && cd build_kokkos -``` - -Use cmake to set build this LAMMPS branch. The critical flags are `-DPKG_ML-POD=yes`, `-DBUILD_SHARED_LIBS=yes`, and `-DLAMMPS_EXCEPTIONS=yes`. The command I ran was -``` bash -cmake -DWITH_JPEG=no -DWITH_PNG=no -DPKG_MPI=yes \ --DPKG_MOLECULE=yes -DPKG_KSPACE=yes -DPKG_SPIN=yes \ --DPKG_ML-SNAP=yes -DPKG_ML-POD=yes \ --DBUILD_SHARED_LIBS=yes -DLAMMPS_EXCEPTIONS=yes ../cmake -... -make -j 4 -``` - -Once compiled, go to or setup the Julia environment where you plan on using the LAMMPS_POD functionality (including the top level repo env if you're developing in this package), add LAMMPS to your Julia environment, then run -``` julia -using LAMMPS -LAMMPS.set_library!("path/to/my_lammps/build_kokkos/liblammps.0.dylib) -``` -Exit your Julia REPL, then all future uses of this Julia environment will be linked against this custom LAMMPS installation. - - -## Limitations - -- CPU-only, single-threaded (limited by the LAMMPS compute pod commands). I don't think multi-threading will work, perhaps if you had multiple parallel lammps instances, but you have to be careful there too. -- Compared to the fitpod command, we seem to run into memory-induced GC constraints fairly quickly. Even with a smaller data set (and after optimizing out most of the allocations), while the GC isn't a huge constraint, the linear solver seems much slower than with fitpod. This probably requires changes to PL.jl - -## Notes -- Most of the issues I encountered had to do with the implicit ordering of the underlying bd and bdd arrays (see the compute c++ files). These did not match the ordering of atomids called by `atomids = extract_atom(lmp, "id")` so I couldn't just sort the arrays based off of sorting the atom ids. Nominally, I think the LAMMPS `atom_modify map` command should provide a mapping between the expected atom index and the internal ordering, but there's no way of accessing this map via the LAMMPS C API. Instead, the best solution seems to be to use `atom_modify sort 1 binsize` where `binsize` has to be a bit longer than the largest possible distance between atoms in your system, subject to minimum image conventions. - -## Future TODOs -- GC finalizer -- Parse the parameter file -- Write parameter file from POD spec -- Need to further optimize the force routine call. That for loop is still too slow (especially for larger number of atoms). Possibly, there should be an alternative compute podd/atom where the exact array we needed is computed by the ML-POD library. But at the very least, the nested for loop should not be slower than the `raw_dd = extract_compute(...)`, so need to figure that out. -- More comprehensive verification (w/ respect to LAMMPS ), especially varying the POD parameters, basis set size, and testing against datasets other than our HFOx data -- Also need tests for gas molecule case where atoms are separated at distances beyond the cutoff (shoudl be zero, was a bug previously) -- More benchmarking, particularly for larger systems \ No newline at end of file From 8d81bc0fd858a51cc73d1a786c76c06d85463110 Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 21 Nov 2024 14:53:56 -0500 Subject: [PATCH 19/21] add depdency on OpenBLAS32_jll, make sure to forward to LBT if LP64 BLAS library isn't available --- Project.toml | 5 +++-- src/BasisSystems/POD/lammps_pod.jl | 14 +++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index 2f03d0d..0cb6fdf 100644 --- a/Project.toml +++ b/Project.toml @@ -13,6 +13,7 @@ JuLIP = "945c410c-986d-556a-acb1-167a618e0462" LAMMPS = "ee2e13b9-eee9-4449-aafa-cfa6a2dbe14d" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce" +OpenBLAS32_jll = "656ef2d0-ae68-5445-9ca0-591084a874a2" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" @@ -20,15 +21,15 @@ UnitfulAtomic = "a7773ee8-282e-5fa2-be4e-bd808c38a91a" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] +ACE1 = "0.12.2" AtomsBase = "0.3" Distances = "0.10" +LAMMPS = "0.7.2" NearestNeighbors = "0.4.9" StaticArrays = "1" Unitful = "1" UnitfulAtomic = "1" julia = "1.9" -ACE1 = "0.12.2" -LAMMPS = "0.7.2" [extras] LAMMPS_jll = "5b3ab26d-9607-527c-88ea-8fe5ba57cafe" diff --git a/src/BasisSystems/POD/lammps_pod.jl b/src/BasisSystems/POD/lammps_pod.jl index 7104790..a978d3c 100644 --- a/src/BasisSystems/POD/lammps_pod.jl +++ b/src/BasisSystems/POD/lammps_pod.jl @@ -1,7 +1,8 @@ using LAMMPS using Printf: @sprintf -using LinearAlgebra: norm +using LinearAlgebra: norm, BLAS +import OpenBLAS32_jll # species map can differ in order from species in pod_spec # tradeoff between RefValue for the cache vs. just using a mutable struct? @@ -18,6 +19,9 @@ mutable struct LAMMPS_POD <: BasisSystem end function LAMMPS_POD(param_file::String, lammps_species::Vector{Symbol}; parse_param_file=false) + # probably not the best location + initialize_blas() + lmp = initialize_pod_lammps(param_file,lammps_species) num_perelem_ld = get_num_perelem_ld(lmp,lammps_species) if parse_param_file @@ -36,6 +40,14 @@ function LBasisPotential(lmp_pod::LAMMPS_POD, coeff_fname::String) LBasisPotential(coeffs,zeros(1),lmp_pod) end +# Same as https://github.com/jump-dev/Ipopt.jl/blob/ffa138dea93d994442b3aa3824688a70c598bacf/src/Ipopt.jl#L15C1-L19C8 +function initialize_blas() + config = LinearAlgebra.BLAS.lbt_get_config() + if !any(lib -> lib.interface == :lp64, config.loaded_libs) + LinearAlgebra.BLAS.lbt_forward(OpenBLAS32_jll.libopenblas_path) + end +end + function initialize_pod_lammps(param_file::String, lammps_species::Vector{Symbol}) num_types = length(lammps_species) atomtype_str = "" From 87e338e9d027516b343933220ffbb28b5947afca Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 21 Nov 2024 15:59:10 -0500 Subject: [PATCH 20/21] add atol=1e-8 to isapprox for POD force tests --- test/POD/pod_test.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/POD/pod_test.jl b/test/POD/pod_test.jl index 7f50dcf..497a431 100644 --- a/test/POD/pod_test.jl +++ b/test/POD/pod_test.jl @@ -62,7 +62,7 @@ ref_configs = load_trajectory("./POD/stress_test_hfo2_configs.xyz") check_energy = potential_energy(config,hfo2_lbp2) @test check_energy ≈ config.system_data.energy check_forces = force(config, hfo2_lbp2) - @test check_forces ≈ config.atom_data.forces + @test isapprox(check_forces,config.atom_data.forces; atol=1e-8) end end @@ -75,6 +75,6 @@ end check_energy = potential_energy(config,hfo2_lbp3) @test check_energy ≈ config.system_data.energy check_forces = force(config, hfo2_lbp3) - @test check_forces ≈ config.atom_data.forces + @test isapprox(check_forces,config.atom_data.forces; atol=1e-8) end -end \ No newline at end of file +end From 8dd95b46e4eaf9dee3b22f9fc3f8819b0a9dd7ac Mon Sep 17 00:00:00 2001 From: Spencer Wyant <17836774+swyant@users.noreply.github.com> Date: Thu, 21 Nov 2024 16:00:21 -0500 Subject: [PATCH 21/21] version bump, updated CI versions --- .github/workflows/CI.yml | 2 ++ Project.toml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index cff4314..2bdcc41 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -14,6 +14,8 @@ jobs: matrix: version: - "1.9" + - "1.10" + - "1" os: - ubuntu-latest - macOS-latest diff --git a/Project.toml b/Project.toml index 0cb6fdf..1aa7551 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "InteratomicPotentials" uuid = "a9efe35a-c65d-452d-b8a8-82646cd5cb04" -authors = ["Dallas Foster "] -version = "0.2.9" +authors = ["Dallas Foster ", "Spencer Wyant "] +version = "0.3.0" [deps] ACE1 = "e3f9bc04-086e-409a-ba78-e9769fe067bb"