Author Topic: Darcy flux arrows by component  (Read 401 times)

anner.paldor

  • Posts: 11
    • View Profile
Darcy flux arrows by component
« on: February 18, 2016, 07:12:48 pm »
Hello,
I am working on a vertical 2D domain, modeling flow towards the sea. What I would like to be able to do is to color the arrows of darcy flux according to their magnitude, but with two different sets of colors according to the sign of their X component. I.e., arrows flowing towards the sea (lets say negative X component) are in shades of red while arrows with positive X velocities are in shades of blue.

Additionally, the possibilities regarding the representation of darcy arrows are too limited. For example, if my domain is too large (>10 km), than the arrows cannot be seen in a large perspective because darcy velocities are a few meters per day. Increasing the relative size of the arrows to the maximum (10) did not help. When I tried exporting the data to plot it myself, it turns out that FEFLOW exports only the magnitude and not the components. I suggest either to upgrade the plotting possibilities (in matlab, for example, the quiver plot can be manipulated in any exaggeration) or to enable exporting of the nodal darcy flux result by components.

Many thanks in advance,
Anner.

Björn Kaiser

  • Posts: 435
    • View Profile
Re: Darcy flux arrows by component
« Reply #1 on: April 19, 2016, 02:46:38 pm »
Thanks Anner.

Yes, plotting and exporting the Darcy flow components is a nice feature. We have this feature on our wishlist for future developments. In the meantime, you could write a small script (Python) or a small IFM plugin (C/C++). The following API functions allow you to retrieve the spatial components of the Darcy-vector as a nodal scalar quantity in m/d:


double IfmGetResultsXVelocityValue
(
   IfmDocument pDoc,
   int nNode
);

double IfmGetResultsYVelocityValue
(
   IfmDocument pDoc,
   int nNode
);

double IfmGetResultsZVelocityValue
(
   IfmDocument pDoc,
   int nNode
);


If you do not intend to export these quantities you could assign them to user defined Nodal Distributions:


void IfmSetNodalRefDistrValue
(
   IfmDocument pDoc,
   long rID,
   long nNode,
   double nValue
);


Use one Nodal Distribution for each component. If you have a transient model you could also allow time-dependent Nodal Distributions within FEFLOW:


IfmBool IfmEnableNodalRefDistrRecording
(
   IfmDocument pDoc,
   long rID,
   IfmBool bEnable
);