Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 6
0
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