Пример #1
0
    class Inventory(CitcomComponent.Inventory):

        import pyre.inventory as inv

        tracer = inv.bool("tracer", default=False)

        # tracer_ic_method=0 (random generated array)
        # tracer_ic_method=1 (all proc read the same file)
        # tracer_ic_method=2 (each proc reads its own file)
        tracer_ic_method = inv.int("tracer_ic_method", default=0)

        # (tracer_ic_method == 0)
        tracers_per_element = inv.int("tracers_per_element", default=10)

        # (tracer_ic_method == 1)
        tracer_file = inv.str("tracer_file", default="tracer.dat")

        # How many flavors of tracers
        # If tracer_flavors > 0, each element will report the number of
        # tracers of each flavor inside it. This information can be used
        # later for many purposes. One of it is to compute composition,
        # either using absolute method or ratio method.
        tracer_flavors = inv.int("tracer_flavors", default=0)

        # How to initialize tracer flavors
        ic_method_for_flavors = inv.int("ic_method_for_flavors", default=0)
        z_interface = inv.list("z_interface", default=[0.7])
        ictracer_grd_file = inv.str("ictracer_grd_file", default="")
        ictracer_grd_layers = inv.int("ictracer_grd_layers", default=2)

        # Warning level
        itracer_warnings = inv.bool("itracer_warnings", default=True)

        # Enriched internal heat production
        tracer_enriched = inv.bool("tracer_enriched", default=False)
        Q0_enriched = inv.float("Q0_enriched", default=0.0)

        # Regular grid parameters
        regular_grid_deltheta = inv.float("regular_grid_deltheta", default=1.0)
        regular_grid_delphi = inv.float("regular_grid_delphi", default=1.0)

        # Analytical Test Function
        #analytical_tracer_test = inv.int("analytical_tracer_test", default=0)

        chemical_buoyancy = inv.bool("chemical_buoyancy", default=True)

        # ibuoy_type=0 (absolute method, not implemented)
        # ibuoy_type=1 (ratio method)
        buoy_type = inv.int("buoy_type", default=1)
        buoyancy_ratio = inv.list("buoyancy_ratio", default=[1.0])

        # DJB
        hybrid_method = inv.int("hybrid_method", default=0)

        # This is not used anymore and is left here for backward compatibility
        reset_initial_composition = inv.bool("reset_initial_composition",
                                             default=False)
Пример #2
0
    class Inventory(CitcomComponent.Inventory):

        import pyre.inventory as prop

        ADV = prop.bool("ADV", default=True)
        filter_temp = prop.bool("filter_temp", default=False)
        monitor_max_T = prop.bool("monitor_max_T", default=True)

        fixed_timestep = prop.float("fixed_timestep", default=0.0)
        finetunedt = prop.float("finetunedt", default=0.9)
        adv_gamma = prop.float("adv_gamma", default=0.5)
        adv_sub_iterations = prop.int("adv_sub_iterations", default=2)

        inputdiffusivity = prop.float("inputdiffusivity", default=1)
Пример #3
0
 class Inventory(Script.Inventory):
     import pyre.inventory as inv
     s = inv.str('s', default="abc")
     i = inv.int('i', default=10)
     f = inv.float('f', default=3.0)
     func = inv.facility("func", factory=Sin)
     pass
Пример #4
0
    class Inventory(Component.Inventory):

        a = inv.str('a', default='abc')

        b = inv.float('b', default=3.0, validator=inv.greater(0))

        pass
Пример #5
0
    class Inventory(Component.Inventory):

        import pyre.inventory as inv

        # component modules
        import CitcomS.Components.Advection_diffusion as Advection_diffusion
        import CitcomS.Components.Stokes_solver as Stokes_solver

        # components
        from CitcomS.Components.BC import BC
        from CitcomS.Components.Const import Const
        from CitcomS.Components.IC import IC
        from CitcomS.Components.Output import Output
        from CitcomS.Components.Param import Param
        from CitcomS.Components.Phase import Phase
        from CitcomS.Components.Tracer import Tracer
        from CitcomS.Components.Visc import Visc


        tsolver = inv.facility("tsolver",
                               factory=Advection_diffusion.temperature_diffadv)
        vsolver = inv.facility("vsolver",
                               factory=Stokes_solver.incompressibleNewtonian)

        bc = inv.facility("bc", factory=BC)
        const = inv.facility("const", factory=Const)
        ic = inv.facility("ic", factory=IC)
        output = inv.facility("output", factory=Output)
        param = inv.facility("param", factory=Param)
        phase = inv.facility("phase", factory=Phase)
        tracer = inv.facility("tracer", factory=Tracer)
        visc = inv.facility("visc", factory=Visc)

        datadir = inv.str("datadir", default=".")
        datadir_old = inv.str("datadir_old", default=".")

        rayleigh = inv.float("rayleigh", default=1e+05)
        dissipation_number = inv.float("dissipation_number", default=0.0)
        gruneisen = inv.float("gruneisen", default=0.0)
        surfaceT = inv.float("surfaceT", default=0.1)
        #adiabaticT0 = inv.float("adiabaticT0", default=0.4)
        Q0 = inv.float("Q0", default=0.0)

        stokes_flow_only = inv.bool("stokes_flow_only", default=False)

        verbose = inv.bool("verbose", default=False)
        see_convergence = inv.bool("see_convergence", default=True)
