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
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")
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 [-]")
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"')
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"')