def outputFactory(name): """ Factory for material items. """ from pyre.inventory import facility from pylith.meshio.OutputSoln import OutputSoln return facility(name, family="output_manager", factory=OutputSoln)
class Inventory(Component.Inventory): import pyre.inventory as inv func = inv.facility('func', factory = Sin ) pass
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
def faultFactory(name): """ Factory for fault items. """ from pyre.inventory import facility from pylith.faults.FaultCohesiveKin import FaultCohesiveKin return facility(name, family="fault", factory=FaultCohesiveKin)
def observerFactory(name): """ Factory for output items. """ from pyre.inventory import facility from pylith.meshio.OutputConstraint import OutputConstraint return facility(name, family="observer", factory=OutputConstraint)
def materialFactory(name): """ Factory for material items. """ from pyre.inventory import facility from pylith.materials.ElasticIsotropic3D import ElasticIsotropic3D return facility(name, family="material", factory=ElasticIsotropic3D)
def eqsrcFactory(name): """ Factory for earthquake source items. """ from pyre.inventory import facility from EqKinSrc import EqKinSrc return facility(name, family="eq_kinematic_src", factory=EqKinSrc)
def bcFactory(name): """ Factory for boundary condition items. """ from pyre.inventory import facility from pylith.bc.DirichletBC import DirichletBC return facility(name, family="boundary_condition", factory=DirichletBC)
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)
def vertexGroupFactory(name): """ Factory for vertex group items. """ from pyre.inventory import facility return facility(name, factory=VertexGroup)
def materialFactory(name): """ Factory for material items. """ from pyre.inventory import facility return facility(name, factory=Material)
# # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # from qchem.fireball.Fireball import Fireball #from gamess.Gamess import Gamess #wait until Gamess is fully functional from os import sep from pyre.applications.Script import Script from molDynamics.GeneralSettings import GeneralSettings class QChemApp(Script): '''Driver for the quantum chemistry engines''' class Inventory(Script.Inventory): import pyre.inventory as pinv <<<<<<< .mine quantumEngine = pinv.facility('quantumEngine', default=Fireball()) ======= quantumEngine = pinv.facility('quantumEngine', default=Fireball()) # quantumEngine = pinv.facility('quantumEngine', default='fireball') >>>>>>> .r21 quantumEngine.meta['tip'] = 'which quantum engine to use' <<<<<<< .mine # quantumEngine.meta['known_plugins'] = ['fireball','gamess'] ======= # quantumEngine.meta['known_plugins'] = ['fireball','gamess'] generalSettings = pinv.facility('General Settings', default = GeneralSettings()) generalSettings.meta['tip'] = 'working directory, engine executable path, etc.' >>>>>>> .r21 def __init__(self,name='QChemApp'): Script.__init__(self, name)
class Inventory(Script.Inventory): import pyre.inventory as inv twoAtomInteraction = inv.facility('Two Atom Interaction Db', default=TwoAtomInteraction()) twoAtomInteraction.meta['tip'] = 'db of twoAtomsInteracting' dbRetrieval = inv.facility('Two Atom Interaction Db', default=TwoAtomInteraction()) dbRetrieval.meta['tip'] = 'db of twoAtomsInteracting'
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
class Inventory(Script.Inventory): import pyre.inventory as inv translator = inv.facility('translator', default=Trajectory()) #translator = inv.facility('translator', default='trajectory') translator.meta['tip'] = 'translate a file from one format to another' translator.meta['known_plugins'] = ['trajectory']
class Inventory(Component.Inventory): import pyre.inventory as pinv cod = pinv.facility('cod', default=Cod()) sqlite = pinv.facility('sqlite', default=Sqlite)