Пример #6
0
 class Inventory(AbstractComponent.Inventory):
     import pyre.inventory as pinv
     radius1 = pinv.float("radius1", default=0.3)
     radius2 = pinv.float("radius2", default=0.5)
     height1 = pinv.float("height1", default=0.5)
     height2 = pinv.float("height2", default=0.5)
     theta1 = pinv.float("theta1", default=0)
     theta2 = pinv.float("theta2", default=180)
     dtheta = pinv.float("dtheta", default=1)
     oscillation = pinv.float("oscillation", default=1)
     pass
Пример #7
0
    class Inventory(CitcomComponent.Inventory):

        import pyre.inventory as prop


        Solver = prop.str("Solver", default="cgrad",
                 validator=prop.choice(["cgrad",
                                        "multigrid"]))
        node_assemble = prop.bool("node_assemble", default=True)
        precond = prop.bool("precond", default=True)

        accuracy = prop.float("accuracy", default=1.0e-4)
        inner_accuracy_scale = prop.float("inner_accuracy_scale", default=1.0)

        check_continuity_convergence = prop.bool("check_continuity_convergence", default=True)
        check_pressure_convergence = prop.bool("check_pressure_convergence", default=True)

        mg_cycle = prop.int("mg_cycle", default=1)
        down_heavy = prop.int("down_heavy", default=3)
        up_heavy = prop.int("up_heavy", default=3)

        vlowstep = prop.int("vlowstep", default=1000)
        vhighstep = prop.int("vhighstep", default=3)
        max_mg_cycles = prop.int("max_mg_cycles", default=50)
        piterations = prop.int("piterations", default=1000)

        aug_lagr = prop.bool("aug_lagr", default=True)
        aug_number = prop.float("aug_number", default=2.0e3)

        uzawa = prop.str("uzawa", default="cg",
                         validator=prop.choice(["cg", "bicg"]))
        compress_iter_maxstep = prop.int("compress_iter_maxstep", default=100)

        inner_remove_rigid_rotation = prop.bool("inner_remove_rigid_rotation", default=False)
        remove_rigid_rotation = prop.bool("remove_rigid_rotation", default=True)
        remove_angular_momentum = prop.bool("remove_angular_momentum", default=True)

        only_check_vel_convergence = prop.bool("only_check_vel_convergence", default=False)

        # Not used. Retained here for backward compatibility.
        tole_compressibility = prop.float("tole_compressibility", default=1.0e-7)
        relative_err_accuracy = prop.float("relative_err_accuracy", default=0.001)
Пример #8
0
 class Inventory( AbstractComponent.Inventory ):
     
     import pyre.inventory as pinv
     
     tofmin = pinv.float( 'tofmin', default = 0 )
     tofmin.meta['tip'] = 'tof min'
     tofmax = pinv.float( 'tofmax', default = 0.01 )
     tofmax.meta['tip'] = 'tof max'
     ntof = pinv.int( 'ntof', default = 100 )
     ntof.meta['tip'] = 'number of tof channels'
     
     xmin = pinv.float( 'xmin', default = -0.1 )
     xmin.meta['tip'] = 'x min'
     xmax = pinv.float( 'xmax', default = 0.1 )
     xmax.meta['tip'] = 'x max'
     nx = pinv.int( 'nx', default = 100 )
     nx.meta['tip'] = 'number of x bins'
     
     ymin = pinv.float( 'ymin', default = -0.1 )
     ymin.meta['tip'] = 'y min'
     ymax = pinv.float( 'ymax', default = 0.1 )
     ymax.meta['tip'] = 'y max'
     ny = pinv.int( 'ny', default = 100 )
     ny.meta['tip'] = 'number of y bins'
     
     eventsdat = pinv.str( 'eventsdat', default = 'events.dat' )
     eventsdat.meta['tip'] = 'output event data file'
     pass
