Skip to content
This repository was archived by the owner on May 27, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
107ecf1
changes to documentation
Mectr0 Nov 10, 2021
1f7f9ec
fixing issues
Mectr0 Nov 10, 2021
85a28cb
Fixed SenseiPersonal.md documentation
Mectr0 Nov 10, 2021
96a2866
Merge pull request #1 from Mectr0/master
Ryan-Jeziorski Jan 7, 2022
8e1dff3
Change to LPDataAdapter.cpp
Mectr0 Jan 7, 2022
a3e9e4d
Merge pull request #2 from Mectr0/master
Ryan-Jeziorski Jan 7, 2022
0bc005d
Update git to ignore /vtk files
Ryan-Jeziorski Jan 8, 2022
0213b70
updated data adaptor
Mectr0 Jan 25, 2022
1542fde
Merge pull request #3 from Mectr0/master
Ryan-Jeziorski Jan 26, 2022
ca36a97
Fix code formatting for readability
Ryan-Jeziorski Jan 26, 2022
16de134
Merge pull request #1 from Ryan-Jeziorski/master
Mectr0 Jan 26, 2022
eee5aca
Changes to LPDataAdaptor.cpp
Mectr0 Jan 28, 2022
cd7a03e
Added to Palabos MetaData and Palabos portion of GetMesh
Mectr0 Jan 29, 2022
a73b6f9
Change to BlockCellArraySize for palabos
Mectr0 Jan 29, 2022
09ca80c
Palabos MetaData update
Mectr0 Jan 31, 2022
ca7dc9b
Fixed Cells Data
Mectr0 Feb 1, 2022
1c5ac6c
Further fixes to LPDataAdaptor and a few changes in ibm3D.hh to start…
Mectr0 Feb 2, 2022
bd07f12
Fixed Cells data and changed communicator distance in in.lmp4cell
Mectr0 Feb 7, 2022
27a434e
New Readme for setting up SENSEI simulation
Mectr0 Feb 13, 2022
b272efe
resolving comments from Silvio
Mectr0 Feb 16, 2022
c864faa
working on fluid fixes
Mectr0 Feb 24, 2022
c42450f
still working on fluid
Mectr0 Feb 25, 2022
bd637e7
changes to development branch
Mectr0 Mar 6, 2022
35d4aa9
Adding for fluid data
Mectr0 Mar 7, 2022
450db2b
cout changes
Mectr0 Mar 8, 2022
e095d50
New tests for fluid
Mectr0 Mar 11, 2022
4cfbbb8
Fluid Data fixed
Mectr0 Mar 23, 2022
447cd43
fluid fixed
Mectr0 Mar 24, 2022
b28d245
Passing envelopeWidth and added to cellFlow.xml
Mectr0 Mar 28, 2022
2fecc42
Working on surface masking for fluid data
Mectr0 Apr 6, 2022
59ad0a9
final changes for fluid
Mectr0 Apr 14, 2022
782610d
Changes for running with Catalyst
Mectr0 Apr 21, 2022
242ebe2
Merge pull request #2 from Mectr0/Development
Mectr0 Apr 21, 2022
6117f56
Adding setup script
Mectr0 May 3, 2022
62c5a44
Merge pull request #3 from Mectr0/Development
Mectr0 May 3, 2022
8a65eb6
simulation parameter
Mectr0 May 5, 2022
f15584d
Merge pull request #4 from Mectr0/Development
Mectr0 May 5, 2022
1f397c5
dump file for scaled up sim
Mectr0 May 5, 2022
bfda176
Merge pull request #5 from Mectr0/Development
Mectr0 May 5, 2022
c93d70b
Scaling state script
Mectr0 May 5, 2022
9c4148a
Merge pull request #6 from Mectr0/Development
Mectr0 May 5, 2022
0ad9a86
changes
Mectr0 May 5, 2022
b404cdf
changes
Mectr0 May 5, 2022
0cfb7ce
Partial fix to memory leak
Mectr0 May 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ build/
*.vti
*.dat
*.pvd
dump.*

