diff --git a/castep_outputs/parsers/castep_file_parser.py b/castep_outputs/parsers/castep_file_parser.py index 8b3507c..3e18aca 100644 --- a/castep_outputs/parsers/castep_file_parser.py +++ b/castep_outputs/parsers/castep_file_parser.py @@ -59,6 +59,7 @@ atreg_to_index, determine_type, fix_data_types, + get_only, log_factory, normalise_key, normalise_string, @@ -458,7 +459,7 @@ def parse_castep_file(castep_file_in: TextIO, block = Block.from_re(line, castep_file, "", "^-+ <-- SCF", n_end=ncut*3) - data = parse_castep_file(block, Filters.HIGH | Filters.SCF)[0] + data = get_only(parse_castep_file(block, Filters.HIGH | Filters.SCF)) scf = data.pop("scf") curr_run["bsc_energies"] = data.pop("energies") @@ -960,21 +961,29 @@ def parse_castep_file(castep_file_in: TextIO, curr_run["elf"] = _process_elf(block) # MD Block - elif block := Block.from_re(line, castep_file, + elif ((block := Block.from_re(line, castep_file, # Capture general MD step "Starting MD iteration", - "finished MD iteration"): + "finished MD iteration")) or + (block := Block.from_re(line, castep_file, # Capture 0th iteration + "Starting MD", + gen_table_re("", "=+")))): if Filters.MD not in to_parse: continue - logger("Found MD Block (step %d)", len(curr_run["md"])+1) + logger("Found MD Block (step %d)", len(curr_run["md"])) # Avoid infinite recursion next(block) - data = parse_castep_file(block)[0] + data = get_only(parse_castep_file(block)) add_aliases(data, {"initial_positions": "positions", "initial_cell": "cell"}, replace=True) + + # Put memory estimate to top level + if "memory_estimate" in data: + curr_run["memory_estimate"] = data.pop("memory_estimate") + curr_run["md"].append(data) elif block := Block.from_re(line, castep_file, @@ -1025,7 +1034,7 @@ def parse_castep_file(castep_file_in: TextIO, logger("Found geom block (iteration %d)", len(curr_run["geom_opt"]["iterations"])+1) # Avoid infinite recursion next(block) - data = parse_castep_file(block)[0] + data = get_only(parse_castep_file(block)) add_aliases(data, {"initial_positions": "positions", "initial_cell": "cell"}, diff --git a/castep_outputs/test/gen_data.py b/castep_outputs/test/gen_data.py index 79fc2fa..c3d0d3f 100644 --- a/castep_outputs/test/gen_data.py +++ b/castep_outputs/test/gen_data.py @@ -3,13 +3,20 @@ from castep_outputs.cli.castep_outputs_main import parse_all -for typ in ('castep', 'bands', 'cell', 'param', 'elastic', 'md', 'ts', 'efield', - 'den_fmt', 'chdiff_fmt', 'pot_fmt', 'elf_fmt', 'xrd_sf', 'phonon_dos', - 'magres', 'efield', 'tddft', 'err', 'phonon'): +for type_ in ('castep', 'bands', 'cell', 'param', 'elastic', 'md', 'ts', 'efield', + 'den_fmt', 'chdiff_fmt', 'pot_fmt', 'elf_fmt', 'xrd_sf', 'phonon_dos', + 'magres', 'efield', 'tddft', 'err', ('pp-md', 'castep')): for fmt in ('json', 'yaml'): - print(typ, fmt) + print(type_, fmt) + if isinstance(type_, tuple): + name, typ = type_ + in_name = name + else: + name = typ = type_ + in_name = "test" + # Delete existing - pth = pathlib.Path(f"{typ}.{fmt}") + pth = pathlib.Path(f"{name}.{fmt}") if pth.exists(): pth.unlink() - parse_all(output=str(pth), out_format=fmt, **{typ: [f"test.{typ}"]}) + parse_all(output=str(pth), out_format=fmt, **{typ: [f"{in_name}.{typ}"]}) diff --git a/castep_outputs/test/pp-md.castep b/castep_outputs/test/pp-md.castep new file mode 100644 index 0000000..884fa36 --- /dev/null +++ b/castep_outputs/test/pp-md.castep @@ -0,0 +1,654 @@ + +-------------------------------------------------+ + | | + | CCC AA SSS TTTTT EEEEE PPPP | + | C A A S T E P P | + | C AAAA SS T EEE PPPP | + | C A A S T E P | + | CCC A A SSS T EEEEE P | + | | + +-------------------------------------------------+ + | | + | Welcome to Academic Release CASTEP version 25.1 | + | Ab Initio Total Energy Program | + | | + | Authors: | + | M. Segall, M. Probert, C. Pickard, P. Hasnip, | + | S. Clark, K. Refson, J. R. Yates, | + | A. Bartok-Partay, M. Payne | + | | + | Contributors: | + | P. Lindan, P. Haynes, J. White, V. Milman, | + | N. Govind, M. Gibson, P. Tulip, V. Cocula, | + | B. Montanari, D. Quigley, M. Glover, | + | L. Bernasconi, A. Perlov, M. Plummer, | + | E. McNellis, J. Meyer, J. Gale, D. Jochym | + | J. Aarons, B. Walker, R. Gillen, D. Jones | + | T. Green, I. J. Bush, C. J. Armstrong, | + | E. J. Higgins, E. L. Brown, M. S. McFly, | + | J. Wilkins, B-C. Shih, P. J. P. Byrne, | + | R. J. Maurer, J. C. Womack, J. Dziedzic, | + | L. LeBlanc, T. K. Stenczel, J. Kermode, | + | S. Sturniolo, B. Shi, B. Durham, M. Evans, | + | M. J. Smith, A. Tamerus, Z. Hawkhead, | + | V. Ravindran, T. Hollins, S. A. Joyce, | + | R. T. Strong, A. M. Reilly | + | | + | Copyright (c) 2000 - 2024 | + | | + | Distributed under license from Cambridge | + | Enterprise for academic use only. | + | | + | Please cite | + | | + | "First principles methods using CASTEP" | + | | + | Zeitschrift fuer Kristallographie | + | 220(5-6) pp. 567-570 (2005) | + | | + | S. J. Clark, M. D. Segall, C. J. Pickard, | + | P. J. Hasnip, M. J. Probert, K. Refson, | + | M. C. Payne | + | | + | in all publications arising from | + | your use of CASTEP | + | | + +-------------------------------------------------+ + | | + | http://www.castep.org | + | | + +-------------------------------------------------+ + + + + Compiled for GNU 13.2.1 on 15-01-2024 15:40:33 + from code version c68e15f54 default Thu Jan 11 16:32:37 2024 +0000 + Compiler: GNU Fortran 13.2.1; Optimisation: FAST + Comms : Open MPI v4.1.5 + MATHLIBS: default (LAPACK version 3.11.0) + FFT Lib : fftw3 version fftw-3.3.10-sse2-avx + Fundamental constants values: CODATA 2018 + + Run started: Mon, 15 Jan 2024 16:32:12 +0000 + + Atomic calculation performed for Ar: 1s2 2s2 2p6 3s2 3p6 + + Converged in 59 iterations to an ae energy of -14362.357 eV + + ============================================================ + | Pseudopotential Report - Date of generation 15-01-2024 | + ------------------------------------------------------------ + | Element: Ar Ionic charge: 8.00 Level of theory: LDA | + | Atomic Solver: Koelling-Harmon | + | | + | Reference Electronic Structure | + | Orbital Occupation Energy | + | 3s 2.000 -0.892 | + | 3p 6.000 -0.382 | + | | + | Pseudopotential Definition | + | Beta l e Rc scheme norm | + | 1 0 -0.892 1.597 qc 0 | + | 2 0 0.250 1.597 qc 0 | + | 3 1 -0.382 1.597 qc 0 | + | 4 1 0.250 1.597 qc 0 | + | loc 2 0.000 1.597 pn 0 | + | | + | Augmentation charge Rinner = 1.116 | + | Partial core correction Rc = 1.116 | + ------------------------------------------------------------ + | "2|1.6|7|8|9|30:31" | + ------------------------------------------------------------ + | Author: Chris J. Pickard, Cambridge University | + ============================================================ + + Pseudo atomic calculation performed for Ar 3s2 3p6 + + Converged in 17 iterations to a total energy of -583.0922 eV + Calculation not parallelised. + + ************************************ Title ************************************ + + + ***************************** General Parameters ****************************** + + output verbosity : normal (1) + write checkpoint data to : pair-pot-lj.check + type of calculation : molecular dynamics + stress calculation : off + density difference calculation : off + electron localisation func (ELF) calculation : off + Hirshfeld analysis : off + polarisation (Berry phase) analysis : off + molecular orbital projected DOS : off + deltaSCF calculation : off + unlimited duration calculation + timing information : on + memory usage estimate : on + write extra output files : on + write final potential to formatted file : off + write final density to formatted file : off + write BibTeX reference list : off + write OTFG pseudopotential files : on + write electrostatic potential file : on + write bands file : on + checkpoint writing : off + + output length unit : A + output mass unit : amu + output time unit : ps + output charge unit : e + output spin unit : hbar/2 + output energy unit : eV + output force unit : eV/A + output velocity unit : A/ps + output pressure unit : GPa + output inv_length unit : 1/A + output frequency unit : cm-1 + output force constant unit : eV/A**2 + output volume unit : A**3 + output IR intensity unit : (D/A)**2/amu + output dipole unit : D + output efield unit : eV/A/e + output entropy unit : J/mol/K + output efield chi2 unit : pm/V + + wavefunctions paging : none + random number generator seed : 163212971 + data distribution : optimal for this architecture + optimization strategy : balance speed and memory + + *********************** Exchange-Correlation Parameters *********************** + + using functional : Local Density Approximation + relativistic treatment : Koelling-Harmon + DFT+D: Semi-empirical dispersion correction : off + + ************************* Pseudopotential Parameters ************************** + + pseudopotential representation : reciprocal space + representation : reciprocal space + spin-orbit coupling : off + + **************************** Basis Set Parameters ***************************** + + plane wave basis set cut-off : 100.0000 eV + size of standard grid : 1.7500 + size of fine gmax : 8.9655 1/A + largest prime factor in FFT : 5 + finite basis set correction : none + + **************************** Electronic Parameters **************************** + + number of electrons : 2.000 + net charge of system : 0.000 + treating system as non-spin-polarized + number of bands : 480 + + ********************* Electronic Minimization Parameters ********************** + + Method: Treating system as metallic with density mixing treatment of electrons, + and number of SD steps : 1 + and number of CG steps : 4 + + total energy / atom convergence tol. : 0.1000E-04 eV + eigen-energy convergence tolerance : 0.1000E-05 eV + max force / atom convergence tol. : ignored + convergence tolerance window : 3 cycles + max. number of SCF cycles : 30 + number of fixed-spin iterations : 10 + smearing scheme : Gaussian + smearing width : 0.2000 eV + Fermi energy convergence tolerance : 0.2721E-13 eV + periodic dipole correction : NONE + + ************************** Density Mixing Parameters ************************** + + density-mixing scheme : Broyden + max. length of mixing history : 20 + charge density mixing amplitude : 0.8000 + cut-off energy for mixing : 100.0 eV + charge density mixing g-vector : 1.500 1/A + + *********************** Population Analysis Parameters ************************ + + Population analysis with cutoff : 3.000 A + Population analysis output : summary only + + ************************ Molecular Dynamics Parameters ************************ + + ensemble : NVE + temperature : 80.00 K + path integral MD : OFF + time step : 0.5000E-02 ps + number of MD steps : 3 + ab initio properties sampled every : 0 MD steps + enhanced equilibration method : NONE + using best-fit first order extrapolation for wavefunctions and charge density + backup results every : 5 steps + + MD SCF energy / atom convergence tol. : 0.1000E-04 eV + MD SCF eigenenergies tolerance : 0.1000E-05 eV + MD SCF convergence tolerance window : 3 cycles + write MD trajectory file : on + + ******************************* Developer Code ******************************** + + PP=T + PP: + LJ=T + LJ_EPS_Ar=120. + LJ_SIG_Ar=0.3405 + :ENDPP + + ******************************************************************************* + + + ------------------------------- + Unit Cell + ------------------------------- + Real Lattice(A) Reciprocal Lattice(1/A) + 17.3952970 0.0000000 0.0000000 0.361200232 0.000000000 0.000000000 + 0.0000000 17.3952970 0.0000000 0.000000000 0.361200232 0.000000000 + 0.0000000 0.0000000 17.3952970 0.000000000 0.000000000 0.361200232 + + Lattice parameters(A) Cell Angles + a = 17.395297 alpha = 90.000000 + b = 17.395297 beta = 90.000000 + c = 17.395297 gamma = 90.000000 + + Current cell volume = 5263.753514 A**3 + density = 0.758926 AMU/A**3 + = 1.260226 g/cm^3 + + ------------------------------- + Cell Contents + ------------------------------- + Total number of ions in cell = 100 + Total number of species in cell = 1 + Max number of any one species = 100 + + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + x Element Atom Fractional coordinates of atoms x + x Number u v w x + x----------------------------------------------------------x + x Ar 1 0.231325 0.129759 0.142367 x + x Ar 2 0.246742 0.042652 -0.088655 x + x Ar 3 0.047965 0.281388 0.289269 x + x Ar 4 -0.453918 -0.052587 -0.010711 x + x Ar 5 -0.340386 -0.073584 0.340242 x + x Ar 6 0.338051 0.262686 -0.216013 x + x Ar 7 -0.108234 0.184432 -0.015610 x + x Ar 8 -0.160787 -0.087310 -0.155673 x + x Ar 9 -0.224863 -0.335053 -0.209785 x + x Ar 10 -0.217710 0.453389 -0.107478 x + x Ar 11 -0.422321 -0.326807 -0.344697 x + x Ar 12 0.333571 -0.086611 0.178388 x + x Ar 13 0.185987 -0.354726 0.410968 x + x Ar 14 -0.303455 -0.288594 0.192130 x + x Ar 15 0.204526 0.196056 0.416707 x + x Ar 16 -0.275154 0.045704 -0.483329 x + x Ar 17 -0.046037 -0.100459 0.124164 x + x Ar 18 -0.303247 0.388146 0.261178 x + x Ar 19 0.046310 0.333812 -0.149268 x + x Ar 20 -0.255630 0.303632 0.013120 x + x Ar 21 -0.242283 0.238138 -0.191916 x + x Ar 22 0.113195 0.139226 -0.242767 x + x Ar 23 -0.436335 -0.293372 0.007290 x + x Ar 24 0.200195 0.417578 0.405337 x + x Ar 25 0.138405 -0.478098 0.036313 x + x Ar 26 0.056222 -0.434070 0.236476 x + x Ar 27 -0.221436 0.305384 0.429029 x + x Ar 28 0.353985 0.078899 0.295307 x + x Ar 29 -0.159492 0.259684 0.216229 x + x Ar 30 0.348758 0.453476 -0.213795 x + x Ar 31 0.499131 -0.444749 0.184094 x + x Ar 32 -0.442688 0.019936 0.190721 x + x Ar 33 -0.477146 0.030176 -0.182729 x + x Ar 34 0.091881 0.278091 0.090466 x + x Ar 35 0.355472 -0.492582 -0.003379 x + x Ar 36 -0.180104 -0.290623 -0.014795 x + x Ar 37 -0.005467 -0.271801 -0.165935 x + x Ar 38 -0.016810 0.010157 0.494420 x + x Ar 39 0.418839 0.082813 -0.454905 x + x Ar 40 0.243452 -0.224081 -0.258575 x + x Ar 41 0.448285 0.334541 0.160580 x + x Ar 42 -0.139840 -0.413736 0.181316 x + x Ar 43 -0.408042 -0.461124 -0.146762 x + x Ar 44 -0.061094 0.430431 -0.308376 x + x Ar 45 0.237836 0.357668 0.185156 x + x Ar 46 -0.042250 -0.450845 -0.065659 x + x Ar 47 -0.272246 -0.264974 0.439613 x + x Ar 48 0.309741 -0.120750 -0.432583 x + x Ar 49 -0.396318 -0.160593 -0.196685 x + x Ar 50 -0.030873 -0.238387 0.280014 x + x Ar 51 0.188974 0.293923 -0.383184 x + x Ar 52 -0.465438 -0.182105 0.223731 x + x Ar 53 0.384086 -0.428444 0.406001 x + x Ar 54 0.116759 -0.044760 -0.245919 x + x Ar 55 -0.468948 -0.064117 -0.385583 x + x Ar 56 0.381701 -0.142270 -0.125970 x + x Ar 57 -0.034729 -0.137673 -0.318775 x + x Ar 58 -0.133048 -0.076055 0.333920 x + x Ar 59 0.061936 -0.175672 0.480945 x + x Ar 60 0.264378 -0.451860 -0.387126 x + x Ar 61 0.314909 -0.005540 -0.276643 x + x Ar 62 0.259457 -0.409436 0.208225 x + x Ar 63 -0.303981 0.486464 -0.310431 x + x Ar 64 -0.466464 0.298261 -0.076658 x + x Ar 65 0.244834 0.338010 -0.039532 x + x Ar 66 0.198873 0.054637 -0.417761 x + x Ar 67 -0.090664 0.444934 0.333959 x + x Ar 68 -0.001531 0.261865 -0.423017 x + x Ar 69 -0.075992 0.111847 -0.286540 x + x Ar 70 0.183878 -0.440085 -0.155076 x + x Ar 71 0.015625 -0.287946 0.051884 x + x Ar 72 -0.096937 -0.297263 -0.441243 x + x Ar 73 -0.275047 -0.128474 -0.358521 x + x Ar 74 -0.426390 0.429320 -0.459709 x + x Ar 75 -0.187925 -0.482786 -0.472378 x + x Ar 76 -0.125109 0.136396 0.387943 x + x Ar 77 0.162758 -0.200300 0.194921 x + x Ar 78 -0.389355 0.221837 -0.442596 x + x Ar 79 -0.449259 0.133782 0.379992 x + x Ar 80 0.439313 -0.063945 0.395557 x + x Ar 81 0.023379 0.009110 -0.024279 x + x Ar 82 0.183479 -0.045046 0.353847 x + x Ar 83 0.034497 0.057645 0.228096 x + x Ar 84 0.407804 -0.348418 -0.172733 x + x Ar 85 0.243935 -0.253555 -0.038890 x + x Ar 86 -0.379826 0.153617 0.074464 x + x Ar 87 -0.197409 0.270738 -0.383890 x + x Ar 88 -0.274139 0.045492 -0.263568 x + x Ar 89 -0.451133 -0.208955 0.455198 x + x Ar 90 0.334701 -0.222340 0.353778 x + x Ar 91 -0.059124 0.425157 0.087941 x + x Ar 92 -0.384974 0.461596 0.061543 x + x Ar 93 -0.204466 0.071173 0.173435 x + x Ar 94 0.027647 -0.492438 -0.478448 x + x Ar 95 0.401749 0.135902 0.048149 x + x Ar 96 -0.234288 -0.102570 0.068427 x + x Ar 97 0.076109 -0.365642 -0.344708 x + x Ar 98 -0.345897 -0.452247 0.379562 x + x Ar 99 -0.269691 0.053697 -0.068055 x + x Ar 100 0.382159 -0.269950 0.090624 x + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + + + No user defined ionic velocities + + ------------------------------- + Details of Species + ------------------------------- + + Mass of species in AMU + Ar 39.9480000 + + Electric Quadrupole Moment (Barn) + Ar 1.0000000 No Isotope Defined + + Files used for pseudopotentials: + Ar 2|1.6|7|8|9|30:31 + + ------------------------------- + k-Points For BZ Sampling + ------------------------------- + MP grid size for SCF calculation is 1 1 1 + with an offset of 0.000 0.000 0.000 + Number of kpoints used = 1 + + ------------------------------- + Symmetry and Constraints + ------------------------------- + + Maximum deviation from symmetry = 0.00000 ANG + + Number of symmetry operations = 1 + Number of ionic constraints = 3 + Point group of crystal = 1: C1, 1, 1 + Space group of crystal = 1: P1, P 1 + + Set iprint > 1 for details on symmetry rotations/translations + + Centre of mass is constrained + Set iprint > 1 for details of linear ionic constraints + + Number of cell constraints= 6 + Cell constraints are: 0 0 0 0 0 0 + + External pressure/stress (GPa) + 0.00000 0.00000 0.00000 + 0.00000 0.00000 + 0.00000 + + ************************ PairParams ************************ + * * + * Two Body * + * Ar * + * r 8.5125000000 A * <-- LJ + * e 0.0103407999 eV * <-- LJ + * s 0.3405000000 A * <-- LJ + ******************************************************************** + +Final energy = -0.9151337939619E-005eV + Starting MD + + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + x MD Data: x + x x + x time : 0.000000 ps x + x x + x Potential Energy: -0.000009 eV x + x Kinetic Energy: 1.023739 eV x + x Total Energy: 1.023730 eV x + x Hamilt Energy: 1.023730 eV x + x x + x Temperature: 80.000000 K x + x T/=0 Pressure: 0.000000 GPa x + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + + +================================================================================ + Starting MD iteration 1 ... +================================================================================ + ++---------------- MEMORY AND SCRATCH DISK ESTIMATES PER PROCESS --------------+ +| Memory Disk | +| Model and support data 282.8 MB 0.0 MB | +| Molecular Dynamics requirements 346.2 MB 0.0 MB | +| ----------------------------- | +| Approx. total storage required per process 629.1 MB 0.0 MB | +| | +| Requirements will fluctuate during execution and may exceed these estimates | ++-----------------------------------------------------------------------------+ + + + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + x MD Data: x + x x + x time : 0.005000 ps x + x x + x Potential Energy: -0.000009 eV x + x Kinetic Energy: 1.023739 eV x + x Total Energy: 1.023730 eV x + x Hamilt Energy: 1.023730 eV x + x x + x Temperature: 80.000000 K x + x T/=0 Pressure: 0.000000 GPa x + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + + +-------------------------------------------------------------------------------- + ... finished MD iteration 1 + +================================================================================ + Starting MD iteration 2 ... +================================================================================ + + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + x MD Data: x + x x + x time : 0.010000 ps x + x x + x Potential Energy: -0.000009 eV x + x Kinetic Energy: 1.023739 eV x + x Total Energy: 1.023730 eV x + x Hamilt Energy: 1.023730 eV x + x x + x Temperature: 80.000000 K x + x T/=0 Pressure: 0.000000 GPa x + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + + +-------------------------------------------------------------------------------- + ... finished MD iteration 2 + +================================================================================ + Starting MD iteration 3 ... +================================================================================ + + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + x MD Data: x + x x + x time : 0.015000 ps x + x x + x Potential Energy: -0.000009 eV x + x Kinetic Energy: 1.023739 eV x + x Total Energy: 1.023730 eV x + x Hamilt Energy: 1.023730 eV x + x x + x Temperature: 80.000001 K x + x T/=0 Pressure: 0.000000 GPa x + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + + +-------------------------------------------------------------------------------- + ... finished MD iteration 3 + Finished MD + + ************************************** Forces ************************************** + * * + * Cartesian components (eV/A) * + * -------------------------------------------------------------------------------- * + * x y z * + * * + * Ar 1 -0.00000 0.00001 -0.00000 * + * Ar 2 0.00000 0.00000 0.00000 * + * Ar 3 -0.00000 -0.00000 -0.00000 * + * Ar 4 0.00000 -0.00000 0.00000 * + * Ar 5 0.00000 -0.00000 -0.00000 * + * Ar 6 -0.00000 0.00000 -0.00000 * + * Ar 7 0.00001 -0.00001 0.00001 * + * Ar 8 -0.00000 0.00000 0.00000 * + * Ar 9 -0.00000 -0.00000 0.00000 * + * Ar 10 -0.00000 -0.00000 -0.00001 * + * Ar 11 -0.00000 0.00000 -0.00000 * + * Ar 12 0.00040 -0.00278 -0.00094 * + * Ar 13 0.00006 0.00019 -0.00012 * + * Ar 14 0.00000 0.00000 0.00000 * + * Ar 15 0.00000 -0.00000 -0.00000 * + * Ar 16 -0.00001 -0.00000 0.00000 * + * Ar 17 0.00000 -0.00001 0.00001 * + * Ar 18 0.00000 -0.00000 0.00000 * + * Ar 19 -0.00001 0.00001 -0.00001 * + * Ar 20 0.00000 -0.00000 -0.00000 * + * Ar 21 -0.00000 0.00000 0.00000 * + * Ar 22 -0.00000 -0.00000 -0.00000 * + * Ar 23 -0.00000 0.00000 -0.00000 * + * Ar 24 0.00000 0.00000 -0.00000 * + * Ar 25 -0.00000 0.00000 -0.00000 * + * Ar 26 0.00000 0.00000 -0.00000 * + * Ar 27 0.00000 -0.00000 -0.00000 * + * Ar 28 -0.00000 -0.00000 -0.00000 * + * Ar 29 0.00004 -0.00000 0.00000 * + * Ar 30 0.00000 -0.00000 0.00000 * + * Ar 31 0.00000 -0.00000 -0.00000 * + * Ar 32 0.00001 0.00000 -0.00000 * + * Ar 33 -0.00040 0.00277 0.00097 * + * Ar 34 -0.00000 -0.00000 0.00000 * + * Ar 35 0.00000 0.00000 0.00000 * + * Ar 36 0.00000 0.00000 -0.00000 * + * Ar 37 0.00000 0.00000 0.00000 * + * Ar 38 0.00000 0.00000 0.00000 * + * Ar 39 -0.00000 -0.00000 0.00001 * + * Ar 40 0.00000 0.00000 0.00000 * + * Ar 41 0.00000 -0.00001 0.00000 * + * Ar 42 -0.00000 0.00000 0.00000 * + * Ar 43 0.00000 -0.00000 0.00000 * + * Ar 44 0.00000 0.00000 0.00000 * + * Ar 45 0.00130 0.00665 -0.00156 * + * Ar 46 0.00003 -0.00002 0.00003 * + * Ar 47 -0.00000 -0.00000 -0.00000 * + * Ar 48 -0.00004 0.00000 -0.00000 * + * Ar 49 -0.00000 0.00000 0.00000 * + * Ar 50 0.00001 -0.00000 -0.00000 * + * Ar 51 -0.00000 0.00001 0.00001 * + * Ar 52 -0.00004 -0.00001 0.00003 * + * Ar 53 -0.00000 0.00001 -0.00003 * + * Ar 54 -0.00000 0.00000 -0.00000 * + * Ar 55 -0.00000 -0.00000 0.00000 * + * Ar 56 -0.00000 -0.00000 -0.00001 * + * Ar 57 0.00000 -0.00000 -0.00000 * + * Ar 58 0.00001 0.00001 -0.00000 * + * Ar 59 0.00000 -0.00000 -0.00001 * + * Ar 60 -0.00000 0.00000 0.00000 * + * Ar 61 -0.00000 -0.00000 -0.00000 * + * Ar 62 -0.00006 -0.00020 0.00011 * + * Ar 63 -0.00000 0.00000 -0.00000 * + * Ar 64 -0.00000 0.00000 -0.00000 * + * Ar 65 0.00000 -0.00000 0.00000 * + * Ar 66 -0.00000 0.00000 -0.00000 * + * Ar 67 -0.00002 0.00002 -0.00004 * + * Ar 68 0.00000 0.00000 -0.00000 * + * Ar 69 0.00000 0.00000 0.00000 * + * Ar 70 0.00000 -0.00000 0.00001 * + * Ar 71 -0.00000 0.00001 -0.00001 * + * Ar 72 0.00000 -0.00000 0.00000 * + * Ar 73 -0.00000 -0.00000 -0.00000 * + * Ar 74 0.00000 -0.00000 -0.00001 * + * Ar 75 0.00000 -0.00000 -0.00000 * + * Ar 76 -0.00000 0.00000 0.00000 * + * Ar 77 -0.00000 -0.00000 -0.00000 * + * Ar 78 -0.00001 0.00001 -0.00002 * + * Ar 79 -0.00000 0.00000 -0.00000 * + * Ar 80 -0.00000 -0.00000 0.00000 * + * Ar 81 -0.00000 -0.00000 0.00000 * + * Ar 82 -0.00000 0.00000 0.00000 * + * Ar 83 -0.00001 0.00000 0.00000 * + * Ar 84 -0.00000 0.00000 0.00000 * + * Ar 85 -0.00128 -0.00667 0.00155 * + * Ar 86 -0.00000 -0.00000 -0.00000 * + * Ar 87 -0.00000 0.00000 -0.00000 * + * Ar 88 0.00000 0.00000 -0.00000 * + * Ar 89 0.00000 -0.00000 -0.00000 * + * Ar 90 0.00000 0.00000 -0.00000 * + * Ar 91 0.00000 0.00000 0.00001 * + * Ar 92 -0.00000 -0.00000 -0.00000 * + * Ar 93 0.00000 0.00000 -0.00000 * + * Ar 94 0.00000 -0.00000 0.00000 * + * Ar 95 0.00002 0.00001 0.00000 * + * Ar 96 -0.00000 -0.00000 -0.00000 * + * Ar 97 -0.00000 0.00000 0.00000 * + * Ar 98 0.00000 -0.00000 -0.00000 * + * Ar 99 0.00000 0.00000 0.00000 * + * Ar 100 0.00001 -0.00000 0.00000 * + * * + ************************************************************************************ + + ***************** Stress Tensor ***************** + * * + * Cartesian components (GPa) * + * --------------------------------------------- * + * x y z * + * * + * x -0.000017 -0.000017 0.000008 * + * y -0.000017 -0.000197 0.000014 * + * z 0.000008 0.000014 -0.000024 * + * * + * Pressure: 0.0001 * + * * + ************************************************* +Initialisation time = 17.10 s +Calculation time = 4.08 s +Finalisation time = 0.00 s +Total time = 21.18 s +Peak Memory Use = 479316 kB diff --git a/castep_outputs/test/pp-md.json b/castep_outputs/test/pp-md.json new file mode 100644 index 0000000..f3b649b --- /dev/null +++ b/castep_outputs/test/pp-md.json @@ -0,0 +1,1466 @@ +[ + { + "build_info": { + "summary": "Compiled for GNU 13.2.1 on 15-01-2024 15:40:33 from code version c68e15f54 default Thu Jan 11 16:32:37 2024 +0000", + "compiler": "GNU Fortran 13.2.1; Optimisation: FAST", + "comms": "Open MPI v4.1.5", + "mathlibs": "default (LAPACK version 3.11.0)", + "fft_lib": "fftw3 version fftw-3.3.10-sse2-avx", + "fundamental_constants_values": "CODATA 2018" + }, + "time_started": "Mon, 15 Jan 2024 16:32:12 +0000", + "pspot_detail": [ + { + "reference_electronic_structure": [ + { + "orb": "3s", + "occupation": 2.0, + "energy": -0.892 + }, + { + "orb": "3p", + "occupation": 6.0, + "energy": -0.382 + } + ], + "pseudopotential_definition": [ + { + "beta": 1, + "l": 0, + "j": null, + "e": -0.892, + "Rc": 1.597, + "scheme": "qc", + "norm": 0 + }, + { + "beta": 2, + "l": 0, + "j": null, + "e": 0.25, + "Rc": 1.597, + "scheme": "qc", + "norm": 0 + }, + { + "beta": 3, + "l": 1, + "j": null, + "e": -0.382, + "Rc": 1.597, + "scheme": "qc", + "norm": 0 + }, + { + "beta": 4, + "l": 1, + "j": null, + "e": 0.25, + "Rc": 1.597, + "scheme": "qc", + "norm": 0 + }, + { + "beta": "loc", + "l": 2, + "j": null, + "e": 0.0, + "Rc": 1.597, + "scheme": "pn", + "norm": 0 + } + ], + "solver": "Koelling-Harmon", + "augmentation_charge_rinner": [ + 1.116 + ], + "partial_core_correction": [ + 1.116 + ] + } + ], + "species_properties": { + "Ar": { + "pseudo_atomic_energy": -583.0922, + "mass": 39.948, + "electric_quadrupole_moment": 1.0, + "pseudopot": { + "local_channel": 2, + "core_radius": 1.6, + "coarse": 7.0, + "medium": 8.0, + "fine": 9.0, + "proj": "30:31", + "opt": null, + "print": false, + "projectors": [ + { + "orbital": 3, + "shell": "s", + "type": null + }, + { + "orbital": 3, + "shell": "p", + "type": null + } + ], + "string": "2|1.6|7|8|9|30:31" + } + } + }, + "title": "", + "options": { + "output_units": { + "length": "A", + "mass": "amu", + "time": "ps", + "charge": "e", + "spin": "hbar/2", + "energy": "eV", + "force": "eV/A", + "velocity": "A/ps", + "pressure": "GPa", + "inv_length": "1/A", + "frequency": "cm-1", + "force constant": "eV/A**2", + "volume": "A**3", + "IR intensity": "(D/A)**2/amu", + "dipole": "D", + "efield": "eV/A/e", + "entropy": "J/mol/K", + "efield chi2": "pm/V" + }, + "general": { + "output verbosity": "normal (1)", + "write checkpoint data to": "pair-pot-lj.check", + "type of calculation": "molecular dynamics", + "stress calculation": "off", + "density difference calculation": "off", + "electron localisation func (ELF) calculation": "off", + "Hirshfeld analysis": "off", + "polarisation (Berry phase) analysis": "off", + "molecular orbital projected DOS": "off", + "deltaSCF calculation": "off", + "timing information": "on", + "memory usage estimate": "on", + "write extra output files": "on", + "write final potential to formatted file": "off", + "write final density to formatted file": "off", + "write BibTeX reference list": "off", + "write OTFG pseudopotential files": "on", + "write electrostatic potential file": "on", + "write bands file": "on", + "checkpoint writing": "off", + "wavefunctions paging": "none", + "random number generator seed": 163212971, + "data distribution": "optimal for this architecture", + "optimization strategy": "balance speed and memory" + }, + "exchange-correlation": { + "using functional": "Local Density Approximation", + "relativistic treatment": "Koelling-Harmon", + "DFT+D Semi-empirical dispersion correction": "off" + }, + "pseudopotential": { + "pseudopotential representation": "reciprocal space", + " representation": "reciprocal space", + "spin-orbit coupling": "off" + }, + "basis set": { + "plane wave basis set cut-off": [ + 100.0, + "eV" + ], + "size of standard grid": 1.75, + "size of fine gmax": [ + 8.9655, + "1/A" + ], + "largest prime factor in FFT": 5, + "finite basis set correction": "none" + }, + "electronic": { + "number of electrons": 2.0, + "net charge of system": 0.0, + "number of bands": 480 + }, + "electronic minimization": { + "Method": "Treating system as metallic with density mixing treatment of electrons,", + "and number of SD steps": 1, + "and number of CG steps": 4, + "total energy / atom convergence tol.": [ + 1e-05, + "eV" + ], + "eigen-energy convergence tolerance": [ + 1e-06, + "eV" + ], + "max force / atom convergence tol.": "ignored", + "convergence tolerance window": [ + 3, + "cycles" + ], + "max. number of SCF cycles": 30, + "number of fixed-spin iterations": 10, + "smearing scheme": "Gaussian", + "smearing width": [ + 0.2, + "eV" + ], + "Fermi energy convergence tolerance": [ + 2.721e-14, + "eV" + ], + "periodic dipole correction": "NONE" + }, + "density mixing": { + "density-mixing scheme": "Broyden", + "max. length of mixing history": 20, + "charge density mixing amplitude": 0.8, + "cut-off energy for mixing": [ + 100.0, + "eV" + ], + "charge density mixing g-vector": [ + 1.5, + "1/A" + ] + }, + "population analysis": { + "Population analysis with cutoff": [ + 3.0, + "A" + ], + "Population analysis output": "summary only" + }, + "devel_code": { + "pp": { + "LJ": true, + "LJ_EPS_Ar": 120.0, + "LJ_SIG_Ar": 0.3405 + }, + "PP": true + }, + "molecular dynamics": { + "ensemble": "NVE", + "temperature": [ + 80.0, + "K" + ], + "path integral MD": "OFF", + "time step": [ + 0.005, + "ps" + ], + "number of MD steps": 3, + "ab initio properties sampled every": [ + 0, + "MD", + "steps" + ], + "enhanced equilibration method": "NONE", + "backup results every": [ + 5, + "steps" + ], + "MD SCF energy / atom convergence tol.": [ + 1e-05, + "eV" + ], + "MD SCF eigenenergies tolerance": [ + 1e-06, + "eV" + ], + "MD SCF convergence tolerance window": [ + 3, + "cycles" + ], + "write MD trajectory file": "on" + } + }, + "initial_cell": { + "real_lattice": [ + [ + 17.395297, + 0.0, + 0.0 + ], + [ + 0.0, + 17.395297, + 0.0 + ], + [ + 0.0, + 0.0, + 17.395297 + ] + ], + "recip_lattice": [ + [ + 0.361200232, + 0.0, + 0.0 + ], + [ + 0.0, + 0.361200232, + 0.0 + ], + [ + 0.0, + 0.0, + 0.361200232 + ] + ], + "lattice_parameters": [ + 17.395297, + 17.395297, + 17.395297 + ], + "cell_angles": [ + 90.0, + 90.0, + 90.0 + ], + "volume": 5263.753514, + "density_amu": 0.758926, + "density_g": 1.260226 + }, + "initial_positions": { + "Ar_1": [ + 0.231325, + 0.129759, + 0.142367 + ], + "Ar_2": [ + 0.246742, + 0.042652, + -0.088655 + ], + "Ar_3": [ + 0.047965, + 0.281388, + 0.289269 + ], + "Ar_4": [ + -0.453918, + -0.052587, + -0.010711 + ], + "Ar_5": [ + -0.340386, + -0.073584, + 0.340242 + ], + "Ar_6": [ + 0.338051, + 0.262686, + -0.216013 + ], + "Ar_7": [ + -0.108234, + 0.184432, + -0.01561 + ], + "Ar_8": [ + -0.160787, + -0.08731, + -0.155673 + ], + "Ar_9": [ + -0.224863, + -0.335053, + -0.209785 + ], + "Ar_10": [ + -0.21771, + 0.453389, + -0.107478 + ], + "Ar_11": [ + -0.422321, + -0.326807, + -0.344697 + ], + "Ar_12": [ + 0.333571, + -0.086611, + 0.178388 + ], + "Ar_13": [ + 0.185987, + -0.354726, + 0.410968 + ], + "Ar_14": [ + -0.303455, + -0.288594, + 0.19213 + ], + "Ar_15": [ + 0.204526, + 0.196056, + 0.416707 + ], + "Ar_16": [ + -0.275154, + 0.045704, + -0.483329 + ], + "Ar_17": [ + -0.046037, + -0.100459, + 0.124164 + ], + "Ar_18": [ + -0.303247, + 0.388146, + 0.261178 + ], + "Ar_19": [ + 0.04631, + 0.333812, + -0.149268 + ], + "Ar_20": [ + -0.25563, + 0.303632, + 0.01312 + ], + "Ar_21": [ + -0.242283, + 0.238138, + -0.191916 + ], + "Ar_22": [ + 0.113195, + 0.139226, + -0.242767 + ], + "Ar_23": [ + -0.436335, + -0.293372, + 0.00729 + ], + "Ar_24": [ + 0.200195, + 0.417578, + 0.405337 + ], + "Ar_25": [ + 0.138405, + -0.478098, + 0.036313 + ], + "Ar_26": [ + 0.056222, + -0.43407, + 0.236476 + ], + "Ar_27": [ + -0.221436, + 0.305384, + 0.429029 + ], + "Ar_28": [ + 0.353985, + 0.078899, + 0.295307 + ], + "Ar_29": [ + -0.159492, + 0.259684, + 0.216229 + ], + "Ar_30": [ + 0.348758, + 0.453476, + -0.213795 + ], + "Ar_31": [ + 0.499131, + -0.444749, + 0.184094 + ], + "Ar_32": [ + -0.442688, + 0.019936, + 0.190721 + ], + "Ar_33": [ + -0.477146, + 0.030176, + -0.182729 + ], + "Ar_34": [ + 0.091881, + 0.278091, + 0.090466 + ], + "Ar_35": [ + 0.355472, + -0.492582, + -0.003379 + ], + "Ar_36": [ + -0.180104, + -0.290623, + -0.014795 + ], + "Ar_37": [ + -0.005467, + -0.271801, + -0.165935 + ], + "Ar_38": [ + -0.01681, + 0.010157, + 0.49442 + ], + "Ar_39": [ + 0.418839, + 0.082813, + -0.454905 + ], + "Ar_40": [ + 0.243452, + -0.224081, + -0.258575 + ], + "Ar_41": [ + 0.448285, + 0.334541, + 0.16058 + ], + "Ar_42": [ + -0.13984, + -0.413736, + 0.181316 + ], + "Ar_43": [ + -0.408042, + -0.461124, + -0.146762 + ], + "Ar_44": [ + -0.061094, + 0.430431, + -0.308376 + ], + "Ar_45": [ + 0.237836, + 0.357668, + 0.185156 + ], + "Ar_46": [ + -0.04225, + -0.450845, + -0.065659 + ], + "Ar_47": [ + -0.272246, + -0.264974, + 0.439613 + ], + "Ar_48": [ + 0.309741, + -0.12075, + -0.432583 + ], + "Ar_49": [ + -0.396318, + -0.160593, + -0.196685 + ], + "Ar_50": [ + -0.030873, + -0.238387, + 0.280014 + ], + "Ar_51": [ + 0.188974, + 0.293923, + -0.383184 + ], + "Ar_52": [ + -0.465438, + -0.182105, + 0.223731 + ], + "Ar_53": [ + 0.384086, + -0.428444, + 0.406001 + ], + "Ar_54": [ + 0.116759, + -0.04476, + -0.245919 + ], + "Ar_55": [ + -0.468948, + -0.064117, + -0.385583 + ], + "Ar_56": [ + 0.381701, + -0.14227, + -0.12597 + ], + "Ar_57": [ + -0.034729, + -0.137673, + -0.318775 + ], + "Ar_58": [ + -0.133048, + -0.076055, + 0.33392 + ], + "Ar_59": [ + 0.061936, + -0.175672, + 0.480945 + ], + "Ar_60": [ + 0.264378, + -0.45186, + -0.387126 + ], + "Ar_61": [ + 0.314909, + -0.00554, + -0.276643 + ], + "Ar_62": [ + 0.259457, + -0.409436, + 0.208225 + ], + "Ar_63": [ + -0.303981, + 0.486464, + -0.310431 + ], + "Ar_64": [ + -0.466464, + 0.298261, + -0.076658 + ], + "Ar_65": [ + 0.244834, + 0.33801, + -0.039532 + ], + "Ar_66": [ + 0.198873, + 0.054637, + -0.417761 + ], + "Ar_67": [ + -0.090664, + 0.444934, + 0.333959 + ], + "Ar_68": [ + -0.001531, + 0.261865, + -0.423017 + ], + "Ar_69": [ + -0.075992, + 0.111847, + -0.28654 + ], + "Ar_70": [ + 0.183878, + -0.440085, + -0.155076 + ], + "Ar_71": [ + 0.015625, + -0.287946, + 0.051884 + ], + "Ar_72": [ + -0.096937, + -0.297263, + -0.441243 + ], + "Ar_73": [ + -0.275047, + -0.128474, + -0.358521 + ], + "Ar_74": [ + -0.42639, + 0.42932, + -0.459709 + ], + "Ar_75": [ + -0.187925, + -0.482786, + -0.472378 + ], + "Ar_76": [ + -0.125109, + 0.136396, + 0.387943 + ], + "Ar_77": [ + 0.162758, + -0.2003, + 0.194921 + ], + "Ar_78": [ + -0.389355, + 0.221837, + -0.442596 + ], + "Ar_79": [ + -0.449259, + 0.133782, + 0.379992 + ], + "Ar_80": [ + 0.439313, + -0.063945, + 0.395557 + ], + "Ar_81": [ + 0.023379, + 0.00911, + -0.024279 + ], + "Ar_82": [ + 0.183479, + -0.045046, + 0.353847 + ], + "Ar_83": [ + 0.034497, + 0.057645, + 0.228096 + ], + "Ar_84": [ + 0.407804, + -0.348418, + -0.172733 + ], + "Ar_85": [ + 0.243935, + -0.253555, + -0.03889 + ], + "Ar_86": [ + -0.379826, + 0.153617, + 0.074464 + ], + "Ar_87": [ + -0.197409, + 0.270738, + -0.38389 + ], + "Ar_88": [ + -0.274139, + 0.045492, + -0.263568 + ], + "Ar_89": [ + -0.451133, + -0.208955, + 0.455198 + ], + "Ar_90": [ + 0.334701, + -0.22234, + 0.353778 + ], + "Ar_91": [ + -0.059124, + 0.425157, + 0.087941 + ], + "Ar_92": [ + -0.384974, + 0.461596, + 0.061543 + ], + "Ar_93": [ + -0.204466, + 0.071173, + 0.173435 + ], + "Ar_94": [ + 0.027647, + -0.492438, + -0.478448 + ], + "Ar_95": [ + 0.401749, + 0.135902, + 0.048149 + ], + "Ar_96": [ + -0.234288, + -0.10257, + 0.068427 + ], + "Ar_97": [ + 0.076109, + -0.365642, + -0.344708 + ], + "Ar_98": [ + -0.345897, + -0.452247, + 0.379562 + ], + "Ar_99": [ + -0.269691, + 0.053697, + -0.068055 + ], + "Ar_100": [ + 0.382159, + -0.26995, + 0.090624 + ] + }, + "k-points": { + "kpoint_mp_grid": [ + 1, + 1, + 1 + ], + "kpoint_mp_offset": [ + 0.0, + 0.0, + 0.0 + ], + "num_kpoints": 1 + }, + "symmetries": { + "maximum_deviation_from_symmetry": "0.00000 ANG", + "number_of_symmetry_operations": 1, + "point_group_of_crystal": "1: C1, 1, 1", + "space_group_of_crystal": "1: P1, P 1" + }, + "constraints": { + "number_of_ionic_constraints": 3, + "com_constrained": true, + "number_of_cell_constraints": 6, + "cell_constraints": [ + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "target_stress": [ + [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ] + ], + "pair_params": [ + { + "LJ": { + "r": { + "Ar": 8.5125 + }, + "e": { + "Ar": 0.0103407999 + }, + "s": { + "Ar": 0.3405 + } + } + } + ], + "energies": { + "final_energy": [ + -9.151337939619e-06 + ] + }, + "md": [ + { + "time": 0.0, + "potential_energy": -9e-06, + "kinetic_energy": 1.023739, + "total_energy": 1.02373, + "hamilt_energy": 1.02373, + "temperature": 80.0 + }, + { + "time": 0.005, + "potential_energy": -9e-06, + "kinetic_energy": 1.023739, + "total_energy": 1.02373, + "hamilt_energy": 1.02373, + "temperature": 80.0 + }, + { + "time": 0.01, + "potential_energy": -9e-06, + "kinetic_energy": 1.023739, + "total_energy": 1.02373, + "hamilt_energy": 1.02373, + "temperature": 80.0 + }, + { + "time": 0.015, + "potential_energy": -9e-06, + "kinetic_energy": 1.023739, + "total_energy": 1.02373, + "hamilt_energy": 1.02373, + "temperature": 80.000001 + } + ], + "memory_estimate": [ + { + "model_and_support_data": { + "memory": 282.8, + "disk": 0.0 + }, + "molecular_dynamics_requirements": { + "memory": 346.2, + "disk": 0.0 + } + } + ], + "forces": { + "non_descript": [ + { + "Ar_1": [ + -0.0, + 1e-05, + -0.0 + ], + "Ar_2": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_3": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_4": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_5": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_6": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_7": [ + 1e-05, + -1e-05, + 1e-05 + ], + "Ar_8": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_9": [ + -0.0, + -0.0, + 0.0 + ], + "Ar_10": [ + -0.0, + -0.0, + -1e-05 + ], + "Ar_11": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_12": [ + 0.0004, + -0.00278, + -0.00094 + ], + "Ar_13": [ + 6e-05, + 0.00019, + -0.00012 + ], + "Ar_14": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_15": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_16": [ + -1e-05, + -0.0, + 0.0 + ], + "Ar_17": [ + 0.0, + -1e-05, + 1e-05 + ], + "Ar_18": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_19": [ + -1e-05, + 1e-05, + -1e-05 + ], + "Ar_20": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_21": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_22": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_23": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_24": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_25": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_26": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_27": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_28": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_29": [ + 4e-05, + -0.0, + 0.0 + ], + "Ar_30": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_31": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_32": [ + 1e-05, + 0.0, + -0.0 + ], + "Ar_33": [ + -0.0004, + 0.00277, + 0.00097 + ], + "Ar_34": [ + -0.0, + -0.0, + 0.0 + ], + "Ar_35": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_36": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_37": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_38": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_39": [ + -0.0, + -0.0, + 1e-05 + ], + "Ar_40": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_41": [ + 0.0, + -1e-05, + 0.0 + ], + "Ar_42": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_43": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_44": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_45": [ + 0.0013, + 0.00665, + -0.00156 + ], + "Ar_46": [ + 3e-05, + -2e-05, + 3e-05 + ], + "Ar_47": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_48": [ + -4e-05, + 0.0, + -0.0 + ], + "Ar_49": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_50": [ + 1e-05, + -0.0, + -0.0 + ], + "Ar_51": [ + -0.0, + 1e-05, + 1e-05 + ], + "Ar_52": [ + -4e-05, + -1e-05, + 3e-05 + ], + "Ar_53": [ + -0.0, + 1e-05, + -3e-05 + ], + "Ar_54": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_55": [ + -0.0, + -0.0, + 0.0 + ], + "Ar_56": [ + -0.0, + -0.0, + -1e-05 + ], + "Ar_57": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_58": [ + 1e-05, + 1e-05, + -0.0 + ], + "Ar_59": [ + 0.0, + -0.0, + -1e-05 + ], + "Ar_60": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_61": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_62": [ + -6e-05, + -0.0002, + 0.00011 + ], + "Ar_63": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_64": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_65": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_66": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_67": [ + -2e-05, + 2e-05, + -4e-05 + ], + "Ar_68": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_69": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_70": [ + 0.0, + -0.0, + 1e-05 + ], + "Ar_71": [ + -0.0, + 1e-05, + -1e-05 + ], + "Ar_72": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_73": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_74": [ + 0.0, + -0.0, + -1e-05 + ], + "Ar_75": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_76": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_77": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_78": [ + -1e-05, + 1e-05, + -2e-05 + ], + "Ar_79": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_80": [ + -0.0, + -0.0, + 0.0 + ], + "Ar_81": [ + -0.0, + -0.0, + 0.0 + ], + "Ar_82": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_83": [ + -1e-05, + 0.0, + 0.0 + ], + "Ar_84": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_85": [ + -0.00128, + -0.00667, + 0.00155 + ], + "Ar_86": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_87": [ + -0.0, + 0.0, + -0.0 + ], + "Ar_88": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_89": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_90": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_91": [ + 0.0, + 0.0, + 1e-05 + ], + "Ar_92": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_93": [ + 0.0, + 0.0, + -0.0 + ], + "Ar_94": [ + 0.0, + -0.0, + 0.0 + ], + "Ar_95": [ + 2e-05, + 1e-05, + 0.0 + ], + "Ar_96": [ + -0.0, + -0.0, + -0.0 + ], + "Ar_97": [ + -0.0, + 0.0, + 0.0 + ], + "Ar_98": [ + 0.0, + -0.0, + -0.0 + ], + "Ar_99": [ + 0.0, + 0.0, + 0.0 + ], + "Ar_100": [ + 1e-05, + -0.0, + 0.0 + ] + } + ] + }, + "stresses": { + "non_descript": [ + [ + -1.7e-05, + -1.7e-05, + 8e-06, + -0.000197, + 1.4e-05, + -2.4e-05 + ] + ] + }, + "initialisation_time": 17.1, + "calculation_time": 4.08, + "finalisation_time": 0.0, + "total_time": 21.18, + "peak_memory_use": 479316.0 + } +] \ No newline at end of file diff --git a/castep_outputs/test/pp-md.yaml b/castep_outputs/test/pp-md.yaml new file mode 100644 index 0000000..477269f --- /dev/null +++ b/castep_outputs/test/pp-md.yaml @@ -0,0 +1,564 @@ +- build_info: {comms: Open MPI v4.1.5, compiler: 'GNU Fortran 13.2.1; Optimisation: + FAST', fft_lib: fftw3 version fftw-3.3.10-sse2-avx, fundamental_constants_values: CODATA + 2018, mathlibs: default (LAPACK version 3.11.0), summary: 'Compiled for GNU + 13.2.1 on 15-01-2024 15:40:33 from code version c68e15f54 default Thu Jan 11 + 16:32:37 2024 +0000'} + calculation_time: 4.08 + constraints: + cell_constraints: [0, 0, 0, 0, 0, 0] + com_constrained: true + number_of_cell_constraints: 6 + number_of_ionic_constraints: 3 + energies: + final_energy: [-9.151337939619e-06] + finalisation_time: 0.0 + forces: + non_descript: + - ? !!python/tuple [Ar, 1] + : [-0.0, 1e-05, -0.0] + ? !!python/tuple [Ar, 2] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 3] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 4] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 5] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 6] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 7] + : [1e-05, -1e-05, 1e-05] + ? !!python/tuple [Ar, 8] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 9] + : [-0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 10] + : [-0.0, -0.0, -1e-05] + ? !!python/tuple [Ar, 11] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 12] + : [0.0004, -0.00278, -0.00094] + ? !!python/tuple [Ar, 13] + : [6e-05, 0.00019, -0.00012] + ? !!python/tuple [Ar, 14] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 15] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 16] + : [-1e-05, -0.0, 0.0] + ? !!python/tuple [Ar, 17] + : [0.0, -1e-05, 1e-05] + ? !!python/tuple [Ar, 18] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 19] + : [-1e-05, 1e-05, -1e-05] + ? !!python/tuple [Ar, 20] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 21] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 22] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 23] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 24] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 25] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 26] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 27] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 28] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 29] + : [4e-05, -0.0, 0.0] + ? !!python/tuple [Ar, 30] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 31] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 32] + : [1e-05, 0.0, -0.0] + ? !!python/tuple [Ar, 33] + : [-0.0004, 0.00277, 0.00097] + ? !!python/tuple [Ar, 34] + : [-0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 35] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 36] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 37] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 38] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 39] + : [-0.0, -0.0, 1e-05] + ? !!python/tuple [Ar, 40] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 41] + : [0.0, -1e-05, 0.0] + ? !!python/tuple [Ar, 42] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 43] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 44] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 45] + : [0.0013, 0.00665, -0.00156] + ? !!python/tuple [Ar, 46] + : [3e-05, -2e-05, 3e-05] + ? !!python/tuple [Ar, 47] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 48] + : [-4e-05, 0.0, -0.0] + ? !!python/tuple [Ar, 49] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 50] + : [1e-05, -0.0, -0.0] + ? !!python/tuple [Ar, 51] + : [-0.0, 1e-05, 1e-05] + ? !!python/tuple [Ar, 52] + : [-4e-05, -1e-05, 3e-05] + ? !!python/tuple [Ar, 53] + : [-0.0, 1e-05, -3e-05] + ? !!python/tuple [Ar, 54] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 55] + : [-0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 56] + : [-0.0, -0.0, -1e-05] + ? !!python/tuple [Ar, 57] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 58] + : [1e-05, 1e-05, -0.0] + ? !!python/tuple [Ar, 59] + : [0.0, -0.0, -1e-05] + ? !!python/tuple [Ar, 60] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 61] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 62] + : [-6e-05, -0.0002, 0.00011] + ? !!python/tuple [Ar, 63] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 64] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 65] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 66] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 67] + : [-2e-05, 2e-05, -4e-05] + ? !!python/tuple [Ar, 68] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 69] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 70] + : [0.0, -0.0, 1e-05] + ? !!python/tuple [Ar, 71] + : [-0.0, 1e-05, -1e-05] + ? !!python/tuple [Ar, 72] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 73] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 74] + : [0.0, -0.0, -1e-05] + ? !!python/tuple [Ar, 75] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 76] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 77] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 78] + : [-1e-05, 1e-05, -2e-05] + ? !!python/tuple [Ar, 79] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 80] + : [-0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 81] + : [-0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 82] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 83] + : [-1e-05, 0.0, 0.0] + ? !!python/tuple [Ar, 84] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 85] + : [-0.00128, -0.00667, 0.00155] + ? !!python/tuple [Ar, 86] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 87] + : [-0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 88] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 89] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 90] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 91] + : [0.0, 0.0, 1e-05] + ? !!python/tuple [Ar, 92] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 93] + : [0.0, 0.0, -0.0] + ? !!python/tuple [Ar, 94] + : [0.0, -0.0, 0.0] + ? !!python/tuple [Ar, 95] + : [2e-05, 1e-05, 0.0] + ? !!python/tuple [Ar, 96] + : [-0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 97] + : [-0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 98] + : [0.0, -0.0, -0.0] + ? !!python/tuple [Ar, 99] + : [0.0, 0.0, 0.0] + ? !!python/tuple [Ar, 100] + : [1e-05, -0.0, 0.0] + initial_cell: + cell_angles: [90.0, 90.0, 90.0] + density_amu: 0.758926 + density_g: 1.260226 + lattice_parameters: [17.395297, 17.395297, 17.395297] + real_lattice: + - [17.395297, 0.0, 0.0] + - [0.0, 17.395297, 0.0] + - [0.0, 0.0, 17.395297] + recip_lattice: + - [0.361200232, 0.0, 0.0] + - [0.0, 0.361200232, 0.0] + - [0.0, 0.0, 0.361200232] + volume: 5263.753514 + initial_positions: + ? !!python/tuple [Ar, 1] + : [0.231325, 0.129759, 0.142367] + ? !!python/tuple [Ar, 2] + : [0.246742, 0.042652, -0.088655] + ? !!python/tuple [Ar, 3] + : [0.047965, 0.281388, 0.289269] + ? !!python/tuple [Ar, 4] + : [-0.453918, -0.052587, -0.010711] + ? !!python/tuple [Ar, 5] + : [-0.340386, -0.073584, 0.340242] + ? !!python/tuple [Ar, 6] + : [0.338051, 0.262686, -0.216013] + ? !!python/tuple [Ar, 7] + : [-0.108234, 0.184432, -0.01561] + ? !!python/tuple [Ar, 8] + : [-0.160787, -0.08731, -0.155673] + ? !!python/tuple [Ar, 9] + : [-0.224863, -0.335053, -0.209785] + ? !!python/tuple [Ar, 10] + : [-0.21771, 0.453389, -0.107478] + ? !!python/tuple [Ar, 11] + : [-0.422321, -0.326807, -0.344697] + ? !!python/tuple [Ar, 12] + : [0.333571, -0.086611, 0.178388] + ? !!python/tuple [Ar, 13] + : [0.185987, -0.354726, 0.410968] + ? !!python/tuple [Ar, 14] + : [-0.303455, -0.288594, 0.19213] + ? !!python/tuple [Ar, 15] + : [0.204526, 0.196056, 0.416707] + ? !!python/tuple [Ar, 16] + : [-0.275154, 0.045704, -0.483329] + ? !!python/tuple [Ar, 17] + : [-0.046037, -0.100459, 0.124164] + ? !!python/tuple [Ar, 18] + : [-0.303247, 0.388146, 0.261178] + ? !!python/tuple [Ar, 19] + : [0.04631, 0.333812, -0.149268] + ? !!python/tuple [Ar, 20] + : [-0.25563, 0.303632, 0.01312] + ? !!python/tuple [Ar, 21] + : [-0.242283, 0.238138, -0.191916] + ? !!python/tuple [Ar, 22] + : [0.113195, 0.139226, -0.242767] + ? !!python/tuple [Ar, 23] + : [-0.436335, -0.293372, 0.00729] + ? !!python/tuple [Ar, 24] + : [0.200195, 0.417578, 0.405337] + ? !!python/tuple [Ar, 25] + : [0.138405, -0.478098, 0.036313] + ? !!python/tuple [Ar, 26] + : [0.056222, -0.43407, 0.236476] + ? !!python/tuple [Ar, 27] + : [-0.221436, 0.305384, 0.429029] + ? !!python/tuple [Ar, 28] + : [0.353985, 0.078899, 0.295307] + ? !!python/tuple [Ar, 29] + : [-0.159492, 0.259684, 0.216229] + ? !!python/tuple [Ar, 30] + : [0.348758, 0.453476, -0.213795] + ? !!python/tuple [Ar, 31] + : [0.499131, -0.444749, 0.184094] + ? !!python/tuple [Ar, 32] + : [-0.442688, 0.019936, 0.190721] + ? !!python/tuple [Ar, 33] + : [-0.477146, 0.030176, -0.182729] + ? !!python/tuple [Ar, 34] + : [0.091881, 0.278091, 0.090466] + ? !!python/tuple [Ar, 35] + : [0.355472, -0.492582, -0.003379] + ? !!python/tuple [Ar, 36] + : [-0.180104, -0.290623, -0.014795] + ? !!python/tuple [Ar, 37] + : [-0.005467, -0.271801, -0.165935] + ? !!python/tuple [Ar, 38] + : [-0.01681, 0.010157, 0.49442] + ? !!python/tuple [Ar, 39] + : [0.418839, 0.082813, -0.454905] + ? !!python/tuple [Ar, 40] + : [0.243452, -0.224081, -0.258575] + ? !!python/tuple [Ar, 41] + : [0.448285, 0.334541, 0.16058] + ? !!python/tuple [Ar, 42] + : [-0.13984, -0.413736, 0.181316] + ? !!python/tuple [Ar, 43] + : [-0.408042, -0.461124, -0.146762] + ? !!python/tuple [Ar, 44] + : [-0.061094, 0.430431, -0.308376] + ? !!python/tuple [Ar, 45] + : [0.237836, 0.357668, 0.185156] + ? !!python/tuple [Ar, 46] + : [-0.04225, -0.450845, -0.065659] + ? !!python/tuple [Ar, 47] + : [-0.272246, -0.264974, 0.439613] + ? !!python/tuple [Ar, 48] + : [0.309741, -0.12075, -0.432583] + ? !!python/tuple [Ar, 49] + : [-0.396318, -0.160593, -0.196685] + ? !!python/tuple [Ar, 50] + : [-0.030873, -0.238387, 0.280014] + ? !!python/tuple [Ar, 51] + : [0.188974, 0.293923, -0.383184] + ? !!python/tuple [Ar, 52] + : [-0.465438, -0.182105, 0.223731] + ? !!python/tuple [Ar, 53] + : [0.384086, -0.428444, 0.406001] + ? !!python/tuple [Ar, 54] + : [0.116759, -0.04476, -0.245919] + ? !!python/tuple [Ar, 55] + : [-0.468948, -0.064117, -0.385583] + ? !!python/tuple [Ar, 56] + : [0.381701, -0.14227, -0.12597] + ? !!python/tuple [Ar, 57] + : [-0.034729, -0.137673, -0.318775] + ? !!python/tuple [Ar, 58] + : [-0.133048, -0.076055, 0.33392] + ? !!python/tuple [Ar, 59] + : [0.061936, -0.175672, 0.480945] + ? !!python/tuple [Ar, 60] + : [0.264378, -0.45186, -0.387126] + ? !!python/tuple [Ar, 61] + : [0.314909, -0.00554, -0.276643] + ? !!python/tuple [Ar, 62] + : [0.259457, -0.409436, 0.208225] + ? !!python/tuple [Ar, 63] + : [-0.303981, 0.486464, -0.310431] + ? !!python/tuple [Ar, 64] + : [-0.466464, 0.298261, -0.076658] + ? !!python/tuple [Ar, 65] + : [0.244834, 0.33801, -0.039532] + ? !!python/tuple [Ar, 66] + : [0.198873, 0.054637, -0.417761] + ? !!python/tuple [Ar, 67] + : [-0.090664, 0.444934, 0.333959] + ? !!python/tuple [Ar, 68] + : [-0.001531, 0.261865, -0.423017] + ? !!python/tuple [Ar, 69] + : [-0.075992, 0.111847, -0.28654] + ? !!python/tuple [Ar, 70] + : [0.183878, -0.440085, -0.155076] + ? !!python/tuple [Ar, 71] + : [0.015625, -0.287946, 0.051884] + ? !!python/tuple [Ar, 72] + : [-0.096937, -0.297263, -0.441243] + ? !!python/tuple [Ar, 73] + : [-0.275047, -0.128474, -0.358521] + ? !!python/tuple [Ar, 74] + : [-0.42639, 0.42932, -0.459709] + ? !!python/tuple [Ar, 75] + : [-0.187925, -0.482786, -0.472378] + ? !!python/tuple [Ar, 76] + : [-0.125109, 0.136396, 0.387943] + ? !!python/tuple [Ar, 77] + : [0.162758, -0.2003, 0.194921] + ? !!python/tuple [Ar, 78] + : [-0.389355, 0.221837, -0.442596] + ? !!python/tuple [Ar, 79] + : [-0.449259, 0.133782, 0.379992] + ? !!python/tuple [Ar, 80] + : [0.439313, -0.063945, 0.395557] + ? !!python/tuple [Ar, 81] + : [0.023379, 0.00911, -0.024279] + ? !!python/tuple [Ar, 82] + : [0.183479, -0.045046, 0.353847] + ? !!python/tuple [Ar, 83] + : [0.034497, 0.057645, 0.228096] + ? !!python/tuple [Ar, 84] + : [0.407804, -0.348418, -0.172733] + ? !!python/tuple [Ar, 85] + : [0.243935, -0.253555, -0.03889] + ? !!python/tuple [Ar, 86] + : [-0.379826, 0.153617, 0.074464] + ? !!python/tuple [Ar, 87] + : [-0.197409, 0.270738, -0.38389] + ? !!python/tuple [Ar, 88] + : [-0.274139, 0.045492, -0.263568] + ? !!python/tuple [Ar, 89] + : [-0.451133, -0.208955, 0.455198] + ? !!python/tuple [Ar, 90] + : [0.334701, -0.22234, 0.353778] + ? !!python/tuple [Ar, 91] + : [-0.059124, 0.425157, 0.087941] + ? !!python/tuple [Ar, 92] + : [-0.384974, 0.461596, 0.061543] + ? !!python/tuple [Ar, 93] + : [-0.204466, 0.071173, 0.173435] + ? !!python/tuple [Ar, 94] + : [0.027647, -0.492438, -0.478448] + ? !!python/tuple [Ar, 95] + : [0.401749, 0.135902, 0.048149] + ? !!python/tuple [Ar, 96] + : [-0.234288, -0.10257, 0.068427] + ? !!python/tuple [Ar, 97] + : [0.076109, -0.365642, -0.344708] + ? !!python/tuple [Ar, 98] + : [-0.345897, -0.452247, 0.379562] + ? !!python/tuple [Ar, 99] + : [-0.269691, 0.053697, -0.068055] + ? !!python/tuple [Ar, 100] + : [0.382159, -0.26995, 0.090624] + initialisation_time: 17.1 + k-points: + kpoint_mp_grid: [1, 1, 1] + kpoint_mp_offset: [0.0, 0.0, 0.0] + num_kpoints: 1 + md: + - {hamilt_energy: 1.02373, kinetic_energy: 1.023739, potential_energy: -9e-06, temperature: 80.0, + time: 0.0, total_energy: 1.02373} + - {hamilt_energy: 1.02373, kinetic_energy: 1.023739, potential_energy: -9e-06, temperature: 80.0, + time: 0.005, total_energy: 1.02373} + - {hamilt_energy: 1.02373, kinetic_energy: 1.023739, potential_energy: -9e-06, temperature: 80.0, + time: 0.01, total_energy: 1.02373} + - {hamilt_energy: 1.02373, kinetic_energy: 1.023739, potential_energy: -9e-06, temperature: 80.000001, + time: 0.015, total_energy: 1.02373} + memory_estimate: + - model_and_support_data: {disk: 0.0, memory: 282.8} + molecular_dynamics_requirements: {disk: 0.0, memory: 346.2} + options: + basis set: + finite basis set correction: none + largest prime factor in FFT: 5 + plane wave basis set cut-off: [100.0, eV] + size of fine gmax: [8.9655, 1/A] + size of standard grid: 1.75 + density mixing: + charge density mixing amplitude: 0.8 + charge density mixing g-vector: [1.5, 1/A] + cut-off energy for mixing: [100.0, eV] + density-mixing scheme: Broyden + max. length of mixing history: 20 + devel_code: + PP: true + pp: {LJ: true, LJ_EPS_Ar: 120.0, LJ_SIG_Ar: 0.3405} + electronic: {net charge of system: 0.0, number of bands: 480, number of electrons: 2.0} + electronic minimization: + Fermi energy convergence tolerance: [2.721e-14, eV] + Method: Treating system as metallic with density mixing treatment of electrons, + and number of CG steps: 4 + and number of SD steps: 1 + convergence tolerance window: [3, cycles] + eigen-energy convergence tolerance: [1e-06, eV] + max force / atom convergence tol.: ignored + max. number of SCF cycles: 30 + number of fixed-spin iterations: 10 + periodic dipole correction: NONE + smearing scheme: Gaussian + smearing width: [0.2, eV] + total energy / atom convergence tol.: [1e-05, eV] + exchange-correlation: {DFT+D Semi-empirical dispersion correction: off, relativistic treatment: Koelling-Harmon, + using functional: Local Density Approximation} + general: {Hirshfeld analysis: off, checkpoint writing: off, data distribution: optimal + for this architecture, deltaSCF calculation: off, density difference calculation: off, + electron localisation func (ELF) calculation: off, memory usage estimate: on, + molecular orbital projected DOS: off, optimization strategy: balance speed and + memory, output verbosity: normal (1), polarisation (Berry phase) analysis: off, + random number generator seed: 163212971, stress calculation: off, timing information: on, + type of calculation: molecular dynamics, wavefunctions paging: none, write BibTeX reference list: off, + write OTFG pseudopotential files: on, write bands file: on, write checkpoint data to: pair-pot-lj.check, + write electrostatic potential file: on, write extra output files: on, write final density to formatted file: off, + write final potential to formatted file: off} + molecular dynamics: + MD SCF convergence tolerance window: [3, cycles] + MD SCF eigenenergies tolerance: [1e-06, eV] + MD SCF energy / atom convergence tol.: [1e-05, eV] + ab initio properties sampled every: [0, MD, steps] + backup results every: [5, steps] + enhanced equilibration method: NONE + ensemble: NVE + number of MD steps: 3 + path integral MD: OFF + temperature: [80.0, K] + time step: [0.005, ps] + write MD trajectory file: on + output_units: {IR intensity: (D/A)**2/amu, charge: e, dipole: D, efield: eV/A/e, + efield chi2: pm/V, energy: eV, entropy: J/mol/K, force: eV/A, force constant: eV/A**2, + frequency: cm-1, inv_length: 1/A, length: A, mass: amu, pressure: GPa, spin: hbar/2, + time: ps, velocity: A/ps, volume: A**3} + population analysis: + Population analysis output: summary only + Population analysis with cutoff: [3.0, A] + pseudopotential: { representation: reciprocal space, pseudopotential representation: reciprocal + space, spin-orbit coupling: off} + pair_params: + - LJ: + e: + ? &id001 !!python/tuple [Ar] + : 0.0103407999 + r: + *id001: 8.5125 + s: + *id001: 0.3405 + peak_memory_use: 479316.0 + pspot_detail: + - augmentation_charge_rinner: [1.116] + partial_core_correction: [1.116] + pseudopotential_definition: + - {Rc: 1.597, beta: 1, e: -0.892, j: null, l: 0, norm: 0, scheme: qc} + - {Rc: 1.597, beta: 2, e: 0.25, j: null, l: 0, norm: 0, scheme: qc} + - {Rc: 1.597, beta: 3, e: -0.382, j: null, l: 1, norm: 0, scheme: qc} + - {Rc: 1.597, beta: 4, e: 0.25, j: null, l: 1, norm: 0, scheme: qc} + - {Rc: 1.597, beta: loc, e: 0.0, j: null, l: 2, norm: 0, scheme: pn} + reference_electronic_structure: + - {energy: -0.892, occupation: 2.0, orb: 3s} + - {energy: -0.382, occupation: 6.0, orb: 3p} + solver: Koelling-Harmon + species_properties: + Ar: + electric_quadrupole_moment: 1.0 + mass: 39.948 + pseudo_atomic_energy: -583.0922 + pseudopot: + coarse: 7.0 + core_radius: 1.6 + fine: 9.0 + local_channel: 2 + medium: 8.0 + opt: null + print: false + proj: 30:31 + projectors: + - {orbital: 3, shell: s, type: null} + - {orbital: 3, shell: p, type: null} + string: 2|1.6|7|8|9|30:31 + stresses: + non_descript: + - [-1.7e-05, -1.7e-05, 8e-06, -0.000197, 1.4e-05, -2.4e-05] + symmetries: {maximum_deviation_from_symmetry: 0.00000 ANG, number_of_symmetry_operations: 1, + point_group_of_crystal: '1: C1, 1, 1', space_group_of_crystal: '1: P1, P 1'} + target_stress: + - [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + time_started: Mon, 15 Jan 2024 16:32:12 +0000 + title: '' + total_time: 21.18 diff --git a/castep_outputs/test/test_castep_parser.py b/castep_outputs/test/test_castep_parser.py index 881132b..33480b7 100644 --- a/castep_outputs/test/test_castep_parser.py +++ b/castep_outputs/test/test_castep_parser.py @@ -1576,35 +1576,35 @@ def test_get_md_data(self): """) test_dict = parse_castep_file(test_text)[0] - self.assertEqual(test_dict, {'md': [ - {'enthalpy': -854.758633, - 'hamilt_energy': -854.677308, - 'kinetic_energy': 0.673458, - 'potential_energy': -855.432091, - 'temperature': 651.262915, - 'total_energy': -854.758633, - 'energies': {'est_0K': [-855.4216728959], - 'final_energy': [-855.4197401755], - 'free_energy': [-855.4236056162]}, - 'forces': {'non_descript': [{('Si', 1): (-0.05358, -0.04038, 0.69168), - ('Si', 2): (0.72539, 0.3538, -1.12992)}]}, - 'cell': {'cell_angles': [90.0, 90.0, 90.0], - 'density_amu': 1.403372, - 'density_g': 2.330353, - 'lattice_parameters': [5.43, 5.43, 5.43], - 'real_lattice': [(5.43, 0.0, 0.0), - (0.0, 5.43, 0.0), - (0.0, 0.0, 5.43)], - 'recip_lattice': [(1.157124366, 0.0, 0.0), - (0.0, 1.157124366, 0.0), - (0.0, 0.0, 1.157124366)], - 'volume': 160.103007}, - 'positions': {('Si', 1): (0.001291, 0.00032, 0.001059), - ('Si', 2): (0.000729, 0.504323, 0.520521)}, - 'memory_estimate': [{'model_and_support_data': {'disk': 0.0, 'memory': 27.2}, - 'molecular_dynamics_requirements': {'disk': 0.0, 'memory': 13.4}}], - 'stresses': {'non_descript': [(2.029699, 1.862602, 3.129082, -6.100259, 5.232356, -7.576534)]}, - 'time': 0.002}]} + self.assertEqual(test_dict, {'memory_estimate': [{'model_and_support_data': {'disk': 0.0, 'memory': 27.2}, + 'molecular_dynamics_requirements': {'disk': 0.0, 'memory': 13.4}}], + 'md': [ + {'enthalpy': -854.758633, + 'hamilt_energy': -854.677308, + 'kinetic_energy': 0.673458, + 'potential_energy': -855.432091, + 'temperature': 651.262915, + 'total_energy': -854.758633, + 'energies': {'est_0K': [-855.4216728959], + 'final_energy': [-855.4197401755], + 'free_energy': [-855.4236056162]}, + 'forces': {'non_descript': [{('Si', 1): (-0.05358, -0.04038, 0.69168), + ('Si', 2): (0.72539, 0.3538, -1.12992)}]}, + 'cell': {'cell_angles': [90.0, 90.0, 90.0], + 'density_amu': 1.403372, + 'density_g': 2.330353, + 'lattice_parameters': [5.43, 5.43, 5.43], + 'real_lattice': [(5.43, 0.0, 0.0), + (0.0, 5.43, 0.0), + (0.0, 0.0, 5.43)], + 'recip_lattice': [(1.157124366, 0.0, 0.0), + (0.0, 1.157124366, 0.0), + (0.0, 0.0, 1.157124366)], + 'volume': 160.103007}, + 'positions': {('Si', 1): (0.001291, 0.00032, 0.001059), + ('Si', 2): (0.000729, 0.504323, 0.520521)}, + 'stresses': {'non_descript': [(2.029699, 1.862602, 3.129082, -6.100259, 5.232356, -7.576534)]}, + 'time': 0.002}]} ) def test_get_pimd_data(self): diff --git a/castep_outputs/test/test_dumpers.py b/castep_outputs/test/test_dumpers.py index abd4678..936398a 100644 --- a/castep_outputs/test/test_dumpers.py +++ b/castep_outputs/test/test_dumpers.py @@ -85,6 +85,12 @@ def test_castep_json(self): def test_castep_yaml(self): self._test_dump(_TEST_FOLDER / "test.castep", "castep", "yaml") + def test_md_castep_json(self): + self._test_dump(_TEST_FOLDER / "pp-md.castep", "castep", "json", _TEST_FOLDER / "pp-md.json") + + def test_md_castep_json(self): + self._test_dump(_TEST_FOLDER / "pp-md.castep", "castep", "yaml", _TEST_FOLDER / "pp-md.yaml") + def test_bands_json(self): self._test_dump(_TEST_FOLDER / "test.bands", "bands", "json") diff --git a/castep_outputs/utilities/utility.py b/castep_outputs/utilities/utility.py index e69e03f..d453007 100644 --- a/castep_outputs/utilities/utility.py +++ b/castep_outputs/utilities/utility.py @@ -8,7 +8,7 @@ import logging import re from collections import defaultdict -from collections.abc import Callable, Iterable, Iterator, MutableMapping +from collections.abc import Callable, Iterable, Iterator, MutableMapping, Sequence from copy import copy from itertools import filterfalse from typing import Any, TextIO, TypeVar @@ -703,3 +703,29 @@ def strip_comments( stripped_comments = strip_function(data, comment_char=comment_char) return Block.from_iterable(stripped_comments, parent=data) + + +def get_only(seq: Sequence[T]) -> T: + """ + Get the only element of a Sequence ensuring uniqueness. + + Parameters + ---------- + seq + Sequence of one element. + + Returns + ------- + Any + The sole element of the sequence. + + Raises + ------ + ValueError + Value is not alone. + """ + val, *rest = seq + if rest: + raise ValueError(f"Multiple elements in sequence (remainder={', '.join(rest)}).") + + return val