Skip to content

robin.trunk

Forum Replies Created

Viewing 15 posts - 16 through 30 (of 90 total)
  • Author
    Posts
  • in reply to: About particle floating #4964
    robin.trunk
    Keymaster

    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-3

    Best regards
    Robin

    in reply to: About particle floating #4951
    robin.trunk
    Keymaster

    Dear 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
    Robin

    in reply to: About particle floating #4947
    robin.trunk
    Keymaster

    Dear 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
    Robin

    in reply to: About particle floating #4945
    robin.trunk
    Keymaster

    Dear 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
    Robin

    in reply to: Reference about the example code: bifurcation3d.cpp #4866
    robin.trunk
    Keymaster

    Dear 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.013

    Best regards
    Robin

    in reply to: Applying ZouHe Boundary conditions in poiseuille flow #4166
    robin.trunk
    Keymaster

    Hi 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
    createZouHeboundaryCondition

    Best
    Robin

    in reply to: Pressure Inlet #2934
    robin.trunk
    Keymaster

    Hi 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
    Robin

    in reply to: Watermill-like simulation #2914
    robin.trunk
    Keymaster

    Dear Laurent,

    this version of the link should work:
    http://www.openlb.net/forum?mingleforumaction=viewtopic&t=309.0#postid-1151

    Best
    Robin

    in reply to: Pressure Inlet #2897
    robin.trunk
    Keymaster

    Hi 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-2019

    Best
    Robin

    in reply to: Pressure Inlet #2895
    robin.trunk
    Keymaster

    Hi 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
    Robin

    in reply to: Venturi3d example #2843
    robin.trunk
    Keymaster

    Hi 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%3Dihub

    Another 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
    Robin

    in reply to: Watermill-like simulation #2837
    robin.trunk
    Keymaster
    in reply to: Venturi3d example #2836
    robin.trunk
    Keymaster

    Dear 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
    Robin

    in reply to: Local Refinement for multi-block approach #2829
    robin.trunk
    Keymaster

    Dear 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
    Robin

    in reply to: Flow and heat transfer #2711
    robin.trunk
    Keymaster

    Hi 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

Viewing 15 posts - 16 through 30 (of 90 total)