Пример #9
0
    class Inventory(MultiMonitors.Inventory):

        from mcni.pyre_support import facility
        m1 = facility('m1', default="monitors/NDMonitor(t)")
        m2 = facility('m2', default="monitors/NDMonitor(w)")
        m3 = facility('m3', default="monitors/NDMonitor(t)")
        m4 = facility('m4', default="monitors/NDMonitor(w)")
        m5 = facility('m5', default="monitors/NDMonitor(t)")
        m6 = facility('m6', default="monitors/NDMonitor(w)")

        import pyre.inventory as inv
        xwidth = inv.float(name='xwidth', default=0.77)
        yheight = inv.float(name='yheight', default=0.385)
        tmin = inv.float(name='tmin', default=0.)
        tmax = inv.float(name='tmax', default=0.1)
        nt = inv.int(name='nt', default=100)
        wmin = inv.float(name='wmin', default=0.)
        wmax = inv.float(name='wmax', default=10)
        nw = inv.int(name='nw', default=100)
Пример #10
0
    class Inventory(AbstractComponent.Inventory):
        import pyre.inventory as pinv

        energy = pinv.float('energy', default=0)  # meV
        energy.meta['tip'] = (
            'energy of the neutron. if "energy" is given, '
            'the neutron velocity will be computed so that '
            'the energy of the neutron will be the given value of energy,'
            'and the moving direction will be determined by the "velocity" vector'
        )

        energy_width = pinv.float('energy-width', default=0)
        energy_width.meta['tip'] = (
            "energy spread. if positive, there will be a normal distribution",
            "of neutron energies around the central energy.",
            "the energy_width is the standard deviation of the normal",
            "distribution.",
        )

        velocity = pinv.array('velocity', default='0,0,3000')  # m/s
        velocity.meta[
            'tip'] = 'velocity of neutrons. unit: m/s. Note: if energy is nonzero, the magnitude of the velocity is set by energy'

        position = pinv.array('position', default='0,0,0')
        position.meta['tip'] = 'position of neutrons. unit: m'

        width = pinv.float('width', default=0)
        width.meta['tip'] = 'width of source. unit:m'

        height = pinv.float('height', default=0)
        height.meta['tip'] = 'height of source. unit:m'

        time = pinv.float('time', default=0)
        time.meta['tip'] = 'time of flight for neutrons. unit: s'

        probability = pinv.float('probability', default=1.)
        probability.meta['tip'] = 'probabliity of neutrons. unit: 1'
        pass
