Giter Site home page Giter Site logo

je-santos / mplbm-ut Goto Github PK

View Code? Open in Web Editor NEW
142.0 17.0 55.0 123.94 MB

Library for performing multiphase simulations (based on the Shan-Chen model) in complicated geometries (i.e. porous media 3D images)

License: GNU General Public License v3.0

C++ 41.60% MATLAB 5.70% Shell 0.67% Python 46.80% CMake 5.23%
lattice-boltzmann porous-media-flow porous-media micro-ct permeability tortuosity rock images volumes multiphase-flow

mplbm-ut's People

Contributors

abhishekdbihani avatar alexgigliotti avatar bc-chang avatar je-santos avatar jh-chung1 avatar nv4dll-git avatar siychen-tech avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mplbm-ut's Issues

Bug fixes

Saving files

  • make sure that both save sim after convergence and at every desired it work
  • naming convention: only 1 file (either convergence or iterations). The new file should replace the old file
  • print a .dat file with the info of the saved file
  • the saved iteration does not need to be known

BCs

  • check that the palabos built-in bc works well
  • check the definition of inlet/outlet

Coordinates

  • check bc coordinates

Steady state rel perm initial conditions

Generating an initial non-wetting/invading fluid configuration for steady state simulations would be great. Ideally this would exist as a python utility that automatically generates .dat files that ShanChen.cpp can read in.

Options:

  • PoreSpy MIO/IBIP (this also outputs capillary pressure data!)
  • Create our own morphological drainage algorithm
  • ...

boundary condition in steady-state examples

In input_S25, the "periodicity in the boundary conditions" is all "true" for both fluid1 and fluid2 in x,y,z directions.
But in other input files, it becomes True for x-direction but false for the other two directions.

'create_geom_4_2phase' gets extreme high porosity

When I create the geometry it shows odd numbers of porosity. What might be the reason? Do I need to set the pixel size in ImageJ? Thanks.

>> create_geom_4_2phase
The intial porosity is -20380.574 % with 128 connected regions 

Single phase part

Hello,thanks for the nice reply.
I double checked the single phase permeability simulation results. I ran the single phase permeability program twice and It didn’t generate the log file at the end of the simulation named as- (GeometryName_output.dat). Could you please help to check this part because I should run the program correctly.
Also, it would be much better if a velocity or pressure field vti visualization file for singel phase part is generated.
Thank you! Have a good holiday!

Error:Index exceeds matrix dimensions

Dr,Santos,
I have learned so much from this tools.I have a problem when I study.
when I run the create_geom_4_2phase_more_file_types.m,I choose the type 2.And I use the *.dat file what produced by palabos.
But then it shows this error :
Index exceeds matrix dimensions
error:create_geom_4_2phase_more_file_types (line 40)
fp_printing = fp(1:print_size, 1:print_size, 1:print_size);
What do you think might cause this problem?
Thank you very much.

Problem with MPI

Hi,
Thanks for sharing such a great tool!This is very helpful for my research.
I encountered a problem when using MPI. The use of MPI multi-core parallel computing does not increase the computing speed. The calculation time for one step is about 2 minutes, no matter how many cores are used, it is almost the same calculation efficiency.
Is this normal? Is there anything that needs special attention in the parallel computing of the program? I tried OpenMPI 2.1.1 and MPICH 3, and they both have the same result.
Looking forward to your reply. Thank you very much.

Cannot load the simulation states (dat file)

Dr. Santos,

Thank you very much for this tool! I have been using it for my study and I am trying to increase it for other uses.
I have a slight problem. When I save the simulation lattices, the lattice1.dat and lattice2.dat are produced (the file size is about 2.2 GB each). However, when I terminate the simulation and I try to run it again, it shows this error on the terminal:
what(): Palabos IO exception: Could not open binary file lattice_fluid1.dat for reading terminate called after throwing an instance of 'plb::PlbIOException'
I tried to look at the shanchen.cpp but still cannot find the problem. What do you think might cause the problem?

Thank you very much.

Compile error for the SCons

Hi, When I install the MPLBM following your guidance and there is a error when I make the src/2-phase_LBM. The error is shown in the figure.
Screenshot from 2020-07-31 01-13-11

