Posted Tue, 10 Aug 2021 00:00:50 GMT by Assaf Wunsch
The FEFLOW GUI has an auxiliary data menu to view relative permeabilities, but I couldn't find something similar in IFM.

Thanks!
Posted Tue, 10 Aug 2021 05:26:09 GMT by Peter Schätzl Grundwassermodellierer
Hi Assaf,

I haven't yet used it myself, but the What's new chapter of the help in FEFLOW 7.4 says:

"Through the generalized method doc.getParameter(), we offer a comfortable methodology to access new parameters such as:
    Auxiliary parameters
    Modulation functions"

So with the latest version there seems to be a possibilty. In C/C++ it would be IfmGetParameter() then.

Cheers,
Peter
Posted Tue, 10 Aug 2021 17:34:20 GMT by Assaf Wunsch
Thanks Peter!

I found a list of parameters here:
http://www.feflow.info/html/help74/feflow/13_Programming/IFM/ifm_constants.htm#Flow-Related_Parameters

But none are for to relative permeability.
Related to that - I have an "open ticket" with DHI support folks, who confirmed that the codes for unsat properties (FIT_COEFF, FIT_EXPO etc.) don't work. 

Cheers,
Assaf
Posted Wed, 11 Aug 2021 05:41:31 GMT by Peter Schätzl Grundwassermodellierer
I've also had a look through all parameters in ifm.Enum... with the same result: The only auxiliary parameters I can find are P_AUXDIST_E and P_AUXDIST_N which seem to refer to sayer thickness and slice distance. Maybe someoniein support could confirm with dev that the others are not accessible?
Posted Wed, 11 Aug 2021 14:15:37 GMT by Assaf Wunsch
Thanks Peter - DHI support did confirm that the unsat properties constants are missing, and the person I contacted said they'll try to resolve this ASAP. Maybe they'll catch the other missing constants along the way...

BTW, where did you look to find the AUX constants?
Posted Thu, 12 Aug 2021 06:50:17 GMT by Peter Schätzl Grundwassermodellierer
dir(ifm.Enum) gives you all the constants, then I filtered by a number of search strings.
Posted Wed, 15 Sep 2021 14:26:27 GMT by Assaf Wunsch
An update on this question:

This command:
[code]doc.getParamValue((ifm.Enum.P_AUXDIST_E, "auxRelPerm"),n)[/code]
will retrieve the relative permeability from the element number "n".

My objective, however, was trying to obtain a relative permeability value at an observation point, not element. I have a two-step solution.
First, a small function that calculates the element number at the observation point (my observation points don't fall squarely on mesh nodes):

[code]def nearestElemToObs(obs):
    X = doc.getXOfObsId(obs)
    Y = doc.getYOfObsId(obs)
    Z = doc.getZOfObsId(obs)
    Elem = doc.findElementAtXYZ(X,Y,Z)
    return Elem[/code]

Then later in the code, I call this function from a loop that runs through all observation points:
[code]for obs in range(obs_nodes):
    # other actions here...
    relK_value = doc.getParamValue((ifm.Enum.P_AUXDIST_E, "auxRelPerm"),nearestElemToObs(obs))[/code]

Shout out to Sophie from DHI and Peter for helping out.

You must be signed in to post in this forum.