示例#1
0
def fixVerboseObject(xml):
    for vo in asearch.gen_by_path(xml, "VerboseObject"):
        vo.set("name", "verbose object")
        try:
            asearch.change_name(vo, "Verbosity Level", "verbosity level", no_skip=True)
        except aerrors.MissingXMLError:
            pass
示例#2
0
def snow_depth(xml):
    for seb_pk in asearch.gen_by_path(xml, ["PKs", "SEB"]):
        if seb_pk.isElement("primary variable key") and \
             asearch.child_by_name(seb_pk,"primary variable key").getValue() == "surface-snow_depth" and \
             seb_pk.isElement("conserved quantity key") and \
             asearch.child_by_name(seb_pk,"conserved quantity key").getValue() == "snow_depth":
            asearch.child_by_name(seb_pk, "conserved quantity key").set(
                "value", "surface-snow_depth")
示例#3
0
def vanGenuchtenParams(xml):
    """Can turn off derivative of source terms"""
    for wrm in asearch.gen_by_path(xml, ["WRM parameters"]):
        for region in wrm:
            change_name(region, "van Genuchten alpha",
                        "van Genuchten alpha [Pa^-1]")
            change_name(region, "van Genuchten m", "van Genuchten m [-]")
            change_name(region, "van Genuchten n", "van Genuchten n [-]")
            change_name(region, "van Genuchten residual saturation",
                        "residual saturation [-]")
            change_name(region, "residual saturation",
                        "residual saturation [-]")
示例#4
0
def checkManning(xml):
    fe_list = asearch.gen_by_path(xml, ["state", "field evaluators"])
    for eval in fe_list:
        if eval.get("name").endswith('manning_coefficient'):
            eval_type = eval.getElement('field evaluator type')
            if eval_type.getValue() == 'independent variable':
                func_reg = eval.getElement("function")
                for reg in func_reg:
                    comp_entries = asearch.findall_name(reg, ['components'])
                    if len(comp_entries) > 1:
                        # previous iterations of this script were broken...
                        for entry in comp_entries[1:]:
                            reg.remove(entry)

                    fixed = False
                    if not fixed:
                        try:
                            comp = reg.getElement('component')
                        except aerrors.MissingXMLError:
                            pass
                        else:
                            reg.pop('component')
                            assert not any(el.getName() == 'component'
                                           for el in reg)
                            reg.append(
                                parameter.ArrayStringParameter(
                                    'components', ['cell', 'boundary_face']))
                            fixed = True

                    if not fixed:
                        try:
                            comp = reg.getElement('components')
                        except aerrors.MissingXMLError:
                            pass
                        else:
                            reg.pop('components')
                            assert not any(el.getName() == 'components'
                                           for el in reg)
                            reg.append(
                                parameter.ArrayStringParameter(
                                    'components', ['cell', 'boundary_face']))
                            fixed = True

                    if not fixed:
                        print(reg.__str__().decode('utf-8'))
                        raise aerrors.MissingXMLError(
                            'Missing "component" or "components"')
示例#5
0
def checkManning(xml):
    fe_list = asearch.gen_by_path(xml, ["state", "field evaluators"])
    for eval in fe_list:
        if eval.get("name").endswith('manning_coefficient'):
            eval_type = eval.getElement('field evaluator type')
            if eval_type.getValue() == 'independent variable':
                func_reg = eval.getElement("function")
                for reg in func_reg:
                    fixed = False
                    if not fixed:
                        try:
                            comp = reg.getElement('component')
                        except aerrors.MissingXMLError:
                            pass
                        else:
                            reg.pop('component')
                            reg.append(
                                parameter.ArrayStringParameter(
                                    'components', ['cell', 'boundary_face']))
                            fixed = True

                    if not fixed:
                        try:
                            comp = reg.getElement('components')
                        except aerrors.MissingXMLError:
                            pass
                        else:
                            reg.pop('components')
                            reg.append(
                                parameter.ArrayStringParameter(
                                    'components', ['cell', 'boundary_face']))
                            fixed = True

                    if not fixed:
                        print(reg.__str__().decode('utf-8'))
                        raise aerrors.MissingXMLError(
                            'Missing "component" or "components"')