Suggested by Peter Schätzl New 

It would be nice to have an option to set discrete features to 'inactive', the same way as regular finite elements can be deactivated. For sceario simulation, DFs would then not have to be removed from the model and added again.
Comments (8)
  • Hi Peter,

    Thanks, it is definitely a useful feature if implemented. I will emphasize this to developers once more.

    Nice weekend!

  • instead of deactivating it, can their parameters be changed over time?

    we are dealing with a bunch of wells that got infilled at some point, sealing off any cross layer connection ... we go them implemented as MLWs and thought of a couple of ideas
    • deactivate the well. I believe we could achieve that by adding a gap into the power function. but does that break cross layer connections?
    • MLWs are DFs with a BC: we could resample that, but standard DF cannot have a permeability less than the matrix
    • could we resemble the well with a DNC and BC. that would allow less permeability in the DF, but can it be changed over time from high permeability (active well) to low permeability (inactive well)?
    • other options would be using scripting ... delete the MLW when infilled. that would delete the connection and BC
    Thoughts? Comments? other ideas?
  • Hi Chris,

    By using scripting, you can change the DF properties over time. So I'd probably use a DF and a BC (rather than a MLW) and then change the permeability during runtime. I expect that you could even use a 0 permeability as the matrix permeability will be left and you will not have zero values in the matrix system. As for the gap, I would not expect that this would break the connection (and I think it shouldn't, as most users would probably use it for zero pumping rather than filling in wells).
  • Thanks Peter.

    I tested a gap in a MLW time series last night and it behaves very much the same way as setting it to 0; no water withdrawal, but the connection between layers remains. While gaps make sense for other BCs (such as a Type 1, where setting it to 0 wouldn't turn it off, but rather still represent a const head of 0), it doesn't seem to make much sense for a MLW. I would either just used the actual pumping rate or 0, instead of a gap.

    I know, MLWs are represented as a discrete feature with a BC in FeFlow; instead of using a MLW, we could just resemble a MLW with assigning a DF and BC explicitly. Assuming the same parameterisation, that should return the same results. However, it is my understanding that the traditional DF only works as long as its permeability is larger than the surrounding matrix permeability. would setting it to low or 0 actually work? or would we have to use the dual node approach to be able to set a low/0 permeability for the infilled "well" DF?

    I think the other option would be to use scripting to delete the MLW BC at the time of infilling. While technically not exactly the same, I suspect it would return close enough results.

  • The DF adds additional hydraulic conductivity between the corresponding nodes. So a DF with a permeability/conductivity of 0 is equal to no DF. This means, changing the properties of the DF should be perfectly OK.
    Regarding deletion of the MLW BC via scripting, I'm not sure whether MLWs are accessible via the programming interface (maybe new functionality I haven't come across yet...).
  • I found 10 references to MultiLayerWell in


    but none re: deleting a multi layer well. For other BC Types, if you set bcType = IfmBC_NO it effectively deletes the BC.

    However, I don't see a constant IfmMLW_NO that could be set for IfmMLW_ATTR.
  • Hi guys,

    Currently, we support only the following methods:

    /* Multi-layer wells (v. 6.202) */
      IfmBool (*queryMultiLayerWellInfo) (IfmHandle, int, IfmMLWInfo*);

    /* Multi-layer wells (v. 6.206) */
      int     (*getNumberOfMultiLayerWells) (IfmDocument pDoc);
      IfmBool (*isMultiLayerWellAttrValid) (IfmDocument pDoc, int, IfmMLW_ATTR);
      IfmBool (*isMultiLayerWellAttrTransient) (IfmDocument pDoc, int, IfmMLW_ATTR);
      double  (*getMultiLayerWellAttrValue) (IfmDocument pDoc, int, IfmMLW_ATTR);
      int     (*getMultiLayerWellAttrTSID) (IfmDocument pDoc, int, IfmMLW_ATTR);
      void    (*setMultiLayerWellAttrValue) (IfmHandle, int, IfmMLW_ATTR, double);
      void    (*setMultiLayerWellAttrTSID) (IfmHandle, int, IfmMLW_ATTR, int);
    /* Multi-layer well extensions (v. 7.001) */
      int         (*getMultiLayerWellTopNode) (IfmDocument pDoc, int nId);
      int         (*getMultiLayerWellBottomNode) (IfmDocument pDoc, int nId);

    So far it is only supported to alter the MLW attributes but not delete them.

  • Thanks Carlos, for confirming.