ludwig-cf / ludwig

A lattice Boltzmann code for complex fluids
https://ludwig.epcc.ed.ac.uk
Other
55 stars 36 forks source link

How to impose Dirichlet boundary conditions on pressure? #174

Closed aaronpim closed 2 years ago

aaronpim commented 2 years ago

I am relatively new to LUDWIG, having converted over from COMSOL, but I am having a hard time figuring out how to impose an "inlet" and an "outlet" condition.

I have a rectangular tube 50 x 10 x 10. I want to impose a Dirichlet boundary condition on the pressure at the points x=0 (p=1) and x=50(p=0). I hope that this could be in conjunction with no slip boundary conditions along the other walls but I cannot see a way to impose such conditions.

kevinstratford commented 2 years ago

We haven't implemented an open pressure boundary condition at this point in time, so it would have to be added.

Historically, we've not generally done this kind of engineering-type computation, so we only have a limited set of options.

Anything else I could suggest would probably be a kludge.

ohenrich commented 2 years ago

If you want to induce pressure-driven flow, what we normally do in LB is impose a body force on the fluid sites that corresponds to the pressure gradient between inlet and outlet. LB does not normally solve an equation of state for the pressure in compressible flows, or solve a Poisson equation for incompressible flow.

aaronpim commented 2 years ago

Thank you for your replies. In terms of the body force approach. Would I have to write an external file which contained my desired pressure profile eg.

p0 p0 p0 p0 p0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

If so, how would I upload that into the input file?

Additionally, I am reading through your documentation and I found that the section 4.5.2 (On the Hydrodynamic Boundary Conditions for fixed objects) is empty in the master file.

ohenrich commented 2 years ago

The body force is simply imposed with the force fx_fy_fz command in the input file. It acts only on fluid sites, so if you had for instance a solute particle somewhere in the channel these solid sites would be omitted.

The section 4.5.2 is indeed empty, also in the latex source.

aaronpim commented 2 years ago

Thank you so much for your replies, these have been very helpful. If you are okay with my asking, I do have another question. In the documentation regarding open boundaries: https://ludwig.epcc.ed.ac.uk/inputs/openbc.html The example inputs are: lb_bc_inflow_type rhou lb_bc_inflow_profile uniform I was wondering what other inflow types are there and what other inflow profiles there are? I cannot find this in the main document itself. If you would like I can see if I can compile the details from https://ludwig.epcc.ed.ac.uk with the TEX file?

Additionally, would there be an option in future development to change the material parameters of the LdG model? In your documentation, it is said that the model assumes that the 3 material parameters (typically denoted A, B and C in the liquid crystals literature) are given by A0 (1-\gamma/3), A0 \gamma, A0 \gamma. The first parameter is typically dependent on the temperature of the liquid crystal, the second and third parameters are independent of temperature and are not necessarily equal. Is this something that could be changed in future?