Mercurial > repos > muon-spectroscopy-computational-project > pm_uep_opt
changeset 4:ec5f6b22417c draft
planemo upload for repository https://github.com/muon-spectroscopy-computational-project/muon-galaxy-tools/main/pm_uep_opt commit 70a4d37ecdf5d586703cfc509922311e95d3205c
author | muon-spectroscopy-computational-project |
---|---|
date | Tue, 18 Jul 2023 13:27:15 +0000 |
parents | 523d44fcd03f |
children | eea73e1f65cb |
files | muon_macros.xml pm_uep_opt.xml run.sh test-data/Si.cell test-data/Si.cif test-data/Si.extxyz test-data/Si.xyz test-data/allpos.cell test-data/allpos.cif test-data/allpos.xyz test-data/muonated-default-folder.zip test-data/muonated.zip test-data/tree.txt |
diffstat | 13 files changed, 517 insertions(+), 135 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/muon_macros.xml Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,29 @@ +<macros> + <xml name="dftb_set"> + <param type="select" name="dftb_set" value="3ob-3-1" display="radio" label="DFTB parameter set" help="The parameter set to use for DFTB+. Currently supported are: 3ob-3-1 and pbc-0-3. See help section at the bottom of the page for details."> + <option value="3ob-3-1">3ob-3-1</option> + <option value="pbc-0-3">pbc-0-3</option> + </param> + </xml> + <xml name="dftb+"> + <expand macro="dftb_set"/> + <param type="boolean" name="dftb_pbc" label="Use periodic boundary conditions" help="Whether to turn on periodic boundary conditions in DFTB+." checked="true"/> + </xml> + <xml name="dftb_optionals"> + <param type="text" argument="dftb_optionals" value="[]" optional="true" label="DFTB optional files" help="Additional optional json files to activate for DFTBArgs (for example, dftd3.json will use DFTD3 dispersion forces for 3ob-3-1 if DFTB+ has been compiled to support them)."/> + </xml> + <xml name="k_points_grid"> + <param type="text" argument="k_points_grid" value="[1,1,1]" label="K-points grid" help="List of three integer k-points. Default is [1,1,1]."> + <validator type="regex" message="Input should only contain whitespace, '[', ']', ',' and digits.">^[\s\d,\[\]]+$</validator> + </param> + </xml> + <!-- version of underlying tool (PEP 440) --> + <!-- citation should be updated with every underlying tool version --> + <!-- concept is not updated, and should only be used for referencing the idea of the software --> + <token name="@MUSPINSIM_VERSION@">2.2.1</token> + <token name="@MUSPINSIM_CITATION@">10.5281/zenodo.7733979</token> + <token name="@MUSPINSIM_CONCEPT@">10.5281/zenodo.6517626</token> + <token name="@PYMUONSUITE_VERSION@">0.3.0</token> + <token name="@PYMUONSUITE_CITATION@">10.5281/zenodo.8026711</token> + <token name="@PYMUONSUITE_CONCEPT@">10.5281/zenodo.7025643</token> +</macros> \ No newline at end of file
--- a/pm_uep_opt.xml Fri Feb 03 15:40:08 2023 +0000 +++ b/pm_uep_opt.xml Tue Jul 18 13:27:15 2023 +0000 @@ -1,32 +1,18 @@ -<tool id="pm_uep_opt" name="PyMuonSuite AIRSS UEP Optimise" version="@TOOL_VERSION@+galaxy@WRAPPER_VERSION@" python_template_version="3.5" profile="22.05" license="MIT"> +<tool id="pm_uep_opt" name="PyMuonSuite AIRSS UEP Optimise" version="@PYMUONSUITE_VERSION@+galaxy@WRAPPER_VERSION@" python_template_version="3.5" profile="22.05" license="MIT"> <description>run UEP optimisation</description> <macros> - <!-- version of underlying tool (PEP 440) --> - <token name="@TOOL_VERSION@">0.2.3</token> <!-- version of this tool wrapper (integer) --> <token name="@WRAPPER_VERSION@">0</token> - <!-- citation should be updated with every underlying tool version --> - <!-- typical fields to update are version, month, year, and doi --> - <token name="@TOOL_CITATION@"> - @software{Sturniolo_pymuon-suite_2022, - author = {Sturniolo, Simone and Liborio, Leandro and Chadwick, Eli and Murgatroyd, Laura and Laverack, Adam and Mudaraddi, Anish and {Muon Spectroscopy Computational Project}}, - license = {GPL-3.0}, - month = {8}, - title = {{pymuon-suite}}, - url = {https://github.com/muon-spectroscopy-computational-project/pymuon-suite}, - version = {v0.2.3}, - doi = {10.5281/zenodo.7025644}, - year = {2022} - } - </token> + <import>muon_macros.xml</import> </macros> <creator> <person givenName="Jyothish" familyName="Thomas" identifier="https://orcid.org/0000-0003-4724-6924"/> <person givenName="Eli" familyName="Chadwick" url="https://github.com/elichad" identifier="https://orcid.org/0000-0002-0035-6475"/> + <person givenName="Patrick" familyName="Austin" url="https://github.com/patrick-austin" identifier="https://orcid.org/0000-0002-6279-7823"/> <organization url="https://muon-spectroscopy-computational-project.github.io/index.html" name="The Muon Spectroscopy Computational Project"/> </creator> <requirements> - <requirement type="package" version="@TOOL_VERSION@">pymuonsuite</requirement> + <requirement type="package" version="@PYMUONSUITE_VERSION@">pymuonsuite</requirement> <requirement type="package" version="3.0">zip</requirement> </requirements> <required_files> @@ -34,101 +20,230 @@ <include type="literal" path="get_out_folder.py"/> </required_files> <command detect_errors="exit_code"><![CDATA[ - unzip '$muonated_structures' && - if test -f "params.yaml"; then echo "params.yaml present"; else echo "params.yaml missing" && exit 64; fi && - if ( test -f input_structure.* ) ; then echo "input structure present"; else echo "input structure missing" && exit 64; fi && - ## PyMuonSuite will attempt to load '<chden_seed>.den_fmt' and - ## '<chden_seed>.castep', but $charge_density.name may or may not end - ## with '.den_fmt' so strip any extension and manually include 'den_fmt' - ## and '.castep' in the linked file names - charge_density_name=\$(sed 's/ //g' <<< '$charge_density.name') && - charge_density_seed=\${charge_density_name%%.*} && - echo "Calculated seed name \$charge_density_seed" && - ln -s '$charge_density' \$charge_density_seed.den_fmt && - ln -s '$castep_log' \$charge_density_seed.castep && + cat $params_yaml > params.yaml && + structure_name_internal='input_structure.$structure.ext' && + ln -s '$structure' \$structure_name_internal && + pm-muairss -t w \$structure_name_internal params.yaml && + #if $generation_params.allpos_ext != "none": + mv allpos.$generation_params.allpos_ext $allpos_file && + #end if + ln -s '$charge_density' input_structure.den_fmt && + ln -s '$castep_log' input_structure.castep && out_folder="`python '${__tool_directory__}/get_out_folder.py'`" && find \$out_folder -type f -name "*.yaml" | xargs sed -i "s#^chden_path: .*#chden_path: .\/#g" && - find \$out_folder -type f -name "*.yaml" | xargs sed -i "s#^chden_seed: .*#chden_seed: \$charge_density_seed#g" && + find \$out_folder -type f -name "*.yaml" | xargs sed -i "s#^chden_seed: .*#chden_seed: input_structure#g" && bash '${__tool_directory__}/run.sh' \$out_folder && - zip -r out_zip.zip \$out_folder params.yaml input_structure.* && + zip -r out_zip.zip \$out_folder params.yaml \$structure_name_internal && find \$out_folder > tree.txt ]]></command> + <configfiles> + <configfile name="params_yaml">poisson_r: $generation_params.poisson_r +vdw_scale: $generation_params.vdw_scale +#if $generation_params.random_seed: +random_seed: $generation_params.random_seed +#end if +#if $generation_params.allpos_ext!="none": +allpos_filename: allpos.$generation_params.allpos_ext +#end if +calculator: uep +charged: true +geom_steps: $optimisation_params.geom_steps +geom_force_tol: $optimisation_params.geom_force_tol +uep_gw_factor: $optimisation_params.uep_gw_factor</configfile> + </configfiles> <inputs> - <param type="data" name="muonated_structures" label="Muonated structures (.zip)" format="zip" help="A zip folder containing muonated structures, as generated by the 'Generate muonated structures' tool or pm-muairss."/> + <param type="data" name="structure" label="Structure file" format="cell, cif, extxyz" help="The structure to add muons to. The original file will be preserved. Accepted file types: CELL, CIF, XYZ (extended only)."/> <param type="data" name="charge_density" label="Charge density file (.den_fmt)" format="den_fmt" help="The charge density file created by CASTEP during your initial DFT simulation for the structure."/> <param type="data" name="castep_log" label="CASTEP log (.castep)" format="castep" help="The CASTEP log for your initial DFT simulation for the structure."/> + <section name="generation_params" expanded="true" title="Generation Parameters"> + <param type="float" argument="poisson_r" value="0.8" min="0.0" label="Poisson radius" help=" Poisson sphere radius to use for random generation. No two starting muon positions will be closer than this distance. Smaller values make for bigger structure sets."/> + <param type="float" argument="vdw_scale" value="0.5" min="0.0" label="Van der Waals scale" help="Van der Waals scaling factor to use when generating muon sites to avoid existing atoms. Smaller values will allow muons to get closer to the other ions."/> + <param type="integer" argument="random_seed" label="Random Seed" optional="true" help="Seed used to randomise the positions of the muons in the generated structures."/> + <param type="select" name="allpos_ext" value="none" label="Format for file containing all muon positions (optional)" help="If set, generates an extra output file containing all the muon positions using the specified file type."> + <option value="none">Do not generate</option> + <option value="cell">CELL</option> + <option value="cif">CIF</option> + <option value="xyz">XYZ</option> + </param> + </section> + <section name="optimisation_params" expanded="true" title="Optimisation Parameters"> + <param type="integer" argument="geom_steps" value="30" min="0" label="Geometry optimization steps" help="Maximum number of geometry optimisation steps."/> + <param type="float" argument="geom_force_tol" value="0.05" min="0.0" label="Geometry optimization tolerance" help="Tolerance on geometry optimisation in units of eV/Å."/> + <param type="float" argument="uep_gw_factor" optional="true" value="5.0" min="0.0" label="Gaussian width factor" help="Gaussian width factor for UEP calculation. Higher values will make the potential of atomic nuclei closer to the point-like approximation but may introduce artifacts."/> + </section> <param type="hidden" name="testing" label="Test mode" value="false"/> </inputs> <outputs> - <data label="UEP results for $muonated_structures.name" name="uep_results" format="zip" from_work_dir="out_zip.zip"/> + <data name="uep_results" format="zip" from_work_dir="out_zip.zip"/> + <data label="File containing the positions of all muon sites" name="allpos_file" auto_format="true"> + <filter>(generation_params["allpos_ext"] != "none")</filter> + </data> <data label="File tree (testing only)" name="file_tree" format="txt" from_work_dir="tree.txt" hidden="true"> <filter>(testing == "true")</filter> </data> </outputs> <tests> - <test expect_num_outputs="2"> + <!-- UEP with CELL --> + <test expect_num_outputs="3"> <param name="testing" value="true"/> - <param name="muonated_structures" value="muonated.zip" ftype="zip"/> + <param name="structure" value="Si.cell" ftype="cell"/> <param name="charge_density" value="Si.den_fmt" ftype="den_fmt"/> <param name="castep_log" value="Si.castep" ftype="castep"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + <param name="allpos_ext" value="cell"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> + <output name="allpos_file" file="allpos.cell"/> <output name="file_tree" file="tree.txt" ftype="txt" sort="true"> <assert_contents> - <has_size value="1780"/> + <has_size value="3280"/> </assert_contents> </output> </test> - <test expect_num_outputs="2"> + <!-- UEP with XYZ --> + <test expect_failure="true"> <param name="testing" value="true"/> - <param name="muonated_structures" value="muonated-default-folder.zip" ftype="zip"/> + <param name="structure" value="Si.xyz" ftype="xyz"/> + <param name="charge_density" value="Si.den_fmt" ftype="den_fmt"/> + <param name="castep_log" value="Si.castep" ftype="castep"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> + <assert_stderr> + <has_text text="TypeError: cannot unpack non-iterable NoneType object"/> + </assert_stderr> + </test> + <!-- UEP with extended XYZ --> + <test expect_num_outputs="3"> + <param name="testing" value="true"/> + <param name="structure" value="Si.extxyz" ftype="extxyz"/> <param name="charge_density" value="Si.den_fmt" ftype="den_fmt"/> <param name="castep_log" value="Si.castep" ftype="castep"/> - <output name="file_tree" file="tree-default-folder.txt" sort="true"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + <param name="allpos_ext" value="xyz"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> + <output name="allpos_file" file="allpos.xyz"/> + <output name="file_tree" file="tree.txt" ftype="txt" sort="true"> + <assert_contents> + <has_size value="3280"/> + </assert_contents> + </output> </test> + <!-- UEP with CIF --> + <test expect_num_outputs="3"> + <param name="testing" value="true"/> + <param name="structure" value="Si.cif" ftype="cif"/> + <param name="charge_density" value="Si.den_fmt" ftype="den_fmt"/> + <param name="castep_log" value="Si.castep" ftype="castep"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + <param name="allpos_ext" value="cif"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> + <output name="allpos_file" file="allpos.cif"/> + <output name="file_tree" file="tree.txt" ftype="txt" sort="true"> + <assert_contents> + <has_size value="3280"/> + </assert_contents> + </output> + </test> + <!-- Expect total failure for badly formatted den_fmt --> <test expect_failure="true"> <param name="testing" value="true"/> - <param name="muonated_structures" value="muonated-default-folder.zip" ftype="zip"/> + <param name="structure" value="Si.cell" ftype="cell"/> <param name="castep_log" value="Si.castep" ftype="castep"/> <param name="charge_density" value="Sifail.den_fmt" ftype="den_fmt"/> <assert_stderr> <has_text text="Error: FMT file has no header"/> + <has_text text="ERROR: All optimisations failed"/> </assert_stderr> </test> <!-- check that file_tree filter works --> <test expect_num_outputs="1"> <param name="testing" value="false"/> - <param name="muonated_structures" value="muonated.zip" ftype="zip"/> + <param name="structure" value="Si.cell" ftype="cell"/> <param name="charge_density" value="Si.den_fmt" ftype="den_fmt"/> <param name="castep_log" value="Si.castep" ftype="castep"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> </test> <!-- Check that the chden parameters are set correctly when $charge_density.name does not have the .den_fmt extension --> <test expect_num_outputs="2"> <param name="testing" value="true"/> - <param name="muonated_structures" value="muonated.zip" ftype="zip"/> + <param name="structure" value="Si.cell" ftype="cell"/> <param name="charge_density" value="Si_den_fmt" ftype="den_fmt"/> <param name="castep_log" value="Si.castep" ftype="castep"/> + <section name="generation_params"> + <param name="poisson_r" value="1.18"/> + <param name="vdw_scale" value="0.25"/> + <param name="random_seed" value="7357"/> + </section> + <section name="optimisation_params"> + <param name="geom_steps" value="300"/> + <param name="uep_gw_factor" value="4.0"/> + </section> <output name="file_tree" file="tree.txt" ftype="txt" sort="true"> <assert_contents> - <has_size value="1780"/> + <has_size value="3280"/> </assert_contents> </output> </test> </tests> <help><![CDATA[ - Given a set of input muonated structures (structures containing a muon), applies UEP optimisation to refine them. + Given an input structure, this tool generates a set of duplicate structures, + each with a single muon added in a random location. + These are known as "muonated" structures. + Following this, UEP optimisation is used to refine the positions of the muons. - This tool requires CASTEP inputs for the UEP method, meaning your initial DFT simulation must have been done with CASTEP. - The structure you used as input to the '`Generate muonated structures`_' tool or pm-muairss beforehand should come from the same simulation run. + This tool requires CASTEP inputs in order to perform the UEP method, + meaning your initial DFT simulation must have been done with CASTEP. + This simulation should have used the same structure as is used here. - Command-line usage: pm-uep-opt [-h] [-t {r,w}] structures parameter_file + Following this, the individual refined positions can be clustered to + represent potential stopping sites by using '`PyMuonSuite AIRSS Cluster`_'. - .. _Generate muonated structures: /tool_runner?tool_id=pm_muairss_write + Command-line usage (generation): pm-muairss [-h] -t w structures parameter_file + + Command-line usage (optimisation): pm-uep-opt [-h] parameter_file - PyMuonSuite is distributed under the GPLv3 license. This tool wrapper is distributed under the MIT license. + .. _PyMuonSuite AIRSS Cluster: /tool_runner?tool_id=pm_muairss_read + + PyMuonSuite is distributed under the GPLv3 license. + This tool wrapper is distributed under the MIT license. ]]></help> <citations> - <citation type="bibtex"> - @TOOL_CITATION@ - </citation> + <citation type="doi">@PYMUONSUITE_CITATION@</citation> <citation type="doi">10.1063/1.5024450</citation> <citation type="doi">10.1063/1.5085197</citation> <citation type="doi">10.1063/5.0012381</citation>
--- a/run.sh Fri Feb 03 15:40:08 2023 +0000 +++ b/run.sh Tue Jul 18 13:27:15 2023 +0000 @@ -2,14 +2,33 @@ set -o errexit -for x in $1/*/*/*.yaml -do - - if ! out=$(pm-uep-opt $x) - then - echo 1>&2 "$out"; exit 1 +run(){ + if ! out=$(pm-uep-opt $1); then + echo 1>&2 "$out"; exit 1 else - echo "$out" + echo "$out" fi -done || exit -#pm-uep-opt \ No newline at end of file +} + +pids=() +for x in $1/*/*/*.yaml; do + run $x & pids+=($!) +done + +declare -i failed=0 +for pid in ${pids[@]}; do + if ! wait $pid; then + failed+=1 + fi +done + +if [ $failed -eq ${#pids[@]} ]; then + >&2 echo "ERROR: All optimisations failed" + exit 1 +elif [ $failed -eq 0 ]; then + echo "All optimisations succeeded" + exit 0 +else + echo "WARNING: $failed optimisation(s) failed" + exit 0 +fi
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Si.cell Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,43 @@ +# CELL file written 11:14:42 (GMT-0.0) 17th February 2021 from run Si + +%BLOCK lattice_cart + ANG + 5.47538171155659 0.530767321973160E-35 -0.131324260787022E-34 + 0.530767321973160E-35 5.47538171155659 0.313104997179767E-35 + -0.131324260787022E-34 0.313104997179767E-35 5.47538171155659 +%ENDBLOCK lattice_cart + +%BLOCK cell_constraints + 1 1 1 + 0 0 0 +%ENDBLOCK cell_constraints + +%BLOCK positions_frac + Si 0.000000000000000 0.000000000000000 0.000000000000000 + Si 0.000000000000000 0.500000000000000 0.500000000000000 + Si 0.250000000000000 0.250000000000000 0.250000000000000 + Si 0.500000000000000 0.000000000000000 0.500000000000000 + Si 0.250000000000000 0.750000000000000 0.750000000000000 + Si 0.750000000000000 0.250000000000000 0.750000000000000 + Si 0.750000000000000 0.750000000000000 0.250000000000000 + Si 0.500000000000000 0.500000000000000 0.000000000000000 +%ENDBLOCK positions_frac + +FIX_COM : true + +%BLOCK species_pot + Si 3|1.8|5|6|7|30:31:32 +%ENDBLOCK species_pot + +SYMMETRY_TOL : 0.001000 + +%BLOCK symmetry_ops +# Symm. op. 1 E + 1.000000000000000 0.000000000000000 0.000000000000000 + 0.000000000000000 1.000000000000000 0.000000000000000 + 0.000000000000000 0.000000000000000 1.000000000000000 + 0.000000000000000 0.000000000000000 0.000000000000000 +%ENDBLOCK symmetry_ops + +kpoint_mp_grid : 2 2 2 +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Si.cif Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,33 @@ +data_image0 +_chemical_formula_structural Si8 +_chemical_formula_sum "Si8" +_cell_length_a 5.47545 +_cell_length_b 5.47545 +_cell_length_c 5.47545 +_cell_angle_alpha 90 +_cell_angle_beta 90 +_cell_angle_gamma 90 + +_space_group_name_H-M_alt "P 1" +_space_group_IT_number 1 + +loop_ + _space_group_symop_operation_xyz + 'x, y, z' + +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + Si Si1 1.0 0.00000 0.00000 0.00000 1.0000 + Si Si2 1.0 0.75000 0.75000 0.25000 1.0000 + Si Si3 1.0 0.50000 0.00000 0.50000 1.0000 + Si Si4 1.0 0.75000 0.25000 0.75000 1.0000 + Si Si5 1.0 0.00000 0.50000 0.50000 1.0000 + Si Si6 1.0 0.25000 0.25000 0.25000 1.0000 + Si Si7 1.0 0.25000 0.75000 0.75000 1.0000 + Si Si8 1.0 0.50000 0.50000 0.00000 1.0000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Si.extxyz Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,10 @@ +8 +Lattice="5.47545112629462 4.96819156878786e-36 1.10608096941637e-36 4.96819156878786e-36 5.47545112629462 -3.12695835139248e-36 1.10608096941637e-36 -3.12695835139248e-36 5.47545112629462" Properties=species:S:1:pos:R:3:initial_magmoms:R:1:castep_labels:S:1 pbc="T T T" +Si 0.00000000 0.00000000 0.00000000 0.00000000 NULL +Si 4.10658834 4.10658834 1.36886278 0.00000000 NULL +Si 2.73772556 0.00000000 2.73772556 0.00000000 NULL +Si 4.10658834 1.36886278 4.10658834 0.00000000 NULL +Si 0.00000000 2.73772556 2.73772556 0.00000000 NULL +Si 1.36886278 1.36886278 1.36886278 0.00000000 NULL +Si 1.36886278 4.10658834 4.10658834 0.00000000 NULL +Si 2.73772556 2.73772556 -0.00000000 0.00000000 NULL
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/Si.xyz Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,10 @@ +8 +Generated by cif2cell 2.0.0. : Kitano, A. et al., Physical Review, Serie 3. B - Condensed Matter (18,1978-) 64, 0452061-0452069 (2001). +Si 0.000000000000000 0.000000000000000 0.000000000000000 +Si 4.035750000000000 4.035750000000000 1.345250000000000 +Si 2.690500000000000 0.000000000000000 2.690500000000000 +Si 4.035750000000000 1.345250000000000 4.035750000000000 +Si 0.000000000000000 2.690500000000000 2.690500000000000 +Si 1.345250000000000 1.345250000000000 1.345250000000000 +Si 1.345250000000000 4.035750000000000 4.035750000000000 +Si 2.690500000000000 2.690500000000000 0.000000000000000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/allpos.cell Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,38 @@ +####################################################### +#CASTEP cell file: allpos.cell +#Created using the Atomic Simulation Environment (ASE)# +####################################################### + +%BLOCK LATTICE_CART + 5.475382 0.000000 -0.000000 + 0.000000 5.475382 0.000000 +-0.000000 0.000000 5.475382 +%ENDBLOCK LATTICE_CART + +%BLOCK POSITIONS_ABS +Si 0.000000 0.000000 0.000000 +Si -0.000000 2.737691 2.737691 +Si 1.368845 1.368845 1.368845 +Si 2.737691 0.000000 2.737691 +Si 1.368845 4.106536 4.106536 +Si 4.106536 1.368845 4.106536 +Si 4.106536 4.106536 1.368845 +Si 2.737691 2.737691 -0.000000 +H:mu 3.125152 3.041799 2.994236 +H:mu 4.170048 2.685234 3.919204 +H:mu 2.896190 3.055878 1.069474 +H:mu 2.499357 2.738732 5.011782 +H:mu 1.856384 1.305645 0.684300 +H:mu 0.710100 1.663543 1.366143 +H:mu 2.926805 4.554958 3.173796 +H:mu 4.041556 2.285971 2.357787 +H:mu 2.153772 1.685845 2.712357 +H:mu 3.369247 0.881320 2.641127 +H:mu 4.631185 3.830276 4.640470 +H:mu 2.828731 1.963913 1.697286 +H:mu 2.176625 2.144297 3.912156 +H:mu 1.805850 2.882961 2.746759 +H:mu 1.403305 0.559980 1.522521 +H:mu 3.251047 3.565876 4.157223 +%ENDBLOCK POSITIONS_ABS +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/allpos.cif Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,49 @@ +data_image0 +_chemical_formula_structural Si8H16 +_chemical_formula_sum "Si8 H16" +_cell_length_a 5.47545 +_cell_length_b 5.47545 +_cell_length_c 5.47545 +_cell_angle_alpha 90 +_cell_angle_beta 90 +_cell_angle_gamma 90 + +_space_group_name_H-M_alt "P 1" +_space_group_IT_number 1 + +loop_ + _space_group_symop_operation_xyz + 'x, y, z' + +loop_ + _atom_site_type_symbol + _atom_site_label + _atom_site_symmetry_multiplicity + _atom_site_fract_x + _atom_site_fract_y + _atom_site_fract_z + _atom_site_occupancy + Si Si1 1.0 0.00000 0.00000 0.00000 1.0000 + Si Si2 1.0 0.75000 0.75000 0.25000 1.0000 + Si Si3 1.0 0.50000 0.00000 0.50000 1.0000 + Si Si4 1.0 0.75000 0.25000 0.75000 1.0000 + Si Si5 1.0 0.00000 0.50000 0.50000 1.0000 + Si Si6 1.0 0.25000 0.25000 0.25000 1.0000 + Si Si7 1.0 0.25000 0.75000 0.75000 1.0000 + Si Si8 1.0 0.50000 0.50000 0.00000 1.0000 + H H1 1.0 0.57076 0.55554 0.54685 1.0000 + H H2 1.0 0.76160 0.49042 0.71579 1.0000 + H H3 1.0 0.52895 0.55811 0.19532 1.0000 + H H4 1.0 0.45647 0.50019 0.91533 1.0000 + H H5 1.0 0.33904 0.23846 0.12498 1.0000 + H H6 1.0 0.12969 0.30382 0.24951 1.0000 + H H7 1.0 0.53454 0.83190 0.57965 1.0000 + H H8 1.0 0.73813 0.41750 0.43062 1.0000 + H H9 1.0 0.39336 0.30790 0.49537 1.0000 + H H10 1.0 0.61534 0.16096 0.48236 1.0000 + H H11 1.0 0.84582 0.69955 0.84752 1.0000 + H H12 1.0 0.51663 0.35868 0.30999 1.0000 + H H13 1.0 0.39753 0.39163 0.71450 1.0000 + H H14 1.0 0.32981 0.52653 0.50166 1.0000 + H H15 1.0 0.25629 0.10227 0.27807 1.0000 + H H16 1.0 0.59376 0.65126 0.75926 1.0000
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/allpos.xyz Tue Jul 18 13:27:15 2023 +0000 @@ -0,0 +1,26 @@ +24 +Lattice="5.47545112629462 4.96819156878786e-36 1.10608096941637e-36 4.96819156878786e-36 5.47545112629462 -3.12695835139248e-36 1.10608096941637e-36 -3.12695835139248e-36 5.47545112629462" Properties=species:S:1:pos:R:3:initial_magmoms:R:1:castep_labels:S:1:masses:R:1:castep_custom_species:S:1 pbc="T T T" +Si 0.00000000 0.00000000 0.00000000 0.00000000 NULL 28.08500000 Si +Si 4.10658834 4.10658834 1.36886278 0.00000000 NULL 28.08500000 Si +Si 2.73772556 0.00000000 2.73772556 0.00000000 NULL 28.08500000 Si +Si 4.10658834 1.36886278 4.10658834 0.00000000 NULL 28.08500000 Si +Si 0.00000000 2.73772556 2.73772556 0.00000000 NULL 28.08500000 Si +Si 1.36886278 1.36886278 1.36886278 0.00000000 NULL 28.08500000 Si +Si 1.36886278 4.10658834 4.10658834 0.00000000 NULL 28.08500000 Si +Si 2.73772556 2.73772556 -0.00000000 0.00000000 NULL 28.08500000 Si +H 3.12519205 3.04183727 2.99427396 0.00000000 0 0.11342893 H:mu +H 4.17010122 2.68526782 3.91925381 0.00000000 0 0.11342893 H:mu +H 2.89622675 3.05591660 1.06948758 0.00000000 0 0.11342893 H:mu +H 2.49938846 2.73876636 5.01184564 0.00000000 0 0.11342893 H:mu +H 1.85640768 1.30566198 0.68430879 0.00000000 0 0.11342893 H:mu +H 0.71010928 1.66356372 1.36616075 0.00000000 0 0.11342893 H:mu +H 2.92684216 4.55501571 3.17383586 0.00000000 0 0.11342893 H:mu +H 4.04160737 2.28599955 2.35781702 0.00000000 0 0.11342893 H:mu +H 2.15379948 1.68586666 2.71239184 0.00000000 0 0.11342893 H:mu +H 3.36928999 0.88133137 2.64116057 0.00000000 0 0.11342893 H:mu +H 4.63124403 3.83032454 4.64052920 0.00000000 0 0.11342893 H:mu +H 2.82876687 1.96393752 1.69730779 0.00000000 0 0.11342893 H:mu +H 2.17665215 2.14432399 3.91220567 0.00000000 0 0.11342893 H:mu +H 1.80587242 2.88299761 2.74679403 0.00000000 0 0.11342893 H:mu +H 1.40332274 0.55998727 1.52254060 0.00000000 0 0.11342893 H:mu +H 3.25108839 3.56592083 4.15727584 0.00000000 0 0.11342893 H:mu
--- a/test-data/tree.txt Fri Feb 03 15:40:08 2023 +0000 +++ b/test-data/tree.txt Tue Jul 18 13:27:15 2023 +0000 @@ -1,73 +1,83 @@ -Si-out -Si-out/uep -Si-out/uep/Si_1 -Si-out/uep/Si_1/Si_1.yaml -Si-out/uep/Si_1/Si_1.uep -Si-out/uep/Si_1/Si_1.uep.pkl -Si-out/uep/Si_1/Si_1.xyz -Si-out/uep/Si_2 -Si-out/uep/Si_2/Si_2.yaml -Si-out/uep/Si_2/Si_2.uep -Si-out/uep/Si_2/Si_2.uep.pkl -Si-out/uep/Si_2/Si_2.xyz -Si-out/uep/Si_3 -Si-out/uep/Si_3/Si_3.yaml -Si-out/uep/Si_3/Si_3.uep -Si-out/uep/Si_3/Si_3.uep.pkl -Si-out/uep/Si_3/Si_3.xyz -Si-out/uep/Si_4 -Si-out/uep/Si_4/Si_4.yaml -Si-out/uep/Si_4/Si_4.uep -Si-out/uep/Si_4/Si_4.uep.pkl -Si-out/uep/Si_4/Si_4.xyz -Si-out/uep/Si_5 -Si-out/uep/Si_5/Si_5.yaml -Si-out/uep/Si_5/Si_5.uep -Si-out/uep/Si_5/Si_5.uep.pkl -Si-out/uep/Si_5/Si_5.xyz -Si-out/uep/Si_6 -Si-out/uep/Si_6/Si_6.yaml -Si-out/uep/Si_6/Si_6.uep -Si-out/uep/Si_6/Si_6.uep.pkl -Si-out/uep/Si_6/Si_6.xyz -Si-out/uep/Si_7 -Si-out/uep/Si_7/Si_7.yaml -Si-out/uep/Si_7/Si_7.uep -Si-out/uep/Si_7/Si_7.uep.pkl -Si-out/uep/Si_7/Si_7.xyz -Si-out/uep/Si_8 -Si-out/uep/Si_8/Si_8.yaml -Si-out/uep/Si_8/Si_8.uep -Si-out/uep/Si_8/Si_8.uep.pkl -Si-out/uep/Si_8/Si_8.xyz -Si-out/uep/Si_9 -Si-out/uep/Si_9/Si_9.yaml -Si-out/uep/Si_9/Si_9.uep -Si-out/uep/Si_9/Si_9.uep.pkl -Si-out/uep/Si_9/Si_9.xyz -Si-out/uep/Si_10 -Si-out/uep/Si_10/Si_10.yaml -Si-out/uep/Si_10/Si_10.uep -Si-out/uep/Si_10/Si_10.uep.pkl -Si-out/uep/Si_10/Si_10.xyz -Si-out/uep/Si_11 -Si-out/uep/Si_11/Si_11.yaml -Si-out/uep/Si_11/Si_11.uep -Si-out/uep/Si_11/Si_11.uep.pkl -Si-out/uep/Si_11/Si_11.xyz -Si-out/uep/Si_12 -Si-out/uep/Si_12/Si_12.yaml -Si-out/uep/Si_12/Si_12.uep -Si-out/uep/Si_12/Si_12.uep.pkl -Si-out/uep/Si_12/Si_12.xyz -Si-out/uep/Si_13 -Si-out/uep/Si_13/Si_13.yaml -Si-out/uep/Si_13/Si_13.uep -Si-out/uep/Si_13/Si_13.uep.pkl -Si-out/uep/Si_13/Si_13.xyz -Si-out/uep/Si_14 -Si-out/uep/Si_14/Si_14.yaml -Si-out/uep/Si_14/Si_14.uep -Si-out/uep/Si_14/Si_14.uep.pkl -Si-out/uep/Si_14/Si_14.xyz -Si-out/uep/.collection +muon-airss-out +muon-airss-out/uep +muon-airss-out/uep/struct_1 +muon-airss-out/uep/struct_1/struct_1.yaml +muon-airss-out/uep/struct_1/struct_1.uep +muon-airss-out/uep/struct_1/struct_1.uep.pkl +muon-airss-out/uep/struct_1/struct_1.xyz +muon-airss-out/uep/struct_2 +muon-airss-out/uep/struct_2/struct_2.yaml +muon-airss-out/uep/struct_2/struct_2.uep +muon-airss-out/uep/struct_2/struct_2.uep.pkl +muon-airss-out/uep/struct_2/struct_2.xyz +muon-airss-out/uep/struct_3 +muon-airss-out/uep/struct_3/struct_3.yaml +muon-airss-out/uep/struct_3/struct_3.uep +muon-airss-out/uep/struct_3/struct_3.uep.pkl +muon-airss-out/uep/struct_3/struct_3.xyz +muon-airss-out/uep/struct_4 +muon-airss-out/uep/struct_4/struct_4.yaml +muon-airss-out/uep/struct_4/struct_4.uep +muon-airss-out/uep/struct_4/struct_4.uep.pkl +muon-airss-out/uep/struct_4/struct_4.xyz +muon-airss-out/uep/struct_5 +muon-airss-out/uep/struct_5/struct_5.yaml +muon-airss-out/uep/struct_5/struct_5.uep +muon-airss-out/uep/struct_5/struct_5.uep.pkl +muon-airss-out/uep/struct_5/struct_5.xyz +muon-airss-out/uep/struct_6 +muon-airss-out/uep/struct_6/struct_6.yaml +muon-airss-out/uep/struct_6/struct_6.uep +muon-airss-out/uep/struct_6/struct_6.uep.pkl +muon-airss-out/uep/struct_6/struct_6.xyz +muon-airss-out/uep/struct_7 +muon-airss-out/uep/struct_7/struct_7.yaml +muon-airss-out/uep/struct_7/struct_7.uep +muon-airss-out/uep/struct_7/struct_7.uep.pkl +muon-airss-out/uep/struct_7/struct_7.xyz +muon-airss-out/uep/struct_8 +muon-airss-out/uep/struct_8/struct_8.yaml +muon-airss-out/uep/struct_8/struct_8.uep +muon-airss-out/uep/struct_8/struct_8.uep.pkl +muon-airss-out/uep/struct_8/struct_8.xyz +muon-airss-out/uep/struct_9 +muon-airss-out/uep/struct_9/struct_9.yaml +muon-airss-out/uep/struct_9/struct_9.uep +muon-airss-out/uep/struct_9/struct_9.uep.pkl +muon-airss-out/uep/struct_9/struct_9.xyz +muon-airss-out/uep/struct_10 +muon-airss-out/uep/struct_10/struct_10.yaml +muon-airss-out/uep/struct_10/struct_10.uep +muon-airss-out/uep/struct_10/struct_10.uep.pkl +muon-airss-out/uep/struct_10/struct_10.xyz +muon-airss-out/uep/struct_11 +muon-airss-out/uep/struct_11/struct_11.yaml +muon-airss-out/uep/struct_11/struct_11.uep +muon-airss-out/uep/struct_11/struct_11.uep.pkl +muon-airss-out/uep/struct_11/struct_11.xyz +muon-airss-out/uep/struct_12 +muon-airss-out/uep/struct_12/struct_12.yaml +muon-airss-out/uep/struct_12/struct_12.uep +muon-airss-out/uep/struct_12/struct_12.uep.pkl +muon-airss-out/uep/struct_12/struct_12.xyz +muon-airss-out/uep/struct_13 +muon-airss-out/uep/struct_13/struct_13.yaml +muon-airss-out/uep/struct_13/struct_13.uep +muon-airss-out/uep/struct_13/struct_13.uep.pkl +muon-airss-out/uep/struct_13/struct_13.xyz +muon-airss-out/uep/struct_14 +muon-airss-out/uep/struct_14/struct_14.yaml +muon-airss-out/uep/struct_14/struct_14.uep +muon-airss-out/uep/struct_14/struct_14.uep.pkl +muon-airss-out/uep/struct_14/struct_14.xyz +muon-airss-out/uep/struct_15 +muon-airss-out/uep/struct_15/struct_15.yaml +muon-airss-out/uep/struct_15/struct_15.uep +muon-airss-out/uep/struct_15/struct_15.uep.pkl +muon-airss-out/uep/struct_15/struct_15.xyz +muon-airss-out/uep/struct_16 +muon-airss-out/uep/struct_16/struct_16.yaml +muon-airss-out/uep/struct_16/struct_16.uep +muon-airss-out/uep/struct_16/struct_16.uep.pkl +muon-airss-out/uep/struct_16/struct_16.xyz +muon-airss-out/uep/.collection