예제 #1
0
    def default_options():
        if hasattr(NPZReporter, '_default_options'): return NPZReporter._default_options.copy()
        opt = est.Options() 

        opt.add_option(
            key='interval',
            value=1,
            required=True,
            allowed_types=[int],
            doc='Interval between reporting events')
        opt.add_option(
            key='filename',
            required=True,
            allowed_types=[str],
            doc='Filename (should end in .npz)')
        opt.add_option(
            key='state_energies',
            value=False,
            required=True,
            allowed_types=[bool],
            doc='Record state energies?',
            )
    
        NPZReporter._default_options = opt
        return NPZReporter._default_options.copy()
예제 #2
0
    def default_options():
        if hasattr(AIMD, '_default_options'): return AIMD._default_options.copy()
        opt = est.Options() 

        # > Print Control < #

        opt.add_option(
            key='print_level',
            value=1,
            allowed_types=[int],
            doc='Level of detail to print (0 - nothing, 1 - minimal [dynamics], 2 - standard [SP])')

        # > Problem Geometry < #

        opt.add_option(
            key='lot',
            required=True,
            doc='LOT object')
        opt.add_option(
            key='integrator',
            required=True,
            doc='Integrator object')
        opt.add_option(
            key='target_S',
            required=True,
            allowed_types=[int], 
            doc='Target electronic state spin number [0 - singlet, 1 - doublet, etc]')
        opt.add_option(
            key='target_index',
            required=True,
            allowed_types=[int], 
            doc='Target electronic state [0 - based within each spin block]')
        opt.add_option(
            key='masses',
            required=True,
            allowed_types=[ls.Tensor],
            doc="Atomic masses in atomic units")
        opt.add_option(
            key='momenta',
            required=True,
            allowed_types=[ls.Tensor],
            doc="Initial momenta in atomic units")

        # > AIMD Recipes < #

        opt.add_option(
            key='reporters',
            value=[],
            required=True,
            doc='List of Reporter objects')
        opt.add_option(
            key='state_tracking',
            value='adiabatic',
            required=True,
            allowed_values=['adiabatic', 'diabatic'],
            doc='State tracking mode')

        AIMD._default_options = opt
        return AIMD._default_options.copy()
예제 #3
0
    def default_options():
        if hasattr(AISCAT, '_default_options'): return AISCAT._default_options.copy()
        opt = est.Options() 

        opt.add_option(
            key='lot',
            required=True,
            doc='Level of Theory')
        opt.add_option(
            key='grid',
            required=True,
            allowed_types=[ls.BeckeGrid],
            doc='Becke grid for density collocation')
        opt.add_option(
            key='mode',
            allowed_values=['ued', 'xray'],
            doc='ued or xray scattering?')
        opt.add_option(
            key='L',
            required=True,
            allowed_types=[float],
            doc='DeBroglie wavelength (Angstrom)')
        opt.add_option(
            key='s',
            required=True,
            allowed_types=[ls.Tensor],
            doc='Reciprocal scattering radii (Angstrom^-1). Tensor of shape (ns,)')
        opt.add_option(
            key='eta',
            required=True,
            allowed_types=[ls.Tensor],
            doc='Azimuthal angles (radian). Tensor of shape (neta,)')
        opt.add_option(
            key='anisotropy',
            required=True,
            allowed_values=['aligned', 'isotropic', 'parallel', 'perpendicular'],
            doc='Rotational anisotropy')
        opt.add_option(
            key='algorithm',
            required=True,
            allowed_values=['cpu', 'gpu_f_f', 'gpu_f_d', 'gpu_d_d'],
            doc='Algorithm/precision for computation. gpu_d_d recommended for aligned gpu_f_d otherwise')
        opt.add_option(
            key='thre_dens',
            value=1.0E-14,
            allowed_types=[float],
            doc='Grid density collocation cutoff')
        opt.add_option(
            key='hash_R',
            value=5.0,
            allowed_types=[float],
            doc='HashedGrid box size')
            
        AISCAT._default_options = opt
        return AISCAT._default_options.copy()
예제 #4
0
    def default_options():
        if hasattr(XYZReporter, '_default_options'):
            return XYZReporter._default_options.copy()
        opt = est.Options()

        opt.add_option(key='interval',
                       value=1,
                       required=True,
                       allowed_types=[int],
                       doc='Interval between reporting events')
        opt.add_option(
            key='filename',
            required=True,
            # allowed_types=[str, file],
            allowed_types=[str],
            doc='Filename or file handle')
        opt.add_option(key='mode',
                       value='w',
                       required=True,
                       allowed_types=[str],
                       doc='Mode to use in open if filename provided.')
        opt.add_option(key='molecule',
                       value='molecule',
                       required=True,
                       allowed_values=['molecule', 'qm_molecule'],
                       doc='Which molecular geometry to save?')
        opt.add_option(key='label',
                       value='label',
                       required=True,
                       allowed_values=['label', 'symbol'],
                       doc='Mode of atomic label/symbol to use.')
        opt.add_option(key='label_str',
                       value='%-12s',
                       required=True,
                       allowed_types=[str],
                       doc='Format string for atom symbol')
        opt.add_option(key='coord_str',
                       value='%18.12f',
                       required=True,
                       allowed_types=[str],
                       doc='Format string for coordinates')

        XYZReporter._default_options = opt
        return XYZReporter._default_options.copy()
예제 #5
0
    def default_options():
        if hasattr(VV, '_default_options'): return VV._default_options.copy()
        opt = est.Options()

        # > Problem Geometry < #

        opt.add_option(key='dt',
                       required=True,
                       allowed_types=[float],
                       doc='Timestep in atomic units')
        opt.add_option(key='Ltemp',
                       value=0.0,
                       allowed_types=[float],
                       doc='Langevin thermostat temperature')
        opt.add_option(key='Lgamma',
                       value=0.0,
                       allowed_types=[float],
                       doc='Langevin thermostat gamma parameter')
        opt.add_option(key='random_seed',
                       allowed_types=[int],
                       doc='Random number seed for numpy.RandomState')

        VV._default_options = opt
        return VV._default_options.copy()