Pore scale modelling
Go to file
James E. McClure fac681dffe
Rc 08.15.2022 (#70)
* summit configure

* add spock scripts to FOM

* get new models to build with hip

* add hip slipping bc

* testing communication on spock

* update spock build based on olcf docs

* update configure & test scripts for spock

* Fixing potential bugs with communication

* Adding simple test of GPU aware MPI

* some changes to configure for spock

* Modifying GPU aware MPI test to send multiple messages

* playing with spock Gpu test

* added gpu wrapper test

* Cleaning up some compiler warnings

* add barrier between pack / MPI send

* Updating build to support HIP as a language

* fixing gpu mpi sync

* Adding script

* local spock changes

* add membrane class

* update membrane structure

* membrane communications

* working on new comm data structures

* add membrane unit test

* membrane compiles

* membrane test

* Updating hip port to match cuda

* update summit config

* update summit config

* add configure script for crusher

* update membrane test

* update membrane test

* convention for inside / outside membrane link direction

* working on membrane comm

* try to fix time conversion factor for Poisson solver; to be built and tested

* fix dumb typo

* update summit config

* tune launch for crusher

* tune launch for mrt on crusher

* update color

* summit script with specific module versions

* update crusher config

* add crusher examples

* add dense case for crusher

* Fixing some quick annoying compile warnings

* fix binding in example

* working on fix

* Adding simple crusher test

* Adding new crusher MPI test

* disable MPI thread multiple for crusher

* updates to crusher configure

* cpu test for crusher

* Working on standalone reproducer for MPI bug

* More work on creating standalone test

* More work on creating standalone test

* More work on creating standalone test

* Reverting TestCrusher2, standalone version passes (TestCrusher3.cpp), need to figure out why

* Working on standalone MPI test on crusher

* Working on standalone MPI test on crusher

* Getting closer to stand alone test

* Still trying to create standalone reproducer

* hang fix / workaround

* Created standalone MPI failure test

* Removing TestCrusher tests, the bug deals with the StackTrace which we disable the multistack trace for now.  Moving the test out of LBPM

* fix sendcount / recvcount

* Testing persistent communication

* Updating calculation of bandwidth

* crusher hackathon final version

* working on membrane communication structures

* add cell simulator

* added cell simulator

* make sure halo is filled when measuring object

* add membrane transport function for d3q7

* add membrane unpack function

* poking at MF issue

* update crusher build

* membrane data structures compiling

* update to membrane capability

* update comments in ion model

* fix dumb print bug

* clean up relabel

* adding membrane functions

* move membrane to common folder

* membrane structure in IonModel

* membrane structure in IonModel

* try at membrane simulator

* add python script to generate bubble

* add python script to generate bubble

* cell simulator runs

* read input files

* add single cell example

* refining cell example

* start on cuda function

* werkin

* start on cuda function

* start on hip function

* updates and fix for user input reader

* update cell example

* add sigmoid to ion equilibrium dist

* cuda build succeeds

* update crusher script

* getting ready to merge gpu

* refactor compact AA routines for testing

* add testing functions to ScaLBL

* testing membrane ion transport

* membrane transport test passing

* membrane starts working ok...

* original wang poisson solver (broken)

* rex d3q19 (broken)

* tau from wang paper

* still broken wang

* d319 poisson works good

* Poisson working pretty good now

* initialize nernst-planck simulator; to be built subject to debugging

* fix a few syntax bugs and build passed

* Poisson solver; enable specifying initial values

* update cell example

* add GPU functions for d3q19 poisson

* fix dumb bugs

* fix bugs in initializing electric potential; the Psi on solid was accidentally overwritten before.

* small change

* fix bugs in importing ion model's dummy velocity

* add membrane concentration init

* remove bad warnings

* remove print staetements

* add barriers to poisson solver

* update print

* print membrane input concentration

* read Membrane ion concentration list

* fix bad ref to D3Q7

* update error analysis for Poisson solver

* fix typo

* update hip poisson solver

* deprecate old error methods

* a bunch of summit debug things to roll back later

* fix poisson typo

* update hip

* debug crusher

* debug charge density problems on crusher

* fix charge density (i think)

* remove Stokes solver from cell simulator; need to test build

* update cpu ion valence

* added membrane properties to input db

* update cell db

* update executable list and NP_cell simulator

* correct use_membrane functionality

* add functionality for user to choose either D3Q7 or D3Q19 lattice for Poisson;to be built and tested

* build passed

* make further corrections

* correct D3Q7 Poisson LB algorithm

* correct ion LB collison

* udpate output precision

* add more tweaks for cell simulator

* update print-out

* this makes mpi hang error explicit;to be debugged

* cleanup with help from valgrind

* update to cell vis routine

* add hip for ion update

* fix missing bracket

* add new ion code for cuda

* add barrier to membrane transport

* debug gpu launch issue for ion

* debug gpu

* add functions to copy send / recv list from ScaLBL

* updating membrane communication structure

* membrane test works with new comm

* communication seems to work

* add sample files for plane membrane

* update gpu routines first try

* update hip

* multiple nvidia gpu working with membrane

* added membrane analysis capability

* added support for swc file

* support for SWC input format

* swc reader works with MPI

* shift swc data

* SWC reader update

* SWC reader update 2

* add offset to Domain for swc

* add input files for simple bacteria

* add performance counters to ion / poisson solvers

* fix bug with SWC

* add BC to poisson solver

* fix compiler warnings

* fix memory leaks

* fix zlib download path

* Fixing memory leak

* Fixing memory leaks

* restart for Poisson model

* fix bug in ion model restart

* trying to fix yaml

* fix workflow indentation

* porosity factor in effperm

* porosity factor in effperm

* porosity factor in effperm

* porosity factor in effperm

Co-authored-by: James E McClure <mcclurej@vt.edu>
Co-authored-by: Mark Berrill <berrillma@ornl.gov>
Co-authored-by: Zhe Rex Li <zhe.rex.li@gmail.com>
Co-authored-by: Zhe Li <zzl109@gadi-login-01.gadi.nci.org.au>
Co-authored-by: Zhe Li <zzl109@gadi-login-04.gadi.nci.org.au>
Co-authored-by: Zhe Li <zzl109@gadi-login-02.gadi.nci.org.au>
Co-authored-by: Zhe Li <zzl109@gadi-login-06.gadi.nci.org.au>
Co-authored-by: Zhe Li <zzl109@gadi-login-05.gadi.nci.org.au>
2022-09-07 21:44:16 +02:00
.github/workflows Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
analysis Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
cmake Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
common Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
cpu Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
cuda Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
docs add pubs 2021-12-25 18:06:04 -05:00
doxygen updating documentation 2021-10-03 19:56:26 -04:00
example Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
hip Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
IO Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
models Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
pmmc Finishing id mapping between timesteps, modifying TwoPhase to print the new global id. Still testing. 2015-08-25 14:32:36 -04:00
sample_scripts Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
StackTrace Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
tests Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
threadpool Merge branch 'master' of github.com:JamesEMcClure/LBPM-WIA 2021-09-14 09:18:37 -04:00
workflows Update grid utility script 2021-08-30 10:07:53 +02:00
.clang-format Clang format (#55) 2021-11-08 22:58:37 +01:00
.clang-format-2 Add clang script and .clang example (#52) 2021-11-05 15:17:15 +01:00
.gitignore Updated git ignore to ignore .swp files 2017-12-06 12:32:46 -05:00
.project fixing filters with math dot h and array by deleting the pow function 2017-09-11 16:25:20 -04:00
clang-format-all Add clang script and .clang example (#52) 2021-11-05 15:17:15 +01:00
CMakeLists.txt Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00
ctest_script.cmake Updating FindMPI 2021-03-01 14:02:29 -05:00
LICENSE concatenating licenses 2018-05-25 07:57:14 -04:00
README.md Update README.md 2020-06-23 13:51:14 +02:00
README.titan Updating FindMPI 2021-03-01 14:02:29 -05:00
ValgrindSuppresionFile Rc 08.15.2022 (#70) 2022-09-07 21:44:16 +02:00

LBPM

Lattice Boltzmann Methods for Porous Media

========

Notes on installation

  • example configure scripts for cmake are in the sample_scripts directory
  • required dependencies - MPI, HDF5, SILO, C++14
  • optional dependencies - NetCDF, CUDA, TimerUtility

Build dependencies (zlib, hdf5, silo) OR point to an existing installation

Configure, build & install procedure

  • create an empty directory to install (do not build in source!)

    mkdir /path/to/my/install

    cd /path/to/my/install

  • edit configure script from sample_scripts directory and configure (e.g.)

    /path/to/LBPM/sample_scripts/configure_desktop

  • compile and install

    make -j4 && make install

  • run the unit tests to make sure it works

    ctest