yjhp1016 / taichi_lbm3d Goto Github PK
View Code? Open in Web Editor NEWA 3D sparse LBM solver implemented using Taichi
License: MIT License
A 3D sparse LBM solver implemented using Taichi
License: MIT License
Hello Dr. Yang, I have questions about the color-gradient multiphase model. For the phase boundary, you showed in the example that the left side is the fixed phase1 boundary (value=-1) and the right side is the periodic boundary. When calculating, I found that, The value of phase1 will also run to the right. So I want to know what is the reason for this?
Dear author,
Hello. Thank you very much for publishing your work. I am greatly benefited from studying. In the post-processing stage, I have a question. When processing a group in Paraview, I chose the "rho" option, but the images in each step did not change. What is the reason for this? Is it a normal phenomenon?
I hope to receive your answer.
Hello, Dr. Yang. I am new to CFD, I am doing two-phase flow displacement, I built a 64^3 model, apply the driving force in the left side of the X direction, the displacement was slow for the first 75,000 times, by 80,000 times it was all through, They are 5,000, 20,000, 40,000, 75,000 and 80,000 times respectively,what is the cause of this? The all iterations is 100000.
In addition, the phase_ftb64.dat file is all set to 1, and the fixed phase boundary condition is used. Then, does the parameter setting of niu_g represent -1 is the phase of displacement force, and does psi_solid represent the contact Angle of niu_g phase between niu_l and the solid skeleton surface? Looking forward to your reply.
Hi,
This is Ruoyu. I found a small issue in the function meq_vec:
@ti.func
def meq_vec(rho_local,u):
out = ti.Vector([0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0])
out[0] = rho_local; out[3] = u[0]; out[5] = u[1]; out[7] = u[2];
out[1] = u.dot(u); out[9] = 2u.xu.x-u.yu.y-u.zu.z; out[11] = u.yu.y-u.zu.z
out[13] = u.xu.y; out[14] = u.yu.z; out[15] = u.x*u.z
return out
All the non-zero meq component should have density component, but the meq[k] except for meq[0] does not contain rho_local.
Regards,
Ruoyu
Hi there, I am working on the two phases flow simulation in a fractured porous media (coal sample with cleat network). Would you please advise if I can use my own 3D CT scanned model? Alternatively without the CT scan geometry, how to create a counterpart of a digital twin of porous media (with or without fractures) In Taichi graphic system?
Dear Dr. Yang
I want to compare the simulated results with the analytical results for the plane poiseuille flow problem, but the simulated maximum velocity is far from the analytical one. the parameters and the code is shown as follow:
the simulated result is:
array([0. , 0.00529185, 0.01337433, 0.01914818, 0.02261291,
0.0237679 , 0.02261291, 0.01914818, 0.01337433, 0.00529183,
0. ], dtype=float32)
but the analytical maximum velocity should be 0.1
I see your paper mentioned the use of halfway bounce-back boundary conditions for the poiseuille flow, how to make it? could you please give to some suggestions?
Dear Dr. Yang,
I am very interested in your code on GitHub and appreciate the excellent work you've done. I have a few questions regarding the required working environment:
Does your code require a specific operating system? Is it better suited for Linux, or is it also compatible with Windows?
Does the code require a specific version of Python, such as Python 3.8 or 3.9?
Are there specific versions of Taichi and other packages that need to be installed? If so, could you provide a list of the required package versions?
Is the code designed to use a virtual environment or a conda environment for managing dependencies?
I have been debugging the code on a Windows system using PyCharm, and only some parts of the code are running successfully while others consistently throw errors. Could this be due to an inappropriate working environment?
Thank you very much for your time and assistance!
Best regards,
Tony
老师您好。
K = q * u (viscosity)/(fy) 是计算绝对渗透率的公式。取参数niu=0.1 ,fy = 1.0e-6,那么代入到公式中得到的K的结果的物理单位是什么?
如果需要根据分辨率进行调整,假设分辨率是3μm/voxel,在原始K计算值的基础上乘以9,就能得到单位是μm2的结果了吗?
Dear Dr.Yang,
I am a LBM learner about multiphase flow in porous media. Your work is so excellent, and we can spend more time in the physicis problem itself.
When I run the 'lbm_solver_3d_2phase.py' in the folder '2phase', something strange happens. The invading phase is appeared at the outlet after 10000 steps, but the invading phase doesnot breakthrough at that moment. Is this caused by the small body force when using periodic boudary condition?
Hello, Professor!
I have encountered a problem with the example you provided in img_ftb1131.txt. The file LBM_3D_SinglePhase_Solver.py provides two tau_f.
when I use the self.tau_f=3.0*self.niu+0.5
The permeability results are as follows:
when I use the self.tau_f=self.niu/3.0+0.5
The permeability results are as follows:
Thank you very much for your contribution. I encountered an issue while using the program. I noticed that when using the gridToVTK function to output the simulation results, the simulated velocity cannot be visualized in ParaView, while solid and rho have no problems, as shown in the figure below. I hope to receive your assistance.
Dear developers of taichi_LBM3D:
My name is Ruoyu Li, a reactive LBM researcher. Your work is an amazing HPC attempt on Python. I am deeply inspired by your work. Thanks.
I have a question regarding Taichi run on supercomputers. When I run a simple Taichi GPU job on TACC, the supercomputer maintained by the University of Texas system, I could not find the GPU node active. My doubt was confirmed by setting (arch = ti.cuda and arch=ti.cpu). The run times are equal. After a TACC technical staff viewed my error file, he thought it is probably the issue on Taichi instead of the TACC side.
My question is do you have experiences using supercomputers? If yes, have you encountered the same issue? I will attach my code and error file. Any help is deeply appreciated.
Regards,
Ruoyu
Hi, I am trying to verify the performance on an A100 PCIe version.
However, I can't get the expected performance reported in your paper.
Currently I am getting 467 MLUPs for cavity example with 400^3 cubic and 86 MLUPs for non-sparse case for 2phase with 256^3.
Besides, in your paper, it is reported that "The performance of the NVIDIA A100 GPU reached over 900 MLUPS for single-phase flow and 500 for two-phase flow with surface tension." in conclusion section. However in table 1, the max MLUPs for 2-phase is 310. Is this typo or other reasons?
Hi Jianhui,
My name is Ruoyu Li, a PhD student working on LBMs. I would like to contribute to Taichi-LBM with the use of mpi4py to parallelize taichi jobs on multiple GPUs. Now I'm in the testing phase. Is it possible to know your wechat id to ease communications? My email is [email protected]. Thank you.
Regards,
Ruoyu
Your code is really useful. Thank you very much for your contribution. I encountered a problem while using the program. I noticed that when using the gridToVTK function to output the simulation results, there was a line of commented code: # cellData={"pressure": pressure}, but there seemed to be no pressure parameter defined in all the codes. How can I export pressure for a simulation?
Dear author, hello. I am very interested in your developed work, but I encountered some issues during the trial. 1. After running the "lbm_solver_3d_2phase.py" file in the "2 phase" module, I generated a vtr file, but I am unable to open and read it in ParaView. Could you please advise me on how to view the simulation results? 2. Additionally, I would like to output specific frames of the model for further research. Do you have any suggestions?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.