Currently, the GUI does not enable you to derive the different components of the Darcy-vector. However, you can use the FEFLOW API by writing few lines in Python/C/C++.
Here is a small snippet, which illustrates one possible workflow. The script does the following:
[list]
[li]Load the FEFLOW Kernel as an external module. [/li]
[li]Create three Nodal Distributions to store three different components of the Darcy-vector (3D model is assumed)[/li]
[li]Make the three Nodal Distributions time-dependent[/li]
[li]Start the simulation an write the components to the distributions after each time-step[/li]
[/list]
[font=courier][color=blue]
import sys, os
sys.path.append('C:\\Program Files\\DHI\\2016\\FEFLOW 7.0\\bin64')
import ifm
# Assign scalar quantities of vector components to nodal distributions
def postTimeStep(doc):
for nNode in range(0,nNodes):
doc.setNodalRefDistrValue(rID_velX, nNode, doc.getResultsXVelocityValue(nNode))
doc.setNodalRefDistrValue(rID_velY, nNode, doc.getResultsYVelocityValue(nNode))
doc.setNodalRefDistrValue(rID_velZ, nNode, doc.getResultsZVelocityValue(nNode))
try:
#Get current working directory
dir=os.getcwd()
#Definition of files
FEM_FILE=dir+'\\exercise_fri20.fem'
FEM_FILE_OUT = dir + '\\exercise_fri20_OUT.fem'
DAC_FILE=dir+'\\exercise_fri20.dac'
print "Input: " + FEM_FILE
print "Output: " + DAC_FILE
#Load document
doc=ifm.loadDocument(FEM_FILE)
# Enable reference distribution recording
bEnable = 1 # disable = 0, enable = 1
# Create and enable distribution recording
doc.createNodalRefDistr("Velocity_X")
rID_velX = doc.getNodalRefDistrIdByName("Velocity_X")
doc.enableNodalRefDistrRecording(rID_velX,bEnable)
doc.createNodalRefDistr("Velocity_Y")
rID_velY = doc.getNodalRefDistrIdByName("Velocity_Y")
doc.enableNodalRefDistrRecording(rID_velY,bEnable)
doc.createNodalRefDistr("Velocity_Z")
rID_velZ = doc.getNodalRefDistrIdByName("Velocity_Z")
doc.enableNodalRefDistrRecording(rID_velZ,bEnable)
nNodes = doc.getNumberOfNodes()
# Start simulator
doc.startSimulator(DAC_FILE)
#Stop simulator
doc.stopSimulator()
except Exception as err:
print>>sys.stderr,'Error: '+str(err)+'!'
sys.exit(-1);
[/color][/font]
Please note that the script does not have been carefully tested.
If you want to load an existing dac-file instead of starting the simulation you can use the callback [font=courier][color=blue]doc.loadTimeStep() [/color][/font] instead of [font=courier][color=blue]postTimeStep()[/color][/font]. This callback is supported by the Python API only.