robin.trunk
Forum Replies Created
-
AuthorPosts
-
robin.trunkKeymaster
Dear Zhangshi,
the Free Energy model would be prefereable, you can find information and theory about it under the following DOI:
10.1103/physreve.93.033305
10.1007/978-3-319-44649-3Best regards
Robinrobin.trunkKeymasterDear Zhangshi,
if you have STL files at hand, this would be the better approach and should be working withoug modification.
For discussions and help on the modification of some approaches please also consider the upcoming SpringSchool in the UK: https://www.openlb.net/spring-school-2021/Best regards
Robinrobin.trunkKeymasterDear Zhangshi,
for all your plans the current version of OpenLB needs to be extended as it is not fully supported right now.
== Combining Primitives ==
While SmoothIndicatorIdentity is what you are looking for, it does not support the full range of functionality yet. It rather works like for the other indicators and combines it by shape to depict the object in the simulation. But calculations for the mass and moment of ineratia of the new object are still missing which will lead to unphysical behaviour. So this would need to be added to SmoothIndicatorIdentity.== Floating in a oil layer ==
For such a simulation you also need a multiphase approach. In the current version there is no cobined dynamics supporting particulate flow combined with a multiphase approach. You somehow need to couple the FreeEnergyDynamcis with the PorousParticleDynamics of HLBM and also need to modify the external acceleration as the bouyant forces change dependent on the density of the surrounding fluid. However currently this is set globally.Best regards
Robinrobin.trunkKeymasterDear Zhangshi,
it depends on the way you changed the parameter and what you inspected. If the cubes density is below the fluid density it will rise to the top. It is relevant where you changed the densities as they enter “externalAcceleration” for the calculating of buoyant forces.
Depending on the density difference the particle might accelerate rapidly in this case it is possible for high velocities that the cube slips through the wall, in which case it no longer experiences drag forces. You might want to check if this is the case by checking wheater the cubes coordinates are still within the simulation domain.
To the orientation: The parameter sets the initial orientation. Wheather the cube rotates and to which extend is not always trivial as it depends on initial orientation, Reynolds number, density ratio, …
Did you have a look at the terminal output or the vtk output files? It is possible that e.g. the rotation is rather slow and therefore not visible when inspecting the graphical output.Best
Robinrobin.trunkKeymasterDear Junwei Guo,
you can find further information on this example in the paper
“Inertial dilute particulate fluid flow simulations with an Euler–Euler lattice Boltzmann method”
https://doi.org/10.1016/j.jocs.2016.03.013Best regards
Robinrobin.trunkKeymasterHi rajatzope,
to change the type of the boundary implementation you just need to replace one line. Currently (depending on your setup)
createInterpBoundaryCondition2D or createLocalBoundaryCondition2D
are used, just need to replace the line with
createZouHeboundaryConditionBest
Robinrobin.trunkKeymasterHi Laurent,
yes, the getPressure gives you the total pressure. So you need to substract the dynamic pressure:
https://en.wikipedia.org/wiki/Static_pressure
This can be processed in e.g in Paraview by using the “calculator” filter.Best
Robinrobin.trunkKeymasterDear Laurent,
this version of the link should work:
http://www.openlb.net/forum?mingleforumaction=viewtopic&t=309.0#postid-1151Best
Robinrobin.trunkKeymasterHi Laurent,
the material numbers do not specify the type of an area, but rather the area itself. This means it is
3 = boundary layer on the left
4 = boundary layer on the right
The type of boundary is defined by “addPressureBoundary” or “addVelocityBoundary” respectively.To get a better grip on these topics you may want to visit our next Spring School in february:
http://www.openlb.net/spring-school-2019Best
Robinrobin.trunkKeymasterHi Laurent,
modifying cylinder2d you rather want:
bc.addPressureBoundary(superGeometry, 3, omega);
bc.addPressureBoundary(superGeometry, 4, omega);This sets one Pressure at the inlet (material number 3) replacing the velocity boundary and keeps the already existing pressure boundary at the outlet (material number 4). You want both boundaries to have the same omega, as different omega would imply either a different discretisation (what is not the case) or a difference in the physical viscosity (what you probably do not want to simulate).
Now you want to set different pressures to the two pressure boundaries. This can be done in the setBoundaryValues function in cylinder2d. Just replace the “defineU” by a “defineRho” function with appropriate arguments.
You can construct an object for the pressure by
AnalyticalConst2D<T,T> rho(converter.getLatticeDensityFromPhysPressure( >>pressure in Pa<<);Best
Robinrobin.trunkKeymasterHi Laurent,
the point of view in this case is that solid is simply represented by a porosity of 0 and fluid by a porosity of 1. In the phase tranistion region there are values in between 0 and 1, to allow for a smooth transition and thereby increase stability. For more information see
https://www.sciencedirect.com/science/article/pii/S167420011730041X?via%3DihubAnother appraoch could be the paritally saturated cells method (PSM), described e.g. in the book “The Lattice Boltzmann Method – Principles and Paractice” by Krüger et al. This however is currently not implemented in OpenLB.
Best
Robinrobin.trunkKeymasterDear Laurent
pls see http://optilb.org/openlb/forum?mingleforumaction=viewtopic&t=309.0#postid-1151
Best
Robinrobin.trunkKeymasterDear Laurent,
there are objects called SmoothIndicator…XD (e.g. SmoothIndicatorCircle2D), which can be rotated. Either you adapt this the other indicator objects to this rotation (1) or you use this SmoothIndicators in combination with a porous media model (2).
1) This approach requires changing the material numbers and reinitialisation of the cells which are not covered by the solid anymore.
2) This approach is the way the moving valve works, to get started with porous media, there is an example “porousPoiseuille2d”Best
Robinrobin.trunkKeymasterDear Eric,
the description of this multi-block approach serves rather as an introduction to data structures and parallelism. There is no direct object in OpenLB that is refered to at this point.
The Super and Block structure implemented and described in this chapter is meant to handle the MPI parallelism and therefore still requires a uniform grid. Local grid refinement is therefore a planned feature while some of the required infrastructure already exists or is beeing build, it is still unfinished.Best
Robinrobin.trunkKeymasterHi alan.sant,
a) You can set the temperature boundary for the cylinder similar to the case in the examples by the material number (assuming you set a material number for each cylinder like in the cylinder3d example). Just have a look at thermal2d oder thermal3d, in the functions
prepareLattice(…)
-> here the type of boundary is set by addTemperatureBoundary(…)
setBoundaryValues(…)
-> here the values are defined by an AnalyticalConst object and set by defineRho(…) and definePopulations(…)b) In the examples thermal2d and thermal3D a Rayleigh-Bernard convection is simulated (coupled flow and temperature field)
Best
Robin -
AuthorPosts