-
Notifications
You must be signed in to change notification settings - Fork 12
Notes on noncircular inlets
The InletProcessing module in Tools/setuptool requires a number of other Python packages, namely: -fipy -gist -pysparse -ez_setup
Components needed for this project:
Tools/setuptool/InletProcessing
Code/lb/iolets/ (velocity-based iolets) Code/lb/streamers/LaddIoletDelegate.h (to put correct streaming from the inlet)
First test inlet dataset:
- nhnn_4beats_ave (please check if the velocity plane locations are aligned on the main artery or whether they've been placed in a branch (this was the case in one of Aditya's debug data sets))
This chunk graph lays out the pieces of work to be done for this. It can be modified at will as insights evolve. /italics/ means done, bold means blocked due to problems, normal text means ongoing or not yet started.
- create Tools/setuptool/InletProcessing/Run.py (done by Rupert)
- build an output writer for Tools/setuptool/InletProcessing/Run.py
- use Tools/setuptool/InletProcessing/Run.py to generate a weighted velocity profile (henceforth named 'WVP').
- Read in the WVP with a single process.
- As previous, but do it for relevant parts of the WVP for a single process.
- As previous, but do it for all IOlet processes.
- Convert the obtained weightings to sensible units for HemeLB.
- Trace down the global site coordinates to the coordinates locally on the process.
- Add the weight value to each of the iolet sites as a fixed variable (should be in the IOlet class, not the Lattice Site class, to prevent complexity infection)
- Impose velocities according to the weights in the inlets.
- Write unit tests for the new functionality.
- Test for correctness, using unit tests and visual analysis.
- Test for performance.
The input format is ASCII, two important fields are:
After "PointIds" comes a list of 3D global site coordinates in order, format X Y Z X Y Z X Y Z
(3 points on one line)
After "LOOKUP_TABLE default" comes a list of velocities in order vX vY vZ vX vY vZ vX vY vZ
- On VTK file formats: http://www.vtk.org/VTK/img/file-formats.pdf
I have a decent testing set at /home/derek/hemelb-shared/bifurcation-50um/
The fipy/hemelb code needs to be changed to behave well for huge inlets. The following should be changed in fipy for example (FILE: <base_dir>/solvers/trilinos/LinearLUSolver.py):
class LinearLUSolver(TrilinosSolver):
"""
The `LinearLUSolver` is an interface to the Amesos KLU solver in Trilinos.
"""
def __init__(self, tolerance=1e-10, iterations=10, precon=None, maxIterations=10):
Here, both iterations and maxIterations should be set to at least 50.