Пример #11
0
    class Inventory(Component.Inventory):
        import pyre.inventory as inv
        barostatParameter = inv.float('Barostat Parameter', default=0.005)
        barostatParameter.meta['tip'] = '''barostat parameter to keep 
fluctuations relatively small'''
        coordinateFormat = inv.str('Coordinate Format', default='cartesian')
        coordinateFormat.meta['tip'] = 'what format the coordinates are in'
        coordinateFormat.validator = inv.choice(['cartesian', 'fractional'])
        constantPressureFit = inv.bool('Constant Pressure Fit', default=False)
        constantPressureFit.meta[
            'tip'] = '''keep pressure constant during fitting (fit 
to irreducible cell coordinates and lattice lengths)'''
        constantPressureOptimize = inv.bool('Constant Pressure Optimize',
                                            default=False)
        constantPressureOptimize.meta[
            'tip'] = '''keep pressure constant during optimization'''
        constantVolumeFit = inv.bool('Constant Volume Fit', default=False)
        constantVolumeFit.meta[
            'tip'] = '''keep volume constant during fitting (fit 
to irreducible cell coordinates)'''
        constantVolumeOptimize = inv.bool('Constant Volume Optimize',
                                          default=False)
        constantVolumeOptimize.meta[
            'tip'] = '''keep volume constant during optimization'''
        dispersionInRecipSpace = inv.bool(
            'Calculate Dispersion in Reciprocal Space', default=False)
        dispersionInRecipSpace.meta[
            'tip'] = '''whether to calculate dispersion forces 
partly in reciprocal space'''
        dumpFrequency = inv.float('Dump Frequency', default=1.0)
        dumpFrequency.meta[
            'tip'] = '''frequency at which a restart file is written'''
        engineExecutablePath = inv.str(
            'Engine Executable Path', default='/home/brandon/gulp3.0/Src/gulp')
        engineExecutablePath.meta[
            'tip'] = '''path to the engine\'s executable'''
        ensemble = inv.str('Thermodynamic Ensemble',
                           default='nve',
                           validator=inv.choice(["nve", "nvt", "npt"]))
        ensemble.meta['tip'] = 'thermodynamic ensemble (nve, nvt, npt, ...)'
        equilibrationTime = inv.float('Equilibration Time (ps)', default=0.1)
        equilibrationTime.meta[
            'tip'] = 'equilibration time of the simulation (ps)'
        identifyMolecules = inv.bool('Indentify Molecules', default=False)
        identifyMolecules.meta[
            'tip'] = '''identify molecules based on covalent radii 
and remove intramolecular coloumb interactions'''
        integrator = inv.str('Integrator', default='velocity-verlet')
        integrator.meta['tip'] = 'type of integrator'
        inputDeckName = inv.str('Input Filename', default='gulp.gin')
        inputDeckName.meta['tip'] = '''input file for executable'''
        logFilename = inv.str('Log Filename', default='molDynamics.log')
        logFilename.meta['tip'] = 'name of log file for md run'
        optimizeCell = inv.bool('Optimize Cell', default=False)
        optimizeCell.meta['tip'] = 'whether to optimize the unit cell'
        optimizeCoordinates = inv.bool('Optimize Coordinates', default=False)
        optimizeCoordinates.meta[
            'tip'] = 'whether to optimize the coordinate positions'
        productionTime = inv.float('Production Time (ps)', default=5.0)
        productionTime.meta['tip'] = 'production time of the simulation'
        computeMaterialProperties = inv.bool('Compute Material Properties',
                                             default=False)
        computeMaterialProperties.meta[
            'tip'] = 'whether to print material properties'
        restartFilename = inv.str('Restart Filename',
                                  default='molDynamics.res')
        restartFilename.meta['tip'] = '''restart file for md executable'''
        runType = inv.str('Run Type',default='md',\
                validator=inv.choice(['md', 'restart md', 'optimize', 'fit']))
        runType.meta['tip'] = 'type of run'
        sample = inv.facility('Sample', default=Component('sample', 'sample'))
        sample.meta['importance'] = 10
        sample.meta['tip'] = 'piece of material being measured/simulated'
        sampleFrequency = inv.float('Sample Properties Frequency', default=5.0)
        sampleFrequency.meta[
            'tip'] = '''frequency at which sampled properties are 
written to trajectory and log file'''
        spaceGroup = inv.str('Space Group', default=None)
        spaceGroup.meta['tip'] = 'specify space group symmetry'
        thermostatParameter = inv.float('Thermostat Parameter', default=0.005)
        thermostatParameter.meta['tip'] = '''thermostat parameter to keep 
fluctuations relatively small'''
        timeStep = inv.float('Time step (ps)', default=0.5)
        timeStep.meta['tip'] = 'integration time step (ps)'
        trajectoryFilename = inv.str('Trajectory Filename',
                                     default='molDynamics.xyz')
        trajectoryFilename.meta['tip'] = 'name of trajectory file'
        #trajectoryType = inv.facility('Trajectory Type', default = TrajectoryType())
        trajectoryType = inv.str('Trajectory Type', default='xyz (Gulp)')
        trajectoryType.meta['tip'] = '''type of trajectory file'''
        trajectoryType.validator = inv.choice([
            'xyz (Gulp)', 'netcdf (Mmtk)', 'trajectory (Gulp)',
            'history (Gulp)', 'phonon (Gulp)', 'arc (Gulp)'
        ])
        workingDirectory = inv.str('Working Directory', default='$HOME')
        workingDirectory.meta[
            'tip'] = '''working directory where computation will
Пример #12
0
    class Inventory(Component.Inventory):
        import pyre.inventory as pyre_inventory

        A = pyre_inventory.float("A", default=1.0)
        B = pyre_inventory.float("B", default=2.0)
Пример #13
0
class Inventory(Component.Inventory):
    import pyre.inventory as inv
    a = inv.str('a', default='abc')
    a.meta['known_alternatives'] = ['def', 'ghi']
    b = inv.float('b', default=3.0)