CMakeFiles/
*.vtk
*.cobaltlog
Expand All @@ -12,3 +12,4 @@ CMakeFiles/
log.lammps
examples/embolism/embolism
examples/singleCell/cellFlow
examples/singleCell/vtk_output/*
12 changes: 7 additions & 5 deletions Docker/singleCell/SENSEI-ParaView/Dockerfile
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM ubuntu:18.04
SHELL ["/bin/bash", "-c"]

# directory structure for the build
ENV BASEDIR=/singleCell
ENV BASEDIR=/SeniorDesign
ENV SRCDIR=$BASEDIR/src
ENV INSTALLDIR=$BASEDIR/install
ENV BUILDDIR=$BASEDIR/build
Expand Down Expand Up @@ -104,7 +104,9 @@ RUN make -j8 install
# clone SENSEI
WORKDIR ${SRCDIR}
# this line clones develop branch
RUN git clone https://github.com/SENSEI-insitu/SENSEI.git
RUN git clone https://github.com/SENSEI-insitu/SENSEI.git && \
cd SENSEI && \
git checkout v3.2.2

# config SENSEI
WORKDIR ${BASEDIR}
Expand Down Expand Up @@ -135,7 +137,7 @@ RUN make -j8 install
###################################

WORKDIR ${SRCDIR}
RUN git clone https://github.com/ddiLab/BloodFlow.git
RUN git clone https://github.com/Mectr0/BloodFlow.git

###################################
### Palabos ###
Expand Down Expand Up @@ -181,7 +183,7 @@ RUN make yes-MOLECULE \
# configure
WORKDIR ${BASEDIR}
RUN cmake -S ${SRCDIR}/BloodFlow/examples/singleCell \
-B ${BUILDDIR}/singleCell \
-B ${SRCDIR}/BloodFlow/examples/singleCell/build \
-DSENSEI_DIR=${INSTALLDIR}/sensei/lib/cmake \
-DPALABOS_ROOT=${SRCDIR}/palabos \
-DBLOODFLOW_ROOT=${SRCDIR}/BloodFlow \
Expand All @@ -190,7 +192,7 @@ RUN cmake -S ${SRCDIR}/BloodFlow/examples/singleCell \
-DCMAKE_CXX_STANDARD=11

# build
WORKDIR ${BUILDDIR}/singleCell
WORKDIR ${SRCDIR}/BloodFlow/examples/singleCell/build
RUN make -j 8

############################
Expand Down
3 changes: 2 additions & 1 deletion Docker/singleCell/SENSEI-ParaView/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# individual users must edit this
# environment variable to match their
# system or docker hub username
export IMAGENAME="srizzi/singlecell-sensei-paraview:latest"
export IMAGENAME="singlecell-sensei-paraview:latest"

docker build -t $IMAGENAME .

Empty file modified Docker/singleCell/SENSEI-ParaView/testscript.py
100644 → 100755
Empty file.
Empty file modified Docker/singleCell/SENSEI-VTK/Dockerfile
100644 → 100755
Empty file.
Empty file modified PALABOS.md
100644 → 100755
Empty file.
4 changes: 2 additions & 2 deletions README.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ BloodFlow has several directories and text files, each with a specific purpose.
1. PALABOS.md : This text file includes lines of code within embolism.cpp that are of interest.
It attempts to explain code developed by Palabos that someone new to the software may not understand, even when being proficient in c++.

1. [Embolism Example](examples/embolism/README.md) lists instructions on how to build LAMMPS and Palabos as well as running the embolism example.
1. [Embolism Example](examples/embolism/README.md) lists instructions on how to build LAMMPS and Palabos as well as running the embolism example. NOTE: This example doesn't include integration of SENSEI

2. SENSEI.md : Instructions on how to build SENSEI on Cooley and how to run an example called oscillator\
[SenseiPersonal.md](SenseiPersonal.md) gives documentation on building SENSEI on one's personal computer. This is required to run the singleCells example with SENSEI.

3. [Follow this link](examples/singleCell/singleCellPersonal.md) for instructions on how to run the singleCell simulation
3. [Follow this link](examples/singleCell/singleCellPersonal.md) for instructions on how to run the singleCell simulation on a personal computer. NOTE: Going through the embolism example will help with building LAMMPS and Palabos, both of which are needed for this example


4. examples (directory) : Several examples exist here to begin getting familiar to running such code.
Expand Down
141 changes: 141 additions & 0 deletions README2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Using the BloodFlow Repository
Palabos + LAMMPS + SENSEI Integration for in-situ visualization is the goal for this repository.
Dr. Jifu Tan had successfully coupled Palabos and LAMMPS to simulate the flow of blood cells within plasma.
BloodFlow has several directories, each with a specific purpose. These are listed below:
## Quick start embolism example for Palabos and LAMMPS coupling (no SENSEI involved) NOTE: To run on Cooley rather than your personnal computer, there are several changes listed at the bottom
1. In your home directory, make a directory named *src* and change directories to *src*. \
`cd ~` \
`mkdir src` \
`cd ~/src`
2. Clone Palabos into your *src* directory. We include a command that changes the version to the one known to work for this project.
`git clone https://gitlab.com/unigespc/palabos.git` \
`git checkout e498e8ad7f24fd7ff87313670db7873703c1fd3f` (update to the version we know works)
3. Also clone LAMMPS to the *src* directory. \
`git clone https://github.com/lammps/lammps.git` \
`git checkout e960674cea38515ae3749218c314a9e1a3c6c140` (update to the version we know works)
4. Make sure you have cmake (version 3.17.3), make (GNU Make 4.2.1), openmpi (Open MPI 4.0.3) installed. My tested version for each are listed in the parenthesis. Other versions should work, but these are given just in case.
5. Clone the *BloodFlow* repository. This can be done using either ssh or https. If you create a ssh key with your github account, ssh allow you to push and pull changes without having to type your username and password.
`cd ~` \
`git clone git@github.com:ddiLab/BloodFlow.git` (clone with ssh)\
`git clone https://github.com/ddiLab/BloodFlow.git` (clone with https)
6. To run both the embolism and singleCell examples, several files need to be copied from *BloodFlow/rbc* to *lammps/src*.\
`cd ~/BloodFlow/rbc` \
`cp angle* ~/src/lammps/src` \
`cp bond* ~/src/lammps/src` \
`cp dihedral* ~/src/lammps/src` \
`cp fix* ~/src/lammps/src`

7. Go to the *src* directory that is found within the LAMMPS repository you just cloned and make sure the MOLECULE and MC packages are installed. \
`cd ~/src/lammps/src` \
`make yes-MOLECULE` \
`make yes-MC`
8. Compile lammps as a library. Before doing so, you will have to append a `-std=c++11` flag in CCFLAGS in the ~Makefile.mpi in the *lammps/src/MAKE* folder \
`cd ~/src/lammps/src/MAKE` \
`vi Makefile.mpi` \
My CCFLAGS line looks like this: `CCFLAGS = -g -03 -std=c++11` \
Save the file. \
`cd ~/src/lammps/src` \
`make mpi mode=lib`
9. Create a *build* directory in the *embolism* example directory and compile the embolism example. \
`cd ~/BloodFlow/examples/embolism` \
`mkdir build` \
`cd build` \
`cmake ..` \
`make -j6` \
NOTE: `-jX` make running make command faster. This depends on how many processors you can run it on.
10. Run the Simulation.
`cd ~/BloodFlow/examples/embolism` \
`mpirun -np 4 embolism in.embolism`
---
COOLEY CHANGES:

- The embolism.sh executable file needs to have a directory path updated. This file is in *BloodFlow/examples/embolism*. \
Change the path to: `EMB_PATH=path/to/your/embolism`

- Several paths need to be changed in *cooley.cmake*, which is found in *BloodFlow/sites*.

- When running on Cooley, the cmake command in step 9 should be the following:
`cmake -C /path/to/BloodFlow/sites/cooley.cmake ..`
- To run the simulation on Cooley, use the following command:
`qsub -n X -t X -A <ProjectName> ./embolism.sh` \
Values of X: \
-n : number of nodes \
-t : allocated time

---

## Implementing SENSEI using singleCell example. NOTE: Do the embolism example first because this example uses the softwares built in that example.

1. There is a file names *personal.cmake* in *BloodFlow/sites*. The first three lines need their paths corrected.
2. Make sure all these packages are installed: \
`sudo apt-get update`
```bash
sudo apt-get install -y \
git \
build-essential \
autoconf \
libtool \
libmpich-dev \
libssl-dev \
wget \
pkg-config \
python3-dev \
python3-numpy \
libosmesa6-dev \
libgl1-mesa-dev \
libtbb-dev
```
3. Clone and configure Paraview v5.9.1 superbuild in *~/src* directory. Send build files to a new directory *home/build* and set install location to a new directory *home/install*. \
`git clone --recursive https://gitlab.kitware.com/paraview/paraview.git` \
`cd paraview/`
`git checkout v5.9.1` \
`git submodule update --init --recursive`
```bash
cmake -B ~/build/paraview -S ~/src/paraview \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=~/install/paraview \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_C_COMPILER=gcc \
-DPARAVIEW_USE_PYTHON=ON \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_USE_QT=OFF \
-DVTK_SMP_IMPLEMENTATION_TYPE=TBB \
-DPARAVIEW_BUILD_EDITION=CATALYST_RENDERING \
-DVTK_USE_X=OFF \
-DVTK_OPENGL_HAS_OSMESA=ON \
-DOSMESA_INCLUDE_DIR=/usr/include/GL/ \
-DOSMESA_LIBRARY=/usr/lib/x86_64-linux-gnu/libOSMesa.so
```
4. Build and install Paraview.
`cd ~build/paraview` \
`make -j8 install`

5. Clone SENSEI in the *~/build* directory and then configure.
`git clone https://github.com/SENSEI-insitu/SENSEI.git`
```bash
cmake -S ~/src/SENSEI -B ~/build/sensei \
-DCMAKE_INSTALL_PREFIX=~/install/sensei \
-DParaView_DIR=~/install/paraview/lib/cmake/paraview-5.9 \
-DENABLE_CATALYST=ON \
-DENABLE_VTK_IO=ON \
-DENABLE_LAMMPS=OFF \
-DENABLE_MANDELBROT=OFF \
-DENABLE_OSCILLATORS=OFF \
-DENABLE_ADIOS2=OFF \
-DADIOS2_DIR=${ADIOS2_DIR}
```
XXX: Do we need -DADIOS2_DIR command?

6. Build and install SENSEI \
`cd ~/build/sensei` \
`make -j8` \
`make -j8 install`

7. Create a *build* directory in *BloodFlow/examples/singleCell/*, move into it and make comple the code. \
`cmake -DSENSEI_DIR=~/install/SENSEI/lib/cmake/ -C ~/BloodFlow/sites/personal.cmake ../` \
`make -j8` \
XXX: It should be install/SENSEI, but maybe build?
8. In the *singleCell* directory, run the simulation. \
`mpirun -n 4 cellFlow in.lmp4cell`


Empty file modified SENSEI.md
100644 → 100755
Empty file.
97 changes: 31 additions & 66 deletions SenseiPersonal.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,76 +1,41 @@
# Building SENSEI on a personnal computer

1. Clone the repo in the home directory: `git clone https://gitlab.kitware.com/sensei/sensei.git src`
1. Clone the SENSEI repo: `git clone https://github.com/SENSEI-insitu/SENSEI.git`

2. If you don't have cmake, ccmake, and make, install them.

3. SENSEI has some dependencies on ParaView, so we will need to install the ParaView superbuild.

* Clone ParaView superbuild repo with: \
`git clone --recursive https://gitlab.kitware.com/paraview/paraview-superbuild.git src`

* configure with cmake: NOTE: I used ccmake to view all configuration options, it might be helpful due to the ParaView repo updating versions (5.10.0 was available to me). \

`cmake -B ./build -S ./src \
-DCMAKE_BUILD_TYPE_paraview=Release \
-DCMAKE_INSTALL_PREFIX="/home/mectro/pvtest/" \
-DENABLE_cxx11=ON \
-Dparaview_SOURCE_SELECTION:STRING="5.10.0" \
-DENABLE_zfp:BOOL=OFF \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DENABLE_netcdf:BOOL=OFF \
-DENABLE_visitbridge:BOOL=ON \
-DENABLE_ffmpeg:BOOL=OFF \
-DENABLE_qt5:BOOL=OFF \
-DENABLE_mpi:BOOL=ON \
-DUSE_SYSTEM_mpi:BOOL=ON \
-DENABLE_paraview:BOOL=ON \
-DENABLE_paraviewsdk:BOOL=ON \
-DENABLE_xdmf3:BOOL=OFF \
-DBUILD_SHARED_LIBS:BOOL=ON \
-DENABLE_vtkm:BOOL=ON \
-DENABLE_python3:BOOL=ON \
-DUSE_SYSTEM_python3:BOOL=OFF \
-DENABLE_pybind11:BOOL=OFF \
-DENABLE_numpy:BOOL=ON \
-DUSE_SYSTEM_numpy:BOOL=OFF \
-DENABLE_scipy:BOOL=ON \
-DENABLE_matplotlib:BOOL=ON \
-DENABLE_vrpn:BOOL=OFF \
-DENABLE_cosmotools:BOOL=OFF \
-DENABLE_osmesa:BOOL=ON \
-Dmesa_USE_SWR:BOOL=ON \
-DENABLE_tbb:BOOL=ON \
-DENABLE_silo:BOOL=ON \
-DENABLE_boost:BOOL=OFF \
-DENABLE_vortexfinder2:BOOL=OFF \
-DENABLE_las:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DENABLE_adios2:BOOL=ON \
-DENABLE_ospray:BOOL=ON \
-DENABLE_ospraymodulempi:BOOL=ON \
-DENABLE_fontconfig:BOOL=ON \
-DENABLE_bzip2:BOOL=ON \
-DPARAVIEW_BUILD_EDITION:STRING=CANONICAL \
-DSUPERBUILD_DEFAULT_INSTALL:STRING=paraviewsdk/TGZ `

* A directory named build should now exist: \
`cd build` \
`make -j12 download-all`

* Build:\
`make -j12`

* Install: NOTE: I had to install LEX and YACK (Flex and Bison) before installing: \
`sudo apt-get install bison flex` \
`make install`
3. SENSEI has some dependencies on ParaView, so we will need to install the ParaView (specifically v5.9.1).

* Clone ParaView repo with: \
`git clone --recursive https://gitlab.kitware.com/paraview/paraview.git` \
`cd paraview` \
`git checkout v5.9.1` \
`git submodule update --init --recursive` \

* configure with cmake: \
`cmake -B ${BUILDDIR}/paraview -S ${SRCDIR}/paraview \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/paraview \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_C_COMPILER=gcc \
-DPARAVIEW_USE_PYTHON=ON \
-DPARAVIEW_USE_MPI=ON \
-DPARAVIEW_USE_QT=OFF \
-DVTK_SMP_IMPLEMENTATION_TYPE=TBB \
-DPARAVIEW_BUILD_EDITION=CATALYST_RENDERING \
-DVTK_USE_X=OFF \
-DVTK_OPENGL_HAS_OSMESA=ON \
-DOSMESA_INCLUDE_DIR=/usr/include/GL/ \
-DOSMESA_LIBRARY=/usr/lib/x86_64-linux-gnu/libOSMesa.so`

* Build and Install:\
`make -j8 install`

4. configure Sensei using cmake: *Here my command:
`cmake -B ./buildsensei -S ./SENSEI -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_INSTALL_PREFIX=./install -DENABLE_SENSEI=ON -DENABLE_VTK_IO=ON -DENABLE_CATALYST=ON -DParaView_DIR="/home/mectro/build/install/lib/cmake/paraview-5.10/"`

5. Build Sensei: \
`cd buildsensei`
`make -j12`
`cmake -B /home/mectro/build/sensei -S /home/mectro/src/SENSEI -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_INSTALL_PREFIX=/home/mectro/install/SENSEI -DENABLE_SENSEI=ON -DENABLE_VTK_IO=ON -DENABLE_CATALYST=ON -DParaView_DIR="/home/mectro/install/lib/cmake/paraview-5.9/"`

5. Build and Install Sensei: \
`make -j8`
`make -j8 install`


4 changes: 2 additions & 2 deletions examples/embolism/CMakeLists.txt
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ cmake_minimum_required(VERSION 2.8.12)
project(palabosExample)
enable_language(CXX)

set(PALABOS_ROOT "$ENV{HOME}/palabos" CACHE PATH "Path to PALABOS root directory")
set(PALABOS_ROOT "$ENV{HOME}/src/palabos" CACHE PATH "Path to PALABOS root directory")
set(BLOODFLOW_ROOT "$ENV{HOME}/BloodFlow" CACHE PATH "Path to BloodFlow root directory")
#set(COUPLING_ROOT "/home/insley/JTAN/CODE/palabos-lammps/")
#FIND_PACKAGE(LAMMPS REQUIRED)
set(LAMMPS_DIR "$ENV{HOME}/lammps" CACHE PATH "Path to LAMMPS root directory")
set(LAMMPS_DIR "$ENV{HOME}/src/lammps" CACHE PATH "Path to LAMMPS root directory")
FIND_PATH(COUPLING_DIR palabos-lammps)
set(LAMMPS_LIB "${LAMMPS_DIR}/src")
#CONNOR:Change the following line to your executable name
Expand Down
Empty file modified examples/embolism/README.md
100644 → 100755
Empty file.
Empty file modified examples/embolism/embolism.cpp
100644 → 100755
Empty file.
Empty file modified examples/embolism/in.embolism
100644 → 100755
Empty file.
Empty file modified examples/embolism/in.platelet
100644 → 100755
Empty file.
Loading