def get_parameters_from_reader(reader, **kwargs): """Get particle parameter data from an option reader object.""" del reader options_base = '/embedded_models/particle_model/particle_classes' parameters = [] def get_option(pclass, key, default=None): """libspud wrapper.""" result = default if libspud.have_option('/'.join((options_base, pclass, key))): result = libspud.get_option('/'.join((options_base, pclass, key))) return result for i in range(libspud.get_number_of_children(options_base)): key = libspud.get_child_name(options_base, i) name = get_option(key, 'name') diameter = get_option(key, 'diameter') distribution = get_option(key, 'distribution') density = get_option(key, 'density', default=2.5e3) parameters.append( PhysicalParticle(diameter=diameter, rho=density, distribution=distribution, material_name=name, **kwargs)) return parameters
def get_parameters_from_options(options_file=None, **kwargs): """Read particle data from Fluidity options file.""" if options_file: libspud.load_options(options_file) parameters = [] options_base = '/embedded_models/particle_model/particle_classes' def get_option(pclass, key, default=None): """Get option from key.""" result = default if libspud.have_option('/'.join((options_base, pclass, key))): result = libspud.get_option('/'.join((options_base, pclass, key))) return result for i in range(libspud.get_number_of_children(options_base)): key = libspud.get_child_name(options_base, i) name = get_option(key, 'name') diameter = get_option(key, 'diameter') distribution = get_option(key, 'distribution') density = get_option(key, 'density', default=2.5e3) parameters.append( PhysicalParticle(diameter=diameter, rho=density, distribution=distribution, material_name=name, **kwargs)) return parameters
def get_parameters_from_options(options_file=None,**kwargs): if options_file: libspud.load_options(options_file) parameters = [] options_base = '/embedded_models/particle_model/particle_classes' def get_option(pclass,key,default=None): result = default if libspud.have_option('/'.join((options_base,pclass,key))): result = libspud.get_option('/'.join((options_base,pclass,key))) return result for i in range(libspud.get_number_of_children(options_base)): key = libspud.get_child_name(options_base,i) name = get_option(key,'name') diameter = get_option(key,'diameter') distribution = get_option(key,'distribution') density = get_option(key,'density',default=2.5e3) parameters.append(PhysicalParticle(diameter=diameter, rho=density, distribution=distribution, material_name=name, **kwargs)) return parameters
import libspud libspud.load_options('test.flml') #libspud.print_options() assert libspud.get_option('/timestepping/timestep') == 0.025 assert libspud.get_number_of_children('/geometry') == 5 assert libspud.get_child_name('geometry', 0) == "dimension" assert libspud.option_count('/problem_type') == 1 assert libspud.have_option('/problem_type') assert libspud.get_option_type('/geometry/dimension') is int assert libspud.get_option_type('/problem_type') is str assert libspud.get_option_rank('/geometry/dimension') == 0 assert libspud.get_option_rank( '/physical_parameters/gravity/vector_field::GravityDirection/prescribed/value/constant' ) == 1 assert libspud.get_option_shape('/geometry/dimension') == (-1, -1) assert libspud.get_option_shape('/problem_type')[0] > 1 assert libspud.get_option_shape('/problem_type')[1] == -1 assert libspud.get_option('/problem_type') == "multimaterial" assert libspud.get_option('/geometry/dimension') == 2 libspud.set_option('/geometry/dimension', 3) assert libspud.get_option('/geometry/dimension') == 3
def _children(self, path, test): for i in range(libspud.get_number_of_children(path)): child = libspud.get_child_name(path,i) if test(child): yield child
import libspud libspud.load_options('test.flml') #libspud.print_options() assert libspud.get_option('/timestepping/timestep') == 0.025 assert libspud.get_number_of_children('/geometry') == 5 assert libspud.get_child_name('geometry', 0) == "dimension" assert libspud.option_count('/problem_type') == 1 assert libspud.have_option('/problem_type') assert libspud.get_option_type('/geometry/dimension') is int assert libspud.get_option_type('/problem_type') is str assert libspud.get_option_rank('/geometry/dimension') == 0 assert libspud.get_option_rank('/physical_parameters/gravity/vector_field::GravityDirection/prescribed/value/constant') == 1 assert libspud.get_option_shape('/geometry/dimension') == (-1, -1) assert libspud.get_option_shape('/problem_type')[0] > 1 assert libspud.get_option_shape('/problem_type')[1] == -1 assert libspud.get_option('/problem_type') == "multimaterial" assert libspud.get_option('/geometry/dimension') == 2 libspud.set_option('/geometry/dimension', 3) assert libspud.get_option('/geometry/dimension') == 3