Please help me to solve the problem and I suppose that all the external requirements have been satisfied.

Issues in new python functions

I was running the examples in VScode on Windows and I ran into the following issues.
(Some of them might be specific to my installation but documenting them here anyway)

  • sys.path.append for python_utils did not work smoothly
  • Wget was not found. Had to download the data file from alternate instructions
  • Mismatch between forward and backslash for defining paths caused error. Adding something like sim_directory=sim_directory.replace("\\","/") on line 37 in 2_phase_sim.py helped solve issue
  • run_shanchen_sim.sh was correctly created but did not run at line 57 in 2_phase_sim.py for me (/bin/bash: C:/xx/MPLBM-UT/input/run_shanchen_sim.sh: No such file or directory). Code continued to run function run_rel_perm_sim before throwing an error when no rho was found. Adding an exception for error here might be a good idea.
  • Trying to run simulation through bash without shell script gave following error Palabos IO exception: Element rho_f2_f not found in XML file.

Edit: Changed integrated terminal from powershell to bash by adding {
"terminal.integrated.shell.windows": "C:\Windows\sysnative\bash.exe"
} in settings.json in folder .vscode. This solved some issues but .sh file was still not detected

single phase part

Single phase part:

  1. How to choose max iterations for in .xml file, is 800 iterations enough to get convergence?
  2. If the total number of geometries can be input in the .xml file, how should the input dat file name be formulated? Because the current .xml file I think can only be run for single .dat file simulation. It would be good to be adaptable for a series of .dat file.
  3. A log file for recording calculation process and the permeability value is much appreciated because if it is run on super computer, people can’t see the command window for permeability information.

Cannot run the post processing step

Hey, thank you so much for the code you created, I hope I can use it for my research.
I successfully run the two-phase simulation step and the simulation result has shown up in the tmp folder. However, I cannot run the p[ost processing step, both the create_geoms_4_kr.m and the percolation_path.m. It shows this error on Matlab:

`Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that
dimension.

Error in percolation_path_calc (line 42)
rho = reshape(rho, kr.domain_size);

Error in percolation_path (line 14)
percolation_path_calc`\

What do you think could be the problem?

Thank you very much!!

Error running steady and unsteady relperm_spherepack in matlab examples

Hello,
I am trying to run relative permeability examples (matlab_examples/unsteady_relperm_spherepack , and matlab_examples/steady_relperm_spherepack) but I when I run (run2-phase.sh), I get an error that says:
"Palabos IO exception: Element num_pc_steps not found in XML file. "

Could you please help me with this error?

Thank you!

Some problems encountered during code testing

1,
<num_pc> 0.05 </num_pc>

<drho_f2> 0.1 </drho_f2>
I think only the latter one is used but they both appear in the .xml file.
2, list=dir([directory 'rho1*.vti']) in save_fluids.m maybe should be list=dir([directory 'rho_f1*.vti']);
3, I think the invading fluid saturations for both the converged steps and non-convergence steps are both calculated based on the rho1*.vti. If so, I think only the invading fluid saturations for both the certain converged step should be used in the relative perm simulation. Is my understanding correct?
4, A tutorial on how to calculate capillary pressure is much appreciated.
5, Why the simulation output twice on the window, just curious.

output

xml issues

Do you think it would be possible to add comments to the variables in the xml file?
Also, is it doable to add the mixed wet option to the input file?

It would be nice also to use variables in the xml for the repeated paramters, like the initial configuration of the fluid.

Thanks

new capillary pressure implementation

Dear,

Thank you very much for the amazing code and model for 1- and 2-phase fluid flow in LBM. My inquiry is related to the new ShanChen.cpp file with the 'new capillary pressure implementation'. Could you kindly provide us with the input .XML file regarding the unsteady state simulation for the spherepack? In the updated ShanChenn file, new input parameters such as the minimum radius and number of steps need to be input.

Best regards,
mms74

Two different solids

Hi Dr. Santos:

Thanks for sharing this great tool! It is really impressive and really a read-to-go tool.

Regarding the solid structure, I am wondering if the tool is able to consider a solid with a location dependent surface tension?

For example, fluid 1 will be completely wettings on first half of the porous solid while be only partially wetting with the second half of the porous structure.

It seems the surface tension or wetting condition can be specified in the xml file as follow?

Thank you for your time in advance and looking forward to your response.

Cheers,

R-P

<G_ads_f1_s1> -0.4 </G_ads_f1_s1>
<G_ads_f1_s2> 0.0 </G_ads_f1_s2>
<G_ads_f1_s3> 0.0 </G_ads_f1_s3>
<G_ads_f1_s4> 0.0 </G_ads_f1_s4>

Package version

Hi, first of all, thanks for the developer's distribution!

I want to use MPLBM-UT in my college's HPC. Our HPC has
gcc (GCC) v. 8.3.0
openmpi3 v. 3.1.4
mvapich2 v. 2.3.2
but I saw MPLBM-UT need
openmpi 2.1.1
gcc v. 7.2,
Will that be ok if I use a different version? Or I need to ask IT support to install these packages for me?
Thank you so much!

Different Geometry?

Besides the geometry (i.e., relative location of fluid 1 and fluid 2) as described in https://github.com/je-santos/MPLBM-UT/tree/master/examples, is it able to consider such a configuration:

The domain initially contains only fluid 2 (e.g. oil), but several water droplets (fluid 1) with small radii are regularly added near the inlet to approximate a water-diesel mixture on the left of the filter?

Thanks for your time on this

Rongpei

Problem with geometry creation

Hi,

I was trying to run two-phase flow using my geometry. I have a set of image slices hence I tried to create the geometry using create_geom_4_2phase_more_file_types.m. I was trying to run it using octave and I get the following error:

octave:1> run(“create_geom_4_2phase_more_file_types.m”);
files(1): out of bound 0
error: called from
read_img_slices at line 7 column 8
create_geom_4_2phase_more_file_types at line 27 column 8
run at line 86 column 5
octave:1> exit

I also tried createDAT.m and I get this error:

octave:3> createDAT(360,‘subdomain_456_400_361’,‘.tif’,‘output.dat’)
error: imread: unable to find file ‘subdomain_456_400_361/
.tif0001’
error: called from
imageIO at line 73 column 5
imread at line 106 column 33
createDAT at line 16 column 3

The numbers of the image slices are in the ****. Should the file extensions be changed from tif? I thought that might cause issues with the images

Could you please help? Thanks!

error: the calculation of contact_angle

In the "1_two_phase_template_explanation", you said "cos(theta) = 4G_ads_f1_si/( Gc( rho_f1-rho_d ) )". Here, the G_ads_f1_si should be the adhesive coefficient between fluid2 and solid walls, rather than fluid1. Since the Gads should be negative for wetting fluid, when it is -0.4, the contact angle should be less than 90, rather than 156.4.

Compilation problem

Hello,

I'm a user from France using your LBM code. I would first thank you for this outstanding program, but I'm having some little issues and I was hoping that you could help me.

So, I would like to move the calculation to our server of the supercomputer, which requires me to compile the code on the server instead of using the already compiled version. So, I tested to compile the program on my local computer (I emptied the /build file and use the command 'cmake ..' and 'make' under the directory of /build/ and it gives me this error by the end of compilation, could you please help me with the error?

[ 98%] Built target palabos
Scanning dependencies of target permeability
[ 99%] Building CXX object CMakeFiles/permeability.dir/permeability.cpp.o
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp: In function ‘void readGeometry(std::string, std::string, plb::MultiScalarField3D&, plb::plint, plb::plint, bool, std::string)’:
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:109:10: warning: ‘template class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
109 | std::auto_ptr<MultiScalarField3D > floatTags = copyConvert<int,T>(geometry, geometry.getBoundingBox());
| ^~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/../palabos-v2.2.1/src/multiBlock/multiBlockGenerator3D.h:53,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/../palabos-v2.2.1/src/multiBlock/multiBlockLattice3D.hh:44,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/../palabos-v2.2.1/src/core/vectorFunction3D.h:44,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/../palabos-v2.2.1/src/core/headers3D.h:59,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/../palabos-v2.2.1/src/palabos3D.h:37,
from /mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:3:
/usr/include/c++/9/bits/unique_ptr.h:53:28: note: declared here
53 | template class auto_ptr;
| ^~~~~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:109:73: error: conversion from ‘std::unique_ptr<plb::MultiScalarField3D, std::default_delete<plb::MultiScalarField3D > >’ to non-scalar type ‘std::auto_ptr<plb::MultiScalarField3D >’ requested
109 | std::auto_ptr<MultiScalarField3D > floatTags = copyConvert<int,T>(geometry, geometry.getBoundingBox());
| ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp: In function ‘int main(int, char**)’:
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:269:11: warning: unused variable ‘run_diff’ [-Wunused-variable]
269 | plint run_diff = ((runnum - 1)/2)+1;
| ^~~~~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp: At global scope:
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:357:5: error: ‘pcout’ does not name a type
357 | pcout << "Printing outputs" << std::endl;
| ^~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:358:26: error: ‘fNameOut’ was not declared in this scope
358 | std::string outDir = fNameOut + "/";
| ^~~~~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:361:5: error: ‘ofile’ does not name a type
361 | ofile << "Outputs" << "\n\n";
| ^~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:362:5: error: ‘ofile’ does not name a type
362 | ofile << "Krw from run: " << "\n" << "Krnw from run: " << (run_diff+1) << std::endl;
| ^~~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:363:5: error: expected unqualified-id before ‘for’
363 | for (plint runs = 1; runs <= runnum; ++runs) {
| ^~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:363:26: error: ‘runs’ does not name a type
363 | for (plint runs = 1; runs <= runnum; ++runs) {
| ^~~~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:363:42: error: expected unqualified-id before ‘++’ token
363 | for (plint runs = 1; runs <= runnum; ++runs) {
| ^~
/mnt/f/SONAR Project/Lattice Boltzmann Model/SONAR LBM/MPLBM-UT-master-test/src/1-phase_LBM/permeability.cpp:374:3: error: expected declaration before ‘}’ token
374 | }
| ^
make[2]: *** [CMakeFiles/permeability.dir/build.make:63: CMakeFiles/permeability.dir/permeability.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/permeability.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Thank you very much.

Jessy

contact_angle

if I only add gravity to force_f1, the fluid1 will be compressed to a flat surface, but when I add gravity to both force_1 and force_2, the simulation didn't converge. Another question is how to control the droplet to drop to the solid surface rather than float up.

which area term is used for single phase permeability calculation

Hi all,

I have one question on single phase absolute permeability or effective permeability calculation. Is the absolute permeability calculated based on the pore area or based on the imaged core sample cross section area (both solid area and pore area)? Because the Darcy equation is based on the core sample cross section area, I think it would be good to mention which area term this code uses for permeability calculation otherwise it would be very hard for the reader to guess.

Thanks a lot!
Best wishes

Interfacial tension modification?

Hi, thank you so much for providing the code, it really helps me with my study.
I have successfully run your code and it produces a reasonable result compared to my experiment. However, I am interested to see how the interfacial tension can affect the result. Is there any way I can change the sigma (IFT) value directly? I have tried looking at the shanchen.cpp file but could not find it.

Thank you very much!

Problem with create_geoms_4_kr.m for two phase

Hi,

Thank you very much for the code. It has been very helpful to understand the two-phase flow.

I ran the unsteady-relperm-spherepack example with my own bead-pack geometry using run2-phase.sh and it ran successfully and saved the output files. When I ran the create_geoms_4_kr.m (with number of runs = 6), it didn't generate any geometries for the relative permeability simulations. Finally when I ran run1-phase.sh, it displayed the absolute permeability of 4.8 and then displayed an error that f1_for_kr_1.dat, etc. are not found. Although the density and velocity values were very reasonable, I didn't understand why the absolute permeability value was so large.

I also found a similar issue on GitHub, but that solution for geometries didn't seem to fix the issue I had. Could you please let me know how to resolve this? Also, may I know if the "pressure" value in the input_rel_perm.xml should be changed for different capillary pressures, or is it just a random value used to generate the pressure gradient?

Thanks a lot in advance!
Iyengar

Changing the viscosity ratio

Hi, thank you for developing this code, it is very useful for my study.
I successfully ran your code for the 2 phase flow and am interested in seeing the relative permeability change in different viscosity ratios. However, when I try to keep the omega f1 into 1 and change the omega f2 into 2, the simulation produced very scattered 2D images. Is it the problem with my installation?

Thank you very much.

Error:Index exceeds matrix dimensions

Dr,Santos,
I have learned so much from this tools.I have a problem when I study.
when I run the create_geom_4_2phase_more_file_types.m,I choose the type 2.And I use the *.dat file what produced by palabos.
But then it shows this error :
Index exceeds matrix dimensions
error:create_geom_4_2phase_more_file_types (line 40)
fp_printing = fp(1:print_size, 1:print_size, 1:print_size);
What do you think might cause this problem?
Thank you very much.

Scons error - suggested solution doesn't work

Dear developers;
Thank you for the precious work.
I decided to use MPLBM-UT library for simulating polymer gel injection into porous media for my MSc thesis. Unfortunately; I am getting SCons compilation error and I have tried the mentioned solution but it does not work. I tried every single thing and I thought it would be better to ask your opinion on this issue. I will be really glad if you could help me solve this problem. Here are the last lines of the error and I receive the same error for ShanChen.o .
Many Thanks

permeability.cpp:88:8: warning: ‘template class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
88 | std::auto_ptr<MultiScalarField3D > slice = generateMultiScalarField(geometry, sliceBox);
| ^~~~~~~~
In file included from /usr/include/c++/9/memory:80,
from /mnt/d/MPLBM/src/palabos-v2.0r0/src/multiBlock/multiBlockGenerator3D.h:44,
from /mnt/d/MPLBM/src/palabos-v2.0r0/src/multiBlock/multiBlockLattice3D.hh:35,
from /mnt/d/MPLBM/src/palabos-v2.0r0/src/core/vectorFunction3D.h:35,
from /mnt/d/MPLBM/src/palabos-v2.0r0/src/core/headers3D.h:50,
from /mnt/d/MPLBM/src/palabos-v2.0r0/src/palabos3D.h:28,
from permeability.cpp:3:
/usr/include/c++/9/bits/unique_ptr.h:53:28: note: declared here
53 | template class auto_ptr;
| ^~~~~~~~
scons: *** [permeability.o] Error 1
scons: building terminated because of errors.
make: *** [Makefile:92: compile] Error 2

contact_angle_droplet

When I try the example "contact_angle_droplet", the droplet of fluid1 just became smaller and vanished. Then I try a larger droplet, x:545, y:3060, z:30~60. The droplet stayed unchanged in the simulate. Should I add the -9.8 to the <force_f1>?

Add running example

  • add mix wet capabilities for to the finneypack code
  • add the xml file to run it

How to produce the illustration?

Thank you very much for the repository, it is very helpful for me in my study.
I just finished running the steady_relperm_spherepack simulation and it produces many parameter results and many 2D images. I want to ask, is it possible to produce the illustration similar to the one shown on the steady.JPG?

Thank you very much
Natanael Suwandi

Bug fixs and improment

Dear all,

I Have been using this project for a will and find some bugs, for example, I notice that in the shenchen.cpp the boundary condition was achieved by change density every time step, It's inefficiency because in OplenLB they did it by update boundary density every 10 steps or whatever you want.
So I fork the code and make some changes :

  1. add input for restart files and restart time
  2. add input for inlet & outlet position ( I noticed for 2d simulation, density boundary will not work properly because z isn't 0, the coordinates of the image starts at 1, yet in palablos it starts at 0 )
  3. add input for density boundary type (palabos buildin density boundary or update density once a while)
  4. for unsteady flow, instead of resetting IT to 0 every convergence I decided to keep IT running because if you restart from the simulation you probably lose track of which time-step the simulation will restart.
  5. add a separate function to control output vtk files.
    I just want to discuss with you guys and maybe pull my code back to the project.
    I not a native speaker so if there is any misunderstanding or typo please tell me.

Thanks a lot!
Best wishes

readme.md under matlab_examples

Hi,
thank you for the amazing codes.
However, I couldn't find the files specified in the readme.md under matlab_examples (input_sc.xml).
I wish to ask how to run a simulation based on the given example in the readme?

Thank you very much.

Computation of Relative Permeability

Thank you very much for sharing such good code to deal with two-phase flow in porous media.
Your code description mentions that relative permeability can be calculated, but I can't find it. Would you please give us a method to calculate relative permeability? Thank you very much.

Problem with single-phase simulation

Hello,
Thank you for providing your code, I found it very useful.

I have a similar problem as in issue #8 , the single-phase simulation part only uses the original geometry and one more geometry that is the output from the 2-phase simulation. Beyond that, it says it is unable to find, for example, f2_for_kr_2.dat. So, I only have one geometry for each fluid from the 2-phase simulation. How do I get multiple geometries from the 2-pahse geometry to be able to generate the relative permeability curve?

Regards,
Faras Al Balushi

why first 2 phase and than 1 phase

In the example of steady-state flow, why should we first simulate the 2-phase flow and then simulate the 1-phase flow? If I simulate a 2-phase flow with different saturation, do I only need to simulate the 1-phase flow ones?
And for the result of the example, the krn curve starts from 1 at Sw=0 and end at 0 with Sw=1. At every point, the sum of krn and krw is equal to 1, is it true for reality?

Computing volumetric flux

Dear developer;

I really appreciate your great work. Is it possible to calculate volumetric flux in this fork?
I need tp plog log(q) vs. log(dp/dx)

thank you for your consideration.
Elahe

Multiphase lbm running issues

Hello, I have several questions that need kind help:
1, How can I restart the program after the program stops.
From the .xml file that I can change 1 to 0 to reload previously saved lattices. Is the only place that I should modify if I want to start it from the checkpoint? I think the fluid density should be also modified but it seems like that there is currently no log file to save the current simulated density values. From the person computer I can find the density values for phase 1 and phase 2 from the windows but it would be much better to have a log file to record it.
2, Why the density vtk files for phase 1 and phase 2 are not simultaneously generated?
3, The final question is that I set the fluid density into 2 for both phase, but the fluid 2 density visualization in paraview indicates that there are places the density is larger than 2. Is it caused by the not enough iterations steps during iteration?
Thanks a lot.

Compiling error

Dear Developer team:

I'm currently getting this error when building MPLBM-UT in HPC:

Linking CXX executable ../permeability
/opt/ohpc/pub/mpi/openmpi3-gnu8/3.1.4/lib/libmpi_cxx.so: undefined reference to `__cxa_throw_bad_array_new_length@CXXABI_1.3.8'
/opt/ohpc/pub/mpi/openmpi3-gnu8/3.1.4/lib/libmpi_cxx.so: undefined reference to `operator delete(void*, unsigned long)@CXXABI_1.3.9'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/permeability.dir/build.make:92: ../permeability] Error 1
make[2]: Leaving directory '/opt/ohpc/pub/apps/mplbm-ut/1.0/src/1-phase_LBM/build'
make[1]: *** [CMakeFiles/Makefile2:99: CMakeFiles/permeability.dir/all] Error 2
make[1]: Leaving directory '/opt/ohpc/pub/apps/mplbm-ut/1.0/src/1-phase_LBM/build'
make: *** [Makefile:76: all] Error 2

Can you help me to fix it? Thank you so much!

"Creat_geoms_4_kr.m" issue: can't reshape

Hello, in this step, there is a warning shows:

_subdir = input
error: reshape: can't reshape 8360000x1 array to 200x200x200 array
error: called from
    domains_4_kr at line 24 column 16
    create_geoms_4_kr at line 16 column 1_

The geometry is created using "creat_geom_4_2phase.m" and successfully run through the 2phase simulation. Why is a shape issue here? Thanks.

Change the two - phase viscosity ratio

HI,
I successfully ran your code, but I found a strange phenomenon. When the viscosity ratio is 1, the program works very well. When the viscosity ratio is greater than 1, a strange phenomenon occurs.For example, if the pressure gradient is zero, you still have a large velocity. Why is that?Looking forward to your reply.Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.