Skip to content
Snippets Groups Projects
Commit 9c92df63 authored by Tom Fischer's avatar Tom Fischer
Browse files

Handle Dupuit permeability.

parent cafc38b3
No related branches found
No related tags found
No related merge requests found
......@@ -105,6 +105,14 @@ def readConstantPermeabilityTensorEntries(tree):
return None
def readDupuitPermeabilityTensorParameter(tree):
type = tree.find("./type").text
if type == "Dupuit":
if (parameter := tree.find("./permeability_tensor_entries")) is not None:
return parameter.text
return None
def mplAppendConstant(mpl_properties, name, value):
mpl_properties.append(ET.XML("<property><name>" + name + "</name><type>" + \
"Constant</type><value>" + value + "</value>" + \
......@@ -115,6 +123,11 @@ def mplAppendParameter(mpl_properties, tag_name, parameter_name):
"Parameter</type><parameter_name>" + parameter_name + \
"</parameter_name></property>"))
def mplAppendDupuitParameter(mpl_properties, tag_name, parameter_name):
mpl_properties.append(ET.XML("<property><name>" + tag_name + "</name><type>" + \
"Dupuit</type><parameter_name>" + parameter_name + \
"</parameter_name></property>"))
def getVanGenuchtenSaturationValues(material_property):
SLR = material_property.find("./sr").text
SGR = "{0:.15g}".format(1 - float(material_property.find("./smax").text))
......@@ -221,7 +234,6 @@ def addMPLMaterialProperty(root, property_type, property_name, phase,
if p := readConstantPorosityParameter(material_property):
# Find parameter
ET.dump(root)
param = root.find("./parameters/parameter/[name='" + p + "']")
if v := readConstantValue(param):
mplAppendConstant(props, property_name, v)
......@@ -235,11 +247,15 @@ def addMPLMaterialProperty(root, property_type, property_name, phase,
if parameterUsesLocalCoordinateSystem(param):
# Keep parameters with local coord systems as they are.
mplAppendParameter(props, property_name, p)
removeXmlSubtree(material_property)
if v := readConstantValue(param):
if v := readDupuitConstantValue(param):
mplAppendConstant(props, property_name, v)
removeXmlSubtree(material_property)
#removeXmlSubtree(param)
return
if p := readDupuitPermeabilityTensorParameter(material_property):
# Find parameter
param = root.find("./parameters/parameter/[name='" + p + "']")
# Keep parameters for Dupuit permeability as they are.
mplAppendDupuitParameter(props, property_name, p)
return
if (property_name == "relative_permeability" \
......@@ -298,6 +314,10 @@ def removeMaterialProperty(root, property_type, property_name, phase,
removeXmlSubtree(param)
return
if p := readDupuitPermeabilityTensorParameter(material_property):
removeXmlSubtree(material_property)
return
if (property_name == "relative_permeability" \
or property_name == "capillary_pressure") \
and isCurveType(material_property):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment