Deltares / imod-python

🐍🧰 Make massive MODFLOW models
https://deltares.github.io/imod-python/
MIT License
17 stars 3 forks source link

increase the number of partition test cases for test_partitioning_unstructured.py #731

Open luitjansl opened 8 months ago

luitjansl commented 8 months ago

Add the following cases to the partitioning tests in test_partitioning_unstructured.py. This results in many failing tests. This should be fixed or at least understood.

def case_two_parts(self, idomain_top) -> xu.UgridDataArray:
    two_parts = zeros_like(idomain_top)
    two_parts.values[74:] = 1
    return two_parts

def case_two_parts2(self, idomain_top) -> xu.UgridDataArray:
    two_parts = zeros_like(idomain_top)
    two_parts.values[47:] = 1
    return two_parts

def case_two_parts3(self, idomain_top) -> xu.UgridDataArray:
    two_parts = zeros_like(idomain_top)
    two_parts.values[147:] = 1
    return two_parts

def case_two_parts4(self, idomain_top) -> xu.UgridDataArray:
    two_parts = zeros_like(idomain_top)
    two_parts.values[187:] = 1
    return two_parts

def case_two_parts_inverse(self, idomain_top) -> xu.UgridDataArray:
    two_parts_inverse = zeros_like(idomain_top)
    two_parts_inverse.values[:74] = 1
    return two_parts_inverse

def case_two_parts_inverse2(self, idomain_top) -> xu.UgridDataArray:
    two_parts_inverse = zeros_like(idomain_top)
    two_parts_inverse.values[:47] = 1
    return two_parts_inverse

def case_two_parts_inverse3(self, idomain_top) -> xu.UgridDataArray:
    two_parts_inverse = zeros_like(idomain_top)
    two_parts_inverse.values[:147] = 1
    return two_parts_inverse

def case_two_parts_inverse4(self, idomain_top) -> xu.UgridDataArray:
    two_parts_inverse = zeros_like(idomain_top)
    two_parts_inverse.values[:187] = 1
    return two_parts_inverse
luitjansl commented 8 months ago

Adding these test cases results in failing tests. After reindexing the balance fields, the number of failing tests decreased. But some still remain. case two_parts2 was investigated, and it turned out that the chd-balance error in 1 cell is different before and after partitioning by exactly the amount of flow over the partition boundary of that element. So it seems that mf6 has computed the chd balance without accounting for the partition boundary of the element.