1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
# Representation of parameters from highest to lowest level of abstraction:
#
# * Atoms object plus reduced kwargs that specify info not stored in the Atoms
# * full dictionary of kwargs incorporating info contained in the Atoms
# * series of assignments (names, values). May contain duplicates.
# * text in Octopus input file format
# Octopus variable types and specification in Python:
#
# Type Examples Equivalent in Python:
# -----------------------------------------------------------------------------
# flag wfs + density 'wfs + density'
# float 2.7, 2.7 + pi^2 2.7, 2.7 + np.pi**2
# integer 42, rmmdiis 42, 'rmmdiis'
# logical true, false, yes, no, ... True, False, 1, 0, 'yes', 'no', ...
# string "stdout.txt" '"stdout.txt"' (apologies for ugliness)
#
# block %Coordinates List of lists:
# 'H' | 0 | 0 | 0 coordinates=[["'H'", 0, 0, 0],
# 'O' | 0 | 0 | 1 ["'O'", 0, 0, 1]]
# % (elemements are sent through repr())
# Rules for input parameters
# --------------------------
#
# We make the following conversions:
# dict of keyword arguments + Atoms object -> Octopus input file
# and:
# Octopus input file -> Atoms object + dict of keyword arguments
# Below we detail some conventions and compatibility issues.
#
# ASE always passes some parameters by default (always write
# forces, etc.). They can be overridden by the user, but the
# resulting behaviour is undefined.
from ase.io.octopus.input import read_octopus_in
__all__ = ['read_octopus